From 63d7c8d86d95d6d585df62a1b75d4d2999123495 Mon Sep 17 00:00:00 2001 From: Robin Lee Date: Wed, 22 Jun 2016 16:39:27 +0100 Subject: [PATCH 001/809] Update icons and strings for always-on VPN info - Replaces the realistic outline of a key with the key icon used in other places, eg. status bar icon - Updates string "tap to configure" to "tap to set up" and adds another string "always-on vpn disconnected" which is more neutral than "always-on VPN failed". Bug: 29123115 Change-Id: I4685758b682dbc947423d4ec81891506a7dc826e --- core/res/res/drawable-hdpi/vpn_connected.png | Bin 539 -> 282 bytes .../res/drawable-hdpi/vpn_disconnected.png | Bin 577 -> 297 bytes core/res/res/drawable-mdpi/vpn_connected.png | Bin 502 -> 196 bytes .../res/drawable-mdpi/vpn_disconnected.png | Bin 496 -> 209 bytes core/res/res/drawable-nodpi/vpn_connected.xml | 24 ++++++++++++++++++ .../res/drawable-nodpi/vpn_disconnected.xml | 24 ++++++++++++++++++ core/res/res/drawable-xhdpi/vpn_connected.png | Bin 688 -> 342 bytes .../res/drawable-xhdpi/vpn_disconnected.png | Bin 717 -> 360 bytes .../res/res/drawable-xxhdpi/vpn_connected.png | Bin 781 -> 476 bytes .../res/drawable-xxhdpi/vpn_disconnected.png | Bin 868 -> 513 bytes core/res/res/values/strings.xml | 4 ++- core/res/res/values/symbols.xml | 1 + 12 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 core/res/res/drawable-nodpi/vpn_connected.xml create mode 100644 core/res/res/drawable-nodpi/vpn_disconnected.xml diff --git a/core/res/res/drawable-hdpi/vpn_connected.png b/core/res/res/drawable-hdpi/vpn_connected.png index c3547e8557444e33792b51f5868615d956f9d4b1..e05e76ffc2751dbb644d4d51848722296061d331 100644 GIT binary patch delta 254 zcmVZA65`K9vnP;M zh$!?D;ts}c#5F|AHdaMm<-}%o_I;z-Vm{yQEuQ2zV|Ht5T61P#=*LiBZdH2b|k0wldT1B8JTQ?pOKU=hnu0)e zgO`h{IRhu>CQccaMg_)$tgi$*Altd>eOo$e85oSs9lxxb>4i(DW#O9D5C3u&qR@V5R=)=i}KiPWq^!lb5z7G7*^H^1sXXgA{3O0>~DTVn~ zTW5XixMjBc*!Hm7ug|Brum0=aU4P=Wfo80)^Wm-<#?Q`XK8NJ&J_3V6w8S-{#JMOn zu_QA;Paz~THC#5R5WfrBD c=NDxcD>w(67H)lP22{u3>FVdQ&MBb@04{R8`2YX_ diff --git a/core/res/res/drawable-hdpi/vpn_disconnected.png b/core/res/res/drawable-hdpi/vpn_disconnected.png index 10a9065cabdd2a1f6d63b946ffb002972c05097f..3508984b20991d82e144c24a6725e4e670d9fa58 100644 GIT binary patch delta 270 zcmV+p0rCF91gQd$B!BQpL_t(|0qxSiF2_(5!0}UQEg1dTc>(nXEaDw_3HhS2^a-Q} z5rbVqyn|{ZUPG+>7B!J8A>^c~_T1E9xaYf_G@s<;R{rgT3BwYH)J%A1LPf?RVomsN zii}sBj)pxVKPcfE*V!ep4|ID@6r++G0Wtx-pitIYI1D%oW|t1+fn#L_pI*Uf3l;k&14^EF|k0wldT1B8JTQrtZ1L^&SJqS>dqV-*KdVg)O#*ALs0pVFN?(K zkSpmMl3z_(lP%oo5Ix~o-lJJ7PUk*l4S1Kbv3kGTvpu0_u!p2}rA zJu5YEW9Oay319Rh&V*fOxy%yo;>(ukDBvigGvi2R;Ej||I&T)m?Y;h*|AXfJhmULd zpMQ{h>1XilzoKUJv_roFE^lGBX<51P`3Y_Q>%6?@DwUt;pMUInuAKc>)upi5rJ}Y! z|6jS_Y-KhvBNtn(7Do_O}NJ%V7wMqu5N@XxI zFf`OPu+%j&3o$gcGBUF=0CLT(3=DWgM3_)CDSr1-Hzi)bjkI>|zDyVAH~_kIjJU7(8A5T-G@yGywn(w6mfB diff --git a/core/res/res/drawable-mdpi/vpn_disconnected.png b/core/res/res/drawable-mdpi/vpn_disconnected.png index a08c42a2702a3ebcbd4e7497110de1656291d63a..9db4199d026269a4cb35a9178082d3e6c3b8f914 100644 GIT binary patch delta 181 zcmV;m080Px1JMDHB!8GmL_t(|0qxIQ3W87&fZ=)SxBxHEWry7m{$&NyHcUusE#=!3 zIE0X+zSn#Yhk^MYj?AC`5Rp^SzE$Kzh^Kot+|iyJ>#-oR^S*}Q2RS-m=LeOYoQO#% zP+u3cw!{cRIzLDdglsyv*iw*^ah?v2=zuL^)OH8200000NkvXXu0mjf-!@K* literal 496 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_*1rX+877l!}s{b%+Ad7K3vkw8&y zArNM~bhqvgNU*HHF&#*Q^)giWEL{fVT=8^q46!)96C{mIzk3wr91a(u^Gs zi@Htstgu$O6ZrN5|GcZp7OTI#GVt0kqlfdt#h^*KAGN(Ty{}5Deo)D`%Xvlj1!;Rvur8w{|5A* zXo+h?iE~kEVo7Fxo + + + diff --git a/core/res/res/drawable-nodpi/vpn_disconnected.xml b/core/res/res/drawable-nodpi/vpn_disconnected.xml new file mode 100644 index 000000000000..22a4a6cb4c6b --- /dev/null +++ b/core/res/res/drawable-nodpi/vpn_disconnected.xml @@ -0,0 +1,24 @@ + + + + diff --git a/core/res/res/drawable-xhdpi/vpn_connected.png b/core/res/res/drawable-xhdpi/vpn_connected.png index 1f46be2cea5d125b9324c9aa12522a6798719767..a8761c90af2d7ba8c43016e574dd429db8beb5cf 100644 GIT binary patch delta 316 zcmV-C0mJ^V1=a$PBYy!MNklN}CiDJQjD}`Z=r`sXp-N9JDCv=mVK^P@yO(KTs6}R9Dods9XMzoKnM@ z=RqGhz<7xc2?<@hUKdzH{zscq$K@~foQnfT5E57sK6Xzmgau$*us&x4LIW_Exqb&U z0oda8hc7`7v^4=(=8O#gi9VqL+JMz$k84J}ea(m~1}p;T15p%3f8`SZz;RtFs$@F= O0000Kfnz$52J2-w_pT?Lfq`*~r;B4q#NoHo480FKNVMJ8mbAL_AYenY zb9;j%%YTQqK3N&7k^+qz8y`G+@xuSa1OFF~t}S$CKgh=_%HGbm*5bu9j;1DOZqc~* zI47>PJJrHjP8vV$dtCc|-}~LanVtZ_AKRo#4{p6287C%&c>)X6?`@Wd@cv{LGv~mu zd9!9H9$;)=l>I=Xr1GR?c=6e=u*#Em`*-wNy6dD*Twi=b5IWtp$i&t!;_d8N*=VF zx4M0U_dVl{C!4?Jx##4}Y0us7$`J8$sqm4Rm;54qZ@*`s)O)0_VA{&%xqH=D$CQMH zT$$3p#^~!^zkm9#y3Xs|7F(?r870vX&fIwNgy|fh0#%TLl*E!$t7MR>R0bmhLqlByOI;(g5JOWd zBQq-lAlKZ=z<@_Ygb77MZhlH;S|x4`wVrGC0X4{gYzWRzD=AMbN@Z|N$xljEaLX)8 dEzd8?E>>_3HZ9!x*bJzS!PC{xWt~$(69A)y2TK3| diff --git a/core/res/res/drawable-xhdpi/vpn_disconnected.png b/core/res/res/drawable-xhdpi/vpn_disconnected.png index 847d3f52701ff3e60657eb03d92f343e1f957b47..7118918ec6d52b0156642c561b8541194e6b50a2 100644 GIT binary patch delta 334 zcmV-U0kQtg1?U2hBYy!eNklZMhzn9ou7p#TivYTeFhBIdrWWX9X0)pTx)_H#zJEZ($O(96(GR%9ICks< ztdlweAJqO199nDcX;7j}lNjS&2HaWe=a8?e#CqT{_n?7%tEC5$+=J2-P$?cLI{>Oz z)SLp^#ec~$)olGd4|?DLV-YPXliJyO6|m<1Lt|_o3wyDBD$bpOBg6+-bv$-YEcgM! zw!`|A4a64^dPg(Y?;sjL*y8nKfnz$52J2-w_pT?Lfq`+Or;B4q#NoHo0`q4(2(;{P-Q1h~W|@WG zRgc=Y|NlFOURkk9bP-FI@K+|Y+w6~*^u-p6N3RSq^e^BszGYj+_u|4r=k|L3n|nhQ z(+*4!VDLWbA1RxhQ1*oVh>zrje6g%Bo~;x9u!v^(9Qt{>OG;hTx{dKj}v#aW_muoc3*)Z;n<3)l7^v~sc)rMyqLnNx4zHgk1o@%p1C&-ZR42_ zvvwL=FI?ZMTz)i2M`F?PZy|RU@A;pcy8j-huzNGtVVN_Rzr_{nXJ3#%Qu8tQ2;-L> zSKNy(w=_*UE#(lxt@S@n{)px3+>j~flT}uIb74zfv|uMsxm?S?DE7e50vp&4yzp^m z5S9IW&U@J-?abn-lRn94-rr#~g=cnM>#Rj{48Kk}uM&Qmy(%T=&=V$x(@t3z&!3s| ztRlGR;AzVfN0>5Pw)B?HP25(jFstC?fr}5si%L?~~gdrl@YsZg$zr z>)^F6!(ZZbdF7X>_vdABw*;OJyZ>uD`@MHQY?@nCQnq||y&Cb%W{=;!r~6lM9u$@| zF-t2B^RDbEY3GyuC;x|SQ%_G}x@Da#FeXJyTq8=Hi&7IyGV}8kLNaqx84UG}4fPET z^(0K^02Qc$6r?1Uq*^6|RHZT)85kPs8d&NYnS~gdS{a#H834KFRt5$bk diff --git a/core/res/res/drawable-xxhdpi/vpn_connected.png b/core/res/res/drawable-xxhdpi/vpn_connected.png index ea4930c4f420ca9676bef448a65e0114d3f61bef..16b1e4e2467b03b4f60cd07541eb615b0581c7d9 100644 GIT binary patch delta 461 zcmV;;0W$uL2HXRX8Gi%-0095wd&~d;0i#JoK~#7F?bgpqlu;bV;YSA=XIr)xU5XO^ z*%nmfwlsS&AWvRF>PYmDo1NpkLb>&X6| z`=W#P4CkHmS#;RPe3KgXMHlU=%VI-x*;5(JiLU$UmL97)78N=)pr;l@#UALX9Z|7Y zdT30v?Ym`D>guMgI2W1v!;+Bhi*di3aMF)KTW!D2xK@*z`3D_{WXn=k^A9=`$)=>t zV{_iL5m`t6O%1-zKZ;VMn&7s zt(wu$Fl$XyWU9q$QL&fWi*(xaP*m)GZwC$fBr0@Zptpm#Tj>dVlU@(vndq`Lats>s zR&>!DSMm&E*pcY4_pXv_5X1IF2kp8>&Or=W7nf{ZokrY);Pxd>_rV?L&macP+ZO3; zn^zB6aZHZ2;Flz&iB6h%=KMN#|$AMSordsq`z00000NkvXXu0mjf D3ufg< literal 781 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!EX7WqAsj$Z!;#Vf4nJ za0`JjKhyC8yf0Kn9gBfU`q3JaSW-L^LEz7iMJdCT&gwx%S$#W z8=Pz4@nKU>FF5zWNr6RA*hzuenN6wbTRY3qh0#%N3q(WqYt>EIV*Ptd$IXjuo-<4q z-(lpDm~GalIvj0po{h z3-5=q6rAbU&JbsGbR)Zg>?0kkGYib0Om5!wUMcy%C!g^OmpDg;4c#4?&m^R3lDCGP z(q(5*OZm3fLS8U%PMsl>LAW^M4@p7B2i6VuSIm<@gS;*u$Oh10_-~Ph!2J;N}BWkJ{@`A}%xlW2UT#t4)7bs&$TRG|V zvQ*{Uw~rWks4-ky=gA$^bW3dOyv0Ahnp!h_p0YrElK6G^ug<@&uU-7=g!|u}-+naO zHn_S>Ise6czg1^`>CunDV#}LjSM^0+pBQ-4XU$U)-Ff^bXVqsX>lbhJrNTC!lwKjSCy)D{P5GVJ4{Cmn2ETXjN_;$P3*k7g Zw_7>=dET_$S->R8;OXk;vd$@?2>{4+J5c}t diff --git a/core/res/res/drawable-xxhdpi/vpn_disconnected.png b/core/res/res/drawable-xxhdpi/vpn_disconnected.png index 4cd0dd4a0226e64404ba071b65690b890b8b83f4..a0258186067c604a31b9bb4a1f4ecf1e8ff02ea0 100644 GIT binary patch delta 498 zcmV@zVxOvTC}Qc9a(B z!>XWSS6zzr4M>aY_hpop2u0~w%&X9;+E59GqE@>~ol0FzB6w^zjrU;g!?_Bc-*-L3 zhx`MHk7&x?)9?b->7W^EQ}qGuq8WSa0a`&b_njL>gDRY$ zIXYsZSkM}pvwOvY4swHD6bYI|&Azh90@aHa*`kL!^$TdjJp05|MISdef#*I(G{NYNnSNoG(J@c`9$or&{`OFkf>!E149&RZ@cUZ5fAFcqiG6~q%H z)YuuDvqKf}1`WG8#?!sy7J`%m5++$?A2r%%l?vhrGMeTgdvrLX&ww-Du*W*n=Dj

9&y-v9sr literal 868 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!EX7WqAsj$Z!;#Vf4nJ za0`JjKhyC8yf0Kn9gBfVA|{H;uumf=k4r3Z)rz?hW(x@0geJX zf-H&)u3Z23fB(hhV%&{R2OJy(MELq%I+tBGp1#*}^5-(;&wDxI-sSz7ad+6R9UV`o z76{h$S=+@i>L1wLVIwb-nD$LbN+x?>=e;|87nK&b~T`g zA#GKa;f39NNxK8~q+3`{jEqq2PEpoa6ISbg;SlU*DwH>(FdF%S;j%kr*>J%~eFaHe^E;jya6H!FoVh)ld5z!t->{fX=( z`J+=;?K8>VY$_p+{EocH9i z6WrE4a*4b~8e7TvJw+z<7GyY4-S6@G7=V;WUoqvCO3$Gs_6 zs;0H@*QwXLg(!VeF6PmFq;fY>gzrf3JBBhrR@;s9b`}Q)XN1}{oxP`(E~e|ub9Cd% zW|x$Mzh<9bxKg8}!g2Scx|AOa&Gb#H6TAa%Ec~Bj;raPe|EVA0=h^Bi4j$;=FY%_j zA&aTzD1Sg{@dLpAlways-on VPN connecting\u2026 Always-on VPN connected + + Always-on VPN disconnected Always-on VPN error - Tap to configure + Tap to set up diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index d426d1aef072..8ba47b230fc6 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -1861,6 +1861,7 @@ + -- GitLab From 5bf8a33aaf340431a5c3ccd492008f107f6d1fce Mon Sep 17 00:00:00 2001 From: Rubin Xu Date: Wed, 20 Jul 2016 17:34:50 +0100 Subject: [PATCH 002/809] Handle null packageName in PendingIntentRecord Bug: 27896795 Change-Id: If187e4c9cf4e5a0461f207fd8c8576bcfa559999 --- .../server/am/PendingIntentRecord.java | 25 ++++++------------- 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/services/core/java/com/android/server/am/PendingIntentRecord.java b/services/core/java/com/android/server/am/PendingIntentRecord.java index 2467a9094072..9c0845363860 100644 --- a/services/core/java/com/android/server/am/PendingIntentRecord.java +++ b/services/core/java/com/android/server/am/PendingIntentRecord.java @@ -38,6 +38,7 @@ import com.android.server.am.ActivityStackSupervisor.ActivityContainer; import java.io.PrintWriter; import java.lang.ref.WeakReference; +import java.util.Objects; final class PendingIntentRecord extends IIntentSender.Stub { private static final String TAG = TAG_WITH_CLASS_NAME ? "PendingIntentRecord" : TAG_AM; @@ -102,7 +103,7 @@ final class PendingIntentRecord extends IIntentSender.Stub { if (requestResolvedType != null) { hash = (ODD_PRIME_NUMBER*hash) + requestResolvedType.hashCode(); } - hash = (ODD_PRIME_NUMBER*hash) + _p.hashCode(); + hash = (ODD_PRIME_NUMBER*hash) + (_p != null ? _p.hashCode() : 0); hash = (ODD_PRIME_NUMBER*hash) + _t; hashCode = hash; //Slog.i(ActivityManagerService.TAG, this + " hashCode=0x" @@ -121,20 +122,14 @@ final class PendingIntentRecord extends IIntentSender.Stub { if (userId != other.userId){ return false; } - if (!packageName.equals(other.packageName)) { + if (!Objects.equals(packageName, other.packageName)) { return false; } if (activity != other.activity) { return false; } - if (who != other.who) { - if (who != null) { - if (!who.equals(other.who)) { - return false; - } - } else if (other.who != null) { - return false; - } + if (!Objects.equals(who, other.who)) { + return false; } if (requestCode != other.requestCode) { return false; @@ -148,14 +143,8 @@ final class PendingIntentRecord extends IIntentSender.Stub { return false; } } - if (requestResolvedType != other.requestResolvedType) { - if (requestResolvedType != null) { - if (!requestResolvedType.equals(other.requestResolvedType)) { - return false; - } - } else if (other.requestResolvedType != null) { - return false; - } + if (!Objects.equals(requestResolvedType, other.requestResolvedType)) { + return false; } if (flags != other.flags) { return false; -- GitLab From f04a663d6a06404d000274d551f5e43fca02d88b Mon Sep 17 00:00:00 2001 From: Robin Lee Date: Mon, 25 Jul 2016 16:09:22 +0100 Subject: [PATCH 003/809] Force application context for KeyChain bindings Bug: 29873669 Change-Id: I68c11ab19a169498045bbc23bc8fe6a2f46be031 (cherry picked from commit 43e235c0d55fce8ff845c0249a414a1b2daa5b10) --- keystore/java/android/security/KeyChain.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keystore/java/android/security/KeyChain.java b/keystore/java/android/security/KeyChain.java index cce58c2096f3..30e5a2edd882 100644 --- a/keystore/java/android/security/KeyChain.java +++ b/keystore/java/android/security/KeyChain.java @@ -368,7 +368,7 @@ public final class KeyChain { if (alias == null) { throw new NullPointerException("alias == null"); } - KeyChainConnection keyChainConnection = bind(context); + KeyChainConnection keyChainConnection = bind(context.getApplicationContext()); try { final IKeyChainService keyChainService = keyChainConnection.getService(); final String keyId = keyChainService.requestPrivateKey(alias); @@ -412,7 +412,7 @@ public final class KeyChain { if (alias == null) { throw new NullPointerException("alias == null"); } - KeyChainConnection keyChainConnection = bind(context); + KeyChainConnection keyChainConnection = bind(context.getApplicationContext()); try { IKeyChainService keyChainService = keyChainConnection.getService(); -- GitLab From 8cd1b1ba8018507e4f66b64fa9f81279cb5b71a8 Mon Sep 17 00:00:00 2001 From: Roozbeh Pournader Date: Mon, 25 Jul 2016 14:04:34 -0700 Subject: [PATCH 004/809] Re-enable disabled emoji tests [DO NOT MERGE] Since I2e508ced90515409ff6882b3c98d8911094b9b86 updates the emoji data to version 4.0 beta, we can now re-enable the disabled emoji tests. Also fix some style issues, update data file parsing method to handle the new emoji format, add UN to unsupported flags, and do a little refactoring. Bug: 30379358 Bug: 26187231 Change-Id: I441fdfed68381d08e5e0b3af91e94bfae742eef6 --- tools/fonts/fontchain_lint.py | 61 ++++++++++++----------------------- 1 file changed, 20 insertions(+), 41 deletions(-) diff --git a/tools/fonts/fontchain_lint.py b/tools/fonts/fontchain_lint.py index 2956d87f247c..bbac83c6efbf 100755 --- a/tools/fonts/fontchain_lint.py +++ b/tools/fonts/fontchain_lint.py @@ -256,8 +256,8 @@ def parse_fonts_xml(fonts_xml_path): def check_emoji_coverage(all_emoji, equivalent_emoji): - emoji_font = get_emoji_font() - check_emoji_font_coverage(emoji_font, all_emoji, equivalent_emoji) + emoji_font = get_emoji_font() + check_emoji_font_coverage(emoji_font, all_emoji, equivalent_emoji) def get_emoji_font(): @@ -274,15 +274,12 @@ def check_emoji_font_coverage(emoji_font, all_emoji, equivalent_emoji): assert sequence in coverage, ( '%s is not supported in the emoji font.' % printable(sequence)) - # disable temporarily - we cover more than this - """ for sequence in coverage: if sequence in {0x0000, 0x000D, 0x0020}: # The font needs to support a few extra characters, which is OK continue assert sequence in all_emoji, ( 'Emoji font should not support %s.' % printable(sequence)) - """ for first, second in sorted(equivalent_emoji.items()): assert coverage[first] == coverage[second], ( @@ -290,8 +287,6 @@ def check_emoji_font_coverage(emoji_font, all_emoji, equivalent_emoji): printable(first), printable(second))) - # disable temporarily - some equivalent sequences we don't even know about - """ for glyph in set(coverage.values()): maps_to_glyph = [seq for seq in coverage if coverage[seq] == glyph] if len(maps_to_glyph) > 1: @@ -307,7 +302,7 @@ def check_emoji_font_coverage(emoji_font, all_emoji, equivalent_emoji): 'The sequences %s should not result in the same glyph %s' % ( printable(equivalent_seqs), glyph)) - """ + def check_emoji_defaults(default_emoji): missing_text_chars = _emoji_properties['Emoji'] - default_emoji @@ -342,7 +337,8 @@ def check_emoji_defaults(default_emoji): 0x2764, # HEAVY BLACK HEART } assert missing_text_chars == set(), ( - 'Text style version of some emoji characters are missing: ' + repr(missing_text_chars)) + 'Text style version of some emoji characters are missing: ' + + repr(missing_text_chars)) # Setting reverse to true returns a dictionary that maps the values to sets of @@ -362,7 +358,7 @@ def parse_unicode_datafile(file_path, reverse=False): if not line: continue - chars, prop = line.split(';') + chars, prop = line.split(';')[:2] chars = chars.strip() prop = prop.strip() @@ -423,26 +419,6 @@ def parse_ucd(ucd_path): _emoji_zwj_sequences = parse_unicode_datafile( path.join(ucd_path, 'emoji-zwj-sequences.txt')) - # filter modern pentathlon, as it seems likely to be removed from final spec - # also filter rifle - def is_excluded(n): - return n in [0x1f93b, 0x1f946] - - def contains_excluded(t): - if type(t) == int: - return is_excluded(t) - return any(is_excluded(cp) for cp in t) - - # filter modern pentathlon, as it seems likely to be removed from final spec - _emoji_properties['Emoji'] = set( - t for t in _emoji_properties['Emoji'] if not contains_excluded(t)) - _emoji_sequences = dict( - (t, v) for (t, v) in _emoji_sequences.items() if not contains_excluded(t)) - - # add in UN flag - UN_seq = flag_sequence('UN') - _emoji_sequences[UN_seq] = 'Emoji_Flag_Sequence' - def flag_sequence(territory_code): return tuple(0x1F1E6 + ord(ch) - ord('A') for ch in territory_code) @@ -454,7 +430,8 @@ UNSUPPORTED_FLAGS = frozenset({ flag_sequence('GF'), flag_sequence('GP'), flag_sequence('GS'), flag_sequence('MF'), flag_sequence('MQ'), flag_sequence('NC'), flag_sequence('PM'), flag_sequence('RE'), flag_sequence('TF'), - flag_sequence('WF'), flag_sequence('XK'), flag_sequence('YT'), + flag_sequence('UN'), flag_sequence('WF'), flag_sequence('XK'), + flag_sequence('YT'), }) EQUIVALENT_FLAGS = { @@ -502,7 +479,17 @@ ZWJ_IDENTICALS = { def is_fitzpatrick_modifier(cp): - return 0x1f3fb <= cp <= 0x1f3ff + return 0x1F3FB <= cp <= 0x1F3FF + + +def reverse_emoji(seq): + rev = list(reversed(seq)) + # if there are fitzpatrick modifiers in the sequence, keep them after + # the emoji they modify + for i in xrange(1, len(rev)): + if is_fitzpatrick_modifier(rev[i-1]): + rev[i], rev[i-1] = rev[i-1], rev[i] + return tuple(rev) def compute_expected_emoji(): @@ -522,15 +509,7 @@ def compute_expected_emoji(): sequence_pieces.update(sequence) # Add reverse of all emoji ZWJ sequences, which are added to the fonts # as a workaround to get the sequences work in RTL text. - reversed_seq = list(reversed(sequence)) - # if there are fitzpatrick modifiers in the sequence, keep them after - # the emoji they modify - for i in xrange(1, len(reversed_seq)): - if is_fitzpatrick_modifier(reversed_seq[i - 1]): - tmp = reversed_seq[i] - reversed_seq[i] = reversed_seq[i-1] - reversed_seq[i-1] = tmp - reversed_seq = tuple(reversed_seq) + reversed_seq = reverse_emoji(sequence) all_sequences.add(reversed_seq) equivalent_emoji[reversed_seq] = sequence -- GitLab From 84b1746130c0df855414dc8c39f4fe5f180b0c11 Mon Sep 17 00:00:00 2001 From: Roozbeh Pournader Date: Mon, 25 Jul 2016 18:14:14 -0700 Subject: [PATCH 005/809] Check defaults for Android default-emoji characters [DO NOT MERGE] There are 12 characters that Android is defaulting to emoji, differing from UTR #51 recommendation. This tests for their proper support. Bug: 30379358 Change-Id: Icd570510090ef29b3b7a3520bc368c5f77f99fa4 (cherry picked from commit 10ea8f7431f3748be4b788100f1cab5f703284ac) --- tools/fonts/fontchain_lint.py | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/tools/fonts/fontchain_lint.py b/tools/fonts/fontchain_lint.py index 2956d87f247c..dda2969698e1 100755 --- a/tools/fonts/fontchain_lint.py +++ b/tools/fonts/fontchain_lint.py @@ -334,13 +334,6 @@ def check_emoji_defaults(default_emoji): # Noto does not have monochrome glyphs for Unicode 7.0 wingdings and # webdings yet. missing_text_chars -= _chars_by_age['7.0'] - # TODO: Remove these after b/26113320 is fixed - missing_text_chars -= { - 0x263A, # WHITE SMILING FACE - 0x270C, # VICTORY HAND - 0x2744, # SNOWFLAKE - 0x2764, # HEAVY BLACK HEART - } assert missing_text_chars == set(), ( 'Text style version of some emoji characters are missing: ' + repr(missing_text_chars)) @@ -467,6 +460,22 @@ EQUIVALENT_FLAGS = { COMBINING_KEYCAP = 0x20E3 +# Characters that Android defaults to emoji style, different from the recommendations in UTR #51 +ANDROID_DEFAULT_EMOJI = frozenset({ + 0x2600, # BLACK SUN WITH RAYS + 0x2601, # CLOUD + 0x260E, # BLACK TELEPHONE + 0x261D, # WHITE UP POINTING INDEX + 0x263A, # WHITE SMILING FACE + 0x2660, # BLACK SPADE SUIT + 0x2663, # BLACK CLUB SUIT + 0x2665, # BLACK HEART SUIT + 0x2666, # BLACK DIAMOND SUIT + 0x270C, # VICTORY HAND + 0x2744, # SNOWFLAKE + 0x2764, # HEAVY BLACK HEART +}) + LEGACY_ANDROID_EMOJI = { 0xFE4E5: flag_sequence('JP'), 0xFE4E6: flag_sequence('US'), @@ -549,6 +558,7 @@ def compute_expected_emoji(): set(LEGACY_ANDROID_EMOJI.keys())) default_emoji = ( _emoji_properties['Emoji_Presentation'] | + ANDROID_DEFAULT_EMOJI | all_sequences | set(LEGACY_ANDROID_EMOJI.keys())) -- GitLab From 7d82f98b8f2d8bd7b46e35599e4994cd6e23c03e Mon Sep 17 00:00:00 2001 From: Randy Pan Date: Wed, 27 Jul 2016 13:20:51 -0700 Subject: [PATCH 006/809] Deprecate QNS network disable reason BAD_LINK WifiNetworkAgent#unwanted no longer disables the network. Bug: 28558417 Change-Id: I2e7ed99ae4cb952f124c673376d967eeee2b4ece --- wifi/java/android/net/wifi/WifiConfiguration.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/wifi/java/android/net/wifi/WifiConfiguration.java b/wifi/java/android/net/wifi/WifiConfiguration.java index 9d0c20ce4c5d..d3d5ea05c1af 100644 --- a/wifi/java/android/net/wifi/WifiConfiguration.java +++ b/wifi/java/android/net/wifi/WifiConfiguration.java @@ -817,6 +817,7 @@ public class WifiConfiguration implements Parcelable { */ public static final int NETWORK_SELECTION_ENABLE = 0; /** + * @deprecated it is not used any more. * This network is disabled because higher layer (>2) network is bad */ public static final int DISABLED_BAD_LINK = 1; @@ -862,7 +863,7 @@ public class WifiConfiguration implements Parcelable { */ private static final String[] QUALITY_NETWORK_SELECTION_DISABLE_REASON = { "NETWORK_SELECTION_ENABLE", - "NETWORK_SELECTION_DISABLED_BAD_LINK", + "NETWORK_SELECTION_DISABLED_BAD_LINK", // deprecated "NETWORK_SELECTION_DISABLED_ASSOCIATION_REJECTION ", "NETWORK_SELECTION_DISABLED_AUTHENTICATION_FAILURE", "NETWORK_SELECTION_DISABLED_DHCP_FAILURE", -- GitLab From 72de4ddb461e132f381aad7386f815581fd2aad5 Mon Sep 17 00:00:00 2001 From: Sudheer Shanka Date: Fri, 22 Jul 2016 15:46:37 -0700 Subject: [PATCH 007/809] Add installer app check in PM.deletePackage. - Update PM.deletePackage to check if an app trying to delete a package is the same app that installed it. - Update system apps to be orphans to allow silent deletion. This will make sure managed provisioning is not affected. Fixes: 30280938 Change-Id: Ideab5a47eee2a00e7eefa9119112e37c3118783f --- .../server/pm/PackageInstallerService.java | 9 ++------ .../server/pm/PackageManagerService.java | 23 +++++++++++++++++++ 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/services/core/java/com/android/server/pm/PackageInstallerService.java b/services/core/java/com/android/server/pm/PackageInstallerService.java index 6a56fa6e629b..d25abbf1ff8a 100644 --- a/services/core/java/com/android/server/pm/PackageInstallerService.java +++ b/services/core/java/com/android/server/pm/PackageInstallerService.java @@ -870,13 +870,8 @@ public class PackageInstallerService extends IPackageInstaller.Stub { IntentSender statusReceiver, int userId) { final int callingUid = Binder.getCallingUid(); mPm.enforceCrossUserPermission(callingUid, userId, true, true, "uninstall"); - boolean allowSilentUninstall = true; if ((callingUid != Process.SHELL_UID) && (callingUid != Process.ROOT_UID)) { mAppOps.checkPackage(callingUid, callerPackageName); - final String installerPackageName = mPm.getInstallerPackageName(packageName); - allowSilentUninstall = mPm.isOrphaned(packageName) || - (installerPackageName != null - && installerPackageName.equals(callerPackageName)); } // Check whether the caller is device owner, in which case we do it silently. @@ -887,8 +882,8 @@ public class PackageInstallerService extends IPackageInstaller.Stub { final PackageDeleteObserverAdapter adapter = new PackageDeleteObserverAdapter(mContext, statusReceiver, packageName, isDeviceOwner, userId); - if (allowSilentUninstall && mContext.checkCallingOrSelfPermission( - android.Manifest.permission.DELETE_PACKAGES) == PackageManager.PERMISSION_GRANTED) { + if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.DELETE_PACKAGES) + == PackageManager.PERMISSION_GRANTED) { // Sweet, call straight through! mPm.deletePackage(packageName, adapter.getBinder(), userId, flags); } else if (isDeviceOwner) { diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 54c36e111391..b7ae07df00ce 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -8371,6 +8371,10 @@ public class PackageManagerService extends IPackageManager.Stub { pkg.applicationInfo.flags |= ApplicationInfo.FLAG_FACTORY_TEST; } + if (isSystemApp(pkg)) { + pkgSetting.isOrphaned = true; + } + ArrayList clientLibPkgs = null; if ((scanFlags & SCAN_CHECK_ONLY) != 0) { @@ -15315,6 +15319,19 @@ public class PackageManagerService extends IPackageManager.Stub { Preconditions.checkNotNull(packageName); Preconditions.checkNotNull(observer); final int uid = Binder.getCallingUid(); + if (uid != Process.SHELL_UID && uid != Process.ROOT_UID && uid != Process.SYSTEM_UID + && uid != getPackageUid(mRequiredInstallerPackage, 0, UserHandle.getUserId(uid)) + && !isOrphaned(packageName) + && !isCallerSameAsInstaller(uid, packageName)) { + try { + final Intent intent = new Intent(Intent.ACTION_UNINSTALL_PACKAGE); + intent.setData(Uri.fromParts("package", packageName, null)); + intent.putExtra(PackageInstaller.EXTRA_CALLBACK, observer.asBinder()); + observer.onUserActionRequired(intent); + } catch (RemoteException re) { + } + return; + } final boolean deleteAllUsers = (deleteFlags & PackageManager.DELETE_ALL_USERS) != 0; final int[] users = deleteAllUsers ? sUserManager.getUserIds() : new int[]{ userId }; if (UserHandle.getUserId(uid) != userId || (deleteAllUsers && users.length > 1)) { @@ -15383,6 +15400,12 @@ public class PackageManagerService extends IPackageManager.Stub { }); } + private boolean isCallerSameAsInstaller(int callingUid, String pkgName) { + final int installerPkgUid = getPackageUid(getInstallerPackageName(pkgName), + 0 /* flags */, UserHandle.getUserId(callingUid)); + return installerPkgUid == callingUid; + } + private int[] getBlockUninstallForUsers(String packageName, int[] userIds) { int[] result = EMPTY_INT_ARRAY; for (int userId : userIds) { -- GitLab From 83ab85410b98bb6e4e01be5db54ec244aeeb3182 Mon Sep 17 00:00:00 2001 From: Andrew Scull Date: Wed, 20 Jul 2016 17:04:39 +0100 Subject: [PATCH 008/809] Only check password length for relevant qualities. The minimum password length is only required for certain password qualities so only check the minimum length in those cases. Bug: 30109030 Change-Id: I330c88fc0b22179e126fc1241a9c58d5e0d73e8e --- .../devicepolicy/DevicePolicyManagerService.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index feeed8b922da..d0aeb928dd1b 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -3672,12 +3672,16 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { private boolean isActivePasswordSufficientForUserLocked( DevicePolicyData policy, int userHandle, boolean parent) { - if (policy.mActivePasswordQuality < getPasswordQuality(null, userHandle, parent) - || policy.mActivePasswordLength < getPasswordMinimumLength( + final int requiredPasswordQuality = getPasswordQuality(null, userHandle, parent); + if (policy.mActivePasswordQuality < requiredPasswordQuality) { + return false; + } + if (requiredPasswordQuality >= DevicePolicyManager.PASSWORD_QUALITY_NUMERIC + && policy.mActivePasswordLength < getPasswordMinimumLength( null, userHandle, parent)) { return false; } - if (policy.mActivePasswordQuality != DevicePolicyManager.PASSWORD_QUALITY_COMPLEX) { + if (requiredPasswordQuality != DevicePolicyManager.PASSWORD_QUALITY_COMPLEX) { return true; } return policy.mActivePasswordUpperCase >= getPasswordMinimumUpperCase( -- GitLab From 60df33da547f066e6840539b02bd9e4da9dd00d5 Mon Sep 17 00:00:00 2001 From: Andrew Scull Date: Fri, 29 Jul 2016 16:29:58 +0100 Subject: [PATCH 009/809] Explain the IAE thrown by resetPassword. DevicePolicyManager.resetPassword can throw an IllegalArgumentException which is now documented. Bug: 30105812 Change-Id: Ied02a0586ad62cca636c46da4faa16df64e17e5a --- core/java/android/app/admin/DevicePolicyManager.java | 1 + 1 file changed, 1 insertion(+) diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java index 2a12ac8f0567..b8c133e869f2 100644 --- a/core/java/android/app/admin/DevicePolicyManager.java +++ b/core/java/android/app/admin/DevicePolicyManager.java @@ -2219,6 +2219,7 @@ public class DevicePolicyManager { * @throws SecurityException if the calling application does not own an active administrator * that uses {@link DeviceAdminInfo#USES_POLICY_RESET_PASSWORD} * @throws IllegalStateException if the calling user is locked or has a managed profile. + * @throws IllegalArgumentException if the password does not meet system requirements. */ public boolean resetPassword(String password, int flags) { throwIfParentInstance("resetPassword"); -- GitLab From 1573d8be78e75f8497e519e0f15ed42e5d90bc27 Mon Sep 17 00:00:00 2001 From: Rubin Xu Date: Tue, 2 Aug 2016 12:04:01 +0100 Subject: [PATCH 010/809] Not longer need MANAGE_DEVICE_ADMINS permission. This was added to show policy transparency dialog with custom support message, but the check is now removed so no need to hold this permission. Bug: 30582906 Change-Id: Ica9d3ac052503cc2fe2c469e8b52cf0090959071 --- packages/SystemUI/AndroidManifest.xml | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml index bdb103aed7e7..de2511574e09 100644 --- a/packages/SystemUI/AndroidManifest.xml +++ b/packages/SystemUI/AndroidManifest.xml @@ -150,9 +150,6 @@ - - - -- GitLab From b43ba86811355c21a554e508d2562b161e8f119f Mon Sep 17 00:00:00 2001 From: Winson Date: Mon, 25 Jul 2016 11:33:22 -0700 Subject: [PATCH 011/809] Fixing typo in dump log. Change-Id: I94c381acb9a1748770231e714b93875097850e0d --- .../java/com/android/server/appwidget/AppWidgetServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java index 9d3889b3bdf7..b5fcb5cb6a3b 100644 --- a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java +++ b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java @@ -2266,6 +2266,7 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku pw.print(info.updatePeriodMillis); pw.print(" resizeMode="); pw.print(info.resizeMode); + pw.print(" widgetCategory="); pw.print(info.widgetCategory); pw.print(" autoAdvanceViewId="); pw.print(info.autoAdvanceViewId); -- GitLab From d06893eb1075bfbe36532e488880c3ac12dcf897 Mon Sep 17 00:00:00 2001 From: Ben Lin Date: Mon, 1 Aug 2016 16:37:13 -0700 Subject: [PATCH 012/809] DO NOT MERGE: Enable switch access api to activate/open files in DocsUI. Switch Access uses OnClickListener() on individual views to check whether a view is "clickable" or not. If it is clickable, using prev/next keys will highlight to these clickable views. Since DocsUI used to simply trap touch events and did not have any OnClickListeners on its list/grid child views, switch access was not able to pick up these views as clickable views. Simply adding an OnClickListener() fixes this particular bug, but then a regular touch using finger/mouse would trigger both onClick() and OnSingleTapUp(MotionEvent), which causes double-firing and lead to unexpected behavior. This fix overrides two accessibility-related methods in the recyclerView's layoutManager, which the recyclerView delegates to. Switch Access should now be routed to the correct behavior (which opens the file/doc). Bug: 30077035 Change-Id: I380d7529fa041f7b4905170f43f28a4235dc118d --- .../dirlist/DirectoryFragment.java | 38 ++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/packages/DocumentsUI/src/com/android/documentsui/dirlist/DirectoryFragment.java b/packages/DocumentsUI/src/com/android/documentsui/dirlist/DirectoryFragment.java index b7c0a9c1be1b..8aa7f6e69458 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/dirlist/DirectoryFragment.java +++ b/packages/DocumentsUI/src/com/android/documentsui/dirlist/DirectoryFragment.java @@ -53,10 +53,13 @@ import android.provider.DocumentsContract.Document; import android.support.annotation.Nullable; import android.support.design.widget.Snackbar; import android.support.v13.view.DragStartHelper; +import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat; +import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.GridLayoutManager.SpanSizeLookup; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView.OnItemTouchListener; +import android.support.v7.widget.RecyclerView.Recycler; import android.support.v7.widget.RecyclerView.RecyclerListener; import android.support.v7.widget.RecyclerView.ViewHolder; import android.text.BidiFormatter; @@ -243,7 +246,40 @@ public class DirectoryFragment extends Fragment mRecView.setAdapter(mAdapter); - mLayout = new GridLayoutManager(getContext(), mColumnCount); + // Switch Access Accessibility API needs an {@link AccessibilityDelegate} to know the proper + // route when user selects an UI element. It usually guesses this if the element has an + // {@link OnClickListener}, but since we do not have one for itemView, we will need to + // manually route it to the right behavior. RecyclerView has its own AccessibilityDelegate, + // and routes it to its LayoutManager; so we must override the LayoutManager's accessibility + // methods to route clicks correctly. + mLayout = new GridLayoutManager(getContext(), mColumnCount) { + @Override + public void onInitializeAccessibilityNodeInfoForItem( + RecyclerView.Recycler recycler, RecyclerView.State state, + View host, AccessibilityNodeInfoCompat info) { + super.onInitializeAccessibilityNodeInfoForItem(recycler, state, host, info); + info.addAction(AccessibilityActionCompat.ACTION_CLICK); + } + + @Override + public boolean performAccessibilityActionForItem( + RecyclerView.Recycler recycler, RecyclerView.State state, View view, + int action, Bundle args) { + // We are only handling click events; route all other to default implementation + if (action == AccessibilityNodeInfoCompat.ACTION_CLICK) { + RecyclerView.ViewHolder vh = mRecView.getChildViewHolder(view); + if (vh instanceof DocumentHolder) { + DocumentHolder dh = (DocumentHolder) vh; + if (dh.mEventListener != null) { + dh.mEventListener.onActivate(dh); + return true; + } + } + } + return super.performAccessibilityActionForItem(recycler, state, view, action, + args); + } + }; SpanSizeLookup lookup = mAdapter.createSpanSizeLookup(); if (lookup != null) { mLayout.setSpanSizeLookup(lookup); -- GitLab From 0c28f3bda393aafa30371338bd8be37a4f780161 Mon Sep 17 00:00:00 2001 From: Steve McKay Date: Wed, 20 Jul 2016 18:25:47 -0700 Subject: [PATCH 013/809] DO NOT MERGE: Treat unknown tooltype as touch. DNM because code has changed in master. Bug: 30182625 Change-Id: I0f226abd9eb6899d8a3ecd1c24bb1b261b3d3677 --- packages/DocumentsUI/src/com/android/documentsui/Events.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/DocumentsUI/src/com/android/documentsui/Events.java b/packages/DocumentsUI/src/com/android/documentsui/Events.java index 14d4e2d942d9..02a912734239 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/Events.java +++ b/packages/DocumentsUI/src/com/android/documentsui/Events.java @@ -53,7 +53,8 @@ public final class Events { */ public static boolean isTouchType(int toolType) { return toolType == MotionEvent.TOOL_TYPE_FINGER - || toolType == MotionEvent.TOOL_TYPE_STYLUS; + || toolType == MotionEvent.TOOL_TYPE_STYLUS + || toolType == MotionEvent.TOOL_TYPE_UNKNOWN; } /** -- GitLab From b56e9213ce650f6d35ab6cd9c171e4fdf2b32762 Mon Sep 17 00:00:00 2001 From: Ben Lin Date: Wed, 3 Aug 2016 10:48:43 -0700 Subject: [PATCH 014/809] Lowercasing search query in ExternalStorageProvider#querySearchDocs. Bug: 30620314 Change-Id: I4203eda72c94fde11d3973274138ad88edb51e5f --- .../src/com/android/externalstorage/ExternalStorageProvider.java | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java b/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java index 78b99274e444..7fe0d2fd074a 100644 --- a/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java +++ b/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java @@ -566,6 +566,7 @@ public class ExternalStorageProvider extends DocumentsProvider { throws FileNotFoundException { final MatrixCursor result = new MatrixCursor(resolveDocumentProjection(projection)); + query = query.toLowerCase(); final File parent; synchronized (mRootsLock) { parent = mRoots.get(rootId).path; -- GitLab From 768ca7d19bbd7ba73dee662480ea5a53ae3fbbe9 Mon Sep 17 00:00:00 2001 From: Alan Viverette Date: Thu, 4 Aug 2016 09:54:14 -0400 Subject: [PATCH 015/809] Clean up VideoView, SurfaceView constructors Also cleans up VideoView fields. No functional changes. Bug: 30600463 Change-Id: I42241e376006c328695d46d63f7fdeda409f1a67 --- core/java/android/view/SurfaceView.java | 12 +--- core/java/android/widget/VideoView.java | 80 ++++++++++++------------- 2 files changed, 42 insertions(+), 50 deletions(-) diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java index 48189106f2c4..e0ac7ed79a15 100644 --- a/core/java/android/view/SurfaceView.java +++ b/core/java/android/view/SurfaceView.java @@ -193,26 +193,20 @@ public class SurfaceView extends View { private boolean mGlobalListenersAdded; public SurfaceView(Context context) { - super(context); - init(); + this(context, null); } public SurfaceView(Context context, AttributeSet attrs) { - super(context, attrs); - init(); + this(context, attrs, 0); } public SurfaceView(Context context, AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - init(); + this(context, attrs, defStyleAttr, 0); } public SurfaceView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); - init(); - } - private void init() { setWillNotDraw(true); } diff --git a/core/java/android/widget/VideoView.java b/core/java/android/widget/VideoView.java index f084db2d1589..b973324dee8c 100644 --- a/core/java/android/widget/VideoView.java +++ b/core/java/android/widget/VideoView.java @@ -70,46 +70,49 @@ import java.util.Vector; */ public class VideoView extends SurfaceView implements MediaPlayerControl, SubtitleController.Anchor { - private String TAG = "VideoView"; - // settable by the client - private Uri mUri; - private Map mHeaders; + private static final String TAG = "VideoView"; // all possible internal states - private static final int STATE_ERROR = -1; - private static final int STATE_IDLE = 0; - private static final int STATE_PREPARING = 1; - private static final int STATE_PREPARED = 2; - private static final int STATE_PLAYING = 3; - private static final int STATE_PAUSED = 4; + private static final int STATE_ERROR = -1; + private static final int STATE_IDLE = 0; + private static final int STATE_PREPARING = 1; + private static final int STATE_PREPARED = 2; + private static final int STATE_PLAYING = 3; + private static final int STATE_PAUSED = 4; private static final int STATE_PLAYBACK_COMPLETED = 5; + private final Vector> mPendingSubtitleTracks = new Vector<>(); + + // settable by the client + private Uri mUri; + private Map mHeaders; + // mCurrentState is a VideoView object's current state. // mTargetState is the state that a method caller intends to reach. // For instance, regardless the VideoView object's current state, // calling pause() intends to bring the object to a target state // of STATE_PAUSED. private int mCurrentState = STATE_IDLE; - private int mTargetState = STATE_IDLE; + private int mTargetState = STATE_IDLE; // All the stuff we need for playing and showing a video private SurfaceHolder mSurfaceHolder = null; private MediaPlayer mMediaPlayer = null; - private int mAudioSession; - private int mVideoWidth; - private int mVideoHeight; - private int mSurfaceWidth; - private int mSurfaceHeight; + private int mAudioSession; + private int mVideoWidth; + private int mVideoHeight; + private int mSurfaceWidth; + private int mSurfaceHeight; private MediaController mMediaController; private OnCompletionListener mOnCompletionListener; private MediaPlayer.OnPreparedListener mOnPreparedListener; - private int mCurrentBufferPercentage; + private int mCurrentBufferPercentage; private OnErrorListener mOnErrorListener; - private OnInfoListener mOnInfoListener; - private int mSeekWhenPrepared; // recording the seek position while preparing - private boolean mCanPause; - private boolean mCanSeekBack; - private boolean mCanSeekForward; + private OnInfoListener mOnInfoListener; + private int mSeekWhenPrepared; // recording the seek position while preparing + private boolean mCanPause; + private boolean mCanSeekBack; + private boolean mCanSeekForward; /** Subtitle rendering widget overlaid on top of the video. */ private RenderingWidget mSubtitleWidget; @@ -118,13 +121,11 @@ public class VideoView extends SurfaceView private RenderingWidget.OnChangedListener mSubtitlesChangedListener; public VideoView(Context context) { - super(context); - initVideoView(); + this(context, null); } public VideoView(Context context, AttributeSet attrs) { this(context, attrs, 0); - initVideoView(); } public VideoView(Context context, AttributeSet attrs, int defStyleAttr) { @@ -133,7 +134,19 @@ public class VideoView extends SurfaceView public VideoView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); - initVideoView(); + + mVideoWidth = 0; + mVideoHeight = 0; + + getHolder().addCallback(mSHCallback); + getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); + + setFocusable(true); + setFocusableInTouchMode(true); + requestFocus(); + + mCurrentState = STATE_IDLE; + mTargetState = STATE_IDLE; } @Override @@ -209,19 +222,6 @@ public class VideoView extends SurfaceView return getDefaultSize(desiredSize, measureSpec); } - private void initVideoView() { - mVideoWidth = 0; - mVideoHeight = 0; - getHolder().addCallback(mSHCallback); - getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); - setFocusable(true); - setFocusableInTouchMode(true); - requestFocus(); - mPendingSubtitleTracks = new Vector>(); - mCurrentState = STATE_IDLE; - mTargetState = STATE_IDLE; - } - /** * Sets video path. * @@ -294,8 +294,6 @@ public class VideoView extends SurfaceView } } - private Vector> mPendingSubtitleTracks; - public void stopPlayback() { if (mMediaPlayer != null) { mMediaPlayer.stop(); -- GitLab From f0ac2ba9f4bf7b0ea3235999dde3b657a1023d76 Mon Sep 17 00:00:00 2001 From: Alan Viverette Date: Thu, 4 Aug 2016 13:23:33 -0400 Subject: [PATCH 016/809] Constrain input hour and minute to valid range This is consistent with the legacy spinner implementation. Bug: 30570390 Change-Id: I14fb1363b410b2f56ead01e0b632efb8f7508268 --- core/java/android/widget/TimePicker.java | 38 +++++++++++++----------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/core/java/android/widget/TimePicker.java b/core/java/android/widget/TimePicker.java index f2fc617ccc33..10959780683a 100644 --- a/core/java/android/widget/TimePicker.java +++ b/core/java/android/widget/TimePicker.java @@ -16,19 +16,19 @@ package android.widget; +import com.android.internal.R; + +import android.annotation.IntRange; import android.annotation.NonNull; -import android.annotation.Nullable; import android.annotation.Widget; import android.content.Context; -import android.content.res.Configuration; import android.content.res.TypedArray; import android.os.Parcel; import android.os.Parcelable; -import android.os.Parcelable.Creator; import android.util.AttributeSet; +import android.util.MathUtils; import android.view.View; import android.view.accessibility.AccessibilityEvent; -import com.android.internal.R; import java.util.Locale; @@ -102,8 +102,8 @@ public class TimePicker extends FrameLayout { * @param hour the hour to set, in the range (0-23) * @see #getHour() */ - public void setHour(int hour) { - mDelegate.setHour(hour); + public void setHour(@IntRange(from = 0, to = 23) int hour) { + mDelegate.setHour(MathUtils.constrain(hour, 0, 23)); } /** @@ -117,13 +117,13 @@ public class TimePicker extends FrameLayout { } /** - * Sets the currently selected minute.. + * Sets the currently selected minute. * * @param minute the minute to set, in the range (0-59) * @see #getMinute() */ - public void setMinute(int minute) { - mDelegate.setMinute(minute); + public void setMinute(@IntRange(from = 0, to = 59) int minute) { + mDelegate.setMinute(MathUtils.constrain(minute, 0, 59)); } /** @@ -137,8 +137,9 @@ public class TimePicker extends FrameLayout { } /** - * Sets the current hour. + * Sets the currently selected hour using 24-hour time. * + * @param currentHour the hour to set, in the range (0-23) * @deprecated Use {@link #setHour(int)} */ @Deprecated @@ -147,33 +148,34 @@ public class TimePicker extends FrameLayout { } /** - * @return the current hour in the range (0-23) + * @return the currently selected hour, in the range (0-23) * @deprecated Use {@link #getHour()} */ @NonNull @Deprecated public Integer getCurrentHour() { - return mDelegate.getHour(); + return getHour(); } /** - * Set the current minute (0-59). + * Sets the currently selected minute. * + * @param currentMinute the minute to set, in the range (0-59) * @deprecated Use {@link #setMinute(int)} */ @Deprecated public void setCurrentMinute(@NonNull Integer currentMinute) { - mDelegate.setMinute(currentMinute); + setMinute(currentMinute); } /** - * @return the current minute + * @return the currently selected minute, in the range (0-59) * @deprecated Use {@link #getMinute()} */ @NonNull @Deprecated public Integer getCurrentMinute() { - return mDelegate.getMinute(); + return getMinute(); } /** @@ -256,10 +258,10 @@ public class TimePicker extends FrameLayout { * for the real behavior. */ interface TimePickerDelegate { - void setHour(int hour); + void setHour(@IntRange(from = 0, to = 23) int hour); int getHour(); - void setMinute(int minute); + void setMinute(@IntRange(from = 0, to = 59) int minute); int getMinute(); void setIs24Hour(boolean is24Hour); -- GitLab From daec5506c45ff0677678fde0732b199cb071250d Mon Sep 17 00:00:00 2001 From: Alan Viverette Date: Thu, 4 Aug 2016 13:55:11 -0400 Subject: [PATCH 017/809] Improve docs for GradientDrawable's useLevel and centerX/Y properties Bug: 30302143 Change-Id: I1007bf2a57ce73c9ed516a4717e7a539e9e9774b --- core/res/res/values/attrs.xml | 32 ++++++---- .../graphics/drawable/GradientDrawable.java | 60 ++++++++++++++----- 2 files changed, 66 insertions(+), 26 deletions(-) diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml index 0c085646e01f..9f540c0f2ff6 100644 --- a/core/res/res/values/attrs.xml +++ b/core/res/res/values/attrs.xml @@ -5341,7 +5341,10 @@ i - + @@ -5375,28 +5378,37 @@ i - + + - + - + - + - + - + - + - + diff --git a/graphics/java/android/graphics/drawable/GradientDrawable.java b/graphics/java/android/graphics/drawable/GradientDrawable.java index 3dbd2a96b00a..8c633b0da93a 100644 --- a/graphics/java/android/graphics/drawable/GradientDrawable.java +++ b/graphics/java/android/graphics/drawable/GradientDrawable.java @@ -475,16 +475,17 @@ public class GradientDrawable extends Drawable { } /** - * Sets the center location in pixels of the gradient. The radius is - * honored only when the gradient type is set to {@link #RADIAL_GRADIENT} - * or {@link #SWEEP_GRADIENT}. + * Sets the position of the center of the gradient as a fraction of the + * width and height. + *

+ * The default value is (0.5, 0.5). *

* Note: changing this property will affect all instances * of a drawable loaded from a resource. It is recommended to invoke * {@link #mutate()} before changing this property. * - * @param x the x coordinate of the gradient's center in pixels - * @param y the y coordinate of the gradient's center in pixels + * @param x the X-position of the center of the gradient + * @param y the Y-position of the center of the gradient * * @see #mutate() * @see #setGradientType(int) @@ -498,9 +499,10 @@ public class GradientDrawable extends Drawable { } /** - * Returns the center X location of this gradient in pixels. + * Returns the X-position of the center of the gradient as a fraction of + * the width. * - * @return the center X location of this gradient in pixels + * @return the X-position of the center of the gradient * @see #setGradientCenter(float, float) */ public float getGradientCenterX() { @@ -508,9 +510,10 @@ public class GradientDrawable extends Drawable { } /** - * Returns the center Y location of this gradient in pixels. + * Returns the Y-position of the center of this gradient as a fraction of + * the height. * - * @return the center Y location of this gradient in pixels + * @return the Y-position of the center of the gradient * @see #setGradientCenter(float, float) */ public float getGradientCenterY() { @@ -554,19 +557,43 @@ public class GradientDrawable extends Drawable { } /** - * Sets whether or not this drawable will honor its {@code level} property. + * Sets whether this drawable's {@code level} property will be used to + * scale the gradient. If a gradient is not used, this property has no + * effect. *

- * Note: changing this property will affect all instances + * Scaling behavior varies based on gradient type: + *

    + *
  • {@link #LINEAR_GRADIENT} adjusts the ending position along the + * gradient's axis of orientation (see {@link #getOrientation()}) + *
  • {@link #RADIAL_GRADIENT} adjusts the outer radius + *
  • {@link #SWEEP_GRADIENT} adjusts the ending angle + *
      + *

      + * The default value for this property is {@code false}. + *

      + * Note: This property corresponds to the + * {@code android:useLevel} attribute on the inner {@code <gradient>} + * tag, NOT the {@code android:useLevel} attribute on the outer + * {@code <shape>} tag. For example, + *

      {@code
      +     * 
      +     *     
      +     * 
      +     * }

      + * Note: Changing this property will affect all instances * of a drawable loaded from a resource. It is recommended to invoke * {@link #mutate()} before changing this property. * - * @param useLevel {@code true} if this drawable should honor its level, - * {@code false} otherwise + * @param useLevel {@code true} if the gradient should be scaled based on + * level, {@code false} otherwise * * @see #mutate() * @see #setLevel(int) * @see #getLevel() * @see #getUseLevel() + * @attr ref android.R.styleable#GradientDrawableGradient_useLevel */ public void setUseLevel(boolean useLevel) { mGradientState.mUseLevel = useLevel; @@ -575,12 +602,13 @@ public class GradientDrawable extends Drawable { } /** - * Returns whether or not this drawable will honor its {@code level} - * property. + * Returns whether this drawable's {@code level} property will be used to + * scale the gradient. * - * @return {@code true} if this drawable should honor its level, + * @return {@code true} if the gradient should be scaled based on level, * {@code false} otherwise * @see #setUseLevel(boolean) + * @attr ref android.R.styleable#GradientDrawableGradient_useLevel */ public boolean getUseLevel() { return mGradientState.mUseLevel; -- GitLab From 682d37039026461161215e82b97acf5fb2846e27 Mon Sep 17 00:00:00 2001 From: Shunta Sato Date: Mon, 25 Jul 2016 13:53:26 +0900 Subject: [PATCH 018/809] DO NOT MERGE: Don't delete source file when a move opration is canceled DNM becuase Code has moved in master. Symptom: A source file is deleted even if a move operation is cancled Root cause: MoveJob doesn't check whether a move operation is canceled or not after copying file Solution: Add cancel condition check before deleting a source file Bug: 30240042 Author: Shiotani Kouji Change-Id: Ie68e5d96304a125c07d46a2fd5e4c9d84903d1e7 --- .../src/com/android/documentsui/services/MoveJob.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/DocumentsUI/src/com/android/documentsui/services/MoveJob.java b/packages/DocumentsUI/src/com/android/documentsui/services/MoveJob.java index 111817132fa1..1de3bbc20496 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/services/MoveJob.java +++ b/packages/DocumentsUI/src/com/android/documentsui/services/MoveJob.java @@ -117,7 +117,9 @@ final class MoveJob extends CopyJob { byteCopyDocument(src, dest); // Remove the source document. - deleteDocument(src, srcParent); + if(!isCanceled()) { + deleteDocument(src, srcParent); + } } @Override -- GitLab From 78a8e9d2939dcb7be3d3a656c6ac630f17d73854 Mon Sep 17 00:00:00 2001 From: Tony Mantler Date: Fri, 5 Aug 2016 14:08:06 -0700 Subject: [PATCH 019/809] Fix AsyncTask to handle exceptions in doInBackground When cancelling, the exception will be eaten by FutureTask, but onCancelled would end up never being called due to the exception causing the code to skip calling postResult. b/30304893 Change-Id: I47d859d9ef77245889816b2b6e10bb380bc4979b --- core/java/android/os/AsyncTask.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/core/java/android/os/AsyncTask.java b/core/java/android/os/AsyncTask.java index 63f39c59b1b7..5d022b813a24 100644 --- a/core/java/android/os/AsyncTask.java +++ b/core/java/android/os/AsyncTask.java @@ -298,12 +298,16 @@ public abstract class AsyncTask { mWorker = new WorkerRunnable() { public Result call() throws Exception { mTaskInvoked.set(true); - - Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND); - //noinspection unchecked - Result result = doInBackground(mParams); - Binder.flushPendingCommands(); - return postResult(result); + Result result = null; + try { + Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND); + //noinspection unchecked + result = doInBackground(mParams); + Binder.flushPendingCommands(); + } finally { + postResult(result); + } + return result; } }; -- GitLab From 703b0974e047eaa47f1c833f9b040954a61ea08f Mon Sep 17 00:00:00 2001 From: Erik Kline Date: Fri, 5 Aug 2016 18:14:46 +0900 Subject: [PATCH 020/809] Ensure known good state when starting. Split StartedState into StartedState and RunningState, and ensure known good state before proceeding from the former to the latter. Bug: 30290336 Change-Id: I0a93f8fe53c65a0b90c28c3cf708792146a92aab --- .../net/java/android/net/ip/IpManager.java | 109 ++++++++++++++---- 1 file changed, 89 insertions(+), 20 deletions(-) diff --git a/services/net/java/android/net/ip/IpManager.java b/services/net/java/android/net/ip/IpManager.java index 654ef18f9608..6d9020390bef 100644 --- a/services/net/java/android/net/ip/IpManager.java +++ b/services/net/java/android/net/ip/IpManager.java @@ -382,6 +382,7 @@ public class IpManager extends StateMachine { private final State mStoppedState = new StoppedState(); private final State mStoppingState = new StoppingState(); private final State mStartedState = new StartedState(); + private final State mRunningState = new RunningState(); private final String mTag; private final Context mContext; @@ -476,6 +477,7 @@ public class IpManager extends StateMachine { // Super simple StateMachine. addState(mStoppedState); addState(mStartedState); + addState(mRunningState, mStartedState); addState(mStoppingState); setInitialState(mStoppedState); @@ -570,7 +572,7 @@ public class IpManager extends StateMachine { pw.decreaseIndent(); pw.println(); - pw.println("StateMachine dump:"); + pw.println(mTag + " StateMachine dump:"); pw.increaseIndent(); mLocalLog.readOnlyLocalLog().dump(fd, pw, args); pw.decreaseIndent(); @@ -768,6 +770,11 @@ public class IpManager extends StateMachine { // - IPv6 addresses // - IPv6 routes // - IPv6 DNS servers + // + // N.B.: this is fundamentally race-prone and should be fixed by + // changing NetlinkTracker from a hybrid edge/level model to an + // edge-only model, or by giving IpManager its own netlink socket(s) + // so as to track all required information directly. LinkProperties netlinkLinkProperties = mNetlinkTracker.getLinkProperties(); newLp.setLinkAddresses(netlinkLinkProperties.getLinkAddresses()); for (RouteInfo route : netlinkLinkProperties.getRoutes()) { @@ -939,16 +946,30 @@ public class IpManager extends StateMachine { return true; } + private void stopAllIP() { + // We don't need to worry about routes, just addresses, because: + // - disableIpv6() will clear autoconf IPv6 routes as well, and + // - we don't get IPv4 routes from netlink + // so we neither react to nor need to wait for changes in either. + + try { + mNwService.disableIpv6(mInterfaceName); + } catch (Exception e) { + Log.e(mTag, "Failed to disable IPv6" + e); + } + + try { + mNwService.clearInterfaceAddresses(mInterfaceName); + } catch (Exception e) { + Log.e(mTag, "Failed to clear addresses " + e); + } + } + class StoppedState extends State { @Override public void enter() { - try { - mNwService.disableIpv6(mInterfaceName); - mNwService.clearInterfaceAddresses(mInterfaceName); - } catch (Exception e) { - Log.e(mTag, "Failed to clear addresses or disable IPv6" + e); - } + stopAllIP(); resetLinkProperties(); if (mStartTimeMillis > 0) { @@ -1023,12 +1044,71 @@ public class IpManager extends StateMachine { } class StartedState extends State { - private boolean mDhcpActionInFlight; - @Override public void enter() { mStartTimeMillis = SystemClock.elapsedRealtime(); + if (mConfiguration.mProvisioningTimeoutMs > 0) { + final long alarmTime = SystemClock.elapsedRealtime() + + mConfiguration.mProvisioningTimeoutMs; + mProvisioningTimeoutAlarm.schedule(alarmTime); + } + + if (readyToProceed()) { + transitionTo(mRunningState); + } else { + // Clear all IPv4 and IPv6 before proceeding to RunningState. + // Clean up any leftover state from an abnormal exit from + // tethering or during an IpManager restart. + stopAllIP(); + } + } + + @Override + public void exit() { + mProvisioningTimeoutAlarm.cancel(); + } + + @Override + public boolean processMessage(Message msg) { + switch (msg.what) { + case CMD_STOP: + transitionTo(mStoppingState); + break; + + case EVENT_NETLINK_LINKPROPERTIES_CHANGED: + handleLinkPropertiesUpdate(NO_CALLBACKS); + if (readyToProceed()) { + transitionTo(mRunningState); + } + break; + + case EVENT_PROVISIONING_TIMEOUT: + handleProvisioningFailure(); + break; + + default: + // It's safe to process messages out of order because the + // only message that can both + // a) be received at this time and + // b) affect provisioning state + // is EVENT_NETLINK_LINKPROPERTIES_CHANGED (handled above). + deferMessage(msg); + } + return HANDLED; + } + + boolean readyToProceed() { + return (!mLinkProperties.hasIPv4Address() && + !mLinkProperties.hasGlobalIPv6Address()); + } + } + + class RunningState extends State { + private boolean mDhcpActionInFlight; + + @Override + public void enter() { mApfFilter = ApfFilter.maybeCreate(mConfiguration.mApfCapabilities, mNetworkInterface, mCallback, mMulticastFiltering); // TODO: investigate the effects of any multicast filtering racing/interfering with the @@ -1037,12 +1117,6 @@ public class IpManager extends StateMachine { mCallback.setFallbackMulticastFilter(mMulticastFiltering); } - if (mConfiguration.mProvisioningTimeoutMs > 0) { - final long alarmTime = SystemClock.elapsedRealtime() + - mConfiguration.mProvisioningTimeoutMs; - mProvisioningTimeoutAlarm.schedule(alarmTime); - } - if (mConfiguration.mEnableIPv6) { // TODO: Consider transitionTo(mStoppingState) if this fails. startIPv6(); @@ -1070,7 +1144,6 @@ public class IpManager extends StateMachine { @Override public void exit() { - mProvisioningTimeoutAlarm.cancel(); stopDhcpAction(); if (mIpReachabilityMonitor != null) { @@ -1167,10 +1240,6 @@ public class IpManager extends StateMachine { break; } - case EVENT_PROVISIONING_TIMEOUT: - handleProvisioningFailure(); - break; - case EVENT_DHCPACTION_TIMEOUT: stopDhcpAction(); break; -- GitLab From 798fb798660115845ba42df293baa28b3cc26a03 Mon Sep 17 00:00:00 2001 From: Robert Carr Date: Tue, 12 Jul 2016 15:48:53 -0700 Subject: [PATCH 021/809] PopupWindow: Be more consistent about Gravity calculation. Currently we are only appending the DISPLAY_CLIP_VERTICAL if the API user happens to call update() after showAsDropDown(). This fixes that behavior, and fixes a RTL issue (START v. LEFT). Unblocks a CTS test I am working on. Bug: 30578621 Change-Id: Ibf838544d453986b66eb223e2ac0f7d909fe5630 (cherry picked from commit 8367c50972ee4fce55ac483441125b8b09af5eae) --- core/java/android/widget/PopupWindow.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/java/android/widget/PopupWindow.java b/core/java/android/widget/PopupWindow.java index 6432f703f2ba..5935c7889e9c 100644 --- a/core/java/android/widget/PopupWindow.java +++ b/core/java/android/widget/PopupWindow.java @@ -1547,7 +1547,7 @@ public class PopupWindow { } // Let the window manager know to align the top to y. - outParams.gravity = Gravity.LEFT | Gravity.TOP; + outParams.gravity = computeGravity(); outParams.width = width; outParams.height = height; -- GitLab From 9bfba9c157e4a5b1325a60d2122be2bf034a5a2a Mon Sep 17 00:00:00 2001 From: Selim Cinek Date: Mon, 8 Aug 2016 15:20:06 -0700 Subject: [PATCH 022/809] Made background updater more robust to state changes With raceconditions, the background of notifications could become colored when dozing. Change-Id: Ib39f873e6dce40e97a8df06dec281733a8ae2fd9 Fixes: 29331596 --- .../stack/NotificationStackScrollLayout.java | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java index f72e50beec10..e60a809cd38f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java @@ -1963,9 +1963,9 @@ public class NotificationStackScrollLayout extends ViewGroup } private void applyCurrentBackgroundBounds() { - if (!mFadingOut) { - mScrimController.setExcludedBackgroundArea(mCurrentBounds); - } + mScrimController.setExcludedBackgroundArea( + mFadingOut || mParentFadingOut || mAmbientState.isDark() ? null + : mCurrentBounds); invalidate(); } @@ -3843,11 +3843,7 @@ public class NotificationStackScrollLayout extends ViewGroup } private void updateFadingState() { - if (mFadingOut || mParentFadingOut || mAmbientState.isDark()) { - mScrimController.setExcludedBackgroundArea(null); - } else { - applyCurrentBackgroundBounds(); - } + applyCurrentBackgroundBounds(); updateSrcDrawing(); } -- GitLab From f29d07a62a78f73a21d649f6737992c267d6f170 Mon Sep 17 00:00:00 2001 From: Todd Kennedy Date: Mon, 8 Aug 2016 15:17:43 -0700 Subject: [PATCH 023/809] Don't call into pkg mgr svc w/ lock held In general, there's no reason to hold the lock when calling into external components. However, in practice, this can deadlock. When dumping its state, Package Manager Service holds a lock while it calls into other packages to dump their state. These other packages (such as Package Installer Session) typically take their own lock to dump coherent state. And, thus, a deadlock. Bug: 30419998 Change-Id: I0807b8742316d084e381be8721d1b3d41143b82c --- .../server/pm/PackageInstallerSession.java | 49 +++++++++++-------- 1 file changed, 28 insertions(+), 21 deletions(-) diff --git a/services/core/java/com/android/server/pm/PackageInstallerSession.java b/services/core/java/com/android/server/pm/PackageInstallerSession.java index 6cdc40f7a81c..583128444cfc 100644 --- a/services/core/java/com/android/server/pm/PackageInstallerSession.java +++ b/services/core/java/com/android/server/pm/PackageInstallerSession.java @@ -109,6 +109,7 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { final int installerUid; final SessionParams params; final long createdMillis; + final int defaultContainerGid; /** Staging location where client data is written. */ final File stageDir; @@ -199,13 +200,19 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { private final Handler.Callback mHandlerCallback = new Handler.Callback() { @Override public boolean handleMessage(Message msg) { + // Cache package manager data without the lock held + final PackageInfo pkgInfo = mPm.getPackageInfo( + params.appPackageName, PackageManager.GET_SIGNATURES /*flags*/, userId); + final ApplicationInfo appInfo = mPm.getApplicationInfo( + params.appPackageName, 0, userId); + synchronized (mLock) { if (msg.obj != null) { mRemoteObserver = (IPackageInstallObserver2) msg.obj; } try { - commitLocked(); + commitLocked(pkgInfo, appInfo); } catch (PackageManagerException e) { final String completeMsg = ExceptionUtils.getCompleteMessage(e); Slog.e(TAG, "Commit of session " + sessionId + " failed: " + completeMsg); @@ -264,6 +271,9 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { } else { mPermissionsAccepted = false; } + final int uid = mPm.getPackageUid(PackageManagerService.DEFAULT_CONTAINER_PACKAGE, + PackageManager.MATCH_SYSTEM_ONLY, UserHandle.USER_SYSTEM); + defaultContainerGid = UserHandle.getSharedAppGid(uid); } public SessionInfo generateInfo() { @@ -520,7 +530,8 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { mHandler.obtainMessage(MSG_COMMIT, adapter.getBinder()).sendToTarget(); } - private void commitLocked() throws PackageManagerException { + private void commitLocked(PackageInfo pkgInfo, ApplicationInfo appInfo) + throws PackageManagerException { if (mDestroyed) { throw new PackageManagerException(INSTALL_FAILED_INTERNAL_ERROR, "Session destroyed"); } @@ -538,7 +549,7 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { // Verify that stage looks sane with respect to existing application. // This currently only ensures packageName, versionCode, and certificate // consistency. - validateInstallLocked(); + validateInstallLocked(pkgInfo, appInfo); Preconditions.checkNotNull(mPackageName); Preconditions.checkNotNull(mSignatures); @@ -650,7 +661,8 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { * Note that upgrade compatibility is still performed by * {@link PackageManagerService}. */ - private void validateInstallLocked() throws PackageManagerException { + private void validateInstallLocked(PackageInfo pkgInfo, ApplicationInfo appInfo) + throws PackageManagerException { mPackageName = null; mVersionCode = -1; mSignatures = null; @@ -729,10 +741,8 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { if (removeSplitList.size() > 0) { // validate split names marked for removal - final int flags = mSignatures == null ? PackageManager.GET_SIGNATURES : 0; - final PackageInfo pkg = mPm.getPackageInfo(params.appPackageName, flags, userId); for (String splitName : removeSplitList) { - if (!ArrayUtils.contains(pkg.splitNames, splitName)) { + if (!ArrayUtils.contains(pkgInfo.splitNames, splitName)) { throw new PackageManagerException(INSTALL_FAILED_INVALID_APK, "Split not found: " + splitName); } @@ -740,11 +750,11 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { // ensure we've got appropriate package name, version code and signatures if (mPackageName == null) { - mPackageName = pkg.packageName; - mVersionCode = pkg.versionCode; + mPackageName = pkgInfo.packageName; + mVersionCode = pkgInfo.versionCode; } if (mSignatures == null) { - mSignatures = pkg.signatures; + mSignatures = pkgInfo.signatures; } } @@ -757,8 +767,7 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { } else { // Partial installs must be consistent with existing install - final ApplicationInfo app = mPm.getApplicationInfo(mPackageName, 0, userId); - if (app == null) { + if (appInfo == null) { throw new PackageManagerException(INSTALL_FAILED_INVALID_APK, "Missing existing base package for " + mPackageName); } @@ -766,8 +775,8 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { final PackageLite existing; final ApkLite existingBase; try { - existing = PackageParser.parsePackageLite(new File(app.getCodePath()), 0); - existingBase = PackageParser.parseApkLite(new File(app.getBaseCodePath()), + existing = PackageParser.parsePackageLite(new File(appInfo.getCodePath()), 0); + existingBase = PackageParser.parseApkLite(new File(appInfo.getBaseCodePath()), PackageParser.PARSE_COLLECT_CERTIFICATES); } catch (PackageParserException e) { throw PackageManagerException.from(e); @@ -777,7 +786,7 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { // Inherit base if not overridden if (mResolvedBaseFile == null) { - mResolvedBaseFile = new File(app.getBaseCodePath()); + mResolvedBaseFile = new File(appInfo.getBaseCodePath()); mResolvedInheritedFiles.add(mResolvedBaseFile); } @@ -794,7 +803,7 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { } // Inherit compiled oat directory. - final File packageInstallDir = (new File(app.getBaseCodePath())).getParentFile(); + final File packageInstallDir = (new File(appInfo.getBaseCodePath())).getParentFile(); mInheritedFilesBase = packageInstallDir; final File oatDir = new File(packageInstallDir, "oat"); if (oatDir.exists()) { @@ -822,7 +831,8 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { } } - private void assertApkConsistent(String tag, ApkLite apk) throws PackageManagerException { + private void assertApkConsistent(String tag, ApkLite apk) + throws PackageManagerException { if (!mPackageName.equals(apk.packageName)) { throw new PackageManagerException(INSTALL_FAILED_INVALID_APK, tag + " package " + apk.packageName + " inconsistent with " + mPackageName); @@ -1035,10 +1045,7 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { "Failed to finalize container " + cid); } - final int uid = mPm.getPackageUid(PackageManagerService.DEFAULT_CONTAINER_PACKAGE, - PackageManager.MATCH_SYSTEM_ONLY, UserHandle.USER_SYSTEM); - final int gid = UserHandle.getSharedAppGid(uid); - if (!PackageHelper.fixSdPermissions(cid, gid, null)) { + if (!PackageHelper.fixSdPermissions(cid, defaultContainerGid, null)) { throw new PackageManagerException(INSTALL_FAILED_CONTAINER_ERROR, "Failed to fix permissions on container " + cid); } -- GitLab From 21bd9b824f1bed7ccb412f1cd27e3f3a159ffe19 Mon Sep 17 00:00:00 2001 From: Todd Kennedy Date: Tue, 9 Aug 2016 10:39:50 -0700 Subject: [PATCH 024/809] Allow permission group updates When a package in updated, it may redefine a permisson group [specify a new icon, text, etc...]. Udate our internal structures to the new package. Bug: 30347537 Change-Id: I9fbaf7c68a4de658489cfd1c728473032dded98b --- .../java/com/android/server/pm/PackageManagerService.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 2ed64f18349c..ca9163e1817b 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -8650,7 +8650,9 @@ public class PackageManagerService extends IPackageManager.Stub { for (i=0; i Date: Wed, 10 Aug 2016 13:02:38 -0700 Subject: [PATCH 025/809] Avoid weird expand animation when a notification is updated Whenever a notification was updated and it was expanded, the animation would look incredibly weird. This is now fixed. Change-Id: Iaeac6f71c3771c4782e751be50b54b62d08b643e Fixes: 30693397 --- .../systemui/statusbar/ExpandableNotificationRow.java | 8 +++----- .../statusbar/stack/NotificationStackScrollLayout.java | 8 -------- 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java index 58d402bb7432..8e86ae001238 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java @@ -507,7 +507,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView { int intrinsicHeight = getIntrinsicHeight(); mIsPinned = pinned; if (intrinsicHeight != getIntrinsicHeight()) { - notifyHeightChanged(false); + notifyHeightChanged(false /* needsAnimation */); } if (pinned) { setIconAnimationRunning(true); @@ -840,8 +840,6 @@ public class ExpandableNotificationRow extends ActivatableNotificationView { } public void resetHeight() { - mMaxExpandHeight = 0; - mHeadsUpHeight = 0; onHeightReset(); requestLayout(); } @@ -1290,7 +1288,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView { } mHeadsUpHeight = headsUpChild.getHeight(); if (intrinsicBefore != getIntrinsicHeight()) { - notifyHeightChanged(false /* needsAnimation */); + notifyHeightChanged(true /* needsAnimation */); } } @@ -1398,7 +1396,7 @@ public class ExpandableNotificationRow extends ActivatableNotificationView { if (isChildInGroup()) { mGroupManager.setGroupExpanded(mStatusBarNotification, true); } - notifyHeightChanged(false); + notifyHeightChanged(false /* needsAnimation */); } public void setChildrenExpanded(boolean expanded, boolean animate) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java index f72e50beec10..3d25778211d7 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java @@ -216,7 +216,6 @@ public class NotificationStackScrollLayout extends ViewGroup private float mTopPaddingOverflow; private boolean mDontReportNextOverScroll; private boolean mDontClampNextScroll; - private boolean mRequestViewResizeAnimationOnLayout; private boolean mNeedViewResizeAnimation; private View mExpandedGroupView; private boolean mEverythingNeedsAnimation; @@ -515,10 +514,6 @@ public class NotificationStackScrollLayout extends ViewGroup setMaxLayoutHeight(getHeight()); updateContentHeight(); clampScrollPosition(); - if (mRequestViewResizeAnimationOnLayout) { - requestAnimationOnViewResize(null); - mRequestViewResizeAnimationOnLayout = false; - } requestChildrenUpdate(); updateFirstAndLastBackgroundViews(); } @@ -3100,9 +3095,6 @@ public class NotificationStackScrollLayout extends ViewGroup @Override public void onReset(ExpandableView view) { - if (mIsExpanded && mAnimationsEnabled) { - mRequestViewResizeAnimationOnLayout = true; - } updateAnimationState(view); updateChronometerForChild(view); } -- GitLab From 2763c2ba6c41c348920679dac20b7b4cce718408 Mon Sep 17 00:00:00 2001 From: Michael Wright Date: Thu, 11 Aug 2016 15:45:49 +0100 Subject: [PATCH 026/809] Disable battery saver when booting with sufficient battery Bug: 29994369 Change-Id: I01d437c884e62e73dba3c1881544cfc36f953137 --- .../java/com/android/server/power/PowerManagerService.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java index 2824e6e66ffa..6045c0c868bc 100644 --- a/services/core/java/com/android/server/power/PowerManagerService.java +++ b/services/core/java/com/android/server/power/PowerManagerService.java @@ -808,9 +808,10 @@ public final class PowerManagerService extends SystemService } private void updateLowPowerModeLocked() { - if (mIsPowered && mLowPowerModeSetting) { + if ((mIsPowered || !mBatteryLevelLow && !mBootCompleted) && mLowPowerModeSetting) { if (DEBUG_SPEW) { - Slog.d(TAG, "updateLowPowerModeLocked: powered, turning setting off"); + Slog.d(TAG, "updateLowPowerModeLocked: powered or booting with sufficient battery," + + " turning setting off"); } // Turn setting off if powered Settings.Global.putInt(mContext.getContentResolver(), -- GitLab From d42fe85bc93e4a27517555f27a8e7a591a135e19 Mon Sep 17 00:00:00 2001 From: Richard Uhler Date: Fri, 12 Aug 2016 13:51:51 -0700 Subject: [PATCH 027/809] Fix incorrect notification about running out of storage space. Previously, if there were problems generating the boot image, we would display a notification saying the device is out of storage space, regardless of whether the device was actually out of storage. This change makes it so we only display the notification if the device has less than 250MB when the boot image is missing. Test: Verify the following sequence does not display the notification: $ adb shell stop $ adb shell rm /data/dalvik-cache/arm/*.oat $ adb shell setprop dalvik.vm.extra-opts -Xnoimage-dex2oat $ adb shell start Test: Verify the following sequence does display the notification: $ adb shell stop $ adb shell rm /data/dalvik-cache/arm/*.oat $ adb shell setprop dalvik.vm.extra-opts -Xnoimage-dex2oat $ adb shell setprop debug.freemem 104857600 $ adb shell start Bug: 28931369 Change-Id: Ia2291bf674af063a55f339d2a0411e670ca16ba2 --- .../server/storage/DeviceStorageMonitorService.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/storage/DeviceStorageMonitorService.java b/services/core/java/com/android/server/storage/DeviceStorageMonitorService.java index 0ae171768199..90c711a47941 100644 --- a/services/core/java/com/android/server/storage/DeviceStorageMonitorService.java +++ b/services/core/java/com/android/server/storage/DeviceStorageMonitorService.java @@ -87,6 +87,11 @@ public class DeviceStorageMonitorService extends SystemService { private static final long DEFAULT_DISK_FREE_CHANGE_REPORTING_THRESHOLD = 2 * 1024 * 1024; // 2MB private static final long DEFAULT_CHECK_INTERVAL = MONITOR_INTERVAL*60*1000; + // com.android.internal.R.string.low_internal_storage_view_text_no_boot + // hard codes 250MB in the message as the storage space required for the + // boot image. + private static final long BOOT_IMAGE_STORAGE_REQUIREMENT = 250 * 1024 * 1024; + private long mFreeMem; // on /data private long mFreeMemAfterLastCacheClear; // on /data private long mLastReportedFreeMem; @@ -290,9 +295,10 @@ public class DeviceStorageMonitorService extends SystemService { mLowMemFlag = false; } } - if (!mLowMemFlag && !mIsBootImageOnDisk) { + if (!mLowMemFlag && !mIsBootImageOnDisk && mFreeMem < BOOT_IMAGE_STORAGE_REQUIREMENT) { Slog.i(TAG, "No boot image on disk due to lack of space. Sending notification"); sendNotification(); + mLowMemFlag = true; } if (mFreeMem < mMemFullThreshold) { if (!mMemFullFlag) { @@ -383,7 +389,7 @@ public class DeviceStorageMonitorService extends SystemService { @Override public boolean isMemoryLow() { - return mLowMemFlag || !mIsBootImageOnDisk; + return mLowMemFlag; } @Override -- GitLab From ae3fecc1a9cc6d476abfcc2346d5dfe431953bec Mon Sep 17 00:00:00 2001 From: Alan Viverette Date: Tue, 16 Aug 2016 14:06:00 -0400 Subject: [PATCH 028/809] Support library 24.2.0 API diff Bug: 30864209 Change-Id: If41403b704ee121731b8e0b7ba62fda31c52d071 --- .../sdk/support_api_diff/24.2.0/changes.html | 45 + .../changes/alldiffs_index_additions.html | 947 ++++++++ .../24.2.0/changes/alldiffs_index_all.html | 1327 ++++++++++++ .../changes/alldiffs_index_changes.html | 666 ++++++ .../changes/alldiffs_index_removals.html | 124 ++ ...t.customtabs.CustomTabsIntent.Builder.html | 122 ++ ...d.support.customtabs.CustomTabsIntent.html | 144 ++ ....support.customtabs.CustomTabsSession.html | 140 ++ ...et.AppBarLayout.ScrollingViewBehavior.html | 122 ++ ...ort.design.widget.BottomSheetBehavior.html | 122 ++ ...design.widget.CollapsingToolbarLayout.html | 129 ++ ...ign.widget.CoordinatorLayout.Behavior.html | 161 ++ ...widget.CoordinatorLayout.LayoutParams.html | 129 ++ ...pport.design.widget.CoordinatorLayout.html | 123 ++ ....widget.FloatingActionButton.Behavior.html | 158 ++ ...droid.support.design.widget.TabLayout.html | 122 ++ ...support.design.widget.TextInputLayout.html | 185 ++ ...ort.v14.preference.PreferenceFragment.html | 108 + ...AbstractMediaItemPresenter.ViewHolder.html | 150 ++ ...ack.widget.AbstractMediaItemPresenter.html | 165 ++ ...ort.v17.leanback.widget.ObjectAdapter.html | 122 ++ ...7.preference.LeanbackSettingsFragment.html | 108 + ...ervice.AccessibilityServiceInfoCompat.html | 140 ++ ...android.support.v4.app.ActivityCompat.html | 143 ++ ....support.v4.app.ActivityOptionsCompat.html | 179 ++ ...oid.support.v4.app.FragmentController.html | 122 ++ .../android.support.v4.app.ServiceCompat.html | 144 ++ ....support.v4.app.SharedElementCallback.html | 122 ++ ...roid.support.v4.content.ContextCompat.html | 125 ++ ...t.v4.graphics.drawable.DrawableCompat.html | 122 ++ ...v4.media.MediaBrowserCompat.MediaItem.html | 129 ++ ...MediaBrowserServiceCompat.BrowserRoot.html | 122 ++ ...pport.v4.media.MediaDescriptionCompat.html | 171 ++ ....support.v4.media.MediaMetadataCompat.html | 129 ++ ....v4.media.session.MediaButtonReceiver.html | 129 ++ ....session.MediaSessionCompat.QueueItem.html | 147 ++ ...t.v4.media.session.MediaSessionCompat.html | 140 ++ ....v4.media.session.PlaybackStateCompat.html | 122 ++ .../android.support.v4.os.BuildCompat.html | 122 ++ ...ndroid.support.v4.view.KeyEventCompat.html | 155 ++ ...oid.support.v4.view.MotionEventCompat.html | 175 ++ .../android.support.v4.view.ViewCompat.html | 195 ++ ...pport.v4.view.ViewConfigurationCompat.html | 125 ++ ...id.support.v4.view.WindowInsetsCompat.html | 122 ++ ...ccessibility.AccessibilityEventCompat.html | 172 ++ ...ccessibilityStateChangeListenerCompat.html | 124 ++ ...essibility.AccessibilityManagerCompat.html | 157 ++ ...eInfoCompat.AccessibilityActionCompat.html | 171 ++ ...tyNodeInfoCompat.CollectionInfoCompat.html | 129 ++ ...deInfoCompat.CollectionItemInfoCompat.html | 122 ++ ...ibilityNodeInfoCompat.RangeInfoCompat.html | 122 ++ ...ssibility.AccessibilityNodeInfoCompat.html | 158 ++ ...ility.AccessibilityNodeProviderCompat.html | 122 ++ ...ibility.AccessibilityWindowInfoCompat.html | 122 ++ ...earchViewCompat.OnCloseListenerCompat.html | 109 + ...hViewCompat.OnQueryTextListenerCompat.html | 109 + ...id.support.v4.widget.SearchViewCompat.html | 135 ++ ....support.v4.widget.SwipeRefreshLayout.html | 122 ++ ...roid.support.v4.widget.TextViewCompat.html | 122 ++ ....support.v7.app.ActionBarDrawerToggle.html | 129 ++ ...roid.support.v7.app.AppCompatDelegate.html | 122 ++ ...ort.v7.content.res.AppCompatResources.html | 122 ++ .../android.support.v7.graphics.Palette.html | 129 ++ ...d.support.v7.util.SortedList.Callback.html | 152 ++ ...support.v7.widget.LinearLayoutManager.html | 123 ++ ...upport.v7.widget.LinearSmoothScroller.html | 126 ++ ...ndroid.support.v7.widget.RecyclerView.html | 130 ++ ....v7.widget.StaggeredGridLayoutManager.html | 138 ++ .../24.2.0/changes/changes-summary.html | 329 +++ .../changes/classes_index_additions.html | 305 +++ .../24.2.0/changes/classes_index_all.html | 528 +++++ .../24.2.0/changes/classes_index_changes.html | 394 ++++ .../changes/classes_index_removals.html | 61 + .../changes/constructors_index_additions.html | 67 + .../changes/constructors_index_all.html | 85 + .../changes/constructors_index_changes.html | 75 + .../changes/constructors_index_removals.html | 61 + .../changes/fields_index_additions.html | 267 +++ .../24.2.0/changes/fields_index_all.html | 299 +++ .../24.2.0/changes/fields_index_changes.html | 71 + .../24.2.0/changes/fields_index_removals.html | 67 + .../24.2.0/changes/jdiff_help.html | 134 ++ .../24.2.0/changes/jdiff_statistics.html | 596 ++++++ .../24.2.0/changes/jdiff_topleftframe.html | 63 + .../changes/methods_index_additions.html | 448 ++++ .../24.2.0/changes/methods_index_all.html | 579 +++++ .../24.2.0/changes/methods_index_changes.html | 222 ++ .../changes/methods_index_removals.html | 93 + .../changes/packages_index_additions.html | 66 + .../24.2.0/changes/packages_index_all.html | 91 + .../changes/packages_index_changes.html | 86 + .../changes/packages_index_removals.html | 67 + .../pkg_android.support.customtabs.html | 133 ++ .../pkg_android.support.design.widget.html | 175 ++ .../pkg_android.support.v14.preference.html | 119 ++ ...g_android.support.v17.leanback.widget.html | 133 ++ .../pkg_android.support.v17.preference.html | 119 ++ ...droid.support.v4.accessibilityservice.html | 119 ++ .../changes/pkg_android.support.v4.app.html | 162 ++ .../pkg_android.support.v4.content.html | 119 ++ ..._android.support.v4.graphics.drawable.html | 119 ++ .../changes/pkg_android.support.v4.media.html | 140 ++ .../pkg_android.support.v4.media.session.html | 140 ++ .../changes/pkg_android.support.v4.os.html | 119 ++ .../changes/pkg_android.support.v4.util.html | 119 ++ ...android.support.v4.view.accessibility.html | 204 ++ .../changes/pkg_android.support.v4.view.html | 147 ++ .../pkg_android.support.v4.widget.html | 176 ++ .../changes/pkg_android.support.v7.app.html | 176 ++ .../pkg_android.support.v7.content.res.html | 119 ++ .../pkg_android.support.v7.graphics.html | 119 ++ .../pkg_android.support.v7.preference.html | 119 ++ .../changes/pkg_android.support.v7.util.html | 162 ++ .../pkg_android.support.v7.widget.html | 463 ++++ .../support_api_diff/24.2.0/missingSinces.txt | 183 ++ .../24.2.0/stylesheet-jdiff.css | 44 + .../user_comments_for_24.1.0_to_24.2.0.xml | 1897 +++++++++++++++++ 117 files changed, 22245 insertions(+) create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/alldiffs_index_additions.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/alldiffs_index_all.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/alldiffs_index_changes.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/alldiffs_index_removals.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.customtabs.CustomTabsIntent.Builder.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.customtabs.CustomTabsIntent.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.customtabs.CustomTabsSession.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.AppBarLayout.ScrollingViewBehavior.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.BottomSheetBehavior.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.CollapsingToolbarLayout.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.CoordinatorLayout.Behavior.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.CoordinatorLayout.LayoutParams.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.CoordinatorLayout.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.FloatingActionButton.Behavior.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.TabLayout.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.TextInputLayout.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v14.preference.PreferenceFragment.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v17.leanback.widget.AbstractMediaItemPresenter.ViewHolder.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v17.leanback.widget.AbstractMediaItemPresenter.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v17.leanback.widget.ObjectAdapter.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v17.preference.LeanbackSettingsFragment.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.app.ActivityCompat.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.app.ActivityOptionsCompat.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.app.FragmentController.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.app.ServiceCompat.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.app.SharedElementCallback.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.content.ContextCompat.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.graphics.drawable.DrawableCompat.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.media.MediaBrowserCompat.MediaItem.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.media.MediaBrowserServiceCompat.BrowserRoot.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.media.MediaDescriptionCompat.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.media.MediaMetadataCompat.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.media.session.MediaButtonReceiver.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.media.session.MediaSessionCompat.QueueItem.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.media.session.MediaSessionCompat.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.media.session.PlaybackStateCompat.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.os.BuildCompat.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.KeyEventCompat.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.MotionEventCompat.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.ViewCompat.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.ViewConfigurationCompat.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.WindowInsetsCompat.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityEventCompat.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityManagerCompat.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.CollectionItemInfoCompat.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityNodeProviderCompat.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityWindowInfoCompat.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.widget.SearchViewCompat.OnCloseListenerCompat.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.widget.SearchViewCompat.OnQueryTextListenerCompat.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.widget.SearchViewCompat.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.widget.SwipeRefreshLayout.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.widget.TextViewCompat.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.app.ActionBarDrawerToggle.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.app.AppCompatDelegate.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.content.res.AppCompatResources.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.graphics.Palette.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.util.SortedList.Callback.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.widget.LinearLayoutManager.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.widget.LinearSmoothScroller.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.widget.RecyclerView.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.widget.StaggeredGridLayoutManager.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/changes-summary.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/classes_index_additions.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/classes_index_all.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/classes_index_changes.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/classes_index_removals.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/constructors_index_additions.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/constructors_index_all.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/constructors_index_changes.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/constructors_index_removals.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/fields_index_additions.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/fields_index_all.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/fields_index_changes.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/fields_index_removals.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/jdiff_help.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/jdiff_statistics.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/jdiff_topleftframe.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/methods_index_additions.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/methods_index_all.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/methods_index_changes.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/methods_index_removals.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/packages_index_additions.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/packages_index_all.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/packages_index_changes.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/packages_index_removals.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.customtabs.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.design.widget.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v14.preference.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v17.leanback.widget.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v17.preference.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.accessibilityservice.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.app.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.content.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.graphics.drawable.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.media.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.media.session.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.os.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.util.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.view.accessibility.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.view.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.widget.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v7.app.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v7.content.res.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v7.graphics.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v7.preference.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v7.util.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v7.widget.html create mode 100644 docs/html/sdk/support_api_diff/24.2.0/missingSinces.txt create mode 100644 docs/html/sdk/support_api_diff/24.2.0/stylesheet-jdiff.css create mode 100644 docs/html/sdk/support_api_diff/24.2.0/user_comments_for_24.1.0_to_24.2.0.xml diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes.html b/docs/html/sdk/support_api_diff/24.2.0/changes.html new file mode 100644 index 000000000000..cdf8f361c122 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes.html @@ -0,0 +1,45 @@ + + + + + + + + + + +Support Library API Differences Report + + + + + + + + + + + + + + +<h2> +Frame Alert +</h2> + +<p> +This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. +<br> +Link to <a href="changes/changes-summary.html" target="_top">Non-frame version.</A> + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/alldiffs_index_additions.html b/docs/html/sdk/support_api_diff/24.2.0/changes/alldiffs_index_additions.html new file mode 100644 index 000000000000..cb62aa8af30b --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/alldiffs_index_additions.html @@ -0,0 +1,947 @@ + + + + + + + + + +All Additions Index + + + + + + + + + + + + + + + +
      + Filter the Index: +
      +All Differences +
      +Removals +
      +Additions +
      +Changes +
      +

      +Listed as: Added, Removed, Changed +
      + + +
      A  +B +C +D +E +F +G +H +I +L +M +N +O +P +R +S +T +W + TOP +

      +AccessibilityManagerCompat.AccessibilityStateChangeListener
      + +AccessibilityManagerCompat.TouchExplorationStateChangeListener
      + +ACTION_ARGUMENT_COLUMN_INT +
      + +ACTION_ARGUMENT_PROGRESS_VALUE +
      + +ACTION_ARGUMENT_ROW_INT +
      + +ACTION_CONTEXT_CLICK +
      + +ACTION_SCROLL_DOWN +
      + +ACTION_SCROLL_LEFT +
      + +ACTION_SCROLL_RIGHT +
      + +ACTION_SCROLL_TO_POSITION +
      + +ACTION_SCROLL_UP +
      + +ACTION_SET_PROGRESS +
      + +ACTION_SHOW_ON_SCREEN +
      + +ActionBarActivity
      + +ActionMenuView
      + +ActionMenuView.LayoutParams
      + +ActionMenuView.OnMenuItemClickListener
      + +addTouchExplorationStateChangeListener +(AccessibilityManager, TouchExplorationStateChangeListener)
      + +android.support.transition
      + +android.support.v4.text.util
      + +AppCompatActivity
      + +AppCompatAutoCompleteTextView
      + +AppCompatButton
      + +AppCompatCheckBox
      + +AppCompatCheckedTextView
      + +AppCompatDialogFragment
      + +AppCompatEditText
      + +AppCompatImageButton
      + +AppCompatImageView
      + +AppCompatMultiAutoCompleteTextView
      + +AppCompatRadioButton
      + +AppCompatRatingBar
      + +AppCompatSeekBar
      + +AppCompatSpinner
      + +AppCompatTextView
      + + +
      B  +A +C +D +E +F +G +H +I +L +M +N +O +P +R +S +T +W + TOP +

      +BatchingListUpdateCallback
      + +BT_FOLDER_TYPE_ALBUMS +
      + +BT_FOLDER_TYPE_ARTISTS +
      + +BT_FOLDER_TYPE_GENRES +
      + +BT_FOLDER_TYPE_MIXED +
      + +BT_FOLDER_TYPE_PLAYLISTS +
      + +BT_FOLDER_TYPE_TITLES +
      + +BT_FOLDER_TYPE_YEARS +
      + +buildMediaButtonPendingIntent
      +  type  +(Context, ComponentName, long) in android.support.v4.media.session.MediaButtonReceiver +
      + +  type  +(Context, long) in android.support.v4.media.session.MediaButtonReceiver +
      + + +
      C  +A +B +D +E +F +G +H +I +L +M +N +O +P +R +S +T +W + TOP +

      +CardView
      + +clearColorFilter +(Drawable)
      + +clearOnTabSelectedListeners +()
      + +computeScrollVectorForPosition +(int)
      + + +
      D  +A +B +C +E +F +G +H +I +L +M +N +O +P +R +S +T +W + TOP +

      +DiffUtil
      + +DiffUtil.Callback
      + +DiffUtil.DiffResult
      + +dodgeInsetEdges +
      + + +
      E  +A +B +C +D +F +G +H +I +L +M +N +O +P +R +S +T +W + TOP +

      +EXTRA_BT_FOLDER_TYPE +
      + +EXTRA_ENABLE_INSTANT_APPS +
      + +EXTRA_SUGGESTION_KEYWORDS +
      + +EXTRA_USAGE_TIME_REPORT +
      + +EXTRA_USAGE_TIME_REPORT_PACKAGES +
      + + +
      F  +A +B +C +D +E +G +H +I +L +M +N +O +P +R +S +T +W + TOP +

      +findFragmentByWho +(String)
      + +fromMediaItem +(Object)
      + +fromMediaItemList +(List<?>)
      + +fromMediaSession +(Context, Object)
      + +fromQueueItem +(Object)
      + +fromQueueItemList +(List<?>)
      + + +
      G  +A +B +C +D +E +F +H +I +L +M +N +O +P +R +S +T +W + TOP +

      +getAction +(AccessibilityEvent)
      + +getCompoundDrawablesRelative +(TextView)
      + +getDependents +(View)
      + +getDominantColor +(int)
      + +getDominantSwatch +()
      + +getDrawable +(Context, int)
      + +getDrawerArrowDrawable +()
      + +getInsetDodgeRect
      +  type  +(CoordinatorLayout, V, Rect) in android.support.design.widget.CoordinatorLayout.Behavior +
      + +  type  +(CoordinatorLayout, FloatingActionButton, Rect) in android.support.design.widget.FloatingActionButton.Behavior +
      + +getLaunchBounds +()
      + +getMediaItemNumberViewFlipper +()
      + +getMediaItemPausedView +()
      + +getMediaItemPlayingView +()
      + +getMediaPlayState +(Object)
      + +getMovementGranularity +(AccessibilityEvent)
      + +getOnFlingListener +()
      + +getPasswordVisibilityToggleContentDescription +()
      + +getPasswordVisibilityToggleDrawable +()
      + +getSelectionMode +()
      + +GridLayout
      + +GridLayout.Alignment
      + +GridLayout.LayoutParams
      + +GridLayout.Spec
      + + +
      H  +A +B +C +D +E +F +G +I +L +M +N +O +P +R +S +T +W + TOP +

      +HOST_VIEW_ID +
      + + +
      I  +A +B +C +D +E +F +G +H +L +M +N +O +P +R +S +T +W + TOP +

      +insetEdge +
      + +isAtLeastNMR1 +()
      + +isAutoHideEnabled +()
      + +isContextClickable +()
      + +isImmediateNotifySupported +()
      + +isImportantForAccessibility +(View)
      + +isPasswordVisibilityToggleEnabled +()
      + + +
      L  +A +B +C +D +E +F +G +H +I +M +N +O +P +R +S +T +W + TOP +

      +LinearLayoutCompat
      + +LinearLayoutCompat.LayoutParams
      + +LinearSnapHelper
      + +ListPopupWindow
      + +ListUpdateCallback
      + +loadDescription +(AccessibilityServiceInfo, PackageManager)
      + + +
      M  +A +B +C +D +E +F +G +H +I +L +N +O +P +R +S +T +W + TOP +

      +makeBasic +()
      + +makeClipRevealAnimation +(View, int, int, int, int)
      + +makeTaskLaunchBehind +()
      + +METADATA_KEY_BT_FOLDER_TYPE +
      + +METADATA_KEY_MEDIA_URI +
      + +MultiSelectListPreferenceDialogFragmentCompat
      + + +
      N  +A +B +C +D +E +F +G +H +I +L +M +O +P +R +S +T +W + TOP +

      +NotificationCompat
      + +NotificationCompat.Builder
      + +NotificationCompat.MediaStyle
      + +notifyPlayStateChanged +()
      + + +
      O  +A +B +C +D +E +F +G +H +I +L +M +N +P +R +S +T +W + TOP +

      +obtain
      +  type  +(int, int, boolean) in android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat +
      + +  type  +(int, int, int, int, boolean) in android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.CollectionItemInfoCompat +
      + +  type  +(int, float, float, float) in android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat +
      + +onAttachedToLayoutParams +(LayoutParams)
      + +onBindMediaPlayState +(ViewHolder)
      + +onChanged +(int, int, Object)
      + +onDetachedFromLayoutParams +()
      + +onRequestChildRectangleOnScreen
      +  type  +(CoordinatorLayout, View, Rect, boolean) in android.support.design.widget.AppBarLayout.ScrollingViewBehavior +
      + +  type  +(CoordinatorLayout, V, Rect, boolean) in android.support.design.widget.CoordinatorLayout.Behavior +
      + +onSharedElementsArrived +(List<String>, List<View>, OnSharedElementsReadyListener)
      + +onStart +()
      + +onUnbindMediaPlayState +(ViewHolder)
      + + +
      P  +A +B +C +D +E +F +G +H +I +L +M +N +O +R +S +T +W + TOP +

      +PatternsCompat
      + +PEEK_HEIGHT_AUTO +
      + +PLAY_STATE_INITIAL +
      + +PLAY_STATE_PAUSED +
      + +PLAY_STATE_PLAYING +
      + +PopupMenu
      + +PopupMenu.OnDismissListener
      + +PopupMenu.OnMenuItemClickListener
      + + +
      R  +A +B +C +D +E +F +G +H +I +L +M +N +O +P +S +T +W + TOP +

      +RecyclerView.OnFlingListener
      + +RecyclerView.SmoothScroller.ScrollVectorProvider
      + +removeTouchExplorationStateChangeListener +(AccessibilityManager, TouchExplorationStateChangeListener)
      + +requestUsageTimeReport +(PendingIntent)
      + + +
      S  +A +B +C +D +E +F +G +H +I +L +M +N +O +P +R +T +W + TOP +

      +SearchView
      + +SearchView.OnCloseListener
      + +SearchView.OnQueryTextListener
      + +SearchView.OnSuggestionListener
      + +SearchViewCompat.OnCloseListener
      + +SearchViewCompat.OnQueryTextListener
      + +setAction +(AccessibilityEvent, int)
      + +setAlwaysUseBrowserUI +(Intent)
      + +setAutoHideEnabled +(boolean)
      + +setCollapsedTitleTextColor +(ColorStateList)
      + +setContextClickable +(boolean)
      + +setDrawerArrowDrawable +(DrawerArrowDrawable)
      + +setExpandedTitleTextColor +(ColorStateList)
      + +setInstantAppsEnabled +(boolean)
      + +setLaunchBounds +(Rect)
      + +setMovementGranularity +(AccessibilityEvent, int)
      + +setOnChildScrollUpCallback +(OnChildScrollUpCallback)
      + +setOnFlingListener +(OnFlingListener)
      + +setPasswordVisibilityToggleContentDescription
      +  type  +(int) in android.support.design.widget.TextInputLayout +
      + +  type  +(CharSequence) in android.support.design.widget.TextInputLayout +
      + +setPasswordVisibilityToggleDrawable
      +  type  +(Drawable) in android.support.design.widget.TextInputLayout +
      + +  type  +(int) in android.support.design.widget.TextInputLayout +
      + +setPasswordVisibilityToggleEnabled +(boolean)
      + +setPasswordVisibilityToggleTintList +(ColorStateList)
      + +setPasswordVisibilityToggleTintMode +(Mode)
      + +setSecondaryToolbarViews +(RemoteViews, int[], PendingIntent)
      + +setSelectedMediaItemNumberView +(int)
      + +ShareActionProvider
      + +ShareActionProvider.OnShareTargetSelectedListener
      + +SharedElementCallback.OnSharedElementsReadyListener
      + +shouldAlwaysUseBrowserUI +(Intent)
      + +SnapHelper
      + +Space
      + +STOP_FOREGROUND_DETACH +
      + +STOP_FOREGROUND_REMOVE +
      + +stopForeground +(Service, int)
      + +SwipeRefreshLayout.OnChildScrollUpCallback
      + +SwitchCompat
      + + +
      T  +A +B +C +D +E +F +G +H +I +L +M +N +O +P +R +S +W + TOP +

      +ThemedSpinnerAdapter
      + +ThemedSpinnerAdapter.Helper
      + +toKeyCode +(long)
      + +Toolbar
      + +Toolbar.LayoutParams
      + +Toolbar.OnMenuItemClickListener
      + +Toolbar.SavedState
      + +TYPE_ASSIST_READING_CONTEXT +
      + +TYPE_SPLIT_SCREEN_DIVIDER +
      + +TYPE_VIEW_CONTEXT_CLICKED +
      + +TYPE_WINDOWS_CHANGED +
      + + +
      W  +A +B +C +D +E +F +G +H +I +L +M +N +O +P +R +S +T + TOP +

      +WindowInsetsCompat +(WindowInsetsCompat) constructor
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/alldiffs_index_all.html b/docs/html/sdk/support_api_diff/24.2.0/changes/alldiffs_index_all.html new file mode 100644 index 000000000000..719f9af4a8d8 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/alldiffs_index_all.html @@ -0,0 +1,1327 @@ + + + + + + + + + +All Differences Index + + + + + + + + + + + + + + + +
      + Filter the Index: +
      +All Differences +
      +Removals +
      +Additions +
      +Changes +
      +
      +Listed as: Added, Removed, Changed +
      + + +
      A  +B +C +D +E +F +G +H +I +K +L +M +N +O +P +R +S +T +V +W + TOP +

      +AbstractMediaItemPresenter
      + +AbstractMediaItemPresenter.ViewHolder
      + +AccessibilityEventCompat
      + +AccessibilityManagerCompat
      + +AccessibilityManagerCompat.AccessibilityStateChangeListener
      + +AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat
      + +AccessibilityManagerCompat.TouchExplorationStateChangeListener
      + +AccessibilityNodeInfoCompat
      + +AccessibilityNodeInfoCompat.AccessibilityActionCompat
      + +AccessibilityNodeInfoCompat.CollectionInfoCompat
      + +AccessibilityNodeInfoCompat.CollectionItemInfoCompat
      + +AccessibilityNodeInfoCompat.RangeInfoCompat
      + +AccessibilityNodeProviderCompat
      + +AccessibilityServiceInfoCompat
      + +AccessibilityWindowInfoCompat
      + +ACTION_ARGUMENT_COLUMN_INT +
      + +ACTION_ARGUMENT_PROGRESS_VALUE +
      + +ACTION_ARGUMENT_ROW_INT +
      + +ACTION_CONTEXT_CLICK +
      + +ACTION_SCROLL_DOWN +
      + +ACTION_SCROLL_LEFT +
      + +ACTION_SCROLL_RIGHT +
      + +ACTION_SCROLL_TO_POSITION +
      + +ACTION_SCROLL_UP +
      + +ACTION_SET_PROGRESS +
      + +ACTION_SHOW_ON_SCREEN +
      + +ActionBarActivity
      + +ActionBarDrawerToggle
      + +ActionMenuView
      + +ActionMenuView.LayoutParams
      + +ActionMenuView.OnMenuItemClickListener
      + +ActivityCompat
      +  android.support.v4.app
      + +  ActivityCompat +() constructor
      + +ActivityOptionsCompat
      + +addAccessibilityStateChangeListener +(AccessibilityManager, AccessibilityStateChangeListener)
      + +addTouchExplorationStateChangeListener +(AccessibilityManager, TouchExplorationStateChangeListener)
      + +android.support.customtabs
      + +android.support.design.widget
      + +android.support.transition
      + +android.support.v14.preference
      + +android.support.v17.leanback.widget
      + +android.support.v17.preference
      + +android.support.v4.accessibilityservice
      + +android.support.v4.app
      + +android.support.v4.content
      + +android.support.v4.graphics.drawable
      + +android.support.v4.media
      + +android.support.v4.media.session
      + +android.support.v4.os
      + +android.support.v4.text.util
      + +android.support.v4.util
      + +android.support.v4.view
      + +android.support.v4.view.accessibility
      + +android.support.v4.widget
      + +android.support.v7.app
      + +android.support.v7.appcompat
      + +android.support.v7.content.res
      + +android.support.v7.graphics
      + +android.support.v7.preference
      + +android.support.v7.recyclerview
      + +android.support.v7.util
      + +android.support.v7.widget
      + +android.support.v8.renderscript
      + +AppBarLayout.ScrollingViewBehavior
      + +AppCompatActivity
      + +AppCompatAutoCompleteTextView
      + +AppCompatButton
      + +AppCompatCheckBox
      + +AppCompatCheckedTextView
      + +AppCompatDelegate
      + +AppCompatDialogFragment
      + +AppCompatEditText
      + +AppCompatImageButton
      + +AppCompatImageView
      + +AppCompatMultiAutoCompleteTextView
      + +AppCompatRadioButton
      + +AppCompatRatingBar
      + +AppCompatResources
      + +AppCompatSeekBar
      + +AppCompatSpinner
      + +AppCompatTextView
      + + +
      B  +A +C +D +E +F +G +H +I +K +L +M +N +O +P +R +S +T +V +W + TOP +

      +BatchingListUpdateCallback
      + +BottomSheetBehavior
      + +BT_FOLDER_TYPE_ALBUMS +
      + +BT_FOLDER_TYPE_ARTISTS +
      + +BT_FOLDER_TYPE_GENRES +
      + +BT_FOLDER_TYPE_MIXED +
      + +BT_FOLDER_TYPE_PLAYLISTS +
      + +BT_FOLDER_TYPE_TITLES +
      + +BT_FOLDER_TYPE_YEARS +
      + +BuildCompat
      + +buildMediaButtonPendingIntent
      +  type  +(Context, ComponentName, long) in android.support.v4.media.session.MediaButtonReceiver +
      + +  type  +(Context, long) in android.support.v4.media.session.MediaButtonReceiver +
      + + +
      C  +A +B +D +E +F +G +H +I +K +L +M +N +O +P +R +S +T +V +W + TOP +

      +CardView
      + +clearColorFilter +(Drawable)
      + +clearOnTabSelectedListeners +()
      + +CollapsingToolbarLayout
      + +computeScrollVectorForPosition
      +  type  +(int) in android.support.v7.widget.LinearSmoothScroller +
      + +  type  +(int) in android.support.v7.widget.StaggeredGridLayoutManager +
      + +ContextCompat
      +  android.support.v4.content
      + +  ContextCompat +() constructor
      + +CoordinatorLayout
      + +CoordinatorLayout.Behavior
      + +CoordinatorLayout.LayoutParams
      + +CustomTabsIntent
      + +CustomTabsIntent.Builder
      + +CustomTabsSession
      + + +
      D  +A +B +C +E +F +G +H +I +K +L +M +N +O +P +R +S +T +V +W + TOP +

      +DiffUtil
      + +DiffUtil.Callback
      + +DiffUtil.DiffResult
      + +dispatch +(KeyEvent, Callback, Object, Object)
      + +dodgeInsetEdges +
      + +DrawableCompat
      + + +
      E  +A +B +C +D +F +G +H +I +K +L +M +N +O +P +R +S +T +V +W + TOP +

      +EXTRA_BT_FOLDER_TYPE +
      + +EXTRA_ENABLE_INSTANT_APPS +
      + +EXTRA_SUGGESTION_KEYWORDS +
      + +EXTRA_USAGE_TIME_REPORT +
      + +EXTRA_USAGE_TIME_REPORT_PACKAGES +
      + + +
      F  +A +B +C +D +E +G +H +I +K +L +M +N +O +P +R +S +T +V +W + TOP +

      +findFragmentByWho +(String)
      + +findPointerIndex +(MotionEvent, int)
      + +FloatingActionButton.Behavior
      + +FragmentController
      + +fromMediaItem +(Object)
      + +fromMediaItemList +(List<?>)
      + +fromMediaSession +(Context, Object)
      + +fromQueueItem +(Object)
      + +fromQueueItemList +(List<?>)
      + + +
      G  +A +B +C +D +E +F +H +I +K +L +M +N +O +P +R +S +T +V +W + TOP +

      +getAction +(AccessibilityEvent)
      + +getCompoundDrawablesRelative +(TextView)
      + +getDependents +(View)
      + +getDescription +(AccessibilityServiceInfo)
      + +getDominantColor +(int)
      + +getDominantSwatch +()
      + +getDrawable +(Context, int)
      + +getDrawerArrowDrawable +()
      + +getInsetDodgeRect
      +  type  +(CoordinatorLayout, V, Rect) in android.support.design.widget.CoordinatorLayout.Behavior +
      + +  type  +(CoordinatorLayout, FloatingActionButton, Rect) in android.support.design.widget.FloatingActionButton.Behavior +
      + +getKeyDispatcherState +(View)
      + +getLaunchBounds +()
      + +getMediaItemNumberViewFlipper +()
      + +getMediaItemPausedView +()
      + +getMediaItemPlayingView +()
      + +getMediaPlayState +(Object)
      + +getMovementGranularity +(AccessibilityEvent)
      + +getOnFlingListener +()
      + +getOverScrollMode +(View)
      + +getPasswordVisibilityToggleContentDescription +()
      + +getPasswordVisibilityToggleDrawable +()
      + +getPointerCount +(MotionEvent)
      + +getPointerId +(MotionEvent, int)
      + +getReferrer +(Activity)
      + +getScaledPagingTouchSlop +(ViewConfiguration)
      + +getSelectionMode +()
      + +getSource +(MotionEvent)
      + +getX +(MotionEvent, int)
      + +getY +(MotionEvent, int)
      + +GridLayout
      + +GridLayout.Alignment
      + +GridLayout.LayoutParams
      + +GridLayout.Spec
      + + +
      H  +A +B +C +D +E +F +G +I +K +L +M +N +O +P +R +S +T +V +W + TOP +

      +HOST_VIEW_ID +
      + + +
      I  +A +B +C +D +E +F +G +H +K +L +M +N +O +P +R +S +T +V +W + TOP +

      +insetEdge +
      + +isAtLeastNMR1 +()
      + +isAutoHideEnabled +()
      + +isContextClickable +()
      + +isDirty +(CoordinatorLayout, V)
      + +isImmediateNotifySupported +()
      + +isImportantForAccessibility +(View)
      + +isOpaque +(View)
      + +isPasswordVisibilityToggleEnabled +()
      + +isTracking +(KeyEvent)
      + + +
      K  +A +B +C +D +E +F +G +H +I +L +M +N +O +P +R +S +T +V +W + TOP +

      +KeyEventCompat
      + + +
      L  +A +B +C +D +E +F +G +H +I +K +M +N +O +P +R +S +T +V +W + TOP +

      +layoutDependsOn +(CoordinatorLayout, FloatingActionButton, View)
      + +LeanbackSettingsFragment
      + +LinearLayoutCompat
      + +LinearLayoutCompat.LayoutParams
      + +LinearLayoutManager
      + +LinearSmoothScroller
      + +LinearSnapHelper
      + +ListPopupWindow
      + +ListUpdateCallback
      + +loadDescription +(AccessibilityServiceInfo, PackageManager)
      + + +
      M  +A +B +C +D +E +F +G +H +I +K +L +N +O +P +R +S +T +V +W + TOP +

      +makeBasic +()
      + +makeClipRevealAnimation +(View, int, int, int, int)
      + +makeTaskLaunchBehind +()
      + +MediaBrowserCompat.MediaItem
      + +MediaBrowserServiceCompat.BrowserRoot
      + +MediaButtonReceiver
      + +MediaDescriptionCompat
      + +MediaMetadataCompat
      + +MediaSessionCompat
      + +MediaSessionCompat.QueueItem
      + +METADATA_KEY_BT_FOLDER_TYPE +
      + +METADATA_KEY_MEDIA_URI +
      + +MotionEventCompat
      + +MultiSelectListPreferenceDialogFragmentCompat
      + + +
      N  +A +B +C +D +E +F +G +H +I +K +L +M +O +P +R +S +T +V +W + TOP +

      +NotificationCompat
      + +NotificationCompat.Builder
      + +NotificationCompat.MediaStyle
      + +notifyPlayStateChanged +()
      + + +
      O  +A +B +C +D +E +F +G +H +I +K +L +M +N +P +R +S +T +V +W + TOP +

      +ObjectAdapter
      + +obtain
      +  type  +(Context, Object) in android.support.v4.media.session.MediaSessionCompat +
      + +  type  +(Object) in android.support.v4.media.session.MediaSessionCompat.QueueItem +
      + +  type  +(int, int, boolean) in android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat +
      + +  type  +(int, int, int, int, boolean) in android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.CollectionItemInfoCompat +
      + +  type  +(int, float, float, float) in android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat +
      + +onAccessibilityStateChanged +(boolean)
      + +onAttachedToLayoutParams +(LayoutParams)
      + +onBindMediaPlayState +(ViewHolder)
      + +onChanged +(int, int, Object)
      + +onDependentViewRemoved +(CoordinatorLayout, FloatingActionButton, View)
      + +onDetachedFromLayoutParams +()
      + +onInserted +(int, int)
      + +onMoved +(int, int)
      + +onRemoved +(int, int)
      + +onRequestChildRectangleOnScreen
      +  type  +(CoordinatorLayout, View, Rect, boolean) in android.support.design.widget.AppBarLayout.ScrollingViewBehavior +
      + +  type  +(CoordinatorLayout, V, Rect, boolean) in android.support.design.widget.CoordinatorLayout.Behavior +
      + +onSharedElementsArrived +(List<String>, List<View>, OnSharedElementsReadyListener)
      + +onStart +()
      + +onUnbindMediaPlayState +(ViewHolder)
      + +OVER_SCROLL_ALWAYS +
      + +OVER_SCROLL_IF_CONTENT_SCROLLS +
      + +OVER_SCROLL_NEVER +
      + + +
      P  +A +B +C +D +E +F +G +H +I +K +L +M +N +O +R +S +T +V +W + TOP +

      +Palette
      + +PatternsCompat
      + +PEEK_HEIGHT_AUTO +
      + +PLAY_STATE_INITIAL +
      + +PLAY_STATE_PAUSED +
      + +PLAY_STATE_PLAYING +
      + +PlaybackStateCompat
      + +PopupMenu
      + +PopupMenu.OnDismissListener
      + +PopupMenu.OnMenuItemClickListener
      + +PreferenceFragment
      + +prepareForDrop +(View, View, int, int)
      + + +
      R  +A +B +C +D +E +F +G +H +I +K +L +M +N +O +P +S +T +V +W + TOP +

      +RecyclerView
      + +RecyclerView.OnFlingListener
      + +RecyclerView.SmoothScroller.ScrollVectorProvider
      + +removeAccessibilityStateChangeListener +(AccessibilityManager, AccessibilityStateChangeListener)
      + +removeTouchExplorationStateChangeListener +(AccessibilityManager, TouchExplorationStateChangeListener)
      + +requestUsageTimeReport +(PendingIntent)
      + + +
      S  +A +B +C +D +E +F +G +H +I +K +L +M +N +O +P +R +T +V +W + TOP +

      +SearchView
      + +SearchView.OnCloseListener
      + +SearchView.OnQueryTextListener
      + +SearchView.OnSuggestionListener
      + +SearchViewCompat
      + +SearchViewCompat.OnCloseListener
      + +SearchViewCompat.OnCloseListenerCompat
      + +SearchViewCompat.OnQueryTextListener
      + +SearchViewCompat.OnQueryTextListenerCompat
      + +ServiceCompat
      + +setAction +(AccessibilityEvent, int)
      + +setAlwaysUseBrowserUI +(Intent)
      + +setAutoHideEnabled +(boolean)
      + +setCollapsedTitleTextColor +(ColorStateList)
      + +setContextClickable +(boolean)
      + +setDrawerArrowDrawable +(DrawerArrowDrawable)
      + +setExpandedTitleTextColor +(ColorStateList)
      + +setInstantAppsEnabled +(boolean)
      + +setLaunchBounds +(Rect)
      + +setMovementGranularity +(AccessibilityEvent, int)
      + +setOnChildScrollUpCallback +(OnChildScrollUpCallback)
      + +setOnCloseListener +(View, OnCloseListener)
      + +setOnFlingListener +(OnFlingListener)
      + +setOnQueryTextListener +(View, OnQueryTextListener)
      + +setOverScrollMode +(View, int)
      + +setPasswordVisibilityToggleContentDescription
      +  type  +(int) in android.support.design.widget.TextInputLayout +
      + +  type  +(CharSequence) in android.support.design.widget.TextInputLayout +
      + +setPasswordVisibilityToggleDrawable
      +  type  +(Drawable) in android.support.design.widget.TextInputLayout +
      + +  type  +(int) in android.support.design.widget.TextInputLayout +
      + +setPasswordVisibilityToggleEnabled +(boolean)
      + +setPasswordVisibilityToggleTintList +(ColorStateList)
      + +setPasswordVisibilityToggleTintMode +(Mode)
      + +setSecondaryToolbarViews +(RemoteViews, int[], PendingIntent)
      + +setSelectedMediaItemNumberView +(int)
      + +setToolbarItem +(int, Bitmap, String)
      + +ShareActionProvider
      + +ShareActionProvider.OnShareTargetSelectedListener
      + +SharedElementCallback
      + +SharedElementCallback.OnSharedElementsReadyListener
      + +shouldAlwaysUseBrowserUI +(Intent)
      + +SnapHelper
      + +SortedList.Callback
      + +Space
      + +StaggeredGridLayoutManager
      + +startTracking +(KeyEvent)
      + +STOP_FOREGROUND_DETACH +
      + +STOP_FOREGROUND_REMOVE +
      + +stopForeground +(Service, int)
      + +SwipeRefreshLayout
      + +SwipeRefreshLayout.OnChildScrollUpCallback
      + +SwitchCompat
      + + +
      T  +A +B +C +D +E +F +G +H +I +K +L +M +N +O +P +R +S +V +W + TOP +

      +TabLayout
      + +TAG +
      + +TextInputLayout
      + +TextViewCompat
      + +ThemedSpinnerAdapter
      + +ThemedSpinnerAdapter.Helper
      + +toKeyCode +(long)
      + +Toolbar
      + +Toolbar.LayoutParams
      + +Toolbar.OnMenuItemClickListener
      + +Toolbar.SavedState
      + +TYPE_ASSIST_READING_CONTEXT +
      + +TYPE_SPLIT_SCREEN_DIVIDER +
      + +TYPE_VIEW_CONTEXT_CLICKED +
      + +TYPE_WINDOWS_CHANGED +
      + + +
      V  +A +B +C +D +E +F +G +H +I +K +L +M +N +O +P +R +S +T +W + TOP +

      +ViewCompat
      + +ViewConfigurationCompat
      + + +
      W  +A +B +C +D +E +F +G +H +I +K +L +M +N +O +P +R +S +T +V + TOP +

      +WindowInsetsCompat
      +  android.support.v4.view
      + +  WindowInsetsCompat +(WindowInsetsCompat) constructor
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/alldiffs_index_changes.html b/docs/html/sdk/support_api_diff/24.2.0/changes/alldiffs_index_changes.html new file mode 100644 index 000000000000..854a487c4074 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/alldiffs_index_changes.html @@ -0,0 +1,666 @@ + + + + + + + + + +All Changes Index + + + + + + + + + + + + + + + +
      + Filter the Index: +
      +All Differences +
      +Removals +
      +Additions +
      +Changes +
      +
      +Listed as: Added, Removed, Changed +
      + + +
      A  +B +C +D +F +G +I +K +L +M +O +P +R +S +T +V +W + TOP +

      +AbstractMediaItemPresenter
      + +AbstractMediaItemPresenter.ViewHolder
      + +AccessibilityEventCompat
      + +AccessibilityManagerCompat
      + +AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat
      + +AccessibilityNodeInfoCompat
      + +AccessibilityNodeInfoCompat.AccessibilityActionCompat
      + +AccessibilityNodeInfoCompat.CollectionInfoCompat
      + +AccessibilityNodeInfoCompat.CollectionItemInfoCompat
      + +AccessibilityNodeInfoCompat.RangeInfoCompat
      + +AccessibilityNodeProviderCompat
      + +AccessibilityServiceInfoCompat
      + +AccessibilityWindowInfoCompat
      + +ActionBarDrawerToggle
      + +ActivityCompat
      +  android.support.v4.app
      + +  ActivityCompat +() constructor
      + +ActivityOptionsCompat
      + +addAccessibilityStateChangeListener +(AccessibilityManager, AccessibilityStateChangeListener)
      + +android.support.customtabs
      + +android.support.design.widget
      + +android.support.v14.preference
      + +android.support.v17.leanback.widget
      + +android.support.v17.preference
      + +android.support.v4.accessibilityservice
      + +android.support.v4.app
      + +android.support.v4.content
      + +android.support.v4.graphics.drawable
      + +android.support.v4.media
      + +android.support.v4.media.session
      + +android.support.v4.os
      + +android.support.v4.util
      + +android.support.v4.view
      + +android.support.v4.view.accessibility
      + +android.support.v4.widget
      + +android.support.v7.app
      + +android.support.v7.content.res
      + +android.support.v7.graphics
      + +android.support.v7.preference
      + +android.support.v7.util
      + +android.support.v7.widget
      + +AppBarLayout.ScrollingViewBehavior
      + +AppCompatDelegate
      + +AppCompatResources
      + + +
      B  +A +C +D +F +G +I +K +L +M +O +P +R +S +T +V +W + TOP +

      +BottomSheetBehavior
      + +BuildCompat
      + + +
      C  +A +B +D +F +G +I +K +L +M +O +P +R +S +T +V +W + TOP +

      +CollapsingToolbarLayout
      + +computeScrollVectorForPosition +(int)
      + +ContextCompat
      +  android.support.v4.content
      + +  ContextCompat +() constructor
      + +CoordinatorLayout
      + +CoordinatorLayout.Behavior
      + +CoordinatorLayout.LayoutParams
      + +CustomTabsIntent
      + +CustomTabsIntent.Builder
      + +CustomTabsSession
      + + +
      D  +A +B +C +F +G +I +K +L +M +O +P +R +S +T +V +W + TOP +

      +dispatch +(KeyEvent, Callback, Object, Object)
      + +DrawableCompat
      + + +
      F  +A +B +C +D +G +I +K +L +M +O +P +R +S +T +V +W + TOP +

      +findPointerIndex +(MotionEvent, int)
      + +FloatingActionButton.Behavior
      + +FragmentController
      + + +
      G  +A +B +C +D +F +I +K +L +M +O +P +R +S +T +V +W + TOP +

      +getDescription +(AccessibilityServiceInfo)
      + +getKeyDispatcherState +(View)
      + +getOverScrollMode +(View)
      + +getPointerCount +(MotionEvent)
      + +getPointerId +(MotionEvent, int)
      + +getReferrer +(Activity)
      + +getScaledPagingTouchSlop +(ViewConfiguration)
      + +getSource +(MotionEvent)
      + +getX +(MotionEvent, int)
      + +getY +(MotionEvent, int)
      + + +
      I  +A +B +C +D +F +G +K +L +M +O +P +R +S +T +V +W + TOP +

      +isDirty +(CoordinatorLayout, V)
      + +isOpaque +(View)
      + +isTracking +(KeyEvent)
      + + +
      K  +A +B +C +D +F +G +I +L +M +O +P +R +S +T +V +W + TOP +

      +KeyEventCompat
      + + +
      L  +A +B +C +D +F +G +I +K +M +O +P +R +S +T +V +W + TOP +

      +LeanbackSettingsFragment
      + +LinearLayoutManager
      + +LinearSmoothScroller
      + + +
      M  +A +B +C +D +F +G +I +K +L +O +P +R +S +T +V +W + TOP +

      +MediaBrowserCompat.MediaItem
      + +MediaBrowserServiceCompat.BrowserRoot
      + +MediaButtonReceiver
      + +MediaDescriptionCompat
      + +MediaMetadataCompat
      + +MediaSessionCompat
      + +MediaSessionCompat.QueueItem
      + +MotionEventCompat
      + + +
      O  +A +B +C +D +F +G +I +K +L +M +P +R +S +T +V +W + TOP +

      +ObjectAdapter
      + +obtain
      +  type  +(Context, Object) in android.support.v4.media.session.MediaSessionCompat +
      + +  type  +(Object) in android.support.v4.media.session.MediaSessionCompat.QueueItem +
      + +OVER_SCROLL_ALWAYS +
      + +OVER_SCROLL_IF_CONTENT_SCROLLS +
      + +OVER_SCROLL_NEVER +
      + + +
      P  +A +B +C +D +F +G +I +K +L +M +O +R +S +T +V +W + TOP +

      +Palette
      + +PlaybackStateCompat
      + +PreferenceFragment
      + + +
      R  +A +B +C +D +F +G +I +K +L +M +O +P +S +T +V +W + TOP +

      +RecyclerView
      + +removeAccessibilityStateChangeListener +(AccessibilityManager, AccessibilityStateChangeListener)
      + + +
      S  +A +B +C +D +F +G +I +K +L +M +O +P +R +T +V +W + TOP +

      +SearchViewCompat
      + +SearchViewCompat.OnCloseListenerCompat
      + +SearchViewCompat.OnQueryTextListenerCompat
      + +ServiceCompat
      + +setOnCloseListener +(View, OnCloseListener)
      + +setOnQueryTextListener +(View, OnQueryTextListener)
      + +setOverScrollMode +(View, int)
      + +setToolbarItem +(int, Bitmap, String)
      + +SharedElementCallback
      + +SortedList.Callback
      + +StaggeredGridLayoutManager
      + +startTracking +(KeyEvent)
      + +SwipeRefreshLayout
      + + +
      T  +A +B +C +D +F +G +I +K +L +M +O +P +R +S +V +W + TOP +

      +TabLayout
      + +TextInputLayout
      + +TextViewCompat
      + + +
      V  +A +B +C +D +F +G +I +K +L +M +O +P +R +S +T +W + TOP +

      +ViewCompat
      + +ViewConfigurationCompat
      + + +
      W  +A +B +C +D +F +G +I +K +L +M +O +P +R +S +T +V + TOP +

      +WindowInsetsCompat
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/alldiffs_index_removals.html b/docs/html/sdk/support_api_diff/24.2.0/changes/alldiffs_index_removals.html new file mode 100644 index 000000000000..e6d9e07460e8 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/alldiffs_index_removals.html @@ -0,0 +1,124 @@ + + + + + + + + + +All Removals Index + + + + + + + + + + + + + + + +
      + Filter the Index: +
      +All Differences +
      +Removals +
      +Additions +
      +Changes +
      +
      +Listed as: Added, Removed, Changed +
      + + +android.support.v7.appcompat
      + +android.support.v7.recyclerview
      + +android.support.v8.renderscript
      + + +
      L  +A +O +P +T + TOP +

      +layoutDependsOn +(CoordinatorLayout, FloatingActionButton, View)
      + + +
      O  +A +L +P +T + TOP +

      +onAccessibilityStateChanged +(boolean)
      + +onDependentViewRemoved +(CoordinatorLayout, FloatingActionButton, View)
      + +onInserted +(int, int)
      + +onMoved +(int, int)
      + +onRemoved +(int, int)
      + + +
      P  +A +L +O +T + TOP +

      +prepareForDrop +(View, View, int, int)
      + + +
      T  +A +L +O +P + TOP +

      +TAG +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.customtabs.CustomTabsIntent.Builder.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.customtabs.CustomTabsIntent.Builder.html new file mode 100644 index 000000000000..d6a9415c8a26 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.customtabs.CustomTabsIntent.Builder.html @@ -0,0 +1,122 @@ + + + + + + + + + +android.support.customtabs.CustomTabsIntent.Builder + + + + + + + + + + +
      +
      +
      +

      +Class android.support.customtabs.CustomTabsIntent.Builder +

      + + +

      + + + + + + + + +
      Added Methods +
      + + Builder setInstantAppsEnabled(boolean) +  
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.customtabs.CustomTabsIntent.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.customtabs.CustomTabsIntent.html new file mode 100644 index 000000000000..dd0b5118a983 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.customtabs.CustomTabsIntent.html @@ -0,0 +1,144 @@ + + + + + + + + + +android.support.customtabs.CustomTabsIntent + + + + + + + + + + +
      +
      +
      +

      +Class android.support.customtabs.CustomTabsIntent +

      + + +

      + + + + + + + + + + + + +
      Added Methods +
      + + Intent setAlwaysUseBrowserUI(Intent) +  
      + + boolean shouldAlwaysUseBrowserUI(Intent) +  
      +  + +

      + + + + + + + + +
      Added Fields +
      + + String EXTRA_ENABLE_INSTANT_APPS +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.customtabs.CustomTabsSession.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.customtabs.CustomTabsSession.html new file mode 100644 index 000000000000..16cac319e36b --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.customtabs.CustomTabsSession.html @@ -0,0 +1,140 @@ + + + + + + + + + +android.support.customtabs.CustomTabsSession + + + + + + + + + + +
      +
      +
      +

      +Class android.support.customtabs.CustomTabsSession +

      + + +

      + + + + + + + + +
      Added Methods +
      + + boolean setSecondaryToolbarViews(RemoteViews, int[], PendingIntent) +  
      +  +

      + + + + + + + + + +
      Changed Methods +
      + + boolean setToolbarItem(int, Bitmap, String) + +Now deprecated.
      +
       
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.AppBarLayout.ScrollingViewBehavior.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.AppBarLayout.ScrollingViewBehavior.html new file mode 100644 index 000000000000..7e1e59a443a0 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.AppBarLayout.ScrollingViewBehavior.html @@ -0,0 +1,122 @@ + + + + + + + + + +android.support.design.widget.AppBarLayout.ScrollingViewBehavior + + + + + + + + + + +
      +
      +
      +

      +Class android.support.design.widget.AppBarLayout.ScrollingViewBehavior +

      + + +

      + + + + + + + + +
      Added Methods +
      + + boolean onRequestChildRectangleOnScreen(CoordinatorLayout, View, Rect, boolean) +  
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.BottomSheetBehavior.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.BottomSheetBehavior.html new file mode 100644 index 000000000000..e98c6f338f75 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.BottomSheetBehavior.html @@ -0,0 +1,122 @@ + + + + + + + + + +android.support.design.widget.BottomSheetBehavior + + + + + + + + + + +
      +
      +
      +

      +Class android.support.design.widget.BottomSheetBehavior +

      + + + +

      + + + + + + + + +
      Added Fields +
      + + int PEEK_HEIGHT_AUTO +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.CollapsingToolbarLayout.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.CollapsingToolbarLayout.html new file mode 100644 index 000000000000..ebfdce11e38c --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.CollapsingToolbarLayout.html @@ -0,0 +1,129 @@ + + + + + + + + + +android.support.design.widget.CollapsingToolbarLayout + + + + + + + + + + +
      +
      +
      +

      +Class android.support.design.widget.CollapsingToolbarLayout +

      + + +

      + + + + + + + + + + + + +
      Added Methods +
      + + void setCollapsedTitleTextColor(ColorStateList) +  
      + + void setExpandedTitleTextColor(ColorStateList) +  
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.CoordinatorLayout.Behavior.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.CoordinatorLayout.Behavior.html new file mode 100644 index 000000000000..8cf6146a5463 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.CoordinatorLayout.Behavior.html @@ -0,0 +1,161 @@ + + + + + + + + + +android.support.design.widget.CoordinatorLayout.Behavior + + + + + + + + + + +
      +
      +
      +

      +Class android.support.design.widget.CoordinatorLayout.Behavior +

      + + +

      + + + + + + + + + + + + + + + + + + + + +
      Added Methods +
      + + boolean getInsetDodgeRect(CoordinatorLayout, V, Rect) +  
      + + void onAttachedToLayoutParams(LayoutParams) +  
      + + void onDetachedFromLayoutParams() +  
      + + boolean onRequestChildRectangleOnScreen(CoordinatorLayout, V, Rect, boolean) +  
      +  +

      + + + + + + + + + +
      Changed Methods +
      + + boolean isDirty(CoordinatorLayout, V) + +Now deprecated.
      +
       
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.CoordinatorLayout.LayoutParams.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.CoordinatorLayout.LayoutParams.html new file mode 100644 index 000000000000..a36eab08e017 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.CoordinatorLayout.LayoutParams.html @@ -0,0 +1,129 @@ + + + + + + + + + +android.support.design.widget.CoordinatorLayout.LayoutParams + + + + + + + + + + +
      +
      +
      +

      +Class android.support.design.widget.CoordinatorLayout.LayoutParams +

      + + + +

      + + + + + + + + + + + + +
      Added Fields +
      + + int dodgeInsetEdges +  
      + + int insetEdge +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.CoordinatorLayout.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.CoordinatorLayout.html new file mode 100644 index 000000000000..4a7247a37caa --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.CoordinatorLayout.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.support.design.widget.CoordinatorLayout + + + + + + + + + + +
      +
      +
      +

      +Class android.support.design.widget.CoordinatorLayout +

      +

      Added interface android.support.v4.view.NestedScrollingParent.
      + + +

      + + + + + + + + +
      Added Methods +
      + + List<View> getDependents(View) +  
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.FloatingActionButton.Behavior.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.FloatingActionButton.Behavior.html new file mode 100644 index 000000000000..633db38b7445 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.FloatingActionButton.Behavior.html @@ -0,0 +1,158 @@ + + + + + + + + + +android.support.design.widget.FloatingActionButton.Behavior + + + + + + + + + + +
      +
      +
      +

      +Class android.support.design.widget.FloatingActionButton.Behavior +

      + + +

      + + + + + + + + + + + + +
      Removed Methods +
      + + boolean layoutDependsOn(CoordinatorLayout, FloatingActionButton, View) +  
      + + void onDependentViewRemoved(CoordinatorLayout, FloatingActionButton, View) +  
      +  +

      + + + + + + + + + + + + + + + + +
      Added Methods +
      + + boolean getInsetDodgeRect(CoordinatorLayout, FloatingActionButton, Rect) +  
      + + boolean isAutoHideEnabled() +  
      + + void setAutoHideEnabled(boolean) +  
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.TabLayout.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.TabLayout.html new file mode 100644 index 000000000000..01d4b6dbf6ee --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.TabLayout.html @@ -0,0 +1,122 @@ + + + + + + + + + +android.support.design.widget.TabLayout + + + + + + + + + + +
      +
      +
      +

      +Class android.support.design.widget.TabLayout +

      + + +

      + + + + + + + + +
      Added Methods +
      + + void clearOnTabSelectedListeners() +  
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.TextInputLayout.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.TextInputLayout.html new file mode 100644 index 000000000000..ecd6fd4ea321 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.design.widget.TextInputLayout.html @@ -0,0 +1,185 @@ + + + + + + + + + +android.support.design.widget.TextInputLayout + + + + + + + + + + +
      +
      +
      +

      +Class android.support.design.widget.TextInputLayout +

      + + +

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Added Methods +
      + + CharSequence getPasswordVisibilityToggleContentDescription() +  
      + + Drawable getPasswordVisibilityToggleDrawable() +  
      + + boolean isPasswordVisibilityToggleEnabled() +  
      + + void setPasswordVisibilityToggleContentDescription(int) +  
      + + void setPasswordVisibilityToggleContentDescription(CharSequence) +  
      + + void setPasswordVisibilityToggleDrawable(Drawable) +  
      + + void setPasswordVisibilityToggleDrawable(int) +  
      + + void setPasswordVisibilityToggleEnabled(boolean) +  
      + + void setPasswordVisibilityToggleTintList(ColorStateList) +  
      + + void setPasswordVisibilityToggleTintMode(Mode) +  
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v14.preference.PreferenceFragment.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v14.preference.PreferenceFragment.html new file mode 100644 index 000000000000..9b31c9e55612 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v14.preference.PreferenceFragment.html @@ -0,0 +1,108 @@ + + + + + + + + + +android.support.v14.preference.PreferenceFragment + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v14.preference.PreferenceFragment +

      +

      Added interface android.support.v7.preference.DialogPreference.TargetFragment.
      + + + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v17.leanback.widget.AbstractMediaItemPresenter.ViewHolder.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v17.leanback.widget.AbstractMediaItemPresenter.ViewHolder.html new file mode 100644 index 000000000000..9df653650403 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v17.leanback.widget.AbstractMediaItemPresenter.ViewHolder.html @@ -0,0 +1,150 @@ + + + + + + + + + +android.support.v17.leanback.widget.AbstractMediaItemPresenter.ViewHolder + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v17.leanback.widget.AbstractMediaItemPresenter.ViewHolder +

      + + +

      + + + + + + + + + + + + + + + + + + + + + + + + +
      Added Methods +
      + + ViewFlipper getMediaItemNumberViewFlipper() +  
      + + View getMediaItemPausedView() +  
      + + View getMediaItemPlayingView() +  
      + + void notifyPlayStateChanged() +  
      + + void setSelectedMediaItemNumberView(int) +  
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v17.leanback.widget.AbstractMediaItemPresenter.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v17.leanback.widget.AbstractMediaItemPresenter.html new file mode 100644 index 000000000000..16b03ad052b2 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v17.leanback.widget.AbstractMediaItemPresenter.html @@ -0,0 +1,165 @@ + + + + + + + + + +android.support.v17.leanback.widget.AbstractMediaItemPresenter + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v17.leanback.widget.AbstractMediaItemPresenter +

      + + +

      + + + + + + + + + + + + + + + + +
      Added Methods +
      + + int getMediaPlayState(Object) +  
      + + void onBindMediaPlayState(ViewHolder) +  
      + + void onUnbindMediaPlayState(ViewHolder) +  
      +  + +

      + + + + + + + + + + + + + + + + +
      Added Fields +
      + + int PLAY_STATE_INITIAL +  
      + + int PLAY_STATE_PAUSED +  
      + + int PLAY_STATE_PLAYING +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v17.leanback.widget.ObjectAdapter.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v17.leanback.widget.ObjectAdapter.html new file mode 100644 index 000000000000..3e3ded03b782 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v17.leanback.widget.ObjectAdapter.html @@ -0,0 +1,122 @@ + + + + + + + + + +android.support.v17.leanback.widget.ObjectAdapter + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v17.leanback.widget.ObjectAdapter +

      + + +

      + + + + + + + + +
      Added Methods +
      + + boolean isImmediateNotifySupported() +  
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v17.preference.LeanbackSettingsFragment.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v17.preference.LeanbackSettingsFragment.html new file mode 100644 index 000000000000..6e544651e2a9 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v17.preference.LeanbackSettingsFragment.html @@ -0,0 +1,108 @@ + + + + + + + + + +android.support.v17.preference.LeanbackSettingsFragment + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v17.preference.LeanbackSettingsFragment +

      +

      Added interfaces android.support.v14.preference.PreferenceFragment.OnPreferenceDisplayDialogCallback, android.support.v14.preference.PreferenceFragment.OnPreferenceStartFragmentCallback, android.support.v14.preference.PreferenceFragment.OnPreferenceStartScreenCallback.
      + + + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat.html new file mode 100644 index 000000000000..0600e440cc88 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat.html @@ -0,0 +1,140 @@ + + + + + + + + + +android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat +

      + + +

      + + + + + + + + +
      Added Methods +
      + + String loadDescription(AccessibilityServiceInfo, PackageManager) +  
      +  +

      + + + + + + + + + +
      Changed Methods +
      + + String getDescription(AccessibilityServiceInfo) + +Now deprecated.
      +
       
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.app.ActivityCompat.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.app.ActivityCompat.html new file mode 100644 index 000000000000..74ae6f61e93c --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.app.ActivityCompat.html @@ -0,0 +1,143 @@ + + + + + + + + + +android.support.v4.app.ActivityCompat + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.app.ActivityCompat +

      + +

      + + + + + + + + + +
      Changed Constructors +
      + + ActivityCompat() + +Now deprecated.
      +
       
      +  + +

      + + + + + + + + + +
      Changed Methods +
      + + Uri getReferrer(Activity) + +Now deprecated.
      +
       
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.app.ActivityOptionsCompat.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.app.ActivityOptionsCompat.html new file mode 100644 index 000000000000..ce96b49d4ca4 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.app.ActivityOptionsCompat.html @@ -0,0 +1,179 @@ + + + + + + + + + +android.support.v4.app.ActivityOptionsCompat + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.app.ActivityOptionsCompat +

      + + +

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Added Methods +
      + + Rect getLaunchBounds() +  
      + + ActivityOptionsCompat makeBasic() +  
      + + ActivityOptionsCompat makeClipRevealAnimation(View, int, int, int, int) +  
      + + ActivityOptionsCompat makeTaskLaunchBehind() +  
      + + void requestUsageTimeReport(PendingIntent) +  
      + + ActivityOptionsCompat setLaunchBounds(Rect) +  
      +  + +

      + + + + + + + + + + + + +
      Added Fields +
      + + String EXTRA_USAGE_TIME_REPORT +  
      + + String EXTRA_USAGE_TIME_REPORT_PACKAGES +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.app.FragmentController.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.app.FragmentController.html new file mode 100644 index 000000000000..13b2ce1f0d12 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.app.FragmentController.html @@ -0,0 +1,122 @@ + + + + + + + + + +android.support.v4.app.FragmentController + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.app.FragmentController +

      + + +

      + + + + + + + + +
      Added Methods +
      + + Fragment findFragmentByWho(String) +  
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.app.ServiceCompat.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.app.ServiceCompat.html new file mode 100644 index 000000000000..6a404ebc691e --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.app.ServiceCompat.html @@ -0,0 +1,144 @@ + + + + + + + + + +android.support.v4.app.ServiceCompat + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.app.ServiceCompat +

      + + +

      + + + + + + + + +
      Added Methods +
      + + void stopForeground(Service, int) +  
      +  + +

      + + + + + + + + + + + + +
      Added Fields +
      + + int STOP_FOREGROUND_DETACH +  
      + + int STOP_FOREGROUND_REMOVE +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.app.SharedElementCallback.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.app.SharedElementCallback.html new file mode 100644 index 000000000000..1495fb4887de --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.app.SharedElementCallback.html @@ -0,0 +1,122 @@ + + + + + + + + + +android.support.v4.app.SharedElementCallback + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.app.SharedElementCallback +

      + + +

      + + + + + + + + +
      Added Methods +
      + + void onSharedElementsArrived(List<String>, List<View>, OnSharedElementsReadyListener) +  
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.content.ContextCompat.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.content.ContextCompat.html new file mode 100644 index 000000000000..1d6b9b1df4e5 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.content.ContextCompat.html @@ -0,0 +1,125 @@ + + + + + + + + + +android.support.v4.content.ContextCompat + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.content.ContextCompat +

      + +

      + + + + + + + + + +
      Changed Constructors +
      + + ContextCompat() + +Now deprecated.
      +
       
      +  + + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.graphics.drawable.DrawableCompat.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.graphics.drawable.DrawableCompat.html new file mode 100644 index 000000000000..3408caa78122 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.graphics.drawable.DrawableCompat.html @@ -0,0 +1,122 @@ + + + + + + + + + +android.support.v4.graphics.drawable.DrawableCompat + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.graphics.drawable.DrawableCompat +

      + + +

      + + + + + + + + +
      Added Methods +
      + + void clearColorFilter(Drawable) +  
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.media.MediaBrowserCompat.MediaItem.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.media.MediaBrowserCompat.MediaItem.html new file mode 100644 index 000000000000..acc16c1541d0 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.media.MediaBrowserCompat.MediaItem.html @@ -0,0 +1,129 @@ + + + + + + + + + +android.support.v4.media.MediaBrowserCompat.MediaItem + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.media.MediaBrowserCompat.MediaItem +

      + + +

      + + + + + + + + + + + + +
      Added Methods +
      + + MediaItem fromMediaItem(Object) +  
      + + List<MediaItem> fromMediaItemList(List<?>) +  
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.media.MediaBrowserServiceCompat.BrowserRoot.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.media.MediaBrowserServiceCompat.BrowserRoot.html new file mode 100644 index 000000000000..7a9c7331195d --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.media.MediaBrowserServiceCompat.BrowserRoot.html @@ -0,0 +1,122 @@ + + + + + + + + + +android.support.v4.media.MediaBrowserServiceCompat.BrowserRoot + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.media.MediaBrowserServiceCompat.BrowserRoot +

      + + + +

      + + + + + + + + +
      Added Fields +
      + + String EXTRA_SUGGESTION_KEYWORDS +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.media.MediaDescriptionCompat.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.media.MediaDescriptionCompat.html new file mode 100644 index 000000000000..fbbaa1911733 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.media.MediaDescriptionCompat.html @@ -0,0 +1,171 @@ + + + + + + + + + +android.support.v4.media.MediaDescriptionCompat + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.media.MediaDescriptionCompat +

      + + + +

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Added Fields +
      + + long BT_FOLDER_TYPE_ALBUMS +  
      + + long BT_FOLDER_TYPE_ARTISTS +  
      + + long BT_FOLDER_TYPE_GENRES +  
      + + long BT_FOLDER_TYPE_MIXED +  
      + + long BT_FOLDER_TYPE_PLAYLISTS +  
      + + long BT_FOLDER_TYPE_TITLES +  
      + + long BT_FOLDER_TYPE_YEARS +  
      + + String EXTRA_BT_FOLDER_TYPE +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.media.MediaMetadataCompat.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.media.MediaMetadataCompat.html new file mode 100644 index 000000000000..e52493bd2480 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.media.MediaMetadataCompat.html @@ -0,0 +1,129 @@ + + + + + + + + + +android.support.v4.media.MediaMetadataCompat + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.media.MediaMetadataCompat +

      + + + +

      + + + + + + + + + + + + +
      Added Fields +
      + + String METADATA_KEY_BT_FOLDER_TYPE +  
      + + String METADATA_KEY_MEDIA_URI +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.media.session.MediaButtonReceiver.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.media.session.MediaButtonReceiver.html new file mode 100644 index 000000000000..3e2c68bb8eda --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.media.session.MediaButtonReceiver.html @@ -0,0 +1,129 @@ + + + + + + + + + +android.support.v4.media.session.MediaButtonReceiver + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.media.session.MediaButtonReceiver +

      + + +

      + + + + + + + + + + + + +
      Added Methods +
      + + PendingIntent buildMediaButtonPendingIntent(Context, ComponentName, long) +  
      + + PendingIntent buildMediaButtonPendingIntent(Context, long) +  
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.media.session.MediaSessionCompat.QueueItem.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.media.session.MediaSessionCompat.QueueItem.html new file mode 100644 index 000000000000..5ce173ffedfb --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.media.session.MediaSessionCompat.QueueItem.html @@ -0,0 +1,147 @@ + + + + + + + + + +android.support.v4.media.session.MediaSessionCompat.QueueItem + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.media.session.MediaSessionCompat.QueueItem +

      + + +

      + + + + + + + + + + + + +
      Added Methods +
      + + QueueItem fromQueueItem(Object) +  
      + + List<QueueItem> fromQueueItemList(List<?>) +  
      +  +

      + + + + + + + + + +
      Changed Methods +
      + + QueueItem obtain(Object) + +Now deprecated.
      +
       
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.media.session.MediaSessionCompat.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.media.session.MediaSessionCompat.html new file mode 100644 index 000000000000..ee7124499494 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.media.session.MediaSessionCompat.html @@ -0,0 +1,140 @@ + + + + + + + + + +android.support.v4.media.session.MediaSessionCompat + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.media.session.MediaSessionCompat +

      + + +

      + + + + + + + + +
      Added Methods +
      + + MediaSessionCompat fromMediaSession(Context, Object) +  
      +  +

      + + + + + + + + + +
      Changed Methods +
      + + MediaSessionCompat obtain(Context, Object) + +Now deprecated.
      +
       
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.media.session.PlaybackStateCompat.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.media.session.PlaybackStateCompat.html new file mode 100644 index 000000000000..2c54c1d0fd85 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.media.session.PlaybackStateCompat.html @@ -0,0 +1,122 @@ + + + + + + + + + +android.support.v4.media.session.PlaybackStateCompat + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.media.session.PlaybackStateCompat +

      + + +

      + + + + + + + + +
      Added Methods +
      + + int toKeyCode(long) +  
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.os.BuildCompat.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.os.BuildCompat.html new file mode 100644 index 000000000000..eb59ddb4c041 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.os.BuildCompat.html @@ -0,0 +1,122 @@ + + + + + + + + + +android.support.v4.os.BuildCompat + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.os.BuildCompat +

      + + +

      + + + + + + + + +
      Added Methods +
      + + boolean isAtLeastNMR1() +  
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.KeyEventCompat.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.KeyEventCompat.html new file mode 100644 index 000000000000..b5f4371fb523 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.KeyEventCompat.html @@ -0,0 +1,155 @@ + + + + + + + + + +android.support.v4.view.KeyEventCompat + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.view.KeyEventCompat +

      + + +

      + + + + + + + + + + + + + + + + + + + + + + + + +
      Changed Methods +
      + + boolean dispatch(KeyEvent, Callback, Object, Object) + +Now deprecated.
      +
       
      + + Object getKeyDispatcherState(View) + +Now deprecated.
      +
       
      + + boolean isTracking(KeyEvent) + +Now deprecated.
      +
       
      + + void startTracking(KeyEvent) + +Now deprecated.
      +
       
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.MotionEventCompat.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.MotionEventCompat.html new file mode 100644 index 000000000000..9f85dab7d1ac --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.MotionEventCompat.html @@ -0,0 +1,175 @@ + + + + + + + + + +android.support.v4.view.MotionEventCompat + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.view.MotionEventCompat +

      + + +

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Changed Methods +
      + + int findPointerIndex(MotionEvent, int) + +Now deprecated.
      +
       
      + + int getPointerCount(MotionEvent) + +Now deprecated.
      +
       
      + + int getPointerId(MotionEvent, int) + +Now deprecated.
      +
       
      + + int getSource(MotionEvent) + +Now deprecated.
      +
       
      + + float getX(MotionEvent, int) + +Now deprecated.
      +
       
      + + float getY(MotionEvent, int) + +Now deprecated.
      +
       
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.ViewCompat.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.ViewCompat.html new file mode 100644 index 000000000000..1b4ea0feabce --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.ViewCompat.html @@ -0,0 +1,195 @@ + + + + + + + + + +android.support.v4.view.ViewCompat + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.view.ViewCompat +

      + + +

      + + + + + + + + +
      Added Methods +
      + + boolean isImportantForAccessibility(View) +  
      +  +

      + + + + + + + + + + + + + + + + + + + +
      Changed Methods +
      + + int getOverScrollMode(View) + +Now deprecated.
      +
       
      + + boolean isOpaque(View) + +Now deprecated.
      +
       
      + + void setOverScrollMode(View, int) + +Now deprecated.
      +
       
      +  + +

      + + + + + + + + + + + + + + + + + + + +
      Changed Fields +
      + + int OVER_SCROLL_ALWAYS +Now deprecated.
      +
       
      + + int OVER_SCROLL_IF_CONTENT_SCROLLS +Now deprecated.
      +
       
      + + int OVER_SCROLL_NEVER +Now deprecated.
      +
       
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.ViewConfigurationCompat.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.ViewConfigurationCompat.html new file mode 100644 index 000000000000..dcb2023dd0e5 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.ViewConfigurationCompat.html @@ -0,0 +1,125 @@ + + + + + + + + + +android.support.v4.view.ViewConfigurationCompat + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.view.ViewConfigurationCompat +

      + + +

      + + + + + + + + + +
      Changed Methods +
      + + int getScaledPagingTouchSlop(ViewConfiguration) + +Now deprecated.
      +
       
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.WindowInsetsCompat.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.WindowInsetsCompat.html new file mode 100644 index 000000000000..e0f77c9433c1 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.WindowInsetsCompat.html @@ -0,0 +1,122 @@ + + + + + + + + + +android.support.v4.view.WindowInsetsCompat + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.view.WindowInsetsCompat +

      + +

      + + + + + + + + +
      Added Constructors +
      + + WindowInsetsCompat(WindowInsetsCompat) +  
      +  + + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityEventCompat.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityEventCompat.html new file mode 100644 index 000000000000..6ff46b8c14d4 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityEventCompat.html @@ -0,0 +1,172 @@ + + + + + + + + + +android.support.v4.view.accessibility.AccessibilityEventCompat + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.view.accessibility.AccessibilityEventCompat +

      + + +

      + + + + + + + + + + + + + + + + + + + + +
      Added Methods +
      + + int getAction(AccessibilityEvent) +  
      + + int getMovementGranularity(AccessibilityEvent) +  
      + + void setAction(AccessibilityEvent, int) +  
      + + void setMovementGranularity(AccessibilityEvent, int) +  
      +  + +

      + + + + + + + + + + + + + + + + +
      Added Fields +
      + + int TYPE_ASSIST_READING_CONTEXT +  
      + + int TYPE_VIEW_CONTEXT_CLICKED +  
      + + int TYPE_WINDOWS_CHANGED +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat.html new file mode 100644 index 000000000000..5d63b93ae152 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat.html @@ -0,0 +1,124 @@ + + + + + + + + + +android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat +

      +

      Added interface android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListener.
      +

      Now deprecated.
      + + +

      + + + + + + + + +
      Removed Methods +
      + + void onAccessibilityStateChanged(boolean) +  
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityManagerCompat.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityManagerCompat.html new file mode 100644 index 000000000000..004d89ef7aba --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityManagerCompat.html @@ -0,0 +1,157 @@ + + + + + + + + + +android.support.v4.view.accessibility.AccessibilityManagerCompat + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.view.accessibility.AccessibilityManagerCompat +

      + + +

      + + + + + + + + + + + + +
      Added Methods +
      + + boolean addTouchExplorationStateChangeListener(AccessibilityManager, TouchExplorationStateChangeListener) +  
      + + boolean removeTouchExplorationStateChangeListener(AccessibilityManager, TouchExplorationStateChangeListener) +  
      +  +

      + + + + + + + + + + + + + + +
      Changed Methods +
      + + boolean addAccessibilityStateChangeListener(AccessibilityManager, AccessibilityStateChangeListener) + +Change in signature from (AccessibilityManager, AccessibilityStateChangeListenerCompat) to (AccessibilityManager, AccessibilityStateChangeListener).
      +
       
      + + boolean removeAccessibilityStateChangeListener(AccessibilityManager, AccessibilityStateChangeListener) + +Change in signature from (AccessibilityManager, AccessibilityStateChangeListenerCompat) to (AccessibilityManager, AccessibilityStateChangeListener).
      +
       
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat.html new file mode 100644 index 000000000000..695028b2ff57 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat.html @@ -0,0 +1,171 @@ + + + + + + + + + +android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat +

      + + + +

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Added Fields +
      + + AccessibilityActionCompat ACTION_CONTEXT_CLICK +  
      + + AccessibilityActionCompat ACTION_SCROLL_DOWN +  
      + + AccessibilityActionCompat ACTION_SCROLL_LEFT +  
      + + AccessibilityActionCompat ACTION_SCROLL_RIGHT +  
      + + AccessibilityActionCompat ACTION_SCROLL_TO_POSITION +  
      + + AccessibilityActionCompat ACTION_SCROLL_UP +  
      + + AccessibilityActionCompat ACTION_SET_PROGRESS +  
      + + AccessibilityActionCompat ACTION_SHOW_ON_SCREEN +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat.html new file mode 100644 index 000000000000..17109ec22cf7 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat.html @@ -0,0 +1,129 @@ + + + + + + + + + +android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat +

      + + +

      + + + + + + + + + + + + +
      Added Methods +
      + + int getSelectionMode() +  
      + + CollectionInfoCompat obtain(int, int, boolean) +  
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.CollectionItemInfoCompat.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.CollectionItemInfoCompat.html new file mode 100644 index 000000000000..30df540333ce --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.CollectionItemInfoCompat.html @@ -0,0 +1,122 @@ + + + + + + + + + +android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.CollectionItemInfoCompat + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.CollectionItemInfoCompat +

      + + +

      + + + + + + + + +
      Added Methods +
      + + CollectionItemInfoCompat obtain(int, int, int, int, boolean) +  
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat.html new file mode 100644 index 000000000000..1d5a2509c49d --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat.html @@ -0,0 +1,122 @@ + + + + + + + + + +android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat +

      + + +

      + + + + + + + + +
      Added Methods +
      + + RangeInfoCompat obtain(int, float, float, float) +  
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.html new file mode 100644 index 000000000000..727576d9701d --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.html @@ -0,0 +1,158 @@ + + + + + + + + + +android.support.v4.view.accessibility.AccessibilityNodeInfoCompat + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.view.accessibility.AccessibilityNodeInfoCompat +

      + + +

      + + + + + + + + + + + + +
      Added Methods +
      + + boolean isContextClickable() +  
      + + void setContextClickable(boolean) +  
      +  + +

      + + + + + + + + + + + + + + + + +
      Added Fields +
      + + String ACTION_ARGUMENT_COLUMN_INT +  
      + + String ACTION_ARGUMENT_PROGRESS_VALUE +  
      + + String ACTION_ARGUMENT_ROW_INT +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityNodeProviderCompat.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityNodeProviderCompat.html new file mode 100644 index 000000000000..101070c3f085 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityNodeProviderCompat.html @@ -0,0 +1,122 @@ + + + + + + + + + +android.support.v4.view.accessibility.AccessibilityNodeProviderCompat + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.view.accessibility.AccessibilityNodeProviderCompat +

      + + + +

      + + + + + + + + +
      Added Fields +
      + + int HOST_VIEW_ID +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityWindowInfoCompat.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityWindowInfoCompat.html new file mode 100644 index 000000000000..a3b8d96b4f41 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.view.accessibility.AccessibilityWindowInfoCompat.html @@ -0,0 +1,122 @@ + + + + + + + + + +android.support.v4.view.accessibility.AccessibilityWindowInfoCompat + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.view.accessibility.AccessibilityWindowInfoCompat +

      + + + +

      + + + + + + + + +
      Added Fields +
      + + int TYPE_SPLIT_SCREEN_DIVIDER +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.widget.SearchViewCompat.OnCloseListenerCompat.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.widget.SearchViewCompat.OnCloseListenerCompat.html new file mode 100644 index 000000000000..cba004e0a9e5 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.widget.SearchViewCompat.OnCloseListenerCompat.html @@ -0,0 +1,109 @@ + + + + + + + + + +android.support.v4.widget.SearchViewCompat.OnCloseListenerCompat + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.widget.SearchViewCompat.OnCloseListenerCompat +

      +

      Added interface android.support.v4.widget.SearchViewCompat.OnCloseListener.
      +

      Now deprecated.
      + + + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.widget.SearchViewCompat.OnQueryTextListenerCompat.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.widget.SearchViewCompat.OnQueryTextListenerCompat.html new file mode 100644 index 000000000000..c15d1b962a39 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.widget.SearchViewCompat.OnQueryTextListenerCompat.html @@ -0,0 +1,109 @@ + + + + + + + + + +android.support.v4.widget.SearchViewCompat.OnQueryTextListenerCompat + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.widget.SearchViewCompat.OnQueryTextListenerCompat +

      +

      Added interface android.support.v4.widget.SearchViewCompat.OnQueryTextListener.
      +

      Now deprecated.
      + + + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.widget.SearchViewCompat.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.widget.SearchViewCompat.html new file mode 100644 index 000000000000..cbb39251c45f --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.widget.SearchViewCompat.html @@ -0,0 +1,135 @@ + + + + + + + + + +android.support.v4.widget.SearchViewCompat + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.widget.SearchViewCompat +

      + + +

      + + + + + + + + + + + + + + +
      Changed Methods +
      + + void setOnCloseListener(View, OnCloseListener) + +Change in signature from (View, OnCloseListenerCompat) to (View, OnCloseListener).
      +
       
      + + void setOnQueryTextListener(View, OnQueryTextListener) + +Change in signature from (View, OnQueryTextListenerCompat) to (View, OnQueryTextListener).
      +
       
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.widget.SwipeRefreshLayout.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.widget.SwipeRefreshLayout.html new file mode 100644 index 000000000000..77dbdf642189 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.widget.SwipeRefreshLayout.html @@ -0,0 +1,122 @@ + + + + + + + + + +android.support.v4.widget.SwipeRefreshLayout + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.widget.SwipeRefreshLayout +

      + + +

      + + + + + + + + +
      Added Methods +
      + + void setOnChildScrollUpCallback(OnChildScrollUpCallback) +  
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.widget.TextViewCompat.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.widget.TextViewCompat.html new file mode 100644 index 000000000000..a80363405f37 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v4.widget.TextViewCompat.html @@ -0,0 +1,122 @@ + + + + + + + + + +android.support.v4.widget.TextViewCompat + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v4.widget.TextViewCompat +

      + + +

      + + + + + + + + +
      Added Methods +
      + + Drawable[] getCompoundDrawablesRelative(TextView) +  
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.app.ActionBarDrawerToggle.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.app.ActionBarDrawerToggle.html new file mode 100644 index 000000000000..2a864f027a51 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.app.ActionBarDrawerToggle.html @@ -0,0 +1,129 @@ + + + + + + + + + +android.support.v7.app.ActionBarDrawerToggle + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v7.app.ActionBarDrawerToggle +

      + + +

      + + + + + + + + + + + + +
      Added Methods +
      + + DrawerArrowDrawable getDrawerArrowDrawable() +  
      + + void setDrawerArrowDrawable(DrawerArrowDrawable) +  
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.app.AppCompatDelegate.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.app.AppCompatDelegate.html new file mode 100644 index 000000000000..adfcabbecdd9 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.app.AppCompatDelegate.html @@ -0,0 +1,122 @@ + + + + + + + + + +android.support.v7.app.AppCompatDelegate + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v7.app.AppCompatDelegate +

      + + +

      + + + + + + + + +
      Added Methods +
      + + void onStart() +  
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.content.res.AppCompatResources.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.content.res.AppCompatResources.html new file mode 100644 index 000000000000..e26c32b10b8f --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.content.res.AppCompatResources.html @@ -0,0 +1,122 @@ + + + + + + + + + +android.support.v7.content.res.AppCompatResources + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v7.content.res.AppCompatResources +

      + + +

      + + + + + + + + +
      Added Methods +
      + + Drawable getDrawable(Context, int) +  
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.graphics.Palette.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.graphics.Palette.html new file mode 100644 index 000000000000..f588384fc1c9 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.graphics.Palette.html @@ -0,0 +1,129 @@ + + + + + + + + + +android.support.v7.graphics.Palette + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v7.graphics.Palette +

      + + +

      + + + + + + + + + + + + +
      Added Methods +
      + + int getDominantColor(int) +  
      + + Swatch getDominantSwatch() +  
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.util.SortedList.Callback.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.util.SortedList.Callback.html new file mode 100644 index 000000000000..d235097955cd --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.util.SortedList.Callback.html @@ -0,0 +1,152 @@ + + + + + + + + + +android.support.v7.util.SortedList.Callback + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v7.util.SortedList.Callback +

      +

      Added interface android.support.v7.util.ListUpdateCallback.
      + + +

      + + + + + + + + + + + + + + + + +
      Removed Methods +
      + + void onInserted(int, int) +  
      + + void onMoved(int, int) +  
      + + void onRemoved(int, int) +  
      +  +

      + + + + + + + + +
      Added Methods +
      + + void onChanged(int, int, Object) +  
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.widget.LinearLayoutManager.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.widget.LinearLayoutManager.html new file mode 100644 index 000000000000..cf5c0f602aaa --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.widget.LinearLayoutManager.html @@ -0,0 +1,123 @@ + + + + + + + + + +android.support.v7.widget.LinearLayoutManager + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v7.widget.LinearLayoutManager +

      +

      Added interface android.support.v7.widget.RecyclerView.SmoothScroller.ScrollVectorProvider.
      + + +

      + + + + + + + + +
      Removed Methods +
      + + void prepareForDrop(View, View, int, int) +  
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.widget.LinearSmoothScroller.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.widget.LinearSmoothScroller.html new file mode 100644 index 000000000000..3e13735bd73b --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.widget.LinearSmoothScroller.html @@ -0,0 +1,126 @@ + + + + + + + + + +android.support.v7.widget.LinearSmoothScroller + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v7.widget.LinearSmoothScroller +

      +

      Changed from abstract to non-abstract. + + +

      + + + + + + + + + +
      Changed Methods +
      + + PointF computeScrollVectorForPosition(int) + +Changed from abstract to non-abstract. +  
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.widget.RecyclerView.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.widget.RecyclerView.html new file mode 100644 index 000000000000..d5e36f0537bf --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.widget.RecyclerView.html @@ -0,0 +1,130 @@ + + + + + + + + + +android.support.v7.widget.RecyclerView + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v7.widget.RecyclerView +

      +

      Added interfaces android.support.v4.view.NestedScrollingChild, android.support.v4.view.ScrollingView.
      + + +

      + + + + + + + + + + + + +
      Added Methods +
      + + OnFlingListener getOnFlingListener() +  
      + + void setOnFlingListener(OnFlingListener) +  
      +  + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.widget.StaggeredGridLayoutManager.html b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.widget.StaggeredGridLayoutManager.html new file mode 100644 index 000000000000..640ef38d25d7 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/android.support.v7.widget.StaggeredGridLayoutManager.html @@ -0,0 +1,138 @@ + + + + + + + + + +android.support.v7.widget.StaggeredGridLayoutManager + + + + + + + + + + +
      +
      +
      +

      +Class android.support.v7.widget.StaggeredGridLayoutManager +

      +

      Added interface android.support.v7.widget.RecyclerView.SmoothScroller.ScrollVectorProvider.
      + + +

      + + + + + + + + +
      Added Methods +
      + + PointF computeScrollVectorForPosition(int) +  
      +  + +

      + + + + + + + + +
      Removed Fields +
      + + String TAG +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/changes-summary.html b/docs/html/sdk/support_api_diff/24.2.0/changes/changes-summary.html new file mode 100644 index 000000000000..12dfb4e9ed2b --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/changes-summary.html @@ -0,0 +1,329 @@ + + + + + + + + + +Support Library API Differences Report + + + + + + + + + + +
      +
      +
      +
      +

      Support Library API Differences Report

      +

      This report details the changes in the Android Support Library API between two versions. +It shows additions, modifications, and removals for packages, classes, methods, and fields. +The report also includes general statistics that characterize the extent and type of the differences.

      +

      This report is based a comparison of the Support Library API specifications +whose version level identifiers are given in the upper-right corner of this page. It compares a +newer "to" version's API to an older "from" version's API, noting all changes relative to the +older API. So, for example, API elements marked as removed are no longer present in the "to" +API specification.

      +

      To navigate the report, use the "Select a Diffs Index" and "Filter the Index" +controls on the left. The report uses text formatting to indicate interface names, +links to reference documentation, and links to change +description. The statistics are accessible from the "Statistics" link in the upper-right corner.

      +

      For more information about the Android API and SDK, +see the Android Developers site.

      +

      + + + + + + + + + + + + + + + + +
      Removed Packages +
      + + android.support.v7.appcompat  
      + + android.support.v7.recyclerview  
      + + android.support.v8.renderscript  
      +  +

      + + + + + + + + + + + + +
      Added Packages +
      + + android.support.transition +  
      + + android.support.v4.text.util +  
      +  +

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Changed Packages +
      + + android.support.customtabs +  
      + + android.support.design.widget +  
      + + android.support.v14.preference +  
      + + android.support.v17.leanback.widget +  
      + + android.support.v17.preference +  
      + + android.support.v4.accessibilityservice +  
      + + android.support.v4.app +  
      + + android.support.v4.content +  
      + + android.support.v4.graphics.drawable +  
      + + android.support.v4.media +  
      + + android.support.v4.media.session +  
      + + android.support.v4.os +  
      + + android.support.v4.util +  
      + + android.support.v4.view +  
      + + android.support.v4.view.accessibility +  
      + + android.support.v4.widget +  
      + + android.support.v7.app +  
      + + android.support.v7.content.res +  
      + + android.support.v7.graphics +  
      + + android.support.v7.preference +  
      + + android.support.v7.util +  
      + + android.support.v7.widget +  
      +  + + +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/classes_index_additions.html b/docs/html/sdk/support_api_diff/24.2.0/changes/classes_index_additions.html new file mode 100644 index 000000000000..f3eb2ed91fb4 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/classes_index_additions.html @@ -0,0 +1,305 @@ + + + + + + + + + +Class Additions Index + + + + + + + + + + + + + + + +
      + Filter the Index: +
      +All Classes +
      +Removals +
      +Additions +
      +Changes +
      +
      +Listed as: Added, Removed, Changed +
      + +
      A  +B +C +D +G +L +M +N +P +R +S +T + TOP +

      +AccessibilityManagerCompat.AccessibilityStateChangeListener
      +AccessibilityManagerCompat.TouchExplorationStateChangeListener
      +ActionBarActivity
      +ActionMenuView
      +ActionMenuView.LayoutParams
      +ActionMenuView.OnMenuItemClickListener
      +AppCompatActivity
      +AppCompatAutoCompleteTextView
      +AppCompatButton
      +AppCompatCheckBox
      +AppCompatCheckedTextView
      +AppCompatDialogFragment
      +AppCompatEditText
      +AppCompatImageButton
      +AppCompatImageView
      +AppCompatMultiAutoCompleteTextView
      +AppCompatRadioButton
      +AppCompatRatingBar
      +AppCompatSeekBar
      +AppCompatSpinner
      +AppCompatTextView
      + +
      B  +A +C +D +G +L +M +N +P +R +S +T + TOP +

      +BatchingListUpdateCallback
      + +
      C  +A +B +D +G +L +M +N +P +R +S +T + TOP +

      +CardView
      + +
      D  +A +B +C +G +L +M +N +P +R +S +T + TOP +

      +DiffUtil
      +DiffUtil.Callback
      +DiffUtil.DiffResult
      + +
      G  +A +B +C +D +L +M +N +P +R +S +T + TOP +

      +GridLayout
      +GridLayout.Alignment
      +GridLayout.LayoutParams
      +GridLayout.Spec
      + +
      L  +A +B +C +D +G +M +N +P +R +S +T + TOP +

      +LinearLayoutCompat
      +LinearLayoutCompat.LayoutParams
      +LinearSnapHelper
      +ListPopupWindow
      +ListUpdateCallback
      + +
      M  +A +B +C +D +G +L +N +P +R +S +T + TOP +

      +MultiSelectListPreferenceDialogFragmentCompat
      + +
      N  +A +B +C +D +G +L +M +P +R +S +T + TOP +

      +NotificationCompat
      +NotificationCompat.Builder
      +NotificationCompat.MediaStyle
      + +
      P  +A +B +C +D +G +L +M +N +R +S +T + TOP +

      +PatternsCompat
      +PopupMenu
      +PopupMenu.OnDismissListener
      +PopupMenu.OnMenuItemClickListener
      + +
      R  +A +B +C +D +G +L +M +N +P +S +T + TOP +

      +RecyclerView.OnFlingListener
      +RecyclerView.SmoothScroller.ScrollVectorProvider
      + +
      S  +A +B +C +D +G +L +M +N +P +R +T + TOP +

      +SearchView
      +SearchView.OnCloseListener
      +SearchView.OnQueryTextListener
      +SearchView.OnSuggestionListener
      +SearchViewCompat.OnCloseListener
      +SearchViewCompat.OnQueryTextListener
      +ShareActionProvider
      +ShareActionProvider.OnShareTargetSelectedListener
      +SharedElementCallback.OnSharedElementsReadyListener
      +SnapHelper
      +Space
      +SwipeRefreshLayout.OnChildScrollUpCallback
      +SwitchCompat
      + +
      T  +A +B +C +D +G +L +M +N +P +R +S + TOP +

      +ThemedSpinnerAdapter
      +ThemedSpinnerAdapter.Helper
      +Toolbar
      +Toolbar.LayoutParams
      +Toolbar.OnMenuItemClickListener
      +Toolbar.SavedState
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/classes_index_all.html b/docs/html/sdk/support_api_diff/24.2.0/changes/classes_index_all.html new file mode 100644 index 000000000000..410ac8a65415 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/classes_index_all.html @@ -0,0 +1,528 @@ + + + + + + + + + +Class Differences Index + + + + + + + + + + + + + + + +
      + Filter the Index: +
      +Classes +
      +Removals +
      +Additions +
      +Changes +
      +
      +Listed as: Added, Removed, Changed +
      + +
      A  +B +C +D +F +G +K +L +M +N +O +P +R +S +T +V +W + TOP +

      +AbstractMediaItemPresenter
      +AbstractMediaItemPresenter.ViewHolder
      +AccessibilityEventCompat
      +AccessibilityManagerCompat
      +AccessibilityManagerCompat.AccessibilityStateChangeListener
      +AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat
      +AccessibilityManagerCompat.TouchExplorationStateChangeListener
      +AccessibilityNodeInfoCompat
      +AccessibilityNodeInfoCompat.AccessibilityActionCompat
      +AccessibilityNodeInfoCompat.CollectionInfoCompat
      +AccessibilityNodeInfoCompat.CollectionItemInfoCompat
      +AccessibilityNodeInfoCompat.RangeInfoCompat
      +AccessibilityNodeProviderCompat
      +AccessibilityServiceInfoCompat
      +AccessibilityWindowInfoCompat
      +ActionBarActivity
      +ActionBarDrawerToggle
      +ActionMenuView
      +ActionMenuView.LayoutParams
      +ActionMenuView.OnMenuItemClickListener
      +ActivityCompat
      +ActivityOptionsCompat
      +AppBarLayout.ScrollingViewBehavior
      +AppCompatActivity
      +AppCompatAutoCompleteTextView
      +AppCompatButton
      +AppCompatCheckBox
      +AppCompatCheckedTextView
      +AppCompatDelegate
      +AppCompatDialogFragment
      +AppCompatEditText
      +AppCompatImageButton
      +AppCompatImageView
      +AppCompatMultiAutoCompleteTextView
      +AppCompatRadioButton
      +AppCompatRatingBar
      +AppCompatResources
      +AppCompatSeekBar
      +AppCompatSpinner
      +AppCompatTextView
      + +
      B  +A +C +D +F +G +K +L +M +N +O +P +R +S +T +V +W + TOP +

      +BatchingListUpdateCallback
      +BottomSheetBehavior
      +BuildCompat
      + +
      C  +A +B +D +F +G +K +L +M +N +O +P +R +S +T +V +W + TOP +

      +CardView
      +CollapsingToolbarLayout
      +ContextCompat
      +CoordinatorLayout
      +CoordinatorLayout.Behavior
      +CoordinatorLayout.LayoutParams
      +CustomTabsIntent
      +CustomTabsIntent.Builder
      +CustomTabsSession
      + +
      D  +A +B +C +F +G +K +L +M +N +O +P +R +S +T +V +W + TOP +

      +DiffUtil
      +DiffUtil.Callback
      +DiffUtil.DiffResult
      +DrawableCompat
      + +
      F  +A +B +C +D +G +K +L +M +N +O +P +R +S +T +V +W + TOP +

      +FloatingActionButton.Behavior
      +FragmentController
      + +
      G  +A +B +C +D +F +K +L +M +N +O +P +R +S +T +V +W + TOP +

      +GridLayout
      +GridLayout.Alignment
      +GridLayout.LayoutParams
      +GridLayout.Spec
      + +
      K  +A +B +C +D +F +G +L +M +N +O +P +R +S +T +V +W + TOP +

      +KeyEventCompat
      + +
      L  +A +B +C +D +F +G +K +M +N +O +P +R +S +T +V +W + TOP +

      +LeanbackSettingsFragment
      +LinearLayoutCompat
      +LinearLayoutCompat.LayoutParams
      +LinearLayoutManager
      +LinearSmoothScroller
      +LinearSnapHelper
      +ListPopupWindow
      +ListUpdateCallback
      + +
      M  +A +B +C +D +F +G +K +L +N +O +P +R +S +T +V +W + TOP +

      +MediaBrowserCompat.MediaItem
      +MediaBrowserServiceCompat.BrowserRoot
      +MediaButtonReceiver
      +MediaDescriptionCompat
      +MediaMetadataCompat
      +MediaSessionCompat
      +MediaSessionCompat.QueueItem
      +MotionEventCompat
      +MultiSelectListPreferenceDialogFragmentCompat
      + +
      N  +A +B +C +D +F +G +K +L +M +O +P +R +S +T +V +W + TOP +

      +NotificationCompat
      +NotificationCompat.Builder
      +NotificationCompat.MediaStyle
      + +
      O  +A +B +C +D +F +G +K +L +M +N +P +R +S +T +V +W + TOP +

      +ObjectAdapter
      + +
      P  +A +B +C +D +F +G +K +L +M +N +O +R +S +T +V +W + TOP +

      +Palette
      +PatternsCompat
      +PlaybackStateCompat
      +PopupMenu
      +PopupMenu.OnDismissListener
      +PopupMenu.OnMenuItemClickListener
      +PreferenceFragment
      + +
      R  +A +B +C +D +F +G +K +L +M +N +O +P +S +T +V +W + TOP +

      +RecyclerView
      +RecyclerView.OnFlingListener
      +RecyclerView.SmoothScroller.ScrollVectorProvider
      + +
      S  +A +B +C +D +F +G +K +L +M +N +O +P +R +T +V +W + TOP +

      +SearchView
      +SearchView.OnCloseListener
      +SearchView.OnQueryTextListener
      +SearchView.OnSuggestionListener
      +SearchViewCompat
      +SearchViewCompat.OnCloseListener
      +SearchViewCompat.OnCloseListenerCompat
      +SearchViewCompat.OnQueryTextListener
      +SearchViewCompat.OnQueryTextListenerCompat
      +ServiceCompat
      +ShareActionProvider
      +ShareActionProvider.OnShareTargetSelectedListener
      +SharedElementCallback
      +SharedElementCallback.OnSharedElementsReadyListener
      +SnapHelper
      +SortedList.Callback
      +Space
      +StaggeredGridLayoutManager
      +SwipeRefreshLayout
      +SwipeRefreshLayout.OnChildScrollUpCallback
      +SwitchCompat
      + +
      T  +A +B +C +D +F +G +K +L +M +N +O +P +R +S +V +W + TOP +

      +TabLayout
      +TextInputLayout
      +TextViewCompat
      +ThemedSpinnerAdapter
      +ThemedSpinnerAdapter.Helper
      +Toolbar
      +Toolbar.LayoutParams
      +Toolbar.OnMenuItemClickListener
      +Toolbar.SavedState
      + +
      V  +A +B +C +D +F +G +K +L +M +N +O +P +R +S +T +W + TOP +

      +ViewCompat
      +ViewConfigurationCompat
      + +
      W  +A +B +C +D +F +G +K +L +M +N +O +P +R +S +T +V + TOP +

      +WindowInsetsCompat
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/classes_index_changes.html b/docs/html/sdk/support_api_diff/24.2.0/changes/classes_index_changes.html new file mode 100644 index 000000000000..1baef5cd999b --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/classes_index_changes.html @@ -0,0 +1,394 @@ + + + + + + + + + +Class Changes Index + + + + + + + + + + + + + + + +
      + Filter the Index: +
      +All Classes +
      +Removals +
      +Additions +
      +Changes +
      +
      +Listed as: Added, Removed, Changed +
      + +
      A  +B +C +D +F +K +L +M +O +P +R +S +T +V +W + TOP +

      +AbstractMediaItemPresenter
      +AbstractMediaItemPresenter.ViewHolder
      +AccessibilityEventCompat
      +AccessibilityManagerCompat
      +AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat
      +AccessibilityNodeInfoCompat
      +AccessibilityNodeInfoCompat.AccessibilityActionCompat
      +AccessibilityNodeInfoCompat.CollectionInfoCompat
      +AccessibilityNodeInfoCompat.CollectionItemInfoCompat
      +AccessibilityNodeInfoCompat.RangeInfoCompat
      +AccessibilityNodeProviderCompat
      +AccessibilityServiceInfoCompat
      +AccessibilityWindowInfoCompat
      +ActionBarDrawerToggle
      +ActivityCompat
      +ActivityOptionsCompat
      +AppBarLayout.ScrollingViewBehavior
      +AppCompatDelegate
      +AppCompatResources
      + +
      B  +A +C +D +F +K +L +M +O +P +R +S +T +V +W + TOP +

      +BottomSheetBehavior
      +BuildCompat
      + +
      C  +A +B +D +F +K +L +M +O +P +R +S +T +V +W + TOP +

      +CollapsingToolbarLayout
      +ContextCompat
      +CoordinatorLayout
      +CoordinatorLayout.Behavior
      +CoordinatorLayout.LayoutParams
      +CustomTabsIntent
      +CustomTabsIntent.Builder
      +CustomTabsSession
      + +
      D  +A +B +C +F +K +L +M +O +P +R +S +T +V +W + TOP +

      +DrawableCompat
      + +
      F  +A +B +C +D +K +L +M +O +P +R +S +T +V +W + TOP +

      +FloatingActionButton.Behavior
      +FragmentController
      + +
      K  +A +B +C +D +F +L +M +O +P +R +S +T +V +W + TOP +

      +KeyEventCompat
      + +
      L  +A +B +C +D +F +K +M +O +P +R +S +T +V +W + TOP +

      +LeanbackSettingsFragment
      +LinearLayoutManager
      +LinearSmoothScroller
      + +
      M  +A +B +C +D +F +K +L +O +P +R +S +T +V +W + TOP +

      +MediaBrowserCompat.MediaItem
      +MediaBrowserServiceCompat.BrowserRoot
      +MediaButtonReceiver
      +MediaDescriptionCompat
      +MediaMetadataCompat
      +MediaSessionCompat
      +MediaSessionCompat.QueueItem
      +MotionEventCompat
      + +
      O  +A +B +C +D +F +K +L +M +P +R +S +T +V +W + TOP +

      +ObjectAdapter
      + +
      P  +A +B +C +D +F +K +L +M +O +R +S +T +V +W + TOP +

      +Palette
      +PlaybackStateCompat
      +PreferenceFragment
      + +
      R  +A +B +C +D +F +K +L +M +O +P +S +T +V +W + TOP +

      +RecyclerView
      + +
      S  +A +B +C +D +F +K +L +M +O +P +R +T +V +W + TOP +

      +SearchViewCompat
      +SearchViewCompat.OnCloseListenerCompat
      +SearchViewCompat.OnQueryTextListenerCompat
      +ServiceCompat
      +SharedElementCallback
      +SortedList.Callback
      +StaggeredGridLayoutManager
      +SwipeRefreshLayout
      + +
      T  +A +B +C +D +F +K +L +M +O +P +R +S +V +W + TOP +

      +TabLayout
      +TextInputLayout
      +TextViewCompat
      + +
      V  +A +B +C +D +F +K +L +M +O +P +R +S +T +W + TOP +

      +ViewCompat
      +ViewConfigurationCompat
      + +
      W  +A +B +C +D +F +K +L +M +O +P +R +S +T +V + TOP +

      +WindowInsetsCompat
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/classes_index_removals.html b/docs/html/sdk/support_api_diff/24.2.0/changes/classes_index_removals.html new file mode 100644 index 000000000000..e6da73f487d3 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/classes_index_removals.html @@ -0,0 +1,61 @@ + + + + + + + + + +Class Removals Index + + + + + + + + + + + + + + + +
      + Filter the Index: +
      +All Classes +
      +Removals +
      +Additions +
      +Changes +
      +
      +Listed as: Added, Removed, Changed +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/constructors_index_additions.html b/docs/html/sdk/support_api_diff/24.2.0/changes/constructors_index_additions.html new file mode 100644 index 000000000000..b0c058727690 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/constructors_index_additions.html @@ -0,0 +1,67 @@ + + + + + + + + + +Constructor Additions Index + + + + + + + + + + + + + + + +
      + Filter the Index: +
      +All Constructors +
      +Removals +
      +Additions +
      +Changes +
      +
      +Listed as: Added, Removed, Changed +
      + +
      W  + TOP +

      +WindowInsetsCompat +(WindowInsetsCompat) constructor
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/constructors_index_all.html b/docs/html/sdk/support_api_diff/24.2.0/changes/constructors_index_all.html new file mode 100644 index 000000000000..91568dba6205 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/constructors_index_all.html @@ -0,0 +1,85 @@ + + + + + + + + + +Constructor Differences Index + + + + + + + + + + + + + + + +
      + Filter the Index: +
      +Constructors +
      +Removals +
      +Additions +
      +Changes +
      +
      +Listed as: Added, Removed, Changed +
      + +
      A  +C +W + TOP +

      +ActivityCompat +() constructor
      + +
      C  +A +W + TOP +

      +ContextCompat +() constructor
      + +
      W  +A +C + TOP +

      +WindowInsetsCompat +(WindowInsetsCompat) constructor
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/constructors_index_changes.html b/docs/html/sdk/support_api_diff/24.2.0/changes/constructors_index_changes.html new file mode 100644 index 000000000000..b4142ed09971 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/constructors_index_changes.html @@ -0,0 +1,75 @@ + + + + + + + + + +Constructor Changes Index + + + + + + + + + + + + + + + +
      + Filter the Index: +
      +All Constructors +
      +Removals +
      +Additions +
      +Changes +
      +
      +Listed as: Added, Removed, Changed +
      + +
      A  +C + TOP +

      +ActivityCompat +() constructor
      + +
      C  +A + TOP +

      +ContextCompat +() constructor
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/constructors_index_removals.html b/docs/html/sdk/support_api_diff/24.2.0/changes/constructors_index_removals.html new file mode 100644 index 000000000000..f1a99529b22d --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/constructors_index_removals.html @@ -0,0 +1,61 @@ + + + + + + + + + +Constructor Removals Index + + + + + + + + + + + + + + + +
      + Filter the Index: +
      +All Constructors +
      +Removals +
      +Additions +
      +Changes +
      +
      +Listed as: Added, Removed, Changed +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/fields_index_additions.html b/docs/html/sdk/support_api_diff/24.2.0/changes/fields_index_additions.html new file mode 100644 index 000000000000..8923dbe088ec --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/fields_index_additions.html @@ -0,0 +1,267 @@ + + + + + + + + + +Field Additions Index + + + + + + + + + + + + + + + +
      + Filter the Index: +
      +All Fields +
      +Removals +
      +Additions +
      +Changes +
      +
      +Listed as: Added, Removed, Changed +
      + +
      A  +B +D +E +H +I +M +P +S +T + TOP +

      +ACTION_ARGUMENT_COLUMN_INT +
      +ACTION_ARGUMENT_PROGRESS_VALUE +
      +ACTION_ARGUMENT_ROW_INT +
      +ACTION_CONTEXT_CLICK +
      +ACTION_SCROLL_DOWN +
      +ACTION_SCROLL_LEFT +
      +ACTION_SCROLL_RIGHT +
      +ACTION_SCROLL_TO_POSITION +
      +ACTION_SCROLL_UP +
      +ACTION_SET_PROGRESS +
      +ACTION_SHOW_ON_SCREEN +
      + +
      B  +A +D +E +H +I +M +P +S +T + TOP +

      +BT_FOLDER_TYPE_ALBUMS +
      +BT_FOLDER_TYPE_ARTISTS +
      +BT_FOLDER_TYPE_GENRES +
      +BT_FOLDER_TYPE_MIXED +
      +BT_FOLDER_TYPE_PLAYLISTS +
      +BT_FOLDER_TYPE_TITLES +
      +BT_FOLDER_TYPE_YEARS +
      + +
      D  +A +B +E +H +I +M +P +S +T + TOP +

      +dodgeInsetEdges +
      + +
      E  +A +B +D +H +I +M +P +S +T + TOP +

      +EXTRA_BT_FOLDER_TYPE +
      +EXTRA_ENABLE_INSTANT_APPS +
      +EXTRA_SUGGESTION_KEYWORDS +
      +EXTRA_USAGE_TIME_REPORT +
      +EXTRA_USAGE_TIME_REPORT_PACKAGES +
      + +
      H  +A +B +D +E +I +M +P +S +T + TOP +

      +HOST_VIEW_ID +
      + +
      I  +A +B +D +E +H +M +P +S +T + TOP +

      +insetEdge +
      + +
      M  +A +B +D +E +H +I +P +S +T + TOP +

      +METADATA_KEY_BT_FOLDER_TYPE +
      +METADATA_KEY_MEDIA_URI +
      + +
      P  +A +B +D +E +H +I +M +S +T + TOP +

      +PEEK_HEIGHT_AUTO +
      +PLAY_STATE_INITIAL +
      +PLAY_STATE_PAUSED +
      +PLAY_STATE_PLAYING +
      + +
      S  +A +B +D +E +H +I +M +P +T + TOP +

      +STOP_FOREGROUND_DETACH +
      +STOP_FOREGROUND_REMOVE +
      + +
      T  +A +B +D +E +H +I +M +P +S + TOP +

      +TYPE_ASSIST_READING_CONTEXT +
      +TYPE_SPLIT_SCREEN_DIVIDER +
      +TYPE_VIEW_CONTEXT_CLICKED +
      +TYPE_WINDOWS_CHANGED +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/fields_index_all.html b/docs/html/sdk/support_api_diff/24.2.0/changes/fields_index_all.html new file mode 100644 index 000000000000..19cebb79bfba --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/fields_index_all.html @@ -0,0 +1,299 @@ + + + + + + + + + +Field Differences Index + + + + + + + + + + + + + + + +
      + Filter the Index: +
      +Fields +
      +Removals +
      +Additions +
      +Changes +
      +
      +Listed as: Added, Removed, Changed +
      + +
      A  +B +D +E +H +I +M +O +P +S +T + TOP +

      +ACTION_ARGUMENT_COLUMN_INT +
      +ACTION_ARGUMENT_PROGRESS_VALUE +
      +ACTION_ARGUMENT_ROW_INT +
      +ACTION_CONTEXT_CLICK +
      +ACTION_SCROLL_DOWN +
      +ACTION_SCROLL_LEFT +
      +ACTION_SCROLL_RIGHT +
      +ACTION_SCROLL_TO_POSITION +
      +ACTION_SCROLL_UP +
      +ACTION_SET_PROGRESS +
      +ACTION_SHOW_ON_SCREEN +
      + +
      B  +A +D +E +H +I +M +O +P +S +T + TOP +

      +BT_FOLDER_TYPE_ALBUMS +
      +BT_FOLDER_TYPE_ARTISTS +
      +BT_FOLDER_TYPE_GENRES +
      +BT_FOLDER_TYPE_MIXED +
      +BT_FOLDER_TYPE_PLAYLISTS +
      +BT_FOLDER_TYPE_TITLES +
      +BT_FOLDER_TYPE_YEARS +
      + +
      D  +A +B +E +H +I +M +O +P +S +T + TOP +

      +dodgeInsetEdges +
      + +
      E  +A +B +D +H +I +M +O +P +S +T + TOP +

      +EXTRA_BT_FOLDER_TYPE +
      +EXTRA_ENABLE_INSTANT_APPS +
      +EXTRA_SUGGESTION_KEYWORDS +
      +EXTRA_USAGE_TIME_REPORT +
      +EXTRA_USAGE_TIME_REPORT_PACKAGES +
      + +
      H  +A +B +D +E +I +M +O +P +S +T + TOP +

      +HOST_VIEW_ID +
      + +
      I  +A +B +D +E +H +M +O +P +S +T + TOP +

      +insetEdge +
      + +
      M  +A +B +D +E +H +I +O +P +S +T + TOP +

      +METADATA_KEY_BT_FOLDER_TYPE +
      +METADATA_KEY_MEDIA_URI +
      + +
      O  +A +B +D +E +H +I +M +P +S +T + TOP +

      +OVER_SCROLL_ALWAYS +
      +OVER_SCROLL_IF_CONTENT_SCROLLS +
      +OVER_SCROLL_NEVER +
      + +
      P  +A +B +D +E +H +I +M +O +S +T + TOP +

      +PEEK_HEIGHT_AUTO +
      +PLAY_STATE_INITIAL +
      +PLAY_STATE_PAUSED +
      +PLAY_STATE_PLAYING +
      + +
      S  +A +B +D +E +H +I +M +O +P +T + TOP +

      +STOP_FOREGROUND_DETACH +
      +STOP_FOREGROUND_REMOVE +
      + +
      T  +A +B +D +E +H +I +M +O +P +S + TOP +

      +TAG +
      +TYPE_ASSIST_READING_CONTEXT +
      +TYPE_SPLIT_SCREEN_DIVIDER +
      +TYPE_VIEW_CONTEXT_CLICKED +
      +TYPE_WINDOWS_CHANGED +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/fields_index_changes.html b/docs/html/sdk/support_api_diff/24.2.0/changes/fields_index_changes.html new file mode 100644 index 000000000000..b5ab769834a3 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/fields_index_changes.html @@ -0,0 +1,71 @@ + + + + + + + + + +Field Changes Index + + + + + + + + + + + + + + + +
      + Filter the Index: +
      +All Fields +
      +Removals +
      +Additions +
      +Changes +
      +
      +Listed as: Added, Removed, Changed +
      + +
      O  + TOP +

      +OVER_SCROLL_ALWAYS +
      +OVER_SCROLL_IF_CONTENT_SCROLLS +
      +OVER_SCROLL_NEVER +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/fields_index_removals.html b/docs/html/sdk/support_api_diff/24.2.0/changes/fields_index_removals.html new file mode 100644 index 000000000000..09ffac4441fb --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/fields_index_removals.html @@ -0,0 +1,67 @@ + + + + + + + + + +Field Removals Index + + + + + + + + + + + + + + + +
      + Filter the Index: +
      +All Fields +
      +Removals +
      +Additions +
      +Changes +
      +
      +Listed as: Added, Removed, Changed +
      + +
      T  + TOP +

      +TAG +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/jdiff_help.html b/docs/html/sdk/support_api_diff/24.2.0/changes/jdiff_help.html new file mode 100644 index 000000000000..ca0931f5ab22 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/jdiff_help.html @@ -0,0 +1,134 @@ + + + + + + + + + +JDiff Help + + + + + + + + + + + + + + + + + +
      Generated by
      JDiff
      +
      + +
      +

      JDiff Documentation

      +
      +
      +JDiff is a Javadoc doclet which generates a report of the API differences between two versions of a product. It does not report changes in Javadoc comments, or changes in what a class or method does. +This help page describes the different parts of the output from JDiff. +
      +
      + See the reference page in the source for JDiff for information about how to generate a report like this one. +
      +
      +The indexes shown in the top-left frame help show each type of change in more detail. The index "All Differences" contains all the differences between the APIs, in alphabetical order. +These indexes all use the same format: +
        +
      • Removed packages, classes, constructors, methods and fields are struck through.
      • +
      • Added packages, classes, constructors, methods and fields appear in bold.
      • +
      • Changed packages, classes, constructors, methods and fields appear in normal text.
      • +
      +
      +
      +You can always tell when you are reading a JDiff page, rather than a Javadoc page, by the color of the index bar and the color of the background. +Links which take you to a Javadoc page are always in a typewriter font. +Just like Javadoc, all interface names are in italic, and class names are not italicized. Where there are multiple entries in an index with the same name, the heading for them is also in italics, but is not a link. +
      +
      +

      Javadoc

      +This is a link to the top-level Javadoc page for the new version of the product. +
      +
      +

      Overview

      +The overview is the top-level summary of what was removed, added and changed between versions. +
      +
      +

      Package

      +This is a link to the package containing the current changed class or interface. +
      +
      +

      Class

      +This is highlighted when you are looking at the changed class or interface. +
      +
      +

      Text Changes

      +This is a link to the top-level index of all documentation changes for the current package or class. +If it is not present, then there are no documentation changes for the current package or class. +This link can be removed entirely by not using the -docchanges option. +
      +
      +

      Statistics

      +This is a link to a page which shows statistics about the changes between the two APIs. +This link can be removed entirely by not using the -stats option. +
      +
      +

      Help

      +A link to this Help page for JDiff. +
      +
      +

      Prev/Next

      +These links take you to the previous and next changed package or class. +
      +
      +

      Frames/No Frames

      +These links show and hide the HTML frames. All pages are available with or without frames. +
      +
      +

      Complex Changes

      +There are some complex changes which can occur between versions, for example, when two or more methods with the same name change simultaneously, or when a method or field is moved into or from a superclass. +In these cases, the change will be seen as a removal and an addition, rather than as a change. Unexpected removals or additions are often part of one of these type of changes. +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/jdiff_statistics.html b/docs/html/sdk/support_api_diff/24.2.0/changes/jdiff_statistics.html new file mode 100644 index 000000000000..698dbecc436d --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/jdiff_statistics.html @@ -0,0 +1,596 @@ + + + + + + + + + +API Change Statistics + + + + + + + + + + +
      +
      +
      +

      API Change Statistics

      +

      The overall difference between API Levels 24.1.0 and 24.2.0 is approximately 8.39%. +

      +
      + +

      Total of Differences, by Number and Type

      +

      +The table below lists the numbers of program elements (packages, classes, constructors, methods, and fields) that were added, changed, or removed. The table includes only the highest-level program elements — that is, if a class with two methods was added, the number of methods added does not include those two methods, but the number of classes added does include that class. +

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      TypeAdditionsChangesRemovalsTotal
      Packages222327
      Classes and Interfaces64630127
      Constructors1203
      Methods80257112
      Fields383142
      Total18511511311
      +
      + +

      Changed Packages, Sorted by Percentage Difference

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Percentage Difference*Package
      37android.support.v7.widget
      33android.support.v7.content.res
      32android.support.v7.util
      19android.support.v4.view.accessibility
      12android.support.v7.app
      5android.support.v4.widget
      4android.support.v4.accessibilityservice
      4android.support.customtabs
      3android.support.v4.util
      3android.support.v4.os
      2android.support.v4.media.session
      2android.support.v4.app
      2android.support.design.widget
      2android.support.v4.media
      1android.support.v7.preference
      1android.support.v4.view
      1android.support.v17.preference
      <1android.support.v4.graphics.drawable
      <1android.support.v7.graphics
      <1android.support.v17.leanback.widget
      <1android.support.v14.preference
      <1android.support.v4.content
      +

      * See Calculation of Change Percentages, below.

      +
      + +

      Changed Classes and Interfaces, Sorted by Percentage Difference

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Percentage
      Difference*
      Class or Interface
      60 +android.support.v4.app.ServiceCompat
      38 +android.support.design.widget.FloatingActionButton.Behavior
      33 +android.support.v4.app.ActivityOptionsCompat
      33 +android.support.v4.os.BuildCompat
      33 +android.support.v4.view.accessibility.AccessibilityManagerCompat
      33 +android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat
      33 +android.support.v7.content.res.AppCompatResources
      28 +android.support.customtabs.CustomTabsSession
      28 +android.support.v7.util.SortedList.Callback
      25 +android.support.v4.media.session.MediaButtonReceiver
      25 +android.support.v4.view.ViewConfigurationCompat
      25 +android.support.v4.widget.SearchViewCompat.OnCloseListenerCompat
      23 +android.support.v4.media.MediaDescriptionCompat
      20 +android.support.v4.view.KeyEventCompat
      18 +android.support.v17.leanback.widget.AbstractMediaItemPresenter
      18 +android.support.design.widget.TextInputLayout
      17 +android.support.v17.leanback.widget.AbstractMediaItemPresenter.ViewHolder
      16 +android.support.v4.widget.SearchViewCompat.OnQueryTextListenerCompat
      15 +android.support.v4.media.session.MediaSessionCompat.QueueItem
      13 +android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat
      12 +android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat
      11 +android.support.v4.view.accessibility.AccessibilityEventCompat
      11 +android.support.design.widget.AppBarLayout.ScrollingViewBehavior
      10 +android.support.v17.preference.LeanbackSettingsFragment
      9 +android.support.design.widget.CoordinatorLayout.Behavior
      8 +android.support.design.widget.CoordinatorLayout.LayoutParams
      8 +android.support.v4.media.MediaBrowserCompat.MediaItem
      7 +android.support.v4.media.MediaBrowserServiceCompat.BrowserRoot
      7 +android.support.v4.widget.TextViewCompat
      7 +android.support.v4.app.ActivityCompat
      6 +android.support.v4.app.SharedElementCallback
      6 +android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.CollectionItemInfoCompat
      6 +android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat
      6 +android.support.v4.view.accessibility.AccessibilityNodeProviderCompat
      6 +android.support.v4.widget.SearchViewCompat
      6 +android.support.v7.app.ActionBarDrawerToggle
      5 +android.support.customtabs.CustomTabsIntent
      4 +android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat
      4 +android.support.v4.view.MotionEventCompat
      4 +android.support.v7.graphics.Palette
      4 +android.support.v7.widget.StaggeredGridLayoutManager
      3 +android.support.v4.media.session.MediaSessionCompat
      3 +android.support.v4.content.ContextCompat
      3 +android.support.customtabs.CustomTabsIntent.Builder
      2 +android.support.design.widget.BottomSheetBehavior
      2 +android.support.design.widget.CoordinatorLayout
      2 +android.support.v4.graphics.drawable.DrawableCompat
      2 +android.support.v4.view.WindowInsetsCompat
      2 +android.support.v14.preference.PreferenceFragment
      2 +android.support.v4.view.accessibility.AccessibilityWindowInfoCompat
      2 +android.support.v4.view.ViewCompat
      2 +android.support.design.widget.CollapsingToolbarLayout
      2 +android.support.v17.leanback.widget.ObjectAdapter
      2 +android.support.v4.media.MediaMetadataCompat
      2 +android.support.v7.widget.LinearSmoothScroller
      2 +android.support.v4.widget.SwipeRefreshLayout
      1 +android.support.v7.widget.LinearLayoutManager
      1 +android.support.v4.view.accessibility.AccessibilityNodeInfoCompat
      1 +android.support.design.widget.TabLayout
      1 +android.support.v4.app.FragmentController
      1 +android.support.v7.app.AppCompatDelegate
      1 +android.support.v7.widget.RecyclerView
      1 +android.support.v4.media.session.PlaybackStateCompat
      +

      * See Calculation of Change Percentages, below.

      +
      +

      Calculation of Change Percentages

      +

      +The percent change statistic reported for all elements in the "to" API Level specification is defined recursively as follows:

      +
      +Percentage difference = 100 * (added + removed + 2*changed)
      +                        -----------------------------------
      +                        sum of public elements in BOTH APIs
      +
      +

      where added is the number of packages added, removed is the number of packages removed, and changed is the number of packages changed. +This definition is applied recursively for the classes and their program elements, so the value for a changed package will be less than 1, unless every class in that package has changed. +The definition ensures that if all packages are removed and all new packages are +added, the change will be 100%.

      +
      + +
      +
      + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/jdiff_topleftframe.html b/docs/html/sdk/support_api_diff/24.2.0/changes/jdiff_topleftframe.html new file mode 100644 index 000000000000..36f9836e4478 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/jdiff_topleftframe.html @@ -0,0 +1,63 @@ + + + + + + + + + +Android API Version Differences + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + Select a Diffs Index:
      All Differences
      By Package
      By Class
      By Constructor
      By Method
      By Field
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/methods_index_additions.html b/docs/html/sdk/support_api_diff/24.2.0/changes/methods_index_additions.html new file mode 100644 index 000000000000..508018e23092 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/methods_index_additions.html @@ -0,0 +1,448 @@ + + + + + + + + + +Method Additions Index + + + + + + + + + + + + + + + +
      + Filter the Index: +
      +All Methods +
      +Removals +
      +Additions +
      +Changes +
      +
      +Listed as: Added, Removed, Changed +
      + +
      A  +B +C +F +G +I +L +M +N +O +R +S +T + TOP +

      +addTouchExplorationStateChangeListener +(AccessibilityManager, TouchExplorationStateChangeListener)
      + +
      B  +A +C +F +G +I +L +M +N +O +R +S +T + TOP +

      +buildMediaButtonPendingIntent
      +  type  +(Context, ComponentName, long) in android.support.v4.media.session.MediaButtonReceiver +
      +  type  +(Context, long) in android.support.v4.media.session.MediaButtonReceiver +
      + +
      C  +A +B +F +G +I +L +M +N +O +R +S +T + TOP +

      +clearColorFilter +(Drawable)
      +clearOnTabSelectedListeners +()
      +computeScrollVectorForPosition +(int)
      + +
      F  +A +B +C +G +I +L +M +N +O +R +S +T + TOP +

      +findFragmentByWho +(String)
      +fromMediaItem +(Object)
      +fromMediaItemList +(List<?>)
      +fromMediaSession +(Context, Object)
      +fromQueueItem +(Object)
      +fromQueueItemList +(List<?>)
      + +
      G  +A +B +C +F +I +L +M +N +O +R +S +T + TOP +

      +getAction +(AccessibilityEvent)
      +getCompoundDrawablesRelative +(TextView)
      +getDependents +(View)
      +getDominantColor +(int)
      +getDominantSwatch +()
      +getDrawable +(Context, int)
      +getDrawerArrowDrawable +()
      +getInsetDodgeRect
      +  type  +(CoordinatorLayout, V, Rect) in android.support.design.widget.CoordinatorLayout.Behavior +
      +  type  +(CoordinatorLayout, FloatingActionButton, Rect) in android.support.design.widget.FloatingActionButton.Behavior +
      +getLaunchBounds +()
      +getMediaItemNumberViewFlipper +()
      +getMediaItemPausedView +()
      +getMediaItemPlayingView +()
      +getMediaPlayState +(Object)
      +getMovementGranularity +(AccessibilityEvent)
      +getOnFlingListener +()
      +getPasswordVisibilityToggleContentDescription +()
      +getPasswordVisibilityToggleDrawable +()
      +getSelectionMode +()
      + +
      I  +A +B +C +F +G +L +M +N +O +R +S +T + TOP +

      +isAtLeastNMR1 +()
      +isAutoHideEnabled +()
      +isContextClickable +()
      +isImmediateNotifySupported +()
      +isImportantForAccessibility +(View)
      +isPasswordVisibilityToggleEnabled +()
      + +
      L  +A +B +C +F +G +I +M +N +O +R +S +T + TOP +

      +loadDescription +(AccessibilityServiceInfo, PackageManager)
      + +
      M  +A +B +C +F +G +I +L +N +O +R +S +T + TOP +

      +makeBasic +()
      +makeClipRevealAnimation +(View, int, int, int, int)
      +makeTaskLaunchBehind +()
      + +
      N  +A +B +C +F +G +I +L +M +O +R +S +T + TOP +

      +notifyPlayStateChanged +()
      + +
      O  +A +B +C +F +G +I +L +M +N +R +S +T + TOP +

      +obtain
      +  type  +(int, int, boolean) in android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat +
      +  type  +(int, int, int, int, boolean) in android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.CollectionItemInfoCompat +
      +  type  +(int, float, float, float) in android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat +
      +onAttachedToLayoutParams +(LayoutParams)
      +onBindMediaPlayState +(ViewHolder)
      +onChanged +(int, int, Object)
      +onDetachedFromLayoutParams +()
      +onRequestChildRectangleOnScreen
      +  type  +(CoordinatorLayout, View, Rect, boolean) in android.support.design.widget.AppBarLayout.ScrollingViewBehavior +
      +  type  +(CoordinatorLayout, V, Rect, boolean) in android.support.design.widget.CoordinatorLayout.Behavior +
      +onSharedElementsArrived +(List<String>, List<View>, OnSharedElementsReadyListener)
      +onStart +()
      +onUnbindMediaPlayState +(ViewHolder)
      + +
      R  +A +B +C +F +G +I +L +M +N +O +S +T + TOP +

      +removeTouchExplorationStateChangeListener +(AccessibilityManager, TouchExplorationStateChangeListener)
      +requestUsageTimeReport +(PendingIntent)
      + +
      S  +A +B +C +F +G +I +L +M +N +O +R +T + TOP +

      +setAction +(AccessibilityEvent, int)
      +setAlwaysUseBrowserUI +(Intent)
      +setAutoHideEnabled +(boolean)
      +setCollapsedTitleTextColor +(ColorStateList)
      +setContextClickable +(boolean)
      +setDrawerArrowDrawable +(DrawerArrowDrawable)
      +setExpandedTitleTextColor +(ColorStateList)
      +setInstantAppsEnabled +(boolean)
      +setLaunchBounds +(Rect)
      +setMovementGranularity +(AccessibilityEvent, int)
      +setOnChildScrollUpCallback +(OnChildScrollUpCallback)
      +setOnFlingListener +(OnFlingListener)
      +setPasswordVisibilityToggleContentDescription
      +  type  +(int) in android.support.design.widget.TextInputLayout +
      +  type  +(CharSequence) in android.support.design.widget.TextInputLayout +
      +setPasswordVisibilityToggleDrawable
      +  type  +(Drawable) in android.support.design.widget.TextInputLayout +
      +  type  +(int) in android.support.design.widget.TextInputLayout +
      +setPasswordVisibilityToggleEnabled +(boolean)
      +setPasswordVisibilityToggleTintList +(ColorStateList)
      +setPasswordVisibilityToggleTintMode +(Mode)
      +setSecondaryToolbarViews +(RemoteViews, int[], PendingIntent)
      +setSelectedMediaItemNumberView +(int)
      +shouldAlwaysUseBrowserUI +(Intent)
      +stopForeground +(Service, int)
      + +
      T  +A +B +C +F +G +I +L +M +N +O +R +S + TOP +

      +toKeyCode +(long)
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/methods_index_all.html b/docs/html/sdk/support_api_diff/24.2.0/changes/methods_index_all.html new file mode 100644 index 000000000000..a52d5c9d1460 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/methods_index_all.html @@ -0,0 +1,579 @@ + + + + + + + + + +Method Differences Index + + + + + + + + + + + + + + + +
      + Filter the Index: +
      +Methods +
      +Removals +
      +Additions +
      +Changes +
      +
      +Listed as: Added, Removed, Changed +
      + +
      A  +B +C +D +F +G +I +L +M +N +O +P +R +S +T + TOP +

      +addAccessibilityStateChangeListener +(AccessibilityManager, AccessibilityStateChangeListener)
      +addTouchExplorationStateChangeListener +(AccessibilityManager, TouchExplorationStateChangeListener)
      + +
      B  +A +C +D +F +G +I +L +M +N +O +P +R +S +T + TOP +

      +buildMediaButtonPendingIntent
      +  type  +(Context, ComponentName, long) in android.support.v4.media.session.MediaButtonReceiver +
      +  type  +(Context, long) in android.support.v4.media.session.MediaButtonReceiver +
      + +
      C  +A +B +D +F +G +I +L +M +N +O +P +R +S +T + TOP +

      +clearColorFilter +(Drawable)
      +clearOnTabSelectedListeners +()
      +computeScrollVectorForPosition
      +  type  +(int) in android.support.v7.widget.LinearSmoothScroller +
      +  type  +(int) in android.support.v7.widget.StaggeredGridLayoutManager +
      + +
      D  +A +B +C +F +G +I +L +M +N +O +P +R +S +T + TOP +

      +dispatch +(KeyEvent, Callback, Object, Object)
      + +
      F  +A +B +C +D +G +I +L +M +N +O +P +R +S +T + TOP +

      +findFragmentByWho +(String)
      +findPointerIndex +(MotionEvent, int)
      +fromMediaItem +(Object)
      +fromMediaItemList +(List<?>)
      +fromMediaSession +(Context, Object)
      +fromQueueItem +(Object)
      +fromQueueItemList +(List<?>)
      + +
      G  +A +B +C +D +F +I +L +M +N +O +P +R +S +T + TOP +

      +getAction +(AccessibilityEvent)
      +getCompoundDrawablesRelative +(TextView)
      +getDependents +(View)
      +getDescription +(AccessibilityServiceInfo)
      +getDominantColor +(int)
      +getDominantSwatch +()
      +getDrawable +(Context, int)
      +getDrawerArrowDrawable +()
      +getInsetDodgeRect
      +  type  +(CoordinatorLayout, V, Rect) in android.support.design.widget.CoordinatorLayout.Behavior +
      +  type  +(CoordinatorLayout, FloatingActionButton, Rect) in android.support.design.widget.FloatingActionButton.Behavior +
      +getKeyDispatcherState +(View)
      +getLaunchBounds +()
      +getMediaItemNumberViewFlipper +()
      +getMediaItemPausedView +()
      +getMediaItemPlayingView +()
      +getMediaPlayState +(Object)
      +getMovementGranularity +(AccessibilityEvent)
      +getOnFlingListener +()
      +getOverScrollMode +(View)
      +getPasswordVisibilityToggleContentDescription +()
      +getPasswordVisibilityToggleDrawable +()
      +getPointerCount +(MotionEvent)
      +getPointerId +(MotionEvent, int)
      +getReferrer +(Activity)
      +getScaledPagingTouchSlop +(ViewConfiguration)
      +getSelectionMode +()
      +getSource +(MotionEvent)
      +getX +(MotionEvent, int)
      +getY +(MotionEvent, int)
      + +
      I  +A +B +C +D +F +G +L +M +N +O +P +R +S +T + TOP +

      +isAtLeastNMR1 +()
      +isAutoHideEnabled +()
      +isContextClickable +()
      +isDirty +(CoordinatorLayout, V)
      +isImmediateNotifySupported +()
      +isImportantForAccessibility +(View)
      +isOpaque +(View)
      +isPasswordVisibilityToggleEnabled +()
      +isTracking +(KeyEvent)
      + +
      L  +A +B +C +D +F +G +I +M +N +O +P +R +S +T + TOP +

      +layoutDependsOn +(CoordinatorLayout, FloatingActionButton, View)
      +loadDescription +(AccessibilityServiceInfo, PackageManager)
      + +
      M  +A +B +C +D +F +G +I +L +N +O +P +R +S +T + TOP +

      +makeBasic +()
      +makeClipRevealAnimation +(View, int, int, int, int)
      +makeTaskLaunchBehind +()
      + +
      N  +A +B +C +D +F +G +I +L +M +O +P +R +S +T + TOP +

      +notifyPlayStateChanged +()
      + +
      O  +A +B +C +D +F +G +I +L +M +N +P +R +S +T + TOP +

      +obtain
      +  type  +(Context, Object) in android.support.v4.media.session.MediaSessionCompat +
      +  type  +(Object) in android.support.v4.media.session.MediaSessionCompat.QueueItem +
      +  type  +(int, int, boolean) in android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat +
      +  type  +(int, int, int, int, boolean) in android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.CollectionItemInfoCompat +
      +  type  +(int, float, float, float) in android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat +
      +onAccessibilityStateChanged +(boolean)
      +onAttachedToLayoutParams +(LayoutParams)
      +onBindMediaPlayState +(ViewHolder)
      +onChanged +(int, int, Object)
      +onDependentViewRemoved +(CoordinatorLayout, FloatingActionButton, View)
      +onDetachedFromLayoutParams +()
      +onInserted +(int, int)
      +onMoved +(int, int)
      +onRemoved +(int, int)
      +onRequestChildRectangleOnScreen
      +  type  +(CoordinatorLayout, View, Rect, boolean) in android.support.design.widget.AppBarLayout.ScrollingViewBehavior +
      +  type  +(CoordinatorLayout, V, Rect, boolean) in android.support.design.widget.CoordinatorLayout.Behavior +
      +onSharedElementsArrived +(List<String>, List<View>, OnSharedElementsReadyListener)
      +onStart +()
      +onUnbindMediaPlayState +(ViewHolder)
      + +
      P  +A +B +C +D +F +G +I +L +M +N +O +R +S +T + TOP +

      +prepareForDrop +(View, View, int, int)
      + +
      R  +A +B +C +D +F +G +I +L +M +N +O +P +S +T + TOP +

      +removeAccessibilityStateChangeListener +(AccessibilityManager, AccessibilityStateChangeListener)
      +removeTouchExplorationStateChangeListener +(AccessibilityManager, TouchExplorationStateChangeListener)
      +requestUsageTimeReport +(PendingIntent)
      + +
      S  +A +B +C +D +F +G +I +L +M +N +O +P +R +T + TOP +

      +setAction +(AccessibilityEvent, int)
      +setAlwaysUseBrowserUI +(Intent)
      +setAutoHideEnabled +(boolean)
      +setCollapsedTitleTextColor +(ColorStateList)
      +setContextClickable +(boolean)
      +setDrawerArrowDrawable +(DrawerArrowDrawable)
      +setExpandedTitleTextColor +(ColorStateList)
      +setInstantAppsEnabled +(boolean)
      +setLaunchBounds +(Rect)
      +setMovementGranularity +(AccessibilityEvent, int)
      +setOnChildScrollUpCallback +(OnChildScrollUpCallback)
      +setOnCloseListener +(View, OnCloseListener)
      +setOnFlingListener +(OnFlingListener)
      +setOnQueryTextListener +(View, OnQueryTextListener)
      +setOverScrollMode +(View, int)
      +setPasswordVisibilityToggleContentDescription
      +  type  +(int) in android.support.design.widget.TextInputLayout +
      +  type  +(CharSequence) in android.support.design.widget.TextInputLayout +
      +setPasswordVisibilityToggleDrawable
      +  type  +(Drawable) in android.support.design.widget.TextInputLayout +
      +  type  +(int) in android.support.design.widget.TextInputLayout +
      +setPasswordVisibilityToggleEnabled +(boolean)
      +setPasswordVisibilityToggleTintList +(ColorStateList)
      +setPasswordVisibilityToggleTintMode +(Mode)
      +setSecondaryToolbarViews +(RemoteViews, int[], PendingIntent)
      +setSelectedMediaItemNumberView +(int)
      +setToolbarItem +(int, Bitmap, String)
      +shouldAlwaysUseBrowserUI +(Intent)
      +startTracking +(KeyEvent)
      +stopForeground +(Service, int)
      + +
      T  +A +B +C +D +F +G +I +L +M +N +O +P +R +S + TOP +

      +toKeyCode +(long)
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/methods_index_changes.html b/docs/html/sdk/support_api_diff/24.2.0/changes/methods_index_changes.html new file mode 100644 index 000000000000..5faae4237b70 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/methods_index_changes.html @@ -0,0 +1,222 @@ + + + + + + + + + +Method Changes Index + + + + + + + + + + + + + + + +
      + Filter the Index: +
      +All Methods +
      +Removals +
      +Additions +
      +Changes +
      +
      +Listed as: Added, Removed, Changed +
      + +
      A  +C +D +F +G +I +O +R +S + TOP +

      +addAccessibilityStateChangeListener +(AccessibilityManager, AccessibilityStateChangeListener)
      + +
      C  +A +D +F +G +I +O +R +S + TOP +

      +computeScrollVectorForPosition +(int)
      + +
      D  +A +C +F +G +I +O +R +S + TOP +

      +dispatch +(KeyEvent, Callback, Object, Object)
      + +
      F  +A +C +D +G +I +O +R +S + TOP +

      +findPointerIndex +(MotionEvent, int)
      + +
      G  +A +C +D +F +I +O +R +S + TOP +

      +getDescription +(AccessibilityServiceInfo)
      +getKeyDispatcherState +(View)
      +getOverScrollMode +(View)
      +getPointerCount +(MotionEvent)
      +getPointerId +(MotionEvent, int)
      +getReferrer +(Activity)
      +getScaledPagingTouchSlop +(ViewConfiguration)
      +getSource +(MotionEvent)
      +getX +(MotionEvent, int)
      +getY +(MotionEvent, int)
      + +
      I  +A +C +D +F +G +O +R +S + TOP +

      +isDirty +(CoordinatorLayout, V)
      +isOpaque +(View)
      +isTracking +(KeyEvent)
      + +
      O  +A +C +D +F +G +I +R +S + TOP +

      +obtain
      +  type  +(Context, Object) in android.support.v4.media.session.MediaSessionCompat +
      +  type  +(Object) in android.support.v4.media.session.MediaSessionCompat.QueueItem +
      + +
      R  +A +C +D +F +G +I +O +S + TOP +

      +removeAccessibilityStateChangeListener +(AccessibilityManager, AccessibilityStateChangeListener)
      + +
      S  +A +C +D +F +G +I +O +R + TOP +

      +setOnCloseListener +(View, OnCloseListener)
      +setOnQueryTextListener +(View, OnQueryTextListener)
      +setOverScrollMode +(View, int)
      +setToolbarItem +(int, Bitmap, String)
      +startTracking +(KeyEvent)
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/methods_index_removals.html b/docs/html/sdk/support_api_diff/24.2.0/changes/methods_index_removals.html new file mode 100644 index 000000000000..062ac8f529af --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/methods_index_removals.html @@ -0,0 +1,93 @@ + + + + + + + + + +Method Removals Index + + + + + + + + + + + + + + + +
      + Filter the Index: +
      +All Methods +
      +Removals +
      +Additions +
      +Changes +
      +
      +Listed as: Added, Removed, Changed +
      + +
      L  +O +P + TOP +

      +layoutDependsOn +(CoordinatorLayout, FloatingActionButton, View)
      + +
      O  +L +P + TOP +

      +onAccessibilityStateChanged +(boolean)
      +onDependentViewRemoved +(CoordinatorLayout, FloatingActionButton, View)
      +onInserted +(int, int)
      +onMoved +(int, int)
      +onRemoved +(int, int)
      + +
      P  +L +O + TOP +

      +prepareForDrop +(View, View, int, int)
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/packages_index_additions.html b/docs/html/sdk/support_api_diff/24.2.0/changes/packages_index_additions.html new file mode 100644 index 000000000000..2eff0f794573 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/packages_index_additions.html @@ -0,0 +1,66 @@ + + + + + + + + + +Package Additions Index + + + + + + + + + + + + + + + +
      + Filter the Index: +
      +All Packages +
      +Removals +
      +Additions +
      +Changes +
      +
      +Listed as: Added, Removed, Changed +
      +
      +
      + +android.support.transition
      +android.support.v4.text.util
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/packages_index_all.html b/docs/html/sdk/support_api_diff/24.2.0/changes/packages_index_all.html new file mode 100644 index 000000000000..58e51ed762bb --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/packages_index_all.html @@ -0,0 +1,91 @@ + + + + + + + + + +Package Differences Index + + + + + + + + + + + + + + + +
      + Filter the Index: +
      +Packages +
      +Removals +
      +Additions +
      +Changes +
      +
      +Listed as: Added, Removed, Changed +
      +
      +
      + +android.support.customtabs
      +android.support.design.widget
      +android.support.transition
      +android.support.v14.preference
      +android.support.v17.leanback.widget
      +android.support.v17.preference
      +android.support.v4.accessibilityservice
      +android.support.v4.app
      +android.support.v4.content
      +android.support.v4.graphics.drawable
      +android.support.v4.media
      +android.support.v4.media.session
      +android.support.v4.os
      +android.support.v4.text.util
      +android.support.v4.util
      +android.support.v4.view
      +android.support.v4.view.accessibility
      +android.support.v4.widget
      +android.support.v7.app
      +android.support.v7.appcompat
      +android.support.v7.content.res
      +android.support.v7.graphics
      +android.support.v7.preference
      +android.support.v7.recyclerview
      +android.support.v7.util
      +android.support.v7.widget
      +android.support.v8.renderscript
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/packages_index_changes.html b/docs/html/sdk/support_api_diff/24.2.0/changes/packages_index_changes.html new file mode 100644 index 000000000000..1d9e42859cec --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/packages_index_changes.html @@ -0,0 +1,86 @@ + + + + + + + + + +Package Changes Index + + + + + + + + + + + + + + + +
      + Filter the Index: +
      +All Packages +
      +Removals +
      +Additions +
      +Changes +
      +
      +Listed as: Added, Removed, Changed +
      +
      +
      + +android.support.customtabs
      +android.support.design.widget
      +android.support.v14.preference
      +android.support.v17.leanback.widget
      +android.support.v17.preference
      +android.support.v4.accessibilityservice
      +android.support.v4.app
      +android.support.v4.content
      +android.support.v4.graphics.drawable
      +android.support.v4.media
      +android.support.v4.media.session
      +android.support.v4.os
      +android.support.v4.util
      +android.support.v4.view
      +android.support.v4.view.accessibility
      +android.support.v4.widget
      +android.support.v7.app
      +android.support.v7.content.res
      +android.support.v7.graphics
      +android.support.v7.preference
      +android.support.v7.util
      +android.support.v7.widget
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/packages_index_removals.html b/docs/html/sdk/support_api_diff/24.2.0/changes/packages_index_removals.html new file mode 100644 index 000000000000..d52d40d15e4f --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/packages_index_removals.html @@ -0,0 +1,67 @@ + + + + + + + + + +Package Removals Index + + + + + + + + + + + + + + + +
      + Filter the Index: +
      +All Packages +
      +Removals +
      +Additions +
      +Changes +
      +
      +Listed as: Added, Removed, Changed +
      +
      +
      + +android.support.v7.appcompat
      +android.support.v7.recyclerview
      +android.support.v8.renderscript
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.customtabs.html b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.customtabs.html new file mode 100644 index 000000000000..5959d63f6ec6 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.customtabs.html @@ -0,0 +1,133 @@ + + + + + + + + + +android.support.customtabs + + + + + + + + + + +
      +
      +
      +

      +Package android.support.customtabs +

      +

      + + + + + + + + + + + + + + + + +
      Changed Classes +
      + + CustomTabsIntent +  
      + + CustomTabsIntent.Builder +  
      + + CustomTabsSession +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.design.widget.html b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.design.widget.html new file mode 100644 index 000000000000..510b9bd230c4 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.design.widget.html @@ -0,0 +1,175 @@ + + + + + + + + + +android.support.design.widget + + + + + + + + + + +
      +
      +
      +

      +Package android.support.design.widget +

      +

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Changed Classes +
      + + AppBarLayout.ScrollingViewBehavior +  
      + + BottomSheetBehavior +  
      + + CollapsingToolbarLayout +  
      + + CoordinatorLayout +  
      + + CoordinatorLayout.Behavior +  
      + + CoordinatorLayout.LayoutParams +  
      + + FloatingActionButton.Behavior +  
      + + TabLayout +  
      + + TextInputLayout +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v14.preference.html b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v14.preference.html new file mode 100644 index 000000000000..84efadc653be --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v14.preference.html @@ -0,0 +1,119 @@ + + + + + + + + + +android.support.v14.preference + + + + + + + + + + +
      +
      +
      +

      +Package android.support.v14.preference +

      +

      + + + + + + + + +
      Changed Classes +
      + + PreferenceFragment +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v17.leanback.widget.html b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v17.leanback.widget.html new file mode 100644 index 000000000000..4ce1f3290d07 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v17.leanback.widget.html @@ -0,0 +1,133 @@ + + + + + + + + + +android.support.v17.leanback.widget + + + + + + + + + + +
      +
      +
      +

      +Package android.support.v17.leanback.widget +

      +

      + + + + + + + + + + + + + + + + +
      Changed Classes +
      + + AbstractMediaItemPresenter +  
      + + AbstractMediaItemPresenter.
      ViewHolder
      +
       
      + + ObjectAdapter +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v17.preference.html b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v17.preference.html new file mode 100644 index 000000000000..ad0aaddf14d3 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v17.preference.html @@ -0,0 +1,119 @@ + + + + + + + + + +android.support.v17.preference + + + + + + + + + + +
      +
      +
      +

      +Package android.support.v17.preference +

      +

      + + + + + + + + +
      Changed Classes +
      + + LeanbackSettingsFragment +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.accessibilityservice.html b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.accessibilityservice.html new file mode 100644 index 000000000000..e904a7696f85 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.accessibilityservice.html @@ -0,0 +1,119 @@ + + + + + + + + + +android.support.v4.accessibilityservice + + + + + + + + + + +
      +
      +
      +

      +Package android.support.v4.accessibilityservice +

      +

      + + + + + + + + +
      Changed Classes +
      + + AccessibilityServiceInfoCompat +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.app.html b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.app.html new file mode 100644 index 000000000000..f8e4cb1ded5e --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.app.html @@ -0,0 +1,162 @@ + + + + + + + + + +android.support.v4.app + + + + + + + + + + +
      +
      +
      +

      +Package android.support.v4.app +

      +

      + + + + + + + + +
      Added Interfaces +
      + + SharedElementCallback.
      OnSharedElementsReadyListener
      +
       
      +  +

      + + + + + + + + + + + + + + + + + + + + + + + + +
      Changed Classes +
      + + ActivityCompat +  
      + + ActivityOptionsCompat +  
      + + FragmentController +  
      + + ServiceCompat +  
      + + SharedElementCallback +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.content.html b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.content.html new file mode 100644 index 000000000000..31aa1daa869c --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.content.html @@ -0,0 +1,119 @@ + + + + + + + + + +android.support.v4.content + + + + + + + + + + +
      +
      +
      +

      +Package android.support.v4.content +

      +

      + + + + + + + + +
      Changed Classes +
      + + ContextCompat +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.graphics.drawable.html b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.graphics.drawable.html new file mode 100644 index 000000000000..b1efab35302d --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.graphics.drawable.html @@ -0,0 +1,119 @@ + + + + + + + + + +android.support.v4.graphics.drawable + + + + + + + + + + +
      +
      +
      +

      +Package android.support.v4.graphics.drawable +

      +

      + + + + + + + + +
      Changed Classes +
      + + DrawableCompat +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.media.html b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.media.html new file mode 100644 index 000000000000..612a1a0ce7dd --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.media.html @@ -0,0 +1,140 @@ + + + + + + + + + +android.support.v4.media + + + + + + + + + + +
      +
      +
      +

      +Package android.support.v4.media +

      +

      + + + + + + + + + + + + + + + + + + + + +
      Changed Classes +
      + + MediaBrowserCompat.MediaItem +  
      + + MediaBrowserServiceCompat.
      BrowserRoot
      +
       
      + + MediaDescriptionCompat +  
      + + MediaMetadataCompat +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.media.session.html b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.media.session.html new file mode 100644 index 000000000000..3e46335ffec8 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.media.session.html @@ -0,0 +1,140 @@ + + + + + + + + + +android.support.v4.media.session + + + + + + + + + + +
      +
      +
      +

      +Package android.support.v4.media.session +

      +

      + + + + + + + + + + + + + + + + + + + + +
      Changed Classes +
      + + MediaButtonReceiver +  
      + + MediaSessionCompat +  
      + + MediaSessionCompat.QueueItem +  
      + + PlaybackStateCompat +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.os.html b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.os.html new file mode 100644 index 000000000000..b250855c00b8 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.os.html @@ -0,0 +1,119 @@ + + + + + + + + + +android.support.v4.os + + + + + + + + + + +
      +
      +
      +

      +Package android.support.v4.os +

      +

      + + + + + + + + +
      Changed Classes +
      + + BuildCompat +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.util.html b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.util.html new file mode 100644 index 000000000000..d34506eab361 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.util.html @@ -0,0 +1,119 @@ + + + + + + + + + +android.support.v4.util + + + + + + + + + + +
      +
      +
      +

      +Package android.support.v4.util +

      +

      + + + + + + + + +
      Added Classes +
      + + PatternsCompat +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.view.accessibility.html b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.view.accessibility.html new file mode 100644 index 000000000000..a6362fb09e0f --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.view.accessibility.html @@ -0,0 +1,204 @@ + + + + + + + + + +android.support.v4.view.accessibility + + + + + + + + + + + + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.view.html b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.view.html new file mode 100644 index 000000000000..10b1334d57ba --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.view.html @@ -0,0 +1,147 @@ + + + + + + + + + +android.support.v4.view + + + + + + + + + + +
      +
      +
      +

      +Package android.support.v4.view +

      +

      + + + + + + + + + + + + + + + + + + + + + + + + +
      Changed Classes +
      + + KeyEventCompat +  
      + + MotionEventCompat +  
      + + ViewCompat +  
      + + ViewConfigurationCompat +  
      + + WindowInsetsCompat +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.widget.html b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.widget.html new file mode 100644 index 000000000000..5ed0f6541951 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v4.widget.html @@ -0,0 +1,176 @@ + + + + + + + + + +android.support.v4.widget + + + + + + + + + + +
      +
      +
      +

      +Package android.support.v4.widget +

      +

      + + + + + + + + + + + + + + + + +
      Added Interfaces +
      + + SearchViewCompat.OnCloseListener +  
      + + SearchViewCompat.OnQueryTextListener +  
      + + SwipeRefreshLayout.OnChildScrollUpCallback +  
      +  +

      + + + + + + + + + + + + + + + + + + + + + + + + +
      Changed Classes +
      + + SearchViewCompat +  
      + + SearchViewCompat.OnCloseListenerCompat +  
      + + SearchViewCompat.OnQueryTextListenerCompat +  
      + + SwipeRefreshLayout +  
      + + TextViewCompat +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v7.app.html b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v7.app.html new file mode 100644 index 000000000000..8eb58aa3b4a5 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v7.app.html @@ -0,0 +1,176 @@ + + + + + + + + + +android.support.v7.app + + + + + + + + + + +
      +
      +
      +

      +Package android.support.v7.app +

      +

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Added Classes +
      + + ActionBarActivity +  
      + + AppCompatActivity +  
      + + AppCompatDialogFragment +  
      + + NotificationCompat +  
      + + NotificationCompat.Builder +  
      + + NotificationCompat.MediaStyle +  
      +  +

      + + + + + + + + + + + + +
      Changed Classes +
      + + ActionBarDrawerToggle +  
      + + AppCompatDelegate +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v7.content.res.html b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v7.content.res.html new file mode 100644 index 000000000000..90787f7741a7 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v7.content.res.html @@ -0,0 +1,119 @@ + + + + + + + + + +android.support.v7.content.res + + + + + + + + + + +
      +
      +
      +

      +Package android.support.v7.content.res +

      +

      + + + + + + + + +
      Changed Classes +
      + + AppCompatResources +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v7.graphics.html b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v7.graphics.html new file mode 100644 index 000000000000..bd9cf241109f --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v7.graphics.html @@ -0,0 +1,119 @@ + + + + + + + + + +android.support.v7.graphics + + + + + + + + + + +
      +
      +
      +

      +Package android.support.v7.graphics +

      +

      + + + + + + + + +
      Changed Classes +
      + + Palette +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v7.preference.html b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v7.preference.html new file mode 100644 index 000000000000..b80e0056eff5 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v7.preference.html @@ -0,0 +1,119 @@ + + + + + + + + + +android.support.v7.preference + + + + + + + + + + +
      +
      +
      +

      +Package android.support.v7.preference +

      +

      + + + + + + + + +
      Added Classes +
      + + MultiSelectListPreferenceDialogFragmentCompat +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v7.util.html b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v7.util.html new file mode 100644 index 000000000000..365022f9469e --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v7.util.html @@ -0,0 +1,162 @@ + + + + + + + + + +android.support.v7.util + + + + + + + + + + +
      +
      +
      +

      +Package android.support.v7.util +

      +

      + + + + + + + + + + + + + + + + + + + + + + + + +
      Added Classes and Interfaces +
      + + BatchingListUpdateCallback +  
      + + DiffUtil +  
      + + DiffUtil.Callback +  
      + + DiffUtil.DiffResult +  
      + + ListUpdateCallback +  
      +  +

      + + + + + + + + +
      Changed Classes +
      + + SortedList.Callback +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v7.widget.html b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v7.widget.html new file mode 100644 index 000000000000..e07d5b8ca8a6 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/changes/pkg_android.support.v7.widget.html @@ -0,0 +1,463 @@ + + + + + + + + + +android.support.v7.widget + + + + + + + + + + +
      +
      +
      +

      +Package android.support.v7.widget +

      +

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Added Classes and Interfaces +
      + + ActionMenuView +  
      + + ActionMenuView.LayoutParams +  
      + + ActionMenuView.OnMenuItemClickListener +  
      + + AppCompatAutoCompleteTextView +  
      + + AppCompatButton +  
      + + AppCompatCheckBox +  
      + + AppCompatCheckedTextView +  
      + + AppCompatEditText +  
      + + AppCompatImageButton +  
      + + AppCompatImageView +  
      + + AppCompatMultiAutoCompleteTextView +  
      + + AppCompatRadioButton +  
      + + AppCompatRatingBar +  
      + + AppCompatSeekBar +  
      + + AppCompatSpinner +  
      + + AppCompatTextView +  
      + + CardView +  
      + + GridLayout +  
      + + GridLayout.Alignment +  
      + + GridLayout.LayoutParams +  
      + + GridLayout.Spec +  
      + + LinearLayoutCompat +  
      + + LinearLayoutCompat.LayoutParams +  
      + + LinearSnapHelper +  
      + + ListPopupWindow +  
      + + PopupMenu +  
      + + PopupMenu.OnDismissListener +  
      + + PopupMenu.OnMenuItemClickListener +  
      + + RecyclerView.OnFlingListener +  
      + + RecyclerView.SmoothScroller.
      ScrollVectorProvider
      +
       
      + + SearchView +  
      + + SearchView.OnCloseListener +  
      + + SearchView.OnQueryTextListener +  
      + + SearchView.OnSuggestionListener +  
      + + ShareActionProvider +  
      + + ShareActionProvider.OnShareTargetSelectedListener +  
      + + SnapHelper +  
      + + Space +  
      + + SwitchCompat +  
      + + ThemedSpinnerAdapter +  
      + + ThemedSpinnerAdapter.Helper +  
      + + Toolbar +  
      + + Toolbar.LayoutParams +  
      + + Toolbar.OnMenuItemClickListener +  
      + + Toolbar.SavedState +  
      +  +

      + + + + + + + + + + + + + + + + + + + + +
      Changed Classes +
      + + LinearLayoutManager +  
      + + LinearSmoothScroller +  
      + + RecyclerView +  
      + + StaggeredGridLayoutManager +  
      +  +

      + +
      +
      + + + + diff --git a/docs/html/sdk/support_api_diff/24.2.0/missingSinces.txt b/docs/html/sdk/support_api_diff/24.2.0/missingSinces.txt new file mode 100644 index 000000000000..95149859daf2 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/missingSinces.txt @@ -0,0 +1,183 @@ +NO DOC BLOCK: android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListener Interface +NO DOC BLOCK: android.support.v4.view.accessibility.AccessibilityManagerCompat.TouchExplorationStateChangeListener Interface +NO DOC BLOCK: android.support.v7.app.ActionBarActivity Class +NO DOC BLOCK: android.support.v7.widget.ActionMenuView Class +NO DOC BLOCK: android.support.v7.widget.ActionMenuView.LayoutParams Class +NO DOC BLOCK: android.support.v7.widget.ActionMenuView.OnMenuItemClickListener Interface +NO DOC BLOCK: android.support.v7.app.AppCompatActivity Class +NO DOC BLOCK: android.support.v7.widget.AppCompatAutoCompleteTextView Class +NO DOC BLOCK: android.support.v7.widget.AppCompatButton Class +NO DOC BLOCK: android.support.v7.widget.AppCompatCheckBox Class +NO DOC BLOCK: android.support.v7.widget.AppCompatCheckedTextView Class +NO DOC BLOCK: android.support.v7.app.AppCompatDialogFragment Class +NO DOC BLOCK: android.support.v7.widget.AppCompatEditText Class +NO DOC BLOCK: android.support.v7.widget.AppCompatImageButton Class +NO DOC BLOCK: android.support.v7.widget.AppCompatImageView Class +NO DOC BLOCK: android.support.v7.widget.AppCompatMultiAutoCompleteTextView Class +NO DOC BLOCK: android.support.v7.widget.AppCompatRadioButton Class +NO DOC BLOCK: android.support.v7.widget.AppCompatRatingBar Class +NO DOC BLOCK: android.support.v7.widget.AppCompatSeekBar Class +NO DOC BLOCK: android.support.v7.widget.AppCompatSpinner Class +NO DOC BLOCK: android.support.v7.widget.AppCompatTextView Class +NO DOC BLOCK: android.support.v7.util.BatchingListUpdateCallback Class +NO DOC BLOCK: android.support.v7.widget.CardView Class +NO DOC BLOCK: android.support.v7.util.DiffUtil Class +NO DOC BLOCK: android.support.v7.util.DiffUtil.Callback Class +NO DOC BLOCK: android.support.v7.util.DiffUtil.DiffResult Class +NO DOC BLOCK: android.support.v7.widget.GridLayout Class +NO DOC BLOCK: android.support.v7.widget.GridLayout.Alignment Class +NO DOC BLOCK: android.support.v7.widget.GridLayout.LayoutParams Class +NO DOC BLOCK: android.support.v7.widget.GridLayout.Spec Class +NO DOC BLOCK: android.support.v7.widget.LinearLayoutCompat Class +NO DOC BLOCK: android.support.v7.widget.LinearLayoutCompat.LayoutParams Class +NO DOC BLOCK: android.support.v7.widget.LinearSnapHelper Class +NO DOC BLOCK: android.support.v7.widget.ListPopupWindow Class +NO DOC BLOCK: android.support.v7.util.ListUpdateCallback Interface +NO DOC BLOCK: android.support.v7.preference.MultiSelectListPreferenceDialogFragmentCompat Class +NO DOC BLOCK: android.support.v7.app.NotificationCompat Class +NO DOC BLOCK: android.support.v7.app.NotificationCompat.Builder Class +NO DOC BLOCK: android.support.v7.app.NotificationCompat.MediaStyle Class +NO DOC BLOCK: android.support.v4.util.PatternsCompat Class +NO DOC BLOCK: android.support.v7.widget.PopupMenu Class +NO DOC BLOCK: android.support.v7.widget.PopupMenu.OnDismissListener Interface +NO DOC BLOCK: android.support.v7.widget.PopupMenu.OnMenuItemClickListener Interface +NO DOC BLOCK: android.support.v7.widget.RecyclerView.OnFlingListener Class +NO DOC BLOCK: android.support.v7.widget.RecyclerView.SmoothScroller.ScrollVectorProvider Interface +NO DOC BLOCK: android.support.v7.widget.SearchView Class +NO DOC BLOCK: android.support.v7.widget.SearchView.OnCloseListener Interface +NO DOC BLOCK: android.support.v7.widget.SearchView.OnQueryTextListener Interface +NO DOC BLOCK: android.support.v7.widget.SearchView.OnSuggestionListener Interface +NO DOC BLOCK: android.support.v4.widget.SearchViewCompat.OnCloseListener Interface +NO DOC BLOCK: android.support.v4.widget.SearchViewCompat.OnQueryTextListener Interface +NO DOC BLOCK: android.support.v7.widget.ShareActionProvider Class +NO DOC BLOCK: android.support.v7.widget.ShareActionProvider.OnShareTargetSelectedListener Interface +NO DOC BLOCK: android.support.v4.app.SharedElementCallback.OnSharedElementsReadyListener Interface +NO DOC BLOCK: android.support.v7.widget.SnapHelper Class +NO DOC BLOCK: android.support.v7.widget.Space Class +NO DOC BLOCK: android.support.v4.widget.SwipeRefreshLayout.OnChildScrollUpCallback Interface +NO DOC BLOCK: android.support.v7.widget.SwitchCompat Class +NO DOC BLOCK: android.support.v7.widget.ThemedSpinnerAdapter Interface +NO DOC BLOCK: android.support.v7.widget.ThemedSpinnerAdapter.Helper Class +NO DOC BLOCK: android.support.v7.widget.Toolbar Class +NO DOC BLOCK: android.support.v7.widget.Toolbar.LayoutParams Class +NO DOC BLOCK: android.support.v7.widget.Toolbar.OnMenuItemClickListener Interface +NO DOC BLOCK: android.support.v7.widget.Toolbar.SavedState Class +NO DOC BLOCK: android.support.v4.view.WindowInsetsCompat Constructor (android.support.v4.view.WindowInsetsCompat) +NO DOC BLOCK: android.support.v4.view.accessibility.AccessibilityManagerCompat Method addTouchExplorationStateChangeListener(android.view.accessibility.AccessibilityManager, android.support.v4.view.accessibility.AccessibilityManagerCompat.TouchExplorationStateChangeListener) +NO DOC BLOCK: android.support.v4.media.session.MediaButtonReceiver Method buildMediaButtonPendingIntent(android.content.Context, android.content.ComponentName, long) +NO DOC BLOCK: android.support.v4.media.session.MediaButtonReceiver Method buildMediaButtonPendingIntent(android.content.Context, long) +NO DOC BLOCK: android.support.v4.graphics.drawable.DrawableCompat Method clearColorFilter(android.graphics.drawable.Drawable) +NO DOC BLOCK: android.support.design.widget.TabLayout Method clearOnTabSelectedListeners() +NO DOC BLOCK: android.support.v7.widget.StaggeredGridLayoutManager Method computeScrollVectorForPosition(int) +NO DOC BLOCK: android.support.v4.app.FragmentController Method findFragmentByWho(java.lang.String) +NO DOC BLOCK: android.support.v4.media.MediaBrowserCompat.MediaItem Method fromMediaItem(java.lang.Object) +NO DOC BLOCK: android.support.v4.media.MediaBrowserCompat.MediaItem Method fromMediaItemList(java.util.List) +NO DOC BLOCK: android.support.v4.media.session.MediaSessionCompat Method fromMediaSession(android.content.Context, java.lang.Object) +NO DOC BLOCK: android.support.v4.media.session.MediaSessionCompat.QueueItem Method fromQueueItem(java.lang.Object) +NO DOC BLOCK: android.support.v4.media.session.MediaSessionCompat.QueueItem Method fromQueueItemList(java.util.List) +NO DOC BLOCK: android.support.v4.view.accessibility.AccessibilityEventCompat Method getAction(android.view.accessibility.AccessibilityEvent) +NO DOC BLOCK: android.support.v4.widget.TextViewCompat Method getCompoundDrawablesRelative(android.widget.TextView) +NO DOC BLOCK: android.support.design.widget.CoordinatorLayout Method getDependents(android.view.View) +NO DOC BLOCK: android.support.v7.graphics.Palette Method getDominantColor(int) +NO DOC BLOCK: android.support.v7.graphics.Palette Method getDominantSwatch() +NO DOC BLOCK: android.support.v7.content.res.AppCompatResources Method getDrawable(android.content.Context, int) +NO DOC BLOCK: android.support.v7.app.ActionBarDrawerToggle Method getDrawerArrowDrawable() +NO DOC BLOCK: android.support.design.widget.CoordinatorLayout.Behavior Method getInsetDodgeRect(android.support.design.widget.CoordinatorLayout, V, android.graphics.Rect) +NO DOC BLOCK: android.support.design.widget.FloatingActionButton.Behavior Method getInsetDodgeRect(android.support.design.widget.CoordinatorLayout, android.support.design.widget.FloatingActionButton, android.graphics.Rect) +NO DOC BLOCK: android.support.v4.app.ActivityOptionsCompat Method getLaunchBounds() +NO DOC BLOCK: android.support.v17.leanback.widget.AbstractMediaItemPresenter.ViewHolder Method getMediaItemNumberViewFlipper() +NO DOC BLOCK: android.support.v17.leanback.widget.AbstractMediaItemPresenter.ViewHolder Method getMediaItemPausedView() +NO DOC BLOCK: android.support.v17.leanback.widget.AbstractMediaItemPresenter.ViewHolder Method getMediaItemPlayingView() +NO DOC BLOCK: android.support.v17.leanback.widget.AbstractMediaItemPresenter Method getMediaPlayState(java.lang.Object) +NO DOC BLOCK: android.support.v4.view.accessibility.AccessibilityEventCompat Method getMovementGranularity(android.view.accessibility.AccessibilityEvent) +NO DOC BLOCK: android.support.v7.widget.RecyclerView Method getOnFlingListener() +NO DOC BLOCK: android.support.design.widget.TextInputLayout Method getPasswordVisibilityToggleContentDescription() +NO DOC BLOCK: android.support.design.widget.TextInputLayout Method getPasswordVisibilityToggleDrawable() +NO DOC BLOCK: android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat Method getSelectionMode() +NO DOC BLOCK: android.support.v4.os.BuildCompat Method isAtLeastNMR1() +NO DOC BLOCK: android.support.design.widget.FloatingActionButton.Behavior Method isAutoHideEnabled() +NO DOC BLOCK: android.support.v4.view.accessibility.AccessibilityNodeInfoCompat Method isContextClickable() +NO DOC BLOCK: android.support.v17.leanback.widget.ObjectAdapter Method isImmediateNotifySupported() +NO DOC BLOCK: android.support.v4.view.ViewCompat Method isImportantForAccessibility(android.view.View) +NO DOC BLOCK: android.support.design.widget.TextInputLayout Method isPasswordVisibilityToggleEnabled() +NO DOC BLOCK: android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat Method loadDescription(android.accessibilityservice.AccessibilityServiceInfo, android.content.pm.PackageManager) +NO DOC BLOCK: android.support.v4.app.ActivityOptionsCompat Method makeBasic() +NO DOC BLOCK: android.support.v4.app.ActivityOptionsCompat Method makeClipRevealAnimation(android.view.View, int, int, int, int) +NO DOC BLOCK: android.support.v4.app.ActivityOptionsCompat Method makeTaskLaunchBehind() +NO DOC BLOCK: android.support.v17.leanback.widget.AbstractMediaItemPresenter.ViewHolder Method notifyPlayStateChanged() +NO DOC BLOCK: android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat Method obtain(int, int, boolean) +NO DOC BLOCK: android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.CollectionItemInfoCompat Method obtain(int, int, int, int, boolean) +NO DOC BLOCK: android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat Method obtain(int, float, float, float) +NO DOC BLOCK: android.support.design.widget.CoordinatorLayout.Behavior Method onAttachedToLayoutParams(android.support.design.widget.CoordinatorLayout.LayoutParams) +NO DOC BLOCK: android.support.v17.leanback.widget.AbstractMediaItemPresenter Method onBindMediaPlayState(android.support.v17.leanback.widget.AbstractMediaItemPresenter.ViewHolder) +NO DOC BLOCK: android.support.v7.util.SortedList.Callback Method onChanged(int, int, java.lang.Object) +NO DOC BLOCK: android.support.design.widget.CoordinatorLayout.Behavior Method onDetachedFromLayoutParams() +NO DOC BLOCK: android.support.design.widget.AppBarLayout.ScrollingViewBehavior Method onRequestChildRectangleOnScreen(android.support.design.widget.CoordinatorLayout, android.view.View, android.graphics.Rect, boolean) +NO DOC BLOCK: android.support.design.widget.CoordinatorLayout.Behavior Method onRequestChildRectangleOnScreen(android.support.design.widget.CoordinatorLayout, V, android.graphics.Rect, boolean) +NO DOC BLOCK: android.support.v4.app.SharedElementCallback Method onSharedElementsArrived(java.util.List, java.util.List, android.support.v4.app.SharedElementCallback.OnSharedElementsReadyListener) +NO DOC BLOCK: android.support.v7.app.AppCompatDelegate Method onStart() +NO DOC BLOCK: android.support.v17.leanback.widget.AbstractMediaItemPresenter Method onUnbindMediaPlayState(android.support.v17.leanback.widget.AbstractMediaItemPresenter.ViewHolder) +NO DOC BLOCK: android.support.v4.view.accessibility.AccessibilityManagerCompat Method removeTouchExplorationStateChangeListener(android.view.accessibility.AccessibilityManager, android.support.v4.view.accessibility.AccessibilityManagerCompat.TouchExplorationStateChangeListener) +NO DOC BLOCK: android.support.v4.app.ActivityOptionsCompat Method requestUsageTimeReport(android.app.PendingIntent) +NO DOC BLOCK: android.support.v4.view.accessibility.AccessibilityEventCompat Method setAction(android.view.accessibility.AccessibilityEvent, int) +NO DOC BLOCK: android.support.customtabs.CustomTabsIntent Method setAlwaysUseBrowserUI(android.content.Intent) +NO DOC BLOCK: android.support.design.widget.FloatingActionButton.Behavior Method setAutoHideEnabled(boolean) +NO DOC BLOCK: android.support.design.widget.CollapsingToolbarLayout Method setCollapsedTitleTextColor(android.content.res.ColorStateList) +NO DOC BLOCK: android.support.v4.view.accessibility.AccessibilityNodeInfoCompat Method setContextClickable(boolean) +NO DOC BLOCK: android.support.v7.app.ActionBarDrawerToggle Method setDrawerArrowDrawable(android.support.v7.graphics.drawable.DrawerArrowDrawable) +NO DOC BLOCK: android.support.design.widget.CollapsingToolbarLayout Method setExpandedTitleTextColor(android.content.res.ColorStateList) +NO DOC BLOCK: android.support.customtabs.CustomTabsIntent.Builder Method setInstantAppsEnabled(boolean) +NO DOC BLOCK: android.support.v4.app.ActivityOptionsCompat Method setLaunchBounds(android.graphics.Rect) +NO DOC BLOCK: android.support.v4.view.accessibility.AccessibilityEventCompat Method setMovementGranularity(android.view.accessibility.AccessibilityEvent, int) +NO DOC BLOCK: android.support.v4.widget.SwipeRefreshLayout Method setOnChildScrollUpCallback(android.support.v4.widget.SwipeRefreshLayout.OnChildScrollUpCallback) +NO DOC BLOCK: android.support.v7.widget.RecyclerView Method setOnFlingListener(android.support.v7.widget.RecyclerView.OnFlingListener) +NO DOC BLOCK: android.support.design.widget.TextInputLayout Method setPasswordVisibilityToggleContentDescription(int) +NO DOC BLOCK: android.support.design.widget.TextInputLayout Method setPasswordVisibilityToggleContentDescription(java.lang.CharSequence) +NO DOC BLOCK: android.support.design.widget.TextInputLayout Method setPasswordVisibilityToggleDrawable(android.graphics.drawable.Drawable) +NO DOC BLOCK: android.support.design.widget.TextInputLayout Method setPasswordVisibilityToggleDrawable(int) +NO DOC BLOCK: android.support.design.widget.TextInputLayout Method setPasswordVisibilityToggleEnabled(boolean) +NO DOC BLOCK: android.support.design.widget.TextInputLayout Method setPasswordVisibilityToggleTintList(android.content.res.ColorStateList) +NO DOC BLOCK: android.support.design.widget.TextInputLayout Method setPasswordVisibilityToggleTintMode(android.graphics.PorterDuff.Mode) +NO DOC BLOCK: android.support.customtabs.CustomTabsSession Method setSecondaryToolbarViews(android.widget.RemoteViews, int[], android.app.PendingIntent) +NO DOC BLOCK: android.support.v17.leanback.widget.AbstractMediaItemPresenter.ViewHolder Method setSelectedMediaItemNumberView(int) +NO DOC BLOCK: android.support.customtabs.CustomTabsIntent Method shouldAlwaysUseBrowserUI(android.content.Intent) +NO DOC BLOCK: android.support.v4.app.ServiceCompat Method stopForeground(android.app.Service, int) +NO DOC BLOCK: android.support.v4.media.session.PlaybackStateCompat Method toKeyCode(long) +NO DOC BLOCK: android.support.v4.view.accessibility.AccessibilityNodeInfoCompat Field ACTION_ARGUMENT_COLUMN_INT +NO DOC BLOCK: android.support.v4.view.accessibility.AccessibilityNodeInfoCompat Field ACTION_ARGUMENT_PROGRESS_VALUE +NO DOC BLOCK: android.support.v4.view.accessibility.AccessibilityNodeInfoCompat Field ACTION_ARGUMENT_ROW_INT +NO DOC BLOCK: android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat Field ACTION_CONTEXT_CLICK +NO DOC BLOCK: android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat Field ACTION_SCROLL_DOWN +NO DOC BLOCK: android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat Field ACTION_SCROLL_LEFT +NO DOC BLOCK: android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat Field ACTION_SCROLL_RIGHT +NO DOC BLOCK: android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat Field ACTION_SCROLL_TO_POSITION +NO DOC BLOCK: android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat Field ACTION_SCROLL_UP +NO DOC BLOCK: android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat Field ACTION_SET_PROGRESS +NO DOC BLOCK: android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat Field ACTION_SHOW_ON_SCREEN +NO DOC BLOCK: android.support.v4.media.MediaDescriptionCompat Field BT_FOLDER_TYPE_ALBUMS +NO DOC BLOCK: android.support.v4.media.MediaDescriptionCompat Field BT_FOLDER_TYPE_ARTISTS +NO DOC BLOCK: android.support.v4.media.MediaDescriptionCompat Field BT_FOLDER_TYPE_GENRES +NO DOC BLOCK: android.support.v4.media.MediaDescriptionCompat Field BT_FOLDER_TYPE_MIXED +NO DOC BLOCK: android.support.v4.media.MediaDescriptionCompat Field BT_FOLDER_TYPE_PLAYLISTS +NO DOC BLOCK: android.support.v4.media.MediaDescriptionCompat Field BT_FOLDER_TYPE_TITLES +NO DOC BLOCK: android.support.v4.media.MediaDescriptionCompat Field BT_FOLDER_TYPE_YEARS +NO DOC BLOCK: android.support.design.widget.CoordinatorLayout.LayoutParams Field dodgeInsetEdges +NO DOC BLOCK: android.support.v4.media.MediaDescriptionCompat Field EXTRA_BT_FOLDER_TYPE +NO DOC BLOCK: android.support.customtabs.CustomTabsIntent Field EXTRA_ENABLE_INSTANT_APPS +NO DOC BLOCK: android.support.v4.media.MediaBrowserServiceCompat.BrowserRoot Field EXTRA_SUGGESTION_KEYWORDS +NO DOC BLOCK: android.support.v4.app.ActivityOptionsCompat Field EXTRA_USAGE_TIME_REPORT +NO DOC BLOCK: android.support.v4.app.ActivityOptionsCompat Field EXTRA_USAGE_TIME_REPORT_PACKAGES +NO DOC BLOCK: android.support.v4.view.accessibility.AccessibilityNodeProviderCompat Field HOST_VIEW_ID +NO DOC BLOCK: android.support.design.widget.CoordinatorLayout.LayoutParams Field insetEdge +NO DOC BLOCK: android.support.v4.media.MediaMetadataCompat Field METADATA_KEY_BT_FOLDER_TYPE +NO DOC BLOCK: android.support.v4.media.MediaMetadataCompat Field METADATA_KEY_MEDIA_URI +NO DOC BLOCK: android.support.design.widget.BottomSheetBehavior Field PEEK_HEIGHT_AUTO +NO DOC BLOCK: android.support.v17.leanback.widget.AbstractMediaItemPresenter Field PLAY_STATE_INITIAL +NO DOC BLOCK: android.support.v17.leanback.widget.AbstractMediaItemPresenter Field PLAY_STATE_PAUSED +NO DOC BLOCK: android.support.v17.leanback.widget.AbstractMediaItemPresenter Field PLAY_STATE_PLAYING +NO DOC BLOCK: android.support.v4.app.ServiceCompat Field STOP_FOREGROUND_DETACH +NO DOC BLOCK: android.support.v4.app.ServiceCompat Field STOP_FOREGROUND_REMOVE +NO DOC BLOCK: android.support.v4.view.accessibility.AccessibilityEventCompat Field TYPE_ASSIST_READING_CONTEXT +NO DOC BLOCK: android.support.v4.view.accessibility.AccessibilityWindowInfoCompat Field TYPE_SPLIT_SCREEN_DIVIDER +NO DOC BLOCK: android.support.v4.view.accessibility.AccessibilityEventCompat Field TYPE_VIEW_CONTEXT_CLICKED +NO DOC BLOCK: android.support.v4.view.accessibility.AccessibilityEventCompat Field TYPE_WINDOWS_CHANGED diff --git a/docs/html/sdk/support_api_diff/24.2.0/stylesheet-jdiff.css b/docs/html/sdk/support_api_diff/24.2.0/stylesheet-jdiff.css new file mode 100644 index 000000000000..edafaa3da3e5 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/stylesheet-jdiff.css @@ -0,0 +1,44 @@ + +/* (http://www.jdiff.org) */ + +div.and-diff-id {border: 1px solid #eee;position:relative;float:right;clear:both;padding:0px;} +table.diffspectable {border:1px;padding:0px;margin:0px;} +.diffspechead {background-color:#eee;} +.diffspectable tr {border:0px;padding:0px;} +.diffspectable td {background-color:eee;border:0px;font-size:90%;font-weight:normal;padding:0px;padding-left:1px;padding-right:1px;text-align:center;color:777;} +td.diffvalueold {color:orange;background-color:white;border:0px;font-size:80%;font-style:normal;text-align:left;padding:0px;padding-left:1px;padding-right:1px;line-height:.95em;} +td.diffvaluenew {color:green;background-color:white;border:0px;font-size:80%;font-weight:normal;text-align:left;padding:0px;padding-left:1px;padding-right:1px;line-height:.95em;} +td.diffvalue {color:444;background-color:white;border:0px;font-size:80%;font-weight:normal;text-align:left;padding:0px;padding-left:1px;padding-right:1px;line-height:.95em;} +td.diffspec {background-color:white;border:0px;font-size:80%;font-weight:normal;padding:1px;color:444;text-align:right;padding-right:.5em;line-height:.95em;} +tt {font-size:11pt;font-family:monospace;} +.indexHeader { + font-size:96%; + line-height:.8em;} +.jdiffIndex td { + font-size:96%; + xline-height:.8em; + padding:2px; + padding-left:1em;} +.indexText { + font-size:100%; + padding-left:1em;} +#indexTableCaption { + font-size:96%; + margin-top:.25em; + margin-bottom:0; + } +.hiddenlink { + font-size:96%; + line-height:.8em; + text-decoration:none;} +a { + text-decoration:none;} +a:hover { + text-decoration:underline;} +.indexBox { + border: 1px solid red; + margin:1em 0 0 0;} +.letterIndexHead { + font-size: 1.5em;font-weight:9; + margin:0 0 0em 0; + border: 1px solid red;} diff --git a/docs/html/sdk/support_api_diff/24.2.0/user_comments_for_24.1.0_to_24.2.0.xml b/docs/html/sdk/support_api_diff/24.2.0/user_comments_for_24.1.0_to_24.2.0.xml new file mode 100644 index 000000000000..5a1bfc6171a3 --- /dev/null +++ b/docs/html/sdk/support_api_diff/24.2.0/user_comments_for_24.1.0_to_24.2.0.xml @@ -0,0 +1,1897 @@ + + + + + + + + + + + + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + + + InsertCommentsHere + + + + -- GitLab From f8da30dc65b833558a4eb654f7d80dfdd60d844a Mon Sep 17 00:00:00 2001 From: Teng-Hui Zhu Date: Mon, 15 Aug 2016 10:28:20 -0700 Subject: [PATCH 029/809] Correctly report the transparent region First, we fix the transparent region computation to use the order as the drawing. Previously, it is using the tree traverse order, not the draw order. Second, add the y offset for any view with positive z value, this will allow some space for shadow. b/30124573 Change-Id: I98d38261ffd346b762651e087cb243e45fed6952 --- core/java/android/view/View.java | 10 ++++++++-- core/java/android/view/ViewGroup.java | 26 +++++++++++++++++++------- 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index e7553ec943ec..329984972ec3 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -20269,8 +20269,14 @@ public class View implements Drawable.Callback, KeyEvent.Callback, // remove it from the transparent region. final int[] location = attachInfo.mTransparentLocation; getLocationInWindow(location); - region.op(location[0], location[1], location[0] + mRight - mLeft, - location[1] + mBottom - mTop, Region.Op.DIFFERENCE); + // When a view has Z value, then it will be better to leave some area below the view + // for drawing shadow. The shadow outset is proportional to the Z value. Note that + // the bottom part needs more offset than the left, top and right parts due to the + // spot light effects. + int shadowOffset = getZ() > 0 ? (int) getZ() : 0; + region.op(location[0] - shadowOffset, location[1] - shadowOffset, + location[0] + mRight - mLeft + shadowOffset, + location[1] + mBottom - mTop + (shadowOffset * 3), Region.Op.DIFFERENCE); } else { if (mBackground != null && mBackground.getOpacity() != PixelFormat.TRANSPARENT) { // The SKIP_DRAW flag IS set and the background drawable exists, we remove diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java index 3ff8d4f2e2b1..6933efc15b68 100644 --- a/core/java/android/view/ViewGroup.java +++ b/core/java/android/view/ViewGroup.java @@ -6406,16 +6406,28 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager return true; } super.gatherTransparentRegion(region); - final View[] children = mChildren; - final int count = mChildrenCount; + // Instead of naively traversing the view tree, we have to traverse according to the Z + // order here. We need to go with the same order as dispatchDraw(). + // One example is that after surfaceView punch a hole, we will still allow other views drawn + // on top of that hole. In this case, those other views should be able to cut the + // transparent region into smaller area. + final int childrenCount = mChildrenCount; boolean noneOfTheChildrenAreTransparent = true; - for (int i = 0; i < count; i++) { - final View child = children[i]; - if ((child.mViewFlags & VISIBILITY_MASK) == VISIBLE || child.getAnimation() != null) { - if (!child.gatherTransparentRegion(region)) { - noneOfTheChildrenAreTransparent = false; + if (childrenCount > 0) { + final ArrayList preorderedList = buildOrderedChildList(); + final boolean customOrder = preorderedList == null + && isChildrenDrawingOrderEnabled(); + final View[] children = mChildren; + for (int i = 0; i < childrenCount; i++) { + final int childIndex = getAndVerifyPreorderedIndex(childrenCount, i, customOrder); + final View child = getAndVerifyPreorderedView(preorderedList, children, childIndex); + if ((child.mViewFlags & VISIBILITY_MASK) == VISIBLE || child.getAnimation() != null) { + if (!child.gatherTransparentRegion(region)) { + noneOfTheChildrenAreTransparent = false; + } } } + if (preorderedList != null) preorderedList.clear(); } return meOpaque || noneOfTheChildrenAreTransparent; } -- GitLab From b5ed860de71fe165af63b4255da25d0295abaa69 Mon Sep 17 00:00:00 2001 From: Tyler Gunn Date: Wed, 17 Aug 2016 13:48:27 -0700 Subject: [PATCH 030/809] Add connection events for indicated when a connection is remotely held. Note: This is different than the existing EVENT_ON_HOLD_TONE_START and EVENT_ON_HOLD_TONE_END events, which trigger playing a hold tone for remotely held calls. Those events also take into account whether the call is foreground/background; it is left as a future exercise to clean that up. Bug: 30349182 Change-Id: I919365d243ae3b9fe56454c7a2b9d5805b2c03a2 --- telecomm/java/android/telecom/Connection.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/telecomm/java/android/telecom/Connection.java b/telecomm/java/android/telecom/Connection.java index 4da5ff28204e..a093d54568d3 100644 --- a/telecomm/java/android/telecom/Connection.java +++ b/telecomm/java/android/telecom/Connection.java @@ -461,6 +461,32 @@ public abstract class Connection extends Conferenceable { */ public static final String EVENT_CALL_MERGE_FAILED = "android.telecom.event.CALL_MERGE_FAILED"; + /** + * Connection event used to inform {@link InCallService}s when a call has been put on hold by + * the remote party. + *

      + * This is different than the {@link Connection#STATE_HOLDING} state which indicates that the + * call is being held locally on the device. When a capable {@link ConnectionService} receives + * signalling to indicate that the remote party has put the call on hold, it can send this + * connection event. + * @hide + */ + public static final String EVENT_CALL_REMOTELY_HELD = + "android.telecom.event.CALL_REMOTELY_HELD"; + + /** + * Connection event used to inform {@link InCallService}s when a call which was remotely held + * (see {@link #EVENT_CALL_REMOTELY_HELD}) has been un-held by the remote party. + *

      + * This is different than the {@link Connection#STATE_HOLDING} state which indicates that the + * call is being held locally on the device. When a capable {@link ConnectionService} receives + * signalling to indicate that the remote party has taken the call off hold, it can send this + * connection event. + * @hide + */ + public static final String EVENT_CALL_REMOTELY_UNHELD = + "android.telecom.event.CALL_REMOTELY_UNHELD"; + // Flag controlling whether PII is emitted into the logs private static final boolean PII_DEBUG = Log.isLoggable(android.util.Log.DEBUG); -- GitLab From 20488d97cdc9aa7e98f6fd75c2890ba18781654a Mon Sep 17 00:00:00 2001 From: Felipe Leme Date: Wed, 17 Aug 2016 13:39:10 -0700 Subject: [PATCH 031/809] DO NOT MERGE ANYWHERE - Clear preferences when package is removed. (cherry pick of commits 2154caf2f80fa87df84813b8e344f85094a454fd and da1fc0a9c23697cc255efdccc47862bd1277da3f). Change-Id: I5a019d771da6ff52ea36ee683a44405f6ea24853 Fixes: 30900628 Fixes: 28722556 --- .../android/documentsui/LocalPreferences.java | 27 +++++++++++++++++++ .../android/documentsui/PackageReceiver.java | 14 ++++++---- 2 files changed, 36 insertions(+), 5 deletions(-) diff --git a/packages/DocumentsUI/src/com/android/documentsui/LocalPreferences.java b/packages/DocumentsUI/src/com/android/documentsui/LocalPreferences.java index d2e9885edf14..b3db037697f3 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/LocalPreferences.java +++ b/packages/DocumentsUI/src/com/android/documentsui/LocalPreferences.java @@ -22,6 +22,7 @@ import android.annotation.IntDef; import android.annotation.Nullable; import android.content.Context; import android.content.SharedPreferences; +import android.content.SharedPreferences.Editor; import android.os.UserHandle; import android.preference.PreferenceManager; @@ -84,6 +85,15 @@ public class LocalPreferences { @Retention(RetentionPolicy.SOURCE) public @interface PermissionStatus {} + /** + * Clears all preferences associated with a given package. + * + *

      Typically called when a package is removed or when user asked to clear its data. + */ + static void clearPackagePreferences(Context context, String packageName) { + clearScopedAccessPreferences(context, packageName); + } + /** * Methods below are used to keep track of denied user requests on scoped directory access so * the dialog is not offered when user checked the 'Do not ask again' box @@ -108,6 +118,23 @@ public class LocalPreferences { getPrefs(context).edit().putInt(key, status).apply(); } + private static void clearScopedAccessPreferences(Context context, String packageName) { + final String keySubstring = "|" + packageName + "|"; + final SharedPreferences prefs = getPrefs(context); + Editor editor = null; + for (final String key : prefs.getAll().keySet()) { + if (key.contains(keySubstring)) { + if (editor == null) { + editor = prefs.edit(); + } + editor.remove(key); + } + } + if (editor != null) { + editor.apply(); + } + } + private static String getScopedAccessDenialsKey(String packageName, String uuid, String directory) { final int userId = UserHandle.myUserId(); diff --git a/packages/DocumentsUI/src/com/android/documentsui/PackageReceiver.java b/packages/DocumentsUI/src/com/android/documentsui/PackageReceiver.java index aef63afcbcd7..fd1183fda13d 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/PackageReceiver.java +++ b/packages/DocumentsUI/src/com/android/documentsui/PackageReceiver.java @@ -23,7 +23,7 @@ import android.content.Intent; import android.net.Uri; /** - * Clean up {@link RecentsProvider} when packages are removed. + * Cleans up {@link RecentsProvider} and {@link LocalPreferences} when packages are removed. */ public class PackageReceiver extends BroadcastReceiver { @Override @@ -31,15 +31,19 @@ public class PackageReceiver extends BroadcastReceiver { final ContentResolver resolver = context.getContentResolver(); final String action = intent.getAction(); + final Uri data = intent.getData(); + final String packageName = data == null ? null : data.getSchemeSpecificPart(); + if (Intent.ACTION_PACKAGE_FULLY_REMOVED.equals(action)) { resolver.call(RecentsProvider.buildRecent(), RecentsProvider.METHOD_PURGE, null, null); - + if (packageName != null) { + LocalPreferences.clearPackagePreferences(context, packageName); + } } else if (Intent.ACTION_PACKAGE_DATA_CLEARED.equals(action)) { - final Uri data = intent.getData(); - if (data != null) { - final String packageName = data.getSchemeSpecificPart(); + if (packageName != null) { resolver.call(RecentsProvider.buildRecent(), RecentsProvider.METHOD_PURGE_PACKAGE, packageName, null); + LocalPreferences.clearPackagePreferences(context, packageName); } } } -- GitLab From a11d02477e7e1f734927911c3f40efb65945dda7 Mon Sep 17 00:00:00 2001 From: Felipe Leme Date: Wed, 10 Aug 2016 14:02:24 -0700 Subject: [PATCH 032/809] DO NOT MERGE ANYWHERE (cherrpy pick of commit cc8fcf2efd66afdaa900b4d27e1eb784e8d40752). Don't open drawer when back is pressed after being launched externally. Change-Id: I3e8afd68c33b519dd5d6b27e3fa94653c2537612 Fixes: 30743235 --- .../src/com/android/documentsui/FilesActivity.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/DocumentsUI/src/com/android/documentsui/FilesActivity.java b/packages/DocumentsUI/src/com/android/documentsui/FilesActivity.java index b82f8dd3d7a3..ae8938de1e3d 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/FilesActivity.java +++ b/packages/DocumentsUI/src/com/android/documentsui/FilesActivity.java @@ -401,8 +401,13 @@ public class FilesActivity extends BaseActivity { return true; } - // Open the Close drawer if it is closed and we're at the top of a root. - if (size <= 1) { + final Intent intent = getIntent(); + final boolean launchedExternally = intent != null && intent.getData() != null + && mState.action == State.ACTION_BROWSE; + + // Open the Close drawer if it is closed and we're at the top of a root, but only when + // not launched by another app. + if (size <= 1 && !launchedExternally) { mDrawer.setOpen(true); // Remember so we don't just close it again if back is pressed again. mDrawerLastFiddled = System.currentTimeMillis(); -- GitLab From 442ed57e4b68e0904813b22ab6bb4c55e56bb984 Mon Sep 17 00:00:00 2001 From: Svet Ganov Date: Wed, 17 Aug 2016 17:29:43 -0700 Subject: [PATCH 033/809] Grab lock when accessing mutable state bug:30881375 Change-Id: Ied52fd9666f28b5c2038144b85cd74480ccfde43 --- .../com/android/server/AppOpsService.java | 52 +++++++++++-------- 1 file changed, 31 insertions(+), 21 deletions(-) diff --git a/services/core/java/com/android/server/AppOpsService.java b/services/core/java/com/android/server/AppOpsService.java index b5b0cd86f397..4caeba84b202 100644 --- a/services/core/java/com/android/server/AppOpsService.java +++ b/services/core/java/com/android/server/AppOpsService.java @@ -875,7 +875,7 @@ public class AppOpsService extends IAppOpsService.Stub { return AppOpsManager.MODE_IGNORED; } synchronized (this) { - if (isOpRestricted(uid, code, resolvedPackageName)) { + if (isOpRestrictedLocked(uid, code, resolvedPackageName)) { return AppOpsManager.MODE_IGNORED; } code = AppOpsManager.opToSwitch(code); @@ -1024,7 +1024,7 @@ public class AppOpsService extends IAppOpsService.Stub { return AppOpsManager.MODE_ERRORED; } Op op = getOpLocked(ops, code, true); - if (isOpRestricted(uid, code, packageName)) { + if (isOpRestrictedLocked(uid, code, packageName)) { return AppOpsManager.MODE_IGNORED; } if (op.duration == -1) { @@ -1082,7 +1082,7 @@ public class AppOpsService extends IAppOpsService.Stub { return AppOpsManager.MODE_ERRORED; } Op op = getOpLocked(ops, code, true); - if (isOpRestricted(uid, code, resolvedPackageName)) { + if (isOpRestrictedLocked(uid, code, resolvedPackageName)) { return AppOpsManager.MODE_IGNORED; } final int switchCode = AppOpsManager.opToSwitch(code); @@ -1308,7 +1308,7 @@ public class AppOpsService extends IAppOpsService.Stub { return op; } - private boolean isOpRestricted(int uid, int code, String packageName) { + private boolean isOpRestrictedLocked(int uid, int code, String packageName) { int userHandle = UserHandle.getUserId(uid); final int restrictionSetCount = mOpUserRestrictions.size(); @@ -2210,24 +2210,32 @@ public class AppOpsService extends IAppOpsService.Stub { private void setUserRestrictionNoCheck(int code, boolean restricted, IBinder token, int userHandle, String[] exceptionPackages) { - ClientRestrictionState restrictionState = mOpUserRestrictions.get(token); + boolean notifyChange = false; - if (restrictionState == null) { - try { - restrictionState = new ClientRestrictionState(token); - } catch (RemoteException e) { - return; + synchronized (AppOpsService.this) { + ClientRestrictionState restrictionState = mOpUserRestrictions.get(token); + + if (restrictionState == null) { + try { + restrictionState = new ClientRestrictionState(token); + } catch (RemoteException e) { + return; + } + mOpUserRestrictions.put(token, restrictionState); } - mOpUserRestrictions.put(token, restrictionState); - } - if (restrictionState.setRestriction(code, restricted, exceptionPackages, userHandle)) { - notifyWatchersOfChange(code); + if (restrictionState.setRestriction(code, restricted, exceptionPackages, userHandle)) { + notifyChange = true; + } + + if (restrictionState.isDefault()) { + mOpUserRestrictions.remove(token); + restrictionState.destroy(); + } } - if (restrictionState.isDefault()) { - mOpUserRestrictions.remove(token); - restrictionState.destroy(); + if (notifyChange) { + notifyWatchersOfChange(code); } } @@ -2263,10 +2271,12 @@ public class AppOpsService extends IAppOpsService.Stub { @Override public void removeUser(int userHandle) throws RemoteException { checkSystemUid("removeUser"); - final int tokenCount = mOpUserRestrictions.size(); - for (int i = tokenCount - 1; i >= 0; i--) { - ClientRestrictionState opRestrictions = mOpUserRestrictions.valueAt(i); - opRestrictions.removeUser(userHandle); + synchronized (AppOpsService.this) { + final int tokenCount = mOpUserRestrictions.size(); + for (int i = tokenCount - 1; i >= 0; i--) { + ClientRestrictionState opRestrictions = mOpUserRestrictions.valueAt(i); + opRestrictions.removeUser(userHandle); + } } } -- GitLab From 737d9fb181ec12a23934f7de4e3f8ded79486b1e Mon Sep 17 00:00:00 2001 From: Andy Hung Date: Tue, 16 Aug 2016 18:38:49 -0700 Subject: [PATCH 034/809] AudioSystem: Verify audio port array information Bug: 30737845 Change-Id: Id092086862bc527fccc5e9f34c8a3ab16167ae92 --- core/jni/android_media_AudioSystem.cpp | 43 ++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/core/jni/android_media_AudioSystem.cpp b/core/jni/android_media_AudioSystem.cpp index ef16ef5055de..497600212095 100644 --- a/core/jni/android_media_AudioSystem.cpp +++ b/core/jni/android_media_AudioSystem.cpp @@ -20,13 +20,14 @@ #define LOG_TAG "AudioSystem-JNI" #include +#include #include #include #include "core_jni_helpers.h" #include #include - +#include #include #include #include "android_media_AudioFormat.h" @@ -903,6 +904,12 @@ static bool hasFormat(int* formats, size_t size, int format) { return false; // not found } +// TODO: pull out to separate file +template +static constexpr size_t array_size(const T (&)[N]) { + return N; +} + static jint convertAudioPortFromNative(JNIEnv *env, jobject *jAudioPort, const struct audio_port *nAudioPort) { @@ -923,6 +930,38 @@ static jint convertAudioPortFromNative(JNIEnv *env, ALOGV("convertAudioPortFromNative id %d role %d type %d name %s", nAudioPort->id, nAudioPort->role, nAudioPort->type, nAudioPort->name); + // Verify audio port array count info. + if (nAudioPort->num_sample_rates > array_size(nAudioPort->sample_rates) + || nAudioPort->num_channel_masks > array_size(nAudioPort->channel_masks) + || nAudioPort->num_formats > array_size(nAudioPort->formats) + || nAudioPort->num_gains > array_size(nAudioPort->gains)) { + + std::stringstream ss; + ss << "convertAudioPortFromNative array count out of bounds:" + << " num_sample_rates " << nAudioPort->num_sample_rates + << " num_channel_masks " << nAudioPort->num_channel_masks + << " num_formats " << nAudioPort->num_formats + << " num_gains " << nAudioPort->num_gains + ; + std::string s = ss.str(); + + // Prefer to log through Java wtf instead of native ALOGE. + ScopedLocalRef jLogClass(env, env->FindClass("android/util/Log")); + jmethodID jWtfId = (jLogClass.get() == nullptr) + ? nullptr + : env->GetStaticMethodID(jLogClass.get(), "wtf", + "(Ljava/lang/String;Ljava/lang/String;)I"); + if (jWtfId != nullptr) { + ScopedLocalRef jMessage(env, env->NewStringUTF(s.c_str())); + ScopedLocalRef jTag(env, env->NewStringUTF(LOG_TAG)); + (void)env->CallStaticIntMethod(jLogClass.get(), jWtfId, jTag.get(), jMessage.get()); + } else { + ALOGE("%s", s.c_str()); + } + jStatus = (jint)AUDIO_JAVA_ERROR; + goto exit; + } + jSamplingRates = env->NewIntArray(nAudioPort->num_sample_rates); if (jSamplingRates == NULL) { jStatus = (jint)AUDIO_JAVA_ERROR; @@ -1066,7 +1105,7 @@ static jint convertAudioPortFromNative(JNIEnv *env, &jAudioPortConfig, &nAudioPort->active_config); if (jStatus != AUDIO_JAVA_SUCCESS) { - return jStatus; + goto exit; } env->SetObjectField(*jAudioPort, gAudioPortFields.mActiveConfig, jAudioPortConfig); -- GitLab From f8dd7b4e8d548274c680644a2225951b97e94a4f Mon Sep 17 00:00:00 2001 From: Felipe Leme Date: Wed, 10 Aug 2016 13:00:32 -0700 Subject: [PATCH 035/809] Removed screen on/off callbacks from NPMS. NetworkPolicyManagerService (NPMS) used to depend on screen on/off changes to determine if a foreground activity should have network restrictions, but such check is now redundant since ActivityManager already changes the proper UID state (like going from TOP to TOP_SLEEPING) when the screen status is changed. Removing such code decreases the NPMS lock contention when the screen is turned on in about 3-5ms. Change-Id: I2853443efedbf14961ae9a5b2e72689d4d1a646c BUG: 30785671 (cherry picked from commit 88f40ad9a721ee30708be82f66fb58c64f1d36b5) --- .../net/NetworkPolicyManagerService.java | 72 ++----------------- .../java/com/android/server/SystemServer.java | 6 +- .../NetworkPolicyManagerServiceTest.java | 62 ++-------------- 3 files changed, 15 insertions(+), 125 deletions(-) diff --git a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java index da615ec21720..f3fc676fe2e6 100644 --- a/services/core/java/com/android/server/net/NetworkPolicyManagerService.java +++ b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java @@ -133,7 +133,6 @@ import android.os.Handler; import android.os.HandlerThread; import android.os.IDeviceIdleController; import android.os.INetworkManagementService; -import android.os.IPowerManager; import android.os.Message; import android.os.MessageQueue.IdleHandler; import android.os.PowerManager; @@ -286,7 +285,6 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { private static final int MSG_LIMIT_REACHED = 5; private static final int MSG_RESTRICT_BACKGROUND_CHANGED = 6; private static final int MSG_ADVISE_PERSIST_THRESHOLD = 7; - private static final int MSG_SCREEN_ON_CHANGED = 8; private static final int MSG_RESTRICT_BACKGROUND_WHITELIST_CHANGED = 9; private static final int MSG_UPDATE_INTERFACE_QUOTA = 10; private static final int MSG_REMOVE_INTERFACE_QUOTA = 11; @@ -294,7 +292,6 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { private final Context mContext; private final IActivityManager mActivityManager; - private final IPowerManager mPowerManager; private final INetworkStatsService mNetworkStats; private final INetworkManagementService mNetworkManager; private UsageStatsManagerInternal mUsageStats; @@ -312,7 +309,6 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { @GuardedBy("allLocks") volatile boolean mSystemReady; - @GuardedBy("mUidRulesFirstLock") volatile boolean mScreenOn; @GuardedBy("mUidRulesFirstLock") volatile boolean mRestrictBackground; @GuardedBy("mUidRulesFirstLock") volatile boolean mRestrictPower; @GuardedBy("mUidRulesFirstLock") volatile boolean mDeviceIdleMode; @@ -418,9 +414,8 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { // TODO: migrate notifications to SystemUI public NetworkPolicyManagerService(Context context, IActivityManager activityManager, - IPowerManager powerManager, INetworkStatsService networkStats, - INetworkManagementService networkManagement) { - this(context, activityManager, powerManager, networkStats, networkManagement, + INetworkStatsService networkStats, INetworkManagementService networkManagement) { + this(context, activityManager, networkStats, networkManagement, NtpTrustedTime.getInstance(context), getSystemDir(), false); } @@ -429,12 +424,10 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { } public NetworkPolicyManagerService(Context context, IActivityManager activityManager, - IPowerManager powerManager, INetworkStatsService networkStats, - INetworkManagementService networkManagement, TrustedTime time, File systemDir, - boolean suppressDefaultPolicy) { + INetworkStatsService networkStats, INetworkManagementService networkManagement, + TrustedTime time, File systemDir, boolean suppressDefaultPolicy) { mContext = checkNotNull(context, "missing context"); mActivityManager = checkNotNull(activityManager, "missing activityManager"); - mPowerManager = checkNotNull(powerManager, "missing powerManager"); mNetworkStats = checkNotNull(networkStats, "missing networkStats"); mNetworkManager = checkNotNull(networkManagement, "missing networkManagement"); mDeviceIdleController = IDeviceIdleController.Stub.asInterface(ServiceManager.getService( @@ -618,8 +611,6 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { } } - updateScreenOn(); - try { mActivityManager.registerUidObserver(mUidObserver, ActivityManager.UID_OBSERVER_PROCSTATE|ActivityManager.UID_OBSERVER_GONE); @@ -628,14 +619,6 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { // ignored; both services live in system_server } - // TODO: traverse existing processes to know foreground state, or have - // activitymanager dispatch current state when new observer attached. - - final IntentFilter screenFilter = new IntentFilter(); - screenFilter.addAction(Intent.ACTION_SCREEN_ON); - screenFilter.addAction(Intent.ACTION_SCREEN_OFF); - mContext.registerReceiver(mScreenReceiver, screenFilter); - // listen for changes to power save whitelist final IntentFilter whitelistFilter = new IntentFilter( PowerManager.ACTION_POWER_SAVE_WHITELIST_CHANGED); @@ -734,15 +717,6 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { } }; - final private BroadcastReceiver mScreenReceiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - // screen-related broadcasts are protected by system, no need - // for permissions check. - mHandler.obtainMessage(MSG_SCREEN_ON_CHANGED).sendToTarget(); - } - }; - final private BroadcastReceiver mPackageReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { @@ -2520,7 +2494,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { private boolean isUidStateForegroundUL(int state) { // only really in foreground when screen is also on - return mScreenOn && state <= ActivityManager.PROCESS_STATE_TOP; + return state <= ActivityManager.PROCESS_STATE_TOP; } /** @@ -2591,31 +2565,6 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { } } - private void updateScreenOn() { - synchronized (mUidRulesFirstLock) { - try { - mScreenOn = mPowerManager.isInteractive(); - } catch (RemoteException e) { - // ignored; service lives in system_server - } - updateRulesForScreenUL(); - } - } - - /** - * Update rules that might be changed by {@link #mScreenOn} value. - */ - private void updateRulesForScreenUL() { - // only update rules for anyone with foreground activities - final int size = mUidState.size(); - for (int i = 0; i < size; i++) { - if (mUidState.valueAt(i) <= ActivityManager.PROCESS_STATE_FOREGROUND_SERVICE) { - final int uid = mUidState.keyAt(i); - updateRestrictionRulesForUidUL(uid); - } - } - } - static boolean isProcStateAllowedWhileIdleOrPowerSaveMode(int procState) { return procState <= ActivityManager.PROCESS_STATE_FOREGROUND_SERVICE; } @@ -2997,12 +2946,8 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { mUidRules.put(uid, newUidRules); } - boolean changed = false; - // Second step: apply bw changes based on change of state. if (newRule != oldRule) { - changed = true; - if ((newRule & RULE_TEMPORARY_ALLOW_METERED) != 0) { // Temporarily whitelist foreground app, removing from blacklist if necessary // (since bw_penalty_box prevails over bw_happy_box). @@ -3082,7 +3027,6 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { final boolean isIdle = isUidIdle(uid); final boolean restrictMode = isIdle || mRestrictPower || mDeviceIdleMode; - final int uidPolicy = mUidPolicy.get(uid, POLICY_NONE); final int oldUidRules = mUidRules.get(uid, RULE_NONE); final boolean isForeground = isUidForegroundOnRestrictPowerUL(uid); @@ -3105,7 +3049,7 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { final int newUidRules = (oldUidRules & MASK_METERED_NETWORKS) | newRule; if (LOGV) { - Log.v(TAG, "updateRulesForNonMeteredNetworksUL(" + uid + ")" + Log.v(TAG, "updateRulesForPowerRestrictionsUL(" + uid + ")" + ", isIdle: " + isIdle + ", mRestrictPower: " + mRestrictPower + ", mDeviceIdleMode: " + mDeviceIdleMode @@ -3347,10 +3291,6 @@ public class NetworkPolicyManagerService extends INetworkPolicyManager.Stub { } return true; } - case MSG_SCREEN_ON_CHANGED: { - updateScreenOn(); - return true; - } case MSG_UPDATE_INTERFACE_QUOTA: { removeInterfaceQuota((String) msg.obj); // int params need to be stitched back into a long diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java index a839373d787e..97a829ecac46 100644 --- a/services/java/com/android/server/SystemServer.java +++ b/services/java/com/android/server/SystemServer.java @@ -809,10 +809,8 @@ public final class SystemServer { traceBeginAndSlog("StartNetworkPolicyManagerService"); try { - networkPolicy = new NetworkPolicyManagerService( - context, mActivityManagerService, - (IPowerManager)ServiceManager.getService(Context.POWER_SERVICE), - networkStats, networkManagement); + networkPolicy = new NetworkPolicyManagerService(context, + mActivityManagerService, networkStats, networkManagement); ServiceManager.addService(Context.NETWORK_POLICY_SERVICE, networkPolicy); } catch (Throwable e) { reportWtf("starting NetworkPolicy Service", e); diff --git a/services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java index 979f160d3c7b..541be3dad376 100644 --- a/services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/NetworkPolicyManagerServiceTest.java @@ -69,7 +69,6 @@ import android.net.NetworkStats; import android.net.NetworkTemplate; import android.os.Binder; import android.os.INetworkManagementService; -import android.os.IPowerManager; import android.os.MessageQueue.IdleHandler; import android.os.UserHandle; import android.test.AndroidTestCase; @@ -115,7 +114,6 @@ public class NetworkPolicyManagerServiceTest extends AndroidTestCase { private File mPolicyDir; private IActivityManager mActivityManager; - private IPowerManager mPowerManager; private INetworkStatsService mStatsService; private INetworkManagementService mNetworkManager; private INetworkPolicyListener mPolicyListener; @@ -187,7 +185,6 @@ public class NetworkPolicyManagerServiceTest extends AndroidTestCase { } mActivityManager = createMock(IActivityManager.class); - mPowerManager = createMock(IPowerManager.class); mStatsService = createMock(INetworkStatsService.class); mNetworkManager = createMock(INetworkManagementService.class); mPolicyListener = createMock(INetworkPolicyListener.class); @@ -195,7 +192,7 @@ public class NetworkPolicyManagerServiceTest extends AndroidTestCase { mConnManager = createMock(IConnectivityManager.class); mNotifManager = createMock(INotificationManager.class); - mService = new NetworkPolicyManagerService(mServiceContext, mActivityManager, mPowerManager, + mService = new NetworkPolicyManagerService(mServiceContext, mActivityManager, mStatsService, mNetworkManager, mTime, mPolicyDir, true); mService.bindConnectivityManager(mConnManager); mService.bindNotificationManager(mNotifManager); @@ -217,8 +214,6 @@ public class NetworkPolicyManagerServiceTest extends AndroidTestCase { mNetworkManager.registerObserver(capture(networkObserver)); expectLastCall().atLeastOnce(); - // expect to answer screen status during systemReady() - expect(mPowerManager.isInteractive()).andReturn(true).atLeastOnce(); expect(mNetworkManager.isBandwidthControlEnabled()).andReturn(true).atLeastOnce(); expectCurrentTime(); @@ -240,7 +235,6 @@ public class NetworkPolicyManagerServiceTest extends AndroidTestCase { mPolicyDir = null; mActivityManager = null; - mPowerManager = null; mStatsService = null; mPolicyListener = null; mTime = null; @@ -312,48 +306,6 @@ public class NetworkPolicyManagerServiceTest extends AndroidTestCase { assertFalse(mService.isUidForeground(UID_A)); } - @Suppress - public void testScreenChangesRules() throws Exception { - Future future; - - expectSetUidMeteredNetworkBlacklist(UID_A, false); - expectSetUidForeground(UID_A, true); - future = expectRulesChanged(UID_A, RULE_ALLOW_ALL); - replay(); - mProcessObserver.onForegroundActivitiesChanged(PID_1, UID_A, true); - future.get(); - verifyAndReset(); - - // push strict policy for foreground uid, verify ALLOW rule - expectSetUidMeteredNetworkBlacklist(UID_A, false); - expectSetUidForeground(UID_A, true); - future = expectRulesChanged(UID_A, RULE_ALLOW_ALL); - replay(); - mService.setUidPolicy(APP_ID_A, POLICY_REJECT_METERED_BACKGROUND); - future.get(); - verifyAndReset(); - - // now turn screen off and verify REJECT rule - expect(mPowerManager.isInteractive()).andReturn(false).atLeastOnce(); - expectSetUidMeteredNetworkBlacklist(UID_A, true); - expectSetUidForeground(UID_A, false); - future = expectRulesChanged(UID_A, RULE_REJECT_METERED); - replay(); - mServiceContext.sendBroadcast(new Intent(Intent.ACTION_SCREEN_OFF)); - future.get(); - verifyAndReset(); - - // and turn screen back on, verify ALLOW rule restored - expect(mPowerManager.isInteractive()).andReturn(true).atLeastOnce(); - expectSetUidMeteredNetworkBlacklist(UID_A, false); - expectSetUidForeground(UID_A, true); - future = expectRulesChanged(UID_A, RULE_ALLOW_ALL); - replay(); - mServiceContext.sendBroadcast(new Intent(Intent.ACTION_SCREEN_ON)); - future.get(); - verifyAndReset(); - } - @Suppress public void testPolicyNone() throws Exception { Future future; @@ -1049,14 +1001,14 @@ public class NetworkPolicyManagerServiceTest extends AndroidTestCase { } private void replay() { - EasyMock.replay(mActivityManager, mPowerManager, mStatsService, mPolicyListener, - mNetworkManager, mTime, mConnManager, mNotifManager); + EasyMock.replay(mActivityManager, mStatsService, mPolicyListener, mNetworkManager, mTime, + mConnManager, mNotifManager); } private void verifyAndReset() { - EasyMock.verify(mActivityManager, mPowerManager, mStatsService, mPolicyListener, - mNetworkManager, mTime, mConnManager, mNotifManager); - EasyMock.reset(mActivityManager, mPowerManager, mStatsService, mPolicyListener, - mNetworkManager, mTime, mConnManager, mNotifManager); + EasyMock.verify(mActivityManager, mStatsService, mPolicyListener, mNetworkManager, mTime, + mConnManager, mNotifManager); + EasyMock.reset(mActivityManager, mStatsService, mPolicyListener, mNetworkManager, mTime, + mConnManager, mNotifManager); } } -- GitLab From 9a236066dbf604edfd5f873b4a3b94a200efd628 Mon Sep 17 00:00:00 2001 From: Ajay Panicker Date: Wed, 17 Aug 2016 15:36:24 -0700 Subject: [PATCH 036/809] Protect various Bluetooth broadcasts Bug: 30832954 Change-Id: I37e0b2ffab65c0703244917a4ade9bb8afbb5e6f --- core/res/AndroidManifest.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index ed71fc2f4a8e..3339d02d9bbe 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -183,6 +183,7 @@ + @@ -199,6 +200,8 @@ + + @@ -394,6 +397,8 @@ + + -- GitLab From a3edbf6a5d4698570f2b5610390b5c70251f52d7 Mon Sep 17 00:00:00 2001 From: George Mount Date: Tue, 16 Aug 2016 13:10:19 -0700 Subject: [PATCH 037/809] Fix NPE during Activity transition using wrong Activity. Bug 30786309 If the Activity used in makeSceneTransitionAnimation isn't the same one used in the startActivity call, a NullPointerException could be thrown. Change-Id: Id21c54fcf99b353feab62f7fc160997ed06e7d23 (cherry picked from commit 3289bfa289f560d60611dddef9441c9614fd883a) --- core/java/android/app/ActivityTransitionState.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/core/java/android/app/ActivityTransitionState.java b/core/java/android/app/ActivityTransitionState.java index 221923821bbb..aef1d0c31f9d 100644 --- a/core/java/android/app/ActivityTransitionState.java +++ b/core/java/android/app/ActivityTransitionState.java @@ -337,11 +337,12 @@ class ActivityTransitionState { } public void startExitOutTransition(Activity activity, Bundle options) { - if (!activity.getWindow().hasFeature(Window.FEATURE_ACTIVITY_TRANSITIONS)) { + mEnterTransitionCoordinator = null; + if (!activity.getWindow().hasFeature(Window.FEATURE_ACTIVITY_TRANSITIONS) || + mExitTransitionCoordinators == null) { return; } ActivityOptions activityOptions = new ActivityOptions(options); - mEnterTransitionCoordinator = null; if (activityOptions.getAnimationType() == ActivityOptions.ANIM_SCENE_TRANSITION) { int key = activityOptions.getExitCoordinatorKey(); int index = mExitTransitionCoordinators.indexOfKey(key); -- GitLab From 2c61c57ac53cbb270b4e76b9d04465f8a3f6eadc Mon Sep 17 00:00:00 2001 From: Christopher Tate Date: Tue, 16 Aug 2016 16:03:44 -0700 Subject: [PATCH 038/809] Isolated processes don't get precached system service binders More specifically, they get a PackageManager binder -- necessary for Android process startup and configuration -- but none of the other usual preloaded service binders. Bug 30202228 Change-Id: I3810649f504cd631665ece338a83d2e54d41ad05 --- .../server/am/ActivityManagerService.java | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 9e601eb7e07c..ff3f159b1d08 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -1158,6 +1158,7 @@ public final class ActivityManagerService extends ActivityManagerNative * For example, references to the commonly used services. */ HashMap mAppBindArgs; + HashMap mIsolatedAppBindArgs; /** * Temporary to avoid allocations. Protected by main lock. @@ -2935,18 +2936,24 @@ public final class ActivityManagerService extends ActivityManagerNative * lazily setup to make sure the services are running when they're asked for. */ private HashMap getCommonServicesLocked(boolean isolated) { + // Isolated processes won't get this optimization, so that we don't + // violate the rules about which services they have access to. + if (isolated) { + if (mIsolatedAppBindArgs == null) { + mIsolatedAppBindArgs = new HashMap<>(); + mIsolatedAppBindArgs.put("package", ServiceManager.getService("package")); + } + return mIsolatedAppBindArgs; + } + if (mAppBindArgs == null) { mAppBindArgs = new HashMap<>(); - // Isolated processes won't get this optimization, so that we don't - // violate the rules about which services they have access to. - if (!isolated) { - // Setup the application init args - mAppBindArgs.put("package", ServiceManager.getService("package")); - mAppBindArgs.put("window", ServiceManager.getService("window")); - mAppBindArgs.put(Context.ALARM_SERVICE, - ServiceManager.getService(Context.ALARM_SERVICE)); - } + // Setup the application init args + mAppBindArgs.put("package", ServiceManager.getService("package")); + mAppBindArgs.put("window", ServiceManager.getService("window")); + mAppBindArgs.put(Context.ALARM_SERVICE, + ServiceManager.getService(Context.ALARM_SERVICE)); } return mAppBindArgs; } -- GitLab From 38ee337f45953cb3ecfc4ab170c639afe01606d1 Mon Sep 17 00:00:00 2001 From: Tim Murray Date: Thu, 18 Aug 2016 11:13:26 -0700 Subject: [PATCH 039/809] Prevent FIFO threads from creating more FIFO threads. SCHED_FIFO threads shouldn't be able to arbitrarily create more SCHED_FIFO threads. bug 30898724 Change-Id: I3704b47b88b573313e9b1610556648c8595d4108 --- .../java/com/android/server/os/SchedulingPolicyService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/os/SchedulingPolicyService.java b/services/core/java/com/android/server/os/SchedulingPolicyService.java index f98012b39a86..62c9f4c116c2 100644 --- a/services/core/java/com/android/server/os/SchedulingPolicyService.java +++ b/services/core/java/com/android/server/os/SchedulingPolicyService.java @@ -55,7 +55,8 @@ public class SchedulingPolicyService extends ISchedulingPolicyService.Stub { Process.setThreadGroup(tid, Binder.getCallingPid() == pid ? Process.THREAD_GROUP_AUDIO_SYS : Process.THREAD_GROUP_AUDIO_APP); // must be in this order or it fails the schedulability constraint - Process.setThreadScheduler(tid, Process.SCHED_FIFO, prio); + Process.setThreadScheduler(tid, Process.SCHED_FIFO | Process.SCHED_RESET_ON_FORK, + prio); } catch (RuntimeException e) { return PackageManager.PERMISSION_DENIED; } -- GitLab From 366262dc7854ba54f64905df8d275358be41edf5 Mon Sep 17 00:00:00 2001 From: "Philip P. Moltmann" Date: Thu, 12 May 2016 14:17:15 -0700 Subject: [PATCH 040/809] Only have a single call into pdfium at a time. Pdfium is not thread safe and uses global variables, hence no parallel call pdfium is safe Fixes: 28705066 Change-Id: I04309ee691bd9cea37587e0af5be2c07ce8c9f2c (cherry picked from commit 0768a7dc450caf4c873c5b0883a75135536e1546) --- core/jni/android/graphics/pdf/PdfEditor.cpp | 3 - core/jni/android/graphics/pdf/PdfRenderer.cpp | 3 - .../java/android/graphics/pdf/PdfEditor.java | 65 ++++++++++++++----- .../android/graphics/pdf/PdfRenderer.java | 37 ++++++++--- 4 files changed, 79 insertions(+), 29 deletions(-) diff --git a/core/jni/android/graphics/pdf/PdfEditor.cpp b/core/jni/android/graphics/pdf/PdfEditor.cpp index d2d39cd0b286..0468b644862d 100644 --- a/core/jni/android/graphics/pdf/PdfEditor.cpp +++ b/core/jni/android/graphics/pdf/PdfEditor.cpp @@ -52,11 +52,9 @@ static struct { } gRectClassInfo; // Also used in PdfRenderer.cpp -Mutex sPdfiumLock; int sUnmatchedPdfiumInitRequestCount = 0; static void initializeLibraryIfNeeded() { - Mutex::Autolock _l(sPdfiumLock); if (sUnmatchedPdfiumInitRequestCount == 0) { FPDF_InitLibrary(); } @@ -64,7 +62,6 @@ static void initializeLibraryIfNeeded() { } static void destroyLibraryIfNeeded() { - Mutex::Autolock _l(sPdfiumLock); sUnmatchedPdfiumInitRequestCount--; if (sUnmatchedPdfiumInitRequestCount == 0) { FPDF_DestroyLibrary(); diff --git a/core/jni/android/graphics/pdf/PdfRenderer.cpp b/core/jni/android/graphics/pdf/PdfRenderer.cpp index 71bec7845fd7..43550ac9ed72 100644 --- a/core/jni/android/graphics/pdf/PdfRenderer.cpp +++ b/core/jni/android/graphics/pdf/PdfRenderer.cpp @@ -44,11 +44,9 @@ static struct { } gPointClassInfo; // See PdfEditor.cpp -extern Mutex sPdfiumLock; extern int sUnmatchedPdfiumInitRequestCount; static void initializeLibraryIfNeeded() { - Mutex::Autolock _l(sPdfiumLock); if (sUnmatchedPdfiumInitRequestCount == 0) { FPDF_InitLibrary(); } @@ -56,7 +54,6 @@ static void initializeLibraryIfNeeded() { } static void destroyLibraryIfNeeded() { - Mutex::Autolock _l(sPdfiumLock); sUnmatchedPdfiumInitRequestCount--; if (sUnmatchedPdfiumInitRequestCount == 0) { FPDF_DestroyLibrary(); diff --git a/graphics/java/android/graphics/pdf/PdfEditor.java b/graphics/java/android/graphics/pdf/PdfEditor.java index 2b70b6a45f82..cd1f8de6ee0f 100644 --- a/graphics/java/android/graphics/pdf/PdfEditor.java +++ b/graphics/java/android/graphics/pdf/PdfEditor.java @@ -79,8 +79,12 @@ public final class PdfEditor { } mInput = input; - mNativeDocument = nativeOpen(mInput.getFd(), size); - mPageCount = nativeGetPageCount(mNativeDocument); + + synchronized (PdfRenderer.sPdfiumLock) { + mNativeDocument = nativeOpen(mInput.getFd(), size); + mPageCount = nativeGetPageCount(mNativeDocument); + } + mCloseGuard.open("close"); } @@ -102,7 +106,10 @@ public final class PdfEditor { public void removePage(int pageIndex) { throwIfClosed(); throwIfPageNotInDocument(pageIndex); - mPageCount = nativeRemovePage(mNativeDocument, pageIndex); + + synchronized (PdfRenderer.sPdfiumLock) { + mPageCount = nativeRemovePage(mNativeDocument, pageIndex); + } } /** @@ -125,11 +132,16 @@ public final class PdfEditor { if (clip == null) { Point size = new Point(); getPageSize(pageIndex, size); - nativeSetTransformAndClip(mNativeDocument, pageIndex, transform.native_instance, - 0, 0, size.x, size.y); + + synchronized (PdfRenderer.sPdfiumLock) { + nativeSetTransformAndClip(mNativeDocument, pageIndex, transform.native_instance, + 0, 0, size.x, size.y); + } } else { - nativeSetTransformAndClip(mNativeDocument, pageIndex, transform.native_instance, - clip.left, clip.top, clip.right, clip.bottom); + synchronized (PdfRenderer.sPdfiumLock) { + nativeSetTransformAndClip(mNativeDocument, pageIndex, transform.native_instance, + clip.left, clip.top, clip.right, clip.bottom); + } } } @@ -143,7 +155,10 @@ public final class PdfEditor { throwIfClosed(); throwIfOutSizeNull(outSize); throwIfPageNotInDocument(pageIndex); - nativeGetPageSize(mNativeDocument, pageIndex, outSize); + + synchronized (PdfRenderer.sPdfiumLock) { + nativeGetPageSize(mNativeDocument, pageIndex, outSize); + } } /** @@ -156,7 +171,10 @@ public final class PdfEditor { throwIfClosed(); throwIfOutMediaBoxNull(outMediaBox); throwIfPageNotInDocument(pageIndex); - return nativeGetPageMediaBox(mNativeDocument, pageIndex, outMediaBox); + + synchronized (PdfRenderer.sPdfiumLock) { + return nativeGetPageMediaBox(mNativeDocument, pageIndex, outMediaBox); + } } /** @@ -169,7 +187,10 @@ public final class PdfEditor { throwIfClosed(); throwIfMediaBoxNull(mediaBox); throwIfPageNotInDocument(pageIndex); - nativeSetPageMediaBox(mNativeDocument, pageIndex, mediaBox); + + synchronized (PdfRenderer.sPdfiumLock) { + nativeSetPageMediaBox(mNativeDocument, pageIndex, mediaBox); + } } /** @@ -182,7 +203,10 @@ public final class PdfEditor { throwIfClosed(); throwIfOutCropBoxNull(outCropBox); throwIfPageNotInDocument(pageIndex); - return nativeGetPageCropBox(mNativeDocument, pageIndex, outCropBox); + + synchronized (PdfRenderer.sPdfiumLock) { + return nativeGetPageCropBox(mNativeDocument, pageIndex, outCropBox); + } } /** @@ -195,7 +219,10 @@ public final class PdfEditor { throwIfClosed(); throwIfCropBoxNull(cropBox); throwIfPageNotInDocument(pageIndex); - nativeSetPageCropBox(mNativeDocument, pageIndex, cropBox); + + synchronized (PdfRenderer.sPdfiumLock) { + nativeSetPageCropBox(mNativeDocument, pageIndex, cropBox); + } } /** @@ -205,7 +232,10 @@ public final class PdfEditor { */ public boolean shouldScaleForPrinting() { throwIfClosed(); - return nativeScaleForPrinting(mNativeDocument); + + synchronized (PdfRenderer.sPdfiumLock) { + return nativeScaleForPrinting(mNativeDocument); + } } /** @@ -219,7 +249,10 @@ public final class PdfEditor { public void write(ParcelFileDescriptor output) throws IOException { try { throwIfClosed(); - nativeWrite(mNativeDocument, output.getFd()); + + synchronized (PdfRenderer.sPdfiumLock) { + nativeWrite(mNativeDocument, output.getFd()); + } } finally { IoUtils.closeQuietly(output); } @@ -247,7 +280,9 @@ public final class PdfEditor { } private void doClose() { - nativeClose(mNativeDocument); + synchronized (PdfRenderer.sPdfiumLock) { + nativeClose(mNativeDocument); + } IoUtils.closeQuietly(mInput); mInput = null; mCloseGuard.close(); diff --git a/graphics/java/android/graphics/pdf/PdfRenderer.java b/graphics/java/android/graphics/pdf/PdfRenderer.java index 520ebe5f2db8..cfc130990e92 100644 --- a/graphics/java/android/graphics/pdf/PdfRenderer.java +++ b/graphics/java/android/graphics/pdf/PdfRenderer.java @@ -99,6 +99,12 @@ import java.lang.annotation.RetentionPolicy; * @see #close() */ public final class PdfRenderer implements AutoCloseable { + /** + * Any call the native pdfium code has to be single threaded as the library does not support + * parallel use. + */ + final static Object sPdfiumLock = new Object(); + private final CloseGuard mCloseGuard = CloseGuard.get(); private final Point mTempPoint = new Point(); @@ -154,8 +160,12 @@ public final class PdfRenderer implements AutoCloseable { } mInput = input; - mNativeDocument = nativeCreate(mInput.getFd(), size); - mPageCount = nativeGetPageCount(mNativeDocument); + + synchronized (sPdfiumLock) { + mNativeDocument = nativeCreate(mInput.getFd(), size); + mPageCount = nativeGetPageCount(mNativeDocument); + } + mCloseGuard.open("close"); } @@ -189,7 +199,10 @@ public final class PdfRenderer implements AutoCloseable { */ public boolean shouldScaleForPrinting() { throwIfClosed(); - return nativeScaleForPrinting(mNativeDocument); + + synchronized (sPdfiumLock) { + return nativeScaleForPrinting(mNativeDocument); + } } /** @@ -224,7 +237,9 @@ public final class PdfRenderer implements AutoCloseable { if (mCurrentPage != null) { mCurrentPage.close(); } - nativeClose(mNativeDocument); + synchronized (sPdfiumLock) { + nativeClose(mNativeDocument); + } try { mInput.close(); } catch (IOException ioe) { @@ -277,7 +292,9 @@ public final class PdfRenderer implements AutoCloseable { private Page(int index) { Point size = mTempPoint; - mNativePage = nativeOpenPageAndGetSize(mNativeDocument, index, size); + synchronized (sPdfiumLock) { + mNativePage = nativeOpenPageAndGetSize(mNativeDocument, index, size); + } mIndex = index; mWidth = size.x; mHeight = size.y; @@ -384,8 +401,10 @@ public final class PdfRenderer implements AutoCloseable { final long transformPtr = (transform != null) ? transform.native_instance : 0; - nativeRenderPage(mNativeDocument, mNativePage, destination, contentLeft, - contentTop, contentRight, contentBottom, transformPtr, renderMode); + synchronized (sPdfiumLock) { + nativeRenderPage(mNativeDocument, mNativePage, destination, contentLeft, + contentTop, contentRight, contentBottom, transformPtr, renderMode); + } } /** @@ -412,7 +431,9 @@ public final class PdfRenderer implements AutoCloseable { } private void doClose() { - nativeClosePage(mNativePage); + synchronized (sPdfiumLock) { + nativeClosePage(mNativePage); + } mNativePage = 0; mCloseGuard.close(); mCurrentPage = null; -- GitLab From a8d4f489974f3ea8f73990cbabbce205343fb926 Mon Sep 17 00:00:00 2001 From: Todd Kennedy Date: Thu, 18 Aug 2016 11:22:52 -0700 Subject: [PATCH 041/809] Release mPackages lock earlier We cannot hold mPackages when calling into generatePackageDexopts(). This method takes Package Manager's mInstallLock. By holding mPackages, we have lock inversion and hilarity ensues. Change-Id: Ia11a158677051e3511702f38cde6780e75b256fb Fixes: 30927731 --- .../android/server/pm/OtaDexoptService.java | 45 ++++++++++--------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/services/core/java/com/android/server/pm/OtaDexoptService.java b/services/core/java/com/android/server/pm/OtaDexoptService.java index 836b588c7621..bff6d2d4786e 100644 --- a/services/core/java/com/android/server/pm/OtaDexoptService.java +++ b/services/core/java/com/android/server/pm/OtaDexoptService.java @@ -93,38 +93,39 @@ public class OtaDexoptService extends IOtaDexopt.Stub { if (mDexoptCommands != null) { throw new IllegalStateException("already called prepare()"); } + final List important; + final List others; synchronized (mPackageManagerService.mPackages) { // Important: the packages we need to run with ab-ota compiler-reason. - List important = PackageManagerServiceUtils.getPackagesForDexopt( + important = PackageManagerServiceUtils.getPackagesForDexopt( mPackageManagerService.mPackages.values(), mPackageManagerService); // Others: we should optimize this with the (first-)boot compiler-reason. - List others = - new ArrayList<>(mPackageManagerService.mPackages.values()); + others = new ArrayList<>(mPackageManagerService.mPackages.values()); others.removeAll(important); // Pre-size the array list by over-allocating by a factor of 1.5. mDexoptCommands = new ArrayList<>(3 * mPackageManagerService.mPackages.size() / 2); + } - for (PackageParser.Package p : important) { - // Make sure that core apps are optimized according to their own "reason". - // If the core apps are not preopted in the B OTA, and REASON_AB_OTA is not speed - // (by default is speed-profile) they will be interepreted/JITed. This in itself is - // not a problem as we will end up doing profile guided compilation. However, some - // core apps may be loaded by system server which doesn't JIT and we need to make - // sure we don't interpret-only - int compilationReason = p.coreApp - ? PackageManagerService.REASON_CORE_APP - : PackageManagerService.REASON_AB_OTA; - mDexoptCommands.addAll(generatePackageDexopts(p, compilationReason)); - } - for (PackageParser.Package p : others) { - // We assume here that there are no core apps left. - if (p.coreApp) { - throw new IllegalStateException("Found a core app that's not important"); - } - mDexoptCommands.addAll( - generatePackageDexopts(p, PackageManagerService.REASON_FIRST_BOOT)); + for (PackageParser.Package p : important) { + // Make sure that core apps are optimized according to their own "reason". + // If the core apps are not preopted in the B OTA, and REASON_AB_OTA is not speed + // (by default is speed-profile) they will be interepreted/JITed. This in itself is + // not a problem as we will end up doing profile guided compilation. However, some + // core apps may be loaded by system server which doesn't JIT and we need to make + // sure we don't interpret-only + int compilationReason = p.coreApp + ? PackageManagerService.REASON_CORE_APP + : PackageManagerService.REASON_AB_OTA; + mDexoptCommands.addAll(generatePackageDexopts(p, compilationReason)); + } + for (PackageParser.Package p : others) { + // We assume here that there are no core apps left. + if (p.coreApp) { + throw new IllegalStateException("Found a core app that's not important"); } + mDexoptCommands.addAll( + generatePackageDexopts(p, PackageManagerService.REASON_FIRST_BOOT)); } completeSize = mDexoptCommands.size(); } -- GitLab From 59020bffb7dde02a2cd4cb797cadfe56bb36db44 Mon Sep 17 00:00:00 2001 From: Svet Ganov Date: Thu, 18 Aug 2016 12:32:35 -0700 Subject: [PATCH 042/809] Add resource based mechanism to grant default permissions This CL adds a mechanism for an OEM to grant default permissions using the build system. This allows permissions for which they got default grant exceptions to be added without modifying the platform code. The format is a simple XML listing the packages and the permissions to be granted for a package. The XML file is placed in etc/default-permissions. bug:29546655 bug:30929033 Change-Id: Ifb0516d7e2d0b399532024438bc0f86068a2e4e2 --- .../pm/DefaultPermissionGrantPolicy.java | 212 ++++++++++++++++++ .../server/pm/PackageManagerService.java | 14 +- 2 files changed, 222 insertions(+), 4 deletions(-) diff --git a/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java b/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java index 9c9e97e31f29..d1dbdd8b1945 100644 --- a/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java +++ b/services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java @@ -17,6 +17,7 @@ package com.android.server.pm; import android.Manifest; +import android.annotation.NonNull; import android.app.DownloadManager; import android.app.admin.DevicePolicyManager; import android.content.Intent; @@ -30,6 +31,9 @@ import android.content.pm.ProviderInfo; import android.content.pm.ResolveInfo; import android.net.Uri; import android.os.Build; +import android.os.Environment; +import android.os.Handler; +import android.os.Message; import android.os.UserHandle; import android.os.storage.StorageManager; import android.print.PrintManager; @@ -39,12 +43,23 @@ import android.provider.MediaStore; import android.provider.Telephony.Sms.Intents; import android.telephony.TelephonyManager; import android.security.Credentials; +import android.util.ArrayMap; import android.util.ArraySet; import android.util.Log; +import android.util.Slog; +import android.util.Xml; +import com.android.internal.util.XmlUtils; +import org.xmlpull.v1.XmlPullParser; +import org.xmlpull.v1.XmlPullParserException; +import java.io.BufferedInputStream; import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.Set; import static android.os.Process.FIRST_APPLICATION_UID; @@ -65,6 +80,13 @@ final class DefaultPermissionGrantPolicy { private static final String AUDIO_MIME_TYPE = "audio/mpeg"; + private static final String TAG_EXCEPTIONS = "exceptions"; + private static final String TAG_EXCEPTION = "exception"; + private static final String TAG_PERMISSION = "permission"; + private static final String ATTR_PACKAGE = "package"; + private static final String ATTR_NAME = "name"; + private static final String ATTR_FIXED = "fixed"; + private static final Set PHONE_PERMISSIONS = new ArraySet<>(); static { PHONE_PERMISSIONS.add(Manifest.permission.READ_PHONE_STATE); @@ -126,7 +148,10 @@ final class DefaultPermissionGrantPolicy { STORAGE_PERMISSIONS.add(Manifest.permission.WRITE_EXTERNAL_STORAGE); } + private static final int MSG_READ_DEFAULT_PERMISSION_EXCEPTIONS = 1; + private final PackageManagerService mService; + private final Handler mHandler; private PackagesProvider mLocationPackagesProvider; private PackagesProvider mVoiceInteractionPackagesProvider; @@ -135,8 +160,22 @@ final class DefaultPermissionGrantPolicy { private PackagesProvider mSimCallManagerPackagesProvider; private SyncAdapterPackagesProvider mSyncAdapterPackagesProvider; + private ArrayMap> mGrantExceptions; + public DefaultPermissionGrantPolicy(PackageManagerService service) { mService = service; + mHandler = new Handler(mService.mHandlerThread.getLooper()) { + @Override + public void handleMessage(Message msg) { + if (msg.what == MSG_READ_DEFAULT_PERMISSION_EXCEPTIONS) { + synchronized (mService.mPackages) { + if (mGrantExceptions == null) { + mGrantExceptions = readDefaultPermissionExceptionsLPw(); + } + } + } + } + }; } public void setLocationPackagesProviderLPw(PackagesProvider provider) { @@ -166,6 +205,11 @@ final class DefaultPermissionGrantPolicy { public void grantDefaultPermissions(int userId) { grantPermissionsToSysComponentsAndPrivApps(userId); grantDefaultSystemHandlerPermissions(userId); + grantDefaultPermissionExceptions(userId); + } + + public void scheduleReadDefaultPermissionExceptions() { + mHandler.sendEmptyMessage(MSG_READ_DEFAULT_PERMISSION_EXCEPTIONS); } private void grantPermissionsToSysComponentsAndPrivApps(int userId) { @@ -916,7 +960,175 @@ final class DefaultPermissionGrantPolicy { pkg.mSignatures) == PackageManager.SIGNATURE_MATCH; } + private void grantDefaultPermissionExceptions(int userId) { + synchronized (mService.mPackages) { + mHandler.removeMessages(MSG_READ_DEFAULT_PERMISSION_EXCEPTIONS); + + if (mGrantExceptions == null) { + mGrantExceptions = readDefaultPermissionExceptionsLPw(); + } + + // mGrantExceptions is null only before the first read and then + // it serves as a cache of the default grants that should be + // performed for every user. If there is an entry then the app + // is on the system image and supports runtime permissions. + Set permissions = null; + final int exceptionCount = mGrantExceptions.size(); + for (int i = 0; i < exceptionCount; i++) { + String packageName = mGrantExceptions.keyAt(i); + PackageParser.Package pkg = getSystemPackageLPr(packageName); + List permissionGrants = mGrantExceptions.valueAt(i); + final int permissionGrantCount = permissionGrants.size(); + for (int j = 0; j < permissionGrantCount; j++) { + DefaultPermissionGrant permissionGrant = permissionGrants.get(j); + if (permissions == null) { + permissions = new ArraySet<>(); + } else { + permissions.clear(); + } + permissions.add(permissionGrant.name); + grantRuntimePermissionsLPw(pkg, permissions, false, + permissionGrant.fixed, userId); + } + } + } + } + + private @NonNull ArrayMap> + readDefaultPermissionExceptionsLPw() { + File dir = new File(Environment.getRootDirectory(), "etc/default-permissions"); + if (!dir.exists() || !dir.isDirectory() || !dir.canRead()) { + return new ArrayMap<>(0); + } + + File[] files = dir.listFiles(); + if (files == null) { + return new ArrayMap<>(0); + } + + ArrayMap> grantExceptions = new ArrayMap<>(); + + // Iterate over the files in the directory and scan .xml files + for (File file : files) { + if (!file.getPath().endsWith(".xml")) { + Slog.i(TAG, "Non-xml file " + file + " in " + dir + " directory, ignoring"); + continue; + } + if (!file.canRead()) { + Slog.w(TAG, "Default permissions file " + file + " cannot be read"); + continue; + } + try ( + InputStream str = new BufferedInputStream(new FileInputStream(file)) + ) { + XmlPullParser parser = Xml.newPullParser(); + parser.setInput(str, null); + parse(parser, grantExceptions); + } catch (XmlPullParserException | IOException e) { + Slog.w(TAG, "Error reading default permissions file " + file, e); + } + } + + return grantExceptions; + } + + private void parse(XmlPullParser parser, Map> + outGrantExceptions) throws IOException, XmlPullParserException { + final int outerDepth = parser.getDepth(); + int type; + while ((type = parser.next()) != XmlPullParser.END_DOCUMENT + && (type != XmlPullParser.END_TAG || parser.getDepth() > outerDepth)) { + if (type == XmlPullParser.END_TAG || type == XmlPullParser.TEXT) { + continue; + } + if (TAG_EXCEPTIONS.equals(parser.getName())) { + parseExceptions(parser, outGrantExceptions); + } else { + Log.e(TAG, "Unknown tag " + parser.getName()); + } + } + } + + private void parseExceptions(XmlPullParser parser, Map> + outGrantExceptions) throws IOException, XmlPullParserException { + final int outerDepth = parser.getDepth(); + int type; + while ((type = parser.next()) != XmlPullParser.END_DOCUMENT + && (type != XmlPullParser.END_TAG || parser.getDepth() > outerDepth)) { + if (type == XmlPullParser.END_TAG || type == XmlPullParser.TEXT) { + continue; + } + if (TAG_EXCEPTION.equals(parser.getName())) { + String packageName = parser.getAttributeValue(null, ATTR_PACKAGE); + + List packageExceptions = + outGrantExceptions.get(packageName); + if (packageExceptions == null) { + // The package must be on the system image + PackageParser.Package pkg = getSystemPackageLPr(packageName); + if (pkg == null) { + Log.w(TAG, "Unknown package:" + packageName); + XmlUtils.skipCurrentTag(parser); + return; + } + + // The package must support runtime permissions + if (!doesPackageSupportRuntimePermissions(pkg)) { + Log.w(TAG, "Skipping non supporting runtime permissions package:" + + packageName); + XmlUtils.skipCurrentTag(parser); + return; + } + packageExceptions = new ArrayList<>(); + outGrantExceptions.put(packageName, packageExceptions); + } + + parsePermission(parser, packageExceptions); + } else { + Log.e(TAG, "Unknown tag " + parser.getName() + "under "); + } + } + } + + private void parsePermission(XmlPullParser parser, List + outPackageExceptions) throws IOException, XmlPullParserException { + final int outerDepth = parser.getDepth(); + int type; + while ((type = parser.next()) != XmlPullParser.END_DOCUMENT + && (type != XmlPullParser.END_TAG || parser.getDepth() > outerDepth)) { + if (type == XmlPullParser.END_TAG || type == XmlPullParser.TEXT) { + continue; + } + + if (TAG_PERMISSION.contains(parser.getName())) { + String name = parser.getAttributeValue(null, ATTR_NAME); + if (name == null) { + Log.w(TAG, "Mandatory name attribute missing for permission tag"); + XmlUtils.skipCurrentTag(parser); + continue; + } + + final boolean fixed = XmlUtils.readBooleanAttribute(parser, ATTR_FIXED); + + DefaultPermissionGrant exception = new DefaultPermissionGrant(name, fixed); + outPackageExceptions.add(exception); + } else { + Log.e(TAG, "Unknown tag " + parser.getName() + "under "); + } + } + } + private static boolean doesPackageSupportRuntimePermissions(PackageParser.Package pkg) { return pkg.applicationInfo.targetSdkVersion > Build.VERSION_CODES.LOLLIPOP_MR1; } + + private static final class DefaultPermissionGrant { + final String name; + final boolean fixed; + + public DefaultPermissionGrant(String name, boolean fixed) { + this.name = name; + this.fixed = fixed; + } + } } diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 2ed64f18349c..f326555ee00a 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -35,7 +35,6 @@ import static android.content.pm.PackageManager.FLAG_PERMISSION_USER_SET; import static android.content.pm.PackageManager.INSTALL_EXTERNAL; import static android.content.pm.PackageManager.INSTALL_FAILED_ALREADY_EXISTS; import static android.content.pm.PackageManager.INSTALL_FAILED_CONFLICTING_PROVIDER; -import static android.content.pm.PackageManager.INSTALL_FAILED_DEXOPT; import static android.content.pm.PackageManager.INSTALL_FAILED_DUPLICATE_PACKAGE; import static android.content.pm.PackageManager.INSTALL_FAILED_DUPLICATE_PERMISSION; import static android.content.pm.PackageManager.INSTALL_FAILED_EPHEMERAL_INVALID; @@ -101,7 +100,6 @@ import static com.android.server.pm.PermissionsState.PERMISSION_OPERATION_SUCCES import android.Manifest; import android.annotation.NonNull; import android.annotation.Nullable; -import android.annotation.UserIdInt; import android.app.ActivityManager; import android.app.ActivityManagerNative; import android.app.IActivityManager; @@ -737,8 +735,7 @@ public class PackageManagerService extends IPackageManager.Stub { final SparseArray mIntentFilterVerificationStates = new SparseArray(); - final DefaultPermissionGrantPolicy mDefaultPermissionPolicy = - new DefaultPermissionGrantPolicy(this); + final DefaultPermissionGrantPolicy mDefaultPermissionPolicy; // List of packages names to keep cached, even if they are uninstalled for all users private List mKeepUninstalledPackages; @@ -2115,6 +2112,8 @@ public class PackageManagerService extends IPackageManager.Stub { mProcessLoggingHandler = new ProcessLoggingHandler(); Watchdog.getInstance().addThread(mHandler, WATCHDOG_TIMEOUT); + mDefaultPermissionPolicy = new DefaultPermissionGrantPolicy(this); + File dataDir = Environment.getDataDirectory(); mAppInstallDir = new File(dataDir, "app"); mAppLib32InstallDir = new File(dataDir, "app-lib"); @@ -17937,6 +17936,13 @@ Slog.v(TAG, ":: stepped forward, applying functor at tag " + parser.getName()); mDefaultPermissionPolicy.grantDefaultPermissions(userId); } + // If we did not grant default permissions, we preload from this the + // default permission exceptions lazily to ensure we don't hit the + // disk on a new user creation. + if (grantPermissionsUserIds == EMPTY_INT_ARRAY) { + mDefaultPermissionPolicy.scheduleReadDefaultPermissionExceptions(); + } + // Kick off any messages waiting for system ready if (mPostSystemReadyMessages != null) { for (Message msg : mPostSystemReadyMessages) { -- GitLab From e9563659a5976a82c643267cd309fbb705256331 Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Thu, 18 Aug 2016 17:33:41 -0700 Subject: [PATCH 043/809] Fix issue #30929080: Default Assist app is set to None... ...on removing the third pary search app We weren't taking into account old style assistants when determining whether something interesting had been removed. Change-Id: I6b7b09cdf0781622924e10556d678565570dbd05 --- .../VoiceInteractionManagerService.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java index 43d2a1f1156c..a04034e3f764 100644 --- a/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java +++ b/services/voiceinteraction/java/com/android/server/voiceinteraction/VoiceInteractionManagerService.java @@ -535,6 +535,18 @@ public class VoiceInteractionManagerService extends SystemService { + " user=" + userHandle); } + ComponentName getCurAssistant(int userHandle) { + String curAssistant = Settings.Secure.getStringForUser( + mContext.getContentResolver(), + Settings.Secure.ASSISTANT, userHandle); + if (TextUtils.isEmpty(curAssistant)) { + return null; + } + if (DEBUG) Slog.d(TAG, "getCurAssistant curAssistant=" + curAssistant + + " user=" + userHandle); + return ComponentName.unflattenFromString(curAssistant); + } + void resetCurAssistant(int userHandle) { Settings.Secure.putStringForUser(mContext.getContentResolver(), Settings.Secure.ASSISTANT, null, userHandle); @@ -1178,6 +1190,7 @@ public class VoiceInteractionManagerService extends SystemService { synchronized (VoiceInteractionManagerServiceStub.this) { ComponentName curInteractor = getCurInteractor(userHandle); ComponentName curRecognizer = getCurRecognizer(userHandle); + ComponentName curAssistant = getCurAssistant(userHandle); if (curRecognizer == null) { // Could a new recognizer appear when we don't have one pre-installed? if (anyPackagesAppearing()) { @@ -1196,6 +1209,7 @@ public class VoiceInteractionManagerService extends SystemService { // the default config. setCurInteractor(null, userHandle); setCurRecognizer(null, userHandle); + resetCurAssistant(userHandle); initForUser(userHandle); return; } @@ -1212,6 +1226,20 @@ public class VoiceInteractionManagerService extends SystemService { return; } + if (curAssistant != null) { + int change = isPackageDisappearing(curAssistant.getPackageName()); + if (change == PACKAGE_PERMANENT_CHANGE) { + // If the currently set assistant is being removed, then we should + // reset back to the default state (which is probably that we prefer + // to have the default full voice interactor enabled). + setCurInteractor(null, userHandle); + setCurRecognizer(null, userHandle); + resetCurAssistant(userHandle); + initForUser(userHandle); + return; + } + } + // There is no interactor, so just deal with a simple recognizer. int change = isPackageDisappearing(curRecognizer.getPackageName()); if (change == PACKAGE_PERMANENT_CHANGE -- GitLab From 9201a30a959491e144d7df510163da69c93981ac Mon Sep 17 00:00:00 2001 From: Rubin Xu Date: Wed, 10 Aug 2016 10:53:24 +0100 Subject: [PATCH 044/809] Set DeviceLockedForUser state synchronously Setting DeviceLockedForUser on the handler thread will lead to a race condition where an immedidate read might see a stale value. Bug: 30728557 Change-Id: Id9d510d7ad4dbcde6344a044e45f4b2feac19257 --- .../server/trust/TrustManagerService.java | 42 +++++++++---------- 1 file changed, 19 insertions(+), 23 deletions(-) diff --git a/services/core/java/com/android/server/trust/TrustManagerService.java b/services/core/java/com/android/server/trust/TrustManagerService.java index d9c42541f9f4..a7b9cf44bae6 100644 --- a/services/core/java/com/android/server/trust/TrustManagerService.java +++ b/services/core/java/com/android/server/trust/TrustManagerService.java @@ -102,9 +102,8 @@ public class TrustManagerService extends SystemService { private static final int MSG_START_USER = 7; private static final int MSG_CLEANUP_USER = 8; private static final int MSG_SWITCH_USER = 9; - private static final int MSG_SET_DEVICE_LOCKED = 10; - private static final int MSG_FLUSH_TRUST_USUALLY_MANAGED = 11; - private static final int MSG_UNLOCK_USER = 12; + private static final int MSG_FLUSH_TRUST_USUALLY_MANAGED = 10; + private static final int MSG_UNLOCK_USER = 11; private static final int TRUST_USUALLY_MANAGED_FLUSH_DELAY = 2 * 60 * 1000; @@ -317,20 +316,6 @@ public class TrustManagerService extends SystemService { } } - public void setDeviceLockedForUser(int userId, boolean locked) { - if (mLockPatternUtils.isSeparateProfileChallengeEnabled(userId)) { - synchronized (mDeviceLockedForUser) { - mDeviceLockedForUser.put(userId, locked); - } - if (locked) { - try { - ActivityManagerNative.getDefault().notifyLockedProfile(userId); - } catch (RemoteException e) { - } - } - } - } - boolean isDeviceLockedInner(int userId) { synchronized (mDeviceLockedForUser) { return mDeviceLockedForUser.get(userId, true); @@ -838,10 +823,24 @@ public class TrustManagerService extends SystemService { } @Override - public void setDeviceLockedForUser(int userId, boolean value) { + public void setDeviceLockedForUser(int userId, boolean locked) { enforceReportPermission(); - mHandler.obtainMessage(MSG_SET_DEVICE_LOCKED, value ? 1 : 0, userId) - .sendToTarget(); + final long identity = Binder.clearCallingIdentity(); + try { + if (mLockPatternUtils.isSeparateProfileChallengeEnabled(userId)) { + synchronized (mDeviceLockedForUser) { + mDeviceLockedForUser.put(userId, locked); + } + if (locked) { + try { + ActivityManagerNative.getDefault().notifyLockedProfile(userId); + } catch (RemoteException e) { + } + } + } + } finally { + Binder.restoreCallingIdentity(identity); + } } @Override @@ -917,9 +916,6 @@ public class TrustManagerService extends SystemService { mCurrentUser = msg.arg1; refreshDeviceLockedForUser(UserHandle.USER_ALL); break; - case MSG_SET_DEVICE_LOCKED: - setDeviceLockedForUser(msg.arg2, msg.arg1 != 0); - break; case MSG_FLUSH_TRUST_USUALLY_MANAGED: SparseBooleanArray usuallyManaged; synchronized (mTrustUsuallyManagedForUser) { -- GitLab From 02799d57d7d488da0b67e7e94cd66dfe50c68490 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Fri, 19 Aug 2016 04:31:46 -0700 Subject: [PATCH 045/809] Import translations. DO NOT MERGE Change-Id: I89cc90bed937b12a939bd4c43f0a6ee834ce088a Auto-generated-cl: translation import --- core/res/res/values-gl-rES/strings.xml | 2 +- core/res/res/values-iw/strings.xml | 2 +- core/res/res/values-ko/strings.xml | 2 +- core/res/res/values-ky-rKG/strings.xml | 9 +++------ core/res/res/values-pt-rPT/strings.xml | 2 +- 5 files changed, 7 insertions(+), 10 deletions(-) diff --git a/core/res/res/values-gl-rES/strings.xml b/core/res/res/values-gl-rES/strings.xml index 8023edffdb47..350caaab8fa6 100644 --- a/core/res/res/values-gl-rES/strings.xml +++ b/core/res/res/values-gl-rES/strings.xml @@ -598,7 +598,7 @@ "Devolver chamada" "Coche" "Empresa (ppal.)" - "ISDN" + "RDSI" "Principal" "Outro fax" "Radio" diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml index bebe027cb67f..10c583637f59 100644 --- a/core/res/res/values-iw/strings.xml +++ b/core/res/res/values-iw/strings.xml @@ -1362,7 +1362,7 @@ "אפשרויות נוספות" "‏%1$s‏, %2$s" "‏%1$s‏, %2$s‏, %3$s" - "אחסון משותף פנימי" + "אחסון שיתוף פנימי" "‏כרטיס SD" "‏כרטיס SD של %s" "‏כונן USB" diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml index 5b446b445a0f..8bd7160d16b8 100644 --- a/core/res/res/values-ko/strings.xml +++ b/core/res/res/values-ko/strings.xml @@ -1310,7 +1310,7 @@ "옵션 더보기" "%1$s, %2$s" "%1$s, %2$s, %3$s" - "내부 공유 저장공간" + "내부 공유 저장용량" "SD 카드" "%s SD 카드" "USB 드라이브" diff --git a/core/res/res/values-ky-rKG/strings.xml b/core/res/res/values-ky-rKG/strings.xml index 0f82dcbdffcf..58c2c8a2f219 100644 --- a/core/res/res/values-ky-rKG/strings.xml +++ b/core/res/res/values-ky-rKG/strings.xml @@ -1197,8 +1197,7 @@ "Колдонмого орнотуу сеанстарын окуу мүмкүнчүлүгүн берет. Ушуну менен, ал жигердүү топтом орнотууларынын чоо-жайын көрө алат." "орнотуу топтомдорун суроо" "Колдонмо топтомдорду орнотууга уруксат сурай алат." - - + "Масштабдын параметрлерин өзгөртүү үчүн бул жерди эки жолу басыңыз." "Виджетти кошуу мүмкүн болбоду." "Өтүү" "Издөө" @@ -1229,10 +1228,8 @@ "Эскертмелердин маанилүүлүгүн баалоо кызматы" "VPN иштетилди" "VPN %s аркылуу жандырылды" - - - - + "Тармактын параметрлерин өзгөртүү үчүн бул жерди басыңыз." + "%s сеансына туташуу ишке ашты. Желенин параметрлерин өзгөртүү үчүн бул жерди басыңыз." "Дайым иштеген VPN туташууда…" "Дайым иштеген VPN туташтырылды" "Дайым иштеген VPN\'де ката кетти" diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml index ae115d877588..5a356d54b456 100644 --- a/core/res/res/values-pt-rPT/strings.xml +++ b/core/res/res/values-pt-rPT/strings.xml @@ -1310,7 +1310,7 @@ "Mais opções" "%1$s, %2$s" "%1$s, %2$s, %3$s" - "Armazenamento interno partilhado" + "Armazen. interno partilhado" "Cartão SD" "Cartão SD %s" "Unidade USB" -- GitLab From 0d052c95088190b37011f045a8443aaea28cd23b Mon Sep 17 00:00:00 2001 From: Greg Kaiser Date: Thu, 18 Aug 2016 15:55:10 -0700 Subject: [PATCH 046/809] ContextHubService: Update caches on nanoapp unload When we unloaded a nanoapp, we weren't updating the cache of nanoapp information at the ContextHubServer java layer. Also, we were leaking the handle. We fix both of these by invoking the shared delete_app_instance() function which properly handles all of this. Furthermore, we allow delete_app_instance() to accept a nullptr for the JNIEnv, and fix invalidateNanoApps() so that it won't crash if it's unable to connect to the JVM. Note that our Java communication in general here should be cleaned up, but we're too late in the release cycle for that, and leave that for b/30961119. Bug: 30951974, 30968860 Change-Id: Ibb07666a8d54618bddaa3eaf36f9578926eb2b0f --- ...id_hardware_location_ContextHubService.cpp | 40 +++++++++++++------ 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/core/jni/android_hardware_location_ContextHubService.cpp b/core/jni/android_hardware_location_ContextHubService.cpp index 9515a0e336aa..df8f945f1b13 100644 --- a/core/jni/android_hardware_location_ContextHubService.cpp +++ b/core/jni/android_hardware_location_ContextHubService.cpp @@ -386,23 +386,29 @@ static int add_app_instance(const hub_app_info *appInfo, uint32_t hubHandle, } int delete_app_instance(int id, JNIEnv *env) { - if (!db.appInstances.count(id)) { - ALOGW("Cannot find App id : %d", id); - return -1; - } + bool fullyDeleted = true; + if (db.appInstances.count(id)) { + db.appInstances.erase(id); + } else { + ALOGW("Cannot delete App id (%d) from the JNI C++ cache", id); + fullyDeleted = false; + } return_id(id); - db.appInstances.erase(id); - if (env->CallIntMethod(db.jniInfo.jContextHubService, + + if ((env == nullptr) || + (env->CallIntMethod(db.jniInfo.jContextHubService, db.jniInfo.contextHubServiceDeleteAppInstance, - id) != 0) { - ALOGW("Could not delete App id : %d", id); - return -1; + id) != 0)) { + ALOGW("Cannot delete App id (%d) from Java cache", id); + fullyDeleted = false; } - ALOGI("Deleted App id : %d", id); - - return 0; + if (fullyDeleted) { + ALOGI("Deleted App id : %d", id); + return 0; + } + return -1; } static int startLoadAppTxn(uint64_t appId, int hubHandle) { @@ -613,7 +619,14 @@ void closeUnloadTxn(bool success) { if (success && fetchTxnData(&txnId, &txnData) == 0 && txnId == CONTEXT_HUB_UNLOAD_APP) { - db.appInstances.erase(*(uint32_t *)txnData); + JNIEnv *env; + if ((db.jniInfo.vm)->AttachCurrentThread(&env, nullptr) != JNI_OK) { + ALOGW("Could not attach to JVM !"); + env = nullptr; + } + // TODO(b/30806218): Stop treating 'int' and uint32_t as the same type. + int handle = *(uint32_t *)txnData; + delete_app_instance(handle, env); } else { ALOGW("Could not unload the app successfully ! success %d, txnData %p", success, txnData); } @@ -668,6 +681,7 @@ static void invalidateNanoApps(uint32_t hubHandle) { if ((db.jniInfo.vm)->AttachCurrentThread(&env, nullptr) != JNI_OK) { ALOGW("Could not attach to JVM !"); + env = nullptr; } auto end = db.appInstances.end(); -- GitLab From f8210797adeb6527fe44dff6f8902d4744ad9540 Mon Sep 17 00:00:00 2001 From: Greg Kaiser Date: Thu, 18 Aug 2016 16:59:12 -0700 Subject: [PATCH 047/809] ContextHubService: Make app handle size match Java Our code was sometimes using 'uint32_t' and mostly using 'int' to represent these custom handles. It was also passing this value, as a byte stream, to the Java layer. In the Java layer, this is an 'int', and thus we change all of our usages to be 'jint' here. However, we still pass it as a byte stream, since we're too late in the release cycle to change the API. But now this is at least a consistent size for the code. This code still suffers from hub handles being inconsistent with their types, but we leave that for another bug (b/30958512). Bug: 30806218 Change-Id: I8d9ae8b9519f399d6723cf96293d84a2f5bd9cce --- ...id_hardware_location_ContextHubService.cpp | 75 ++++++++++--------- 1 file changed, 39 insertions(+), 36 deletions(-) diff --git a/core/jni/android_hardware_location_ContextHubService.cpp b/core/jni/android_hardware_location_ContextHubService.cpp index df8f945f1b13..a54085f52680 100644 --- a/core/jni/android_hardware_location_ContextHubService.cpp +++ b/core/jni/android_hardware_location_ContextHubService.cpp @@ -34,11 +34,11 @@ #include "JNIHelp.h" #include "core_jni_helpers.h" -static constexpr int OS_APP_ID = -1; +static constexpr jint OS_APP_ID = -1; static constexpr uint64_t ALL_APPS = UINT64_C(0xFFFFFFFFFFFFFFFF); -static constexpr int MIN_APP_ID = 1; -static constexpr int MAX_APP_ID = 128; +static constexpr jint MIN_APP_ID = 1; +static constexpr jint MAX_APP_ID = 128; static constexpr size_t MSG_HEADER_SIZE = 4; static constexpr size_t HEADER_FIELD_MSG_TYPE = 0; @@ -102,7 +102,7 @@ struct context_hub_info_s { struct app_instance_info_s { uint64_t truncName; // Possibly truncated name for logging uint32_t hubHandle; // Id of the hub this app is on - int instanceId; // system wide unique instance id - assigned + jint instanceId; // system wide unique instance id - assigned struct hub_app_info appInfo; // returned from the HAL }; @@ -153,8 +153,8 @@ struct contextHubServiceDb_s { int initialized; context_hub_info_s hubInfo; jniInfo_s jniInfo; - std::queue freeIds; - std::unordered_map appInstances; + std::queue freeIds; + std::unordered_map appInstances; txnManager_s txnManager; }; @@ -259,16 +259,17 @@ static int get_hub_id_for_hub_handle(int hubHandle) { } } -static int get_hub_handle_for_app_instance(int id) { +static int get_hub_handle_for_app_instance(jint id) { if (!db.appInstances.count(id)) { - ALOGD("%s: Cannot find app for app instance %d", __FUNCTION__, id); + ALOGD("%s: Cannot find app for app instance %" PRId32, + __FUNCTION__, id); return -1; } return db.appInstances[id].hubHandle; } -static int get_hub_id_for_app_instance(int id) { +static int get_hub_id_for_app_instance(jint id) { int hubHandle = get_hub_handle_for_app_instance(id); if (hubHandle < 0) { @@ -278,7 +279,7 @@ static int get_hub_id_for_app_instance(int id) { return db.hubInfo.hubs[hubHandle].hub_id; } -static int get_app_instance_for_app_id(uint64_t app_id) { +static jint get_app_instance_for_app_id(uint64_t app_id) { auto end = db.appInstances.end(); for (auto current = db.appInstances.begin(); current != end; ++current) { if (current->second.appInfo.app_name.id == app_id) { @@ -289,9 +290,10 @@ static int get_app_instance_for_app_id(uint64_t app_id) { return -1; } -static int set_dest_app(hub_message_t *msg, int id) { +static int set_dest_app(hub_message_t *msg, jint id) { if (!db.appInstances.count(id)) { - ALOGD("%s: Cannot find app for app instance %d", __FUNCTION__, id); + ALOGD("%s: Cannot find app for app instance %" PRId32, + __FUNCTION__, id); return -1; } @@ -322,7 +324,7 @@ static void sendQueryForApps(uint64_t appId) { } } -static int return_id(int id) { +static int return_id(jint id) { // Note : This method is not thread safe. // id returned is guaranteed to be in use if (id >= 0) { @@ -333,9 +335,9 @@ static int return_id(int id) { return -1; } -static int generate_id() { +static jint generate_id() { // Note : This method is not thread safe. - int retVal = -1; + jint retVal = -1; if (!db.freeIds.empty()) { retVal = db.freeIds.front(); @@ -346,8 +348,8 @@ static int generate_id() { } -static int add_app_instance(const hub_app_info *appInfo, uint32_t hubHandle, - int appInstanceHandle, JNIEnv *env) { +static jint add_app_instance(const hub_app_info *appInfo, uint32_t hubHandle, + jint appInstanceHandle, JNIEnv *env) { ALOGI("Loading App"); @@ -358,7 +360,7 @@ static int add_app_instance(const hub_app_info *appInfo, uint32_t hubHandle, if (db.appInstances.count(appInstanceHandle) == 0) { appInstanceHandle = generate_id(); if (appInstanceHandle < 0) { - ALOGE("Cannot find resources to add app instance %d", + ALOGE("Cannot find resources to add app instance %" PRId32, appInstanceHandle); return -1; } @@ -379,19 +381,19 @@ static int add_app_instance(const hub_app_info *appInfo, uint32_t hubHandle, entry.appInfo.version); ALOGW("Added App 0x%" PRIx64 " on hub Handle %" PRId32 - " as appInstance %d", entry.truncName, + " as appInstance %" PRId32, entry.truncName, entry.hubHandle, appInstanceHandle); return appInstanceHandle; } -int delete_app_instance(int id, JNIEnv *env) { +int delete_app_instance(jint id, JNIEnv *env) { bool fullyDeleted = true; if (db.appInstances.count(id)) { db.appInstances.erase(id); } else { - ALOGW("Cannot delete App id (%d) from the JNI C++ cache", id); + ALOGW("Cannot delete App id (%" PRId32 ") from the JNI C++ cache", id); fullyDeleted = false; } return_id(id); @@ -400,12 +402,12 @@ int delete_app_instance(int id, JNIEnv *env) { (env->CallIntMethod(db.jniInfo.jContextHubService, db.jniInfo.contextHubServiceDeleteAppInstance, id) != 0)) { - ALOGW("Cannot delete App id (%d) from Java cache", id); + ALOGW("Cannot delete App id (%" PRId32 ") from Java cache", id); fullyDeleted = false; } if (fullyDeleted) { - ALOGI("Deleted App id : %d", id); + ALOGI("Deleted App id : %" PRId32, id); return 0; } return -1; @@ -413,7 +415,7 @@ int delete_app_instance(int id, JNIEnv *env) { static int startLoadAppTxn(uint64_t appId, int hubHandle) { app_instance_info_s *txnInfo = (app_instance_info_s *)malloc(sizeof(app_instance_info_s)); - int instanceId = generate_id(); + jint instanceId = generate_id(); if (!txnInfo || instanceId < 0) { return_id(instanceId); @@ -438,8 +440,8 @@ static int startLoadAppTxn(uint64_t appId, int hubHandle) { return 0; } -static int startUnloadAppTxn(uint32_t appInstanceHandle) { - uint32_t *txnData = (uint32_t *) malloc(sizeof(uint32_t)); +static int startUnloadAppTxn(jint appInstanceHandle) { + jint *txnData = (jint *) malloc(sizeof(jint)); if (!txnData) { ALOGW("Cannot allocate memory to start unload transaction"); return -1; @@ -460,7 +462,6 @@ static void initContextHubService() { int err = 0; db.hubInfo.hubs = nullptr; db.hubInfo.numHubs = 0; - int i; err = hw_get_module(CONTEXT_HUB_MODULE_ID, (hw_module_t const**)(&db.hubInfo.contextHubModule)); @@ -471,7 +472,7 @@ static void initContextHubService() { } // Prep for storing app info - for(i = MIN_APP_ID; i <= MAX_APP_ID; i++) { + for (jint i = MIN_APP_ID; i <= MAX_APP_ID; i++) { db.freeIds.push(i); } @@ -491,7 +492,7 @@ static void initContextHubService() { return; } - for (i = 0; i < db.hubInfo.numHubs; i++) { + for (int i = 0; i < db.hubInfo.numHubs; i++) { db.hubInfo.cookies[i] = db.hubInfo.hubs[i].hub_id; ALOGI("Subscribing to hubHandle %d with OS App name %" PRIu64, i, db.hubInfo.hubs[i].os_app_name.id); if (db.hubInfo.contextHubModule->subscribe_messages(db.hubInfo.hubs[i].hub_id, @@ -553,13 +554,15 @@ int handle_query_apps_response(const uint8_t *msg, int msgLen, memcpy(&info, unalignedInfoAddr, sizeof(info)); // We will only have one instance of the app // TODO : Change this logic once we support multiple instances of the same app - int appInstance = get_app_instance_for_app_id(info.app_name.id); + jint appInstance = get_app_instance_for_app_id(info.app_name.id); add_app_instance(&info, hubHandle, appInstance, env); } return 0; } +// TODO(b/30807327): Do not use raw bytes for additional data. Use the +// JNI interfaces for the appropriate types. static void passOnOsResponse(uint32_t hubHandle, uint32_t msgType, status_response_t *rsp, int8_t *additionalData, size_t additionalDataLen) { @@ -624,8 +627,7 @@ void closeUnloadTxn(bool success) { ALOGW("Could not attach to JVM !"); env = nullptr; } - // TODO(b/30806218): Stop treating 'int' and uint32_t as the same type. - int handle = *(uint32_t *)txnData; + jint handle = *reinterpret_cast(txnData); delete_app_instance(handle, env); } else { ALOGW("Could not unload the app successfully ! success %d, txnData %p", success, txnData); @@ -634,7 +636,7 @@ void closeUnloadTxn(bool success) { closeTxn(); } -void closeLoadTxn(bool success, int *appInstanceHandle) { +void closeLoadTxn(bool success, jint *appInstanceHandle) { void *txnData; hub_messages_e txnId; @@ -711,7 +713,7 @@ static int handle_os_message(uint32_t msgType, uint32_t hubHandle, case CONTEXT_HUB_UNLOAD_APP: if (isValidOsStatus(msg, msgLen, &rsp)) { if (msgType == CONTEXT_HUB_LOAD_APP) { - int appInstanceHandle; + jint appInstanceHandle; closeLoadTxn(rsp.result == 0, &appInstanceHandle); passOnOsResponse(hubHandle, msgType, &rsp, (int8_t *)(&appInstanceHandle), sizeof(appInstanceHandle)); @@ -792,7 +794,7 @@ int context_hub_callback(uint32_t hubId, if (messageType < CONTEXT_HUB_TYPE_PRIVATE_MSG_BASE) { handle_os_message(messageType, hubHandle, (uint8_t*) msg->message, msg->message_len); } else { - int appHandle = get_app_instance_for_app_id(msg->app_name.id); + jint appHandle = get_app_instance_for_app_id(msg->app_name.id); if (appHandle < 0) { ALOGE("Filtering out message due to invalid App Instance."); } else { @@ -1065,7 +1067,8 @@ static jint nativeSendMessage(JNIEnv *env, jobject instance, jintArray header_, ALOGD("Asking HAL to remove app"); retVal = db.hubInfo.contextHubModule->send_message(hubId, &msg); } else { - ALOGD("Could not find app instance %d on hubHandle %d, setAddress %d", + ALOGD("Could not find app instance %" PRId32 " on hubHandle %" PRId32 + ", setAddress %d", header[HEADER_FIELD_APP_INSTANCE], header[HEADER_FIELD_HUB_HANDLE], (int)setAddressSuccess); -- GitLab From c34649411d053185b3572c4cd924e6f14295d8cd Mon Sep 17 00:00:00 2001 From: Phil Weaver Date: Thu, 4 Aug 2016 10:37:17 -0700 Subject: [PATCH 048/809] Dispatch a11y events in separate thread. Moves the IPCs into a separate thread, where they should affect jank a lot less. Bug: 30183085 Change-Id: Ib76159d158e7a867e76cdd5c8ea3a318949fcc5b --- .../accessibility/AccessibilityManager.java | 164 +++++++++++++----- .../accessibility/IAccessibilityManager.aidl | 5 +- .../AccessibilityManagerService.java | 46 +++-- .../server/AccessibilityManagerTest.java | 8 - 4 files changed, 160 insertions(+), 63 deletions(-) diff --git a/core/java/android/view/accessibility/AccessibilityManager.java b/core/java/android/view/accessibility/AccessibilityManager.java index 2dfa8cdd3db9..44f6facd88f5 100644 --- a/core/java/android/view/accessibility/AccessibilityManager.java +++ b/core/java/android/view/accessibility/AccessibilityManager.java @@ -21,6 +21,7 @@ import android.accessibilityservice.AccessibilityServiceInfo; import android.annotation.NonNull; import android.content.Context; import android.content.pm.PackageManager; +import android.content.pm.ParceledListSlice; import android.content.pm.ServiceInfo; import android.os.Binder; import android.os.Handler; @@ -91,6 +92,9 @@ public final class AccessibilityManager { /** @hide */ public static final int AUTOCLICK_DELAY_DEFAULT = 600; + /** @hide */ + public static final int MAX_A11Y_EVENTS_PER_SERVICE_CALL = 20; + static final Object sInstanceSync = new Object(); private static AccessibilityManager sInstance; @@ -99,6 +103,8 @@ public final class AccessibilityManager { private IAccessibilityManager mService; + private EventDispatchThread mEventDispatchThread; + final int mUserId; final Handler mHandler; @@ -170,7 +176,7 @@ public final class AccessibilityManager { private final IAccessibilityManagerClient.Stub mClient = new IAccessibilityManagerClient.Stub() { public void setState(int state) { - // We do not want to change this immediately as the applicatoin may + // We do not want to change this immediately as the application may // have already checked that accessibility is on and fired an event, // that is now propagating up the view tree, Hence, if accessibility // is now off an exception will be thrown. We want to have the exception @@ -297,47 +303,32 @@ public final class AccessibilityManager { * their descendants. */ public void sendAccessibilityEvent(AccessibilityEvent event) { - final IAccessibilityManager service; - final int userId; - synchronized (mLock) { - service = getServiceLocked(); - if (service == null) { + if (!isEnabled()) { + Looper myLooper = Looper.myLooper(); + if (myLooper == Looper.getMainLooper()) { + throw new IllegalStateException( + "Accessibility off. Did you forget to check that?"); + } else { + // If we're not running on the thread with the main looper, it's possible for + // the state of accessibility to change between checking isEnabled and + // calling this method. So just log the error rather than throwing the + // exception. + Log.e(LOG_TAG, "AccessibilityEvent sent with accessibility disabled"); return; } - if (!mIsEnabled) { - Looper myLooper = Looper.myLooper(); - if (myLooper == Looper.getMainLooper()) { - throw new IllegalStateException( - "Accessibility off. Did you forget to check that?"); - } else { - // If we're not running on the thread with the main looper, it's possible for - // the state of accessibility to change between checking isEnabled and - // calling this method. So just log the error rather than throwing the - // exception. - Log.e(LOG_TAG, "AccessibilityEvent sent with accessibility disabled"); - return; - } - } - userId = mUserId; } - boolean doRecycle = false; - try { - event.setEventTime(SystemClock.uptimeMillis()); - // it is possible that this manager is in the same process as the service but - // client using it is called through Binder from another process. Example: MMS - // app adds a SMS notification and the NotificationManagerService calls this method - long identityToken = Binder.clearCallingIdentity(); - doRecycle = service.sendAccessibilityEvent(event, userId); - Binder.restoreCallingIdentity(identityToken); - if (DEBUG) { - Log.i(LOG_TAG, event + " sent"); - } - } catch (RemoteException re) { - Log.e(LOG_TAG, "Error during sending " + event + " ", re); - } finally { - if (doRecycle) { - event.recycle(); + event.setEventTime(SystemClock.uptimeMillis()); + + getEventDispatchThread().scheduleEvent(event); + } + + private EventDispatchThread getEventDispatchThread() { + synchronized (mLock) { + if (mEventDispatchThread == null) { + mEventDispatchThread = new EventDispatchThread(mService, mUserId); + mEventDispatchThread.start(); } + return mEventDispatchThread; } } @@ -620,7 +611,7 @@ public final class AccessibilityManager { } } - private IAccessibilityManager getServiceLocked() { + private IAccessibilityManager getServiceLocked() { if (mService == null) { tryConnectToServiceLocked(null); } @@ -722,4 +713,99 @@ public final class AccessibilityManager { } } } + + private static class EventDispatchThread extends Thread { + // Second lock used to keep UI thread performant. Never try to grab mLock when holding + // this one, or the UI thread will block in send AccessibilityEvent. + private final Object mEventQueueLock = new Object(); + + // Two lists to hold events. The app thread fills one while we empty the other. + private final ArrayList mEventLists0 = + new ArrayList<>(MAX_A11Y_EVENTS_PER_SERVICE_CALL); + private final ArrayList mEventLists1 = + new ArrayList<>(MAX_A11Y_EVENTS_PER_SERVICE_CALL); + + private boolean mPingPongListToggle; + + private final IAccessibilityManager mService; + + private final int mUserId; + + EventDispatchThread(IAccessibilityManager service, int userId) { + mService = service; + mUserId = userId; + } + + @Override + public void run() { + while (true) { + ArrayList listBeingDrained; + synchronized (mEventQueueLock) { + ArrayList listBeingFilled = getListBeingFilledLocked(); + if (listBeingFilled.isEmpty()) { + try { + mEventQueueLock.wait(); + } catch (InterruptedException e) { + // Treat as a notify + } + } + // Swap buffers + mPingPongListToggle = !mPingPongListToggle; + listBeingDrained = listBeingFilled; + } + dispatchEvents(listBeingDrained); + } + } + + public void scheduleEvent(AccessibilityEvent event) { + synchronized (mEventQueueLock) { + getListBeingFilledLocked().add(event); + mEventQueueLock.notifyAll(); + } + } + + private ArrayList getListBeingFilledLocked() { + return (mPingPongListToggle) ? mEventLists0 : mEventLists1; + } + + private void dispatchEvents(ArrayList events) { + int eventListCapacityLowerBound = events.size(); + while (events.size() > 0) { + // We don't want to consume extra memory if an app sends a lot of events in a + // one-off event. Cap the list length at double the max events per call. + // We'll end up with extra GC for apps that send huge numbers of events, but + // sending that many events will lead to bad performance in any case. + if ((eventListCapacityLowerBound > 2 * MAX_A11Y_EVENTS_PER_SERVICE_CALL) + && (events.size() <= 2 * MAX_A11Y_EVENTS_PER_SERVICE_CALL)) { + events.trimToSize(); + eventListCapacityLowerBound = events.size(); + } + // We only expect this loop to run once, as the app shouldn't be sending + // huge numbers of events. + // The clear in the called method will remove the sent events + dispatchOneBatchOfEvents(events.subList(0, + Math.min(events.size(), MAX_A11Y_EVENTS_PER_SERVICE_CALL))); + } + } + + private void dispatchOneBatchOfEvents(List events) { + if (events.isEmpty()) { + return; + } + long identityToken = Binder.clearCallingIdentity(); + try { + mService.sendAccessibilityEvents(new ParceledListSlice<>(events), + mUserId); + } catch (RemoteException re) { + Log.e(LOG_TAG, "Error sending multiple events"); + } + Binder.restoreCallingIdentity(identityToken); + if (DEBUG) { + Log.i(LOG_TAG, events.size() + " events sent"); + } + for (int i = events.size() - 1; i >= 0; i--) { + events.remove(i).recycle(); + } + } + } } diff --git a/core/java/android/view/accessibility/IAccessibilityManager.aidl b/core/java/android/view/accessibility/IAccessibilityManager.aidl index 7f44bac8bc6f..aa9cb39062f9 100644 --- a/core/java/android/view/accessibility/IAccessibilityManager.aidl +++ b/core/java/android/view/accessibility/IAccessibilityManager.aidl @@ -21,6 +21,7 @@ import android.accessibilityservice.AccessibilityServiceInfo; import android.accessibilityservice.IAccessibilityServiceConnection; import android.accessibilityservice.IAccessibilityServiceClient; import android.content.ComponentName; +import android.content.pm.ParceledListSlice; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityNodeInfo; import android.view.accessibility.IAccessibilityInteractionConnection; @@ -37,7 +38,9 @@ interface IAccessibilityManager { int addClient(IAccessibilityManagerClient client, int userId); - boolean sendAccessibilityEvent(in AccessibilityEvent uiEvent, int userId); + void sendAccessibilityEvent(in AccessibilityEvent uiEvent, int userId); + + void sendAccessibilityEvents(in ParceledListSlice events, int userId); List getInstalledAccessibilityServiceList(int userId); diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java index 695ea606a90b..b1fbcde6c727 100644 --- a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java @@ -451,7 +451,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub { } @Override - public boolean sendAccessibilityEvent(AccessibilityEvent event, int userId) { + public void sendAccessibilityEvent(AccessibilityEvent event, int userId) { synchronized (mLock) { // We treat calls from a profile as if made by its parent as profiles // share the accessibility state of the parent. The call below @@ -459,23 +459,39 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub { final int resolvedUserId = mSecurityPolicy .resolveCallingUserIdEnforcingPermissionsLocked(userId); // This method does nothing for a background user. - if (resolvedUserId != mCurrentUserId) { - return true; // yes, recycle the event - } - if (mSecurityPolicy.canDispatchAccessibilityEventLocked(event)) { - mSecurityPolicy.updateActiveAndAccessibilityFocusedWindowLocked(event.getWindowId(), - event.getSourceNodeId(), event.getEventType(), event.getAction()); - mSecurityPolicy.updateEventSourceLocked(event); - notifyAccessibilityServicesDelayedLocked(event, false); - notifyAccessibilityServicesDelayedLocked(event, true); - } - if (mHasInputFilter && mInputFilter != null) { - mMainHandler.obtainMessage(MainHandler.MSG_SEND_ACCESSIBILITY_EVENT_TO_INPUT_FILTER, - AccessibilityEvent.obtain(event)).sendToTarget(); + if (resolvedUserId == mCurrentUserId) { + if (mSecurityPolicy.canDispatchAccessibilityEventLocked(event)) { + mSecurityPolicy.updateActiveAndAccessibilityFocusedWindowLocked( + event.getWindowId(), event.getSourceNodeId(), + event.getEventType(), event.getAction()); + mSecurityPolicy.updateEventSourceLocked(event); + notifyAccessibilityServicesDelayedLocked(event, false); + notifyAccessibilityServicesDelayedLocked(event, true); + } + if (mHasInputFilter && mInputFilter != null) { + mMainHandler.obtainMessage( + MainHandler.MSG_SEND_ACCESSIBILITY_EVENT_TO_INPUT_FILTER, + AccessibilityEvent.obtain(event)).sendToTarget(); + } } + } + if (OWN_PROCESS_ID != Binder.getCallingPid()) { event.recycle(); } - return (OWN_PROCESS_ID != Binder.getCallingPid()); + } + + @Override + public void sendAccessibilityEvents(ParceledListSlice events, int userId) { + List a11yEvents = events.getList(); + // Grab the lock once for the entire batch + synchronized (mLock) { + int numEventsToProcess = Math.min(a11yEvents.size(), + AccessibilityManager.MAX_A11Y_EVENTS_PER_SERVICE_CALL); + for (int i = 0; i < numEventsToProcess; i++) { + AccessibilityEvent event = a11yEvents.get(i); + sendAccessibilityEvent(event, userId); + } + } } @Override diff --git a/services/tests/servicestests/src/com/android/server/AccessibilityManagerTest.java b/services/tests/servicestests/src/com/android/server/AccessibilityManagerTest.java index 026a2adc1f96..6e3e6c6278a9 100644 --- a/services/tests/servicestests/src/com/android/server/AccessibilityManagerTest.java +++ b/services/tests/servicestests/src/com/android/server/AccessibilityManagerTest.java @@ -131,18 +131,10 @@ public class AccessibilityManagerTest extends AndroidTestCase { public void testSendAccessibilityEvent_AccessibilityEnabled() throws Exception { AccessibilityEvent sentEvent = AccessibilityEvent.obtain(); - when(mMockService.sendAccessibilityEvent(eq(sentEvent), anyInt())) - .thenReturn(true /* should recycle event object */) - .thenReturn(false /* should not recycle event object */); - AccessibilityManager manager = createManager(true); manager.sendAccessibilityEvent(sentEvent); assertSame("The event should be recycled.", sentEvent, AccessibilityEvent.obtain()); - - manager.sendAccessibilityEvent(sentEvent); - - assertNotSame("The event should not be recycled.", sentEvent, AccessibilityEvent.obtain()); } @MediumTest -- GitLab From fe6d4f518a34aa620eda9fe36365c2f750e6c67f Mon Sep 17 00:00:00 2001 From: Greg Kaiser Date: Fri, 19 Aug 2016 10:24:07 -0700 Subject: [PATCH 049/809] ContextHubService: Don't double report app loads Our logs would show us loading apps twice, when in reality we load them once, and then update our caches with the app version later. There are other issues around how this code works (for example, b/30970527), but this is an appropriate approach at this stage of the release. Bug: 30836667 Change-Id: I2e2a65bc8a2ef4d1703df0a0586a8ed251607af7 --- .../android/hardware/location/ContextHubService.java | 11 +++++++++-- .../hardware/location/NanoAppInstanceInfo.java | 7 ++++++- .../android_hardware_location_ContextHubService.cpp | 6 ++++-- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/core/java/android/hardware/location/ContextHubService.java b/core/java/android/hardware/location/ContextHubService.java index 062c9580c1e4..a699b687918b 100644 --- a/core/java/android/hardware/location/ContextHubService.java +++ b/core/java/android/hardware/location/ContextHubService.java @@ -322,9 +322,16 @@ public class ContextHubService extends IContextHubService.Stub { appInfo.setNeededReadMemBytes(PRE_LOADED_APP_MEM_REQ); appInfo.setNeededWriteMemBytes(PRE_LOADED_APP_MEM_REQ); + String action; + if (mNanoAppHash.containsKey(appInstanceHandle)) { + action = "Updated"; + } else { + action = "Added"; + } + mNanoAppHash.put(appInstanceHandle, appInfo); - Log.d(TAG, "Added app instance " + appInstanceHandle + " with id " + appId - + " version " + appVersion); + Log.d(TAG, action + " app instance " + appInstanceHandle + " with id " + + appId + " version " + appVersion); return 0; } diff --git a/core/java/android/hardware/location/NanoAppInstanceInfo.java b/core/java/android/hardware/location/NanoAppInstanceInfo.java index 71a5a8816f58..ac6d83f622b2 100644 --- a/core/java/android/hardware/location/NanoAppInstanceInfo.java +++ b/core/java/android/hardware/location/NanoAppInstanceInfo.java @@ -113,7 +113,12 @@ public class NanoAppInstanceInfo { } /** - * Set the application version + * Get the application version + * + * NOTE: There is a race condition where shortly after loading, this + * may return -1 instead of the correct version. + * + * TODO(b/30970527): Fix this race condition. * * @return int - version of the app */ diff --git a/core/jni/android_hardware_location_ContextHubService.cpp b/core/jni/android_hardware_location_ContextHubService.cpp index a54085f52680..62608cd199ca 100644 --- a/core/jni/android_hardware_location_ContextHubService.cpp +++ b/core/jni/android_hardware_location_ContextHubService.cpp @@ -357,7 +357,9 @@ static jint add_app_instance(const hub_app_info *appInfo, uint32_t hubHandle, app_instance_info_s entry; assert(appInfo); + const char *action = "Updated"; if (db.appInstances.count(appInstanceHandle) == 0) { + action = "Added"; appInstanceHandle = generate_id(); if (appInstanceHandle < 0) { ALOGE("Cannot find resources to add app instance %" PRId32, @@ -380,8 +382,8 @@ static jint add_app_instance(const hub_app_info *appInfo, uint32_t hubHandle, hubHandle, entry.instanceId, entry.truncName, entry.appInfo.version); - ALOGW("Added App 0x%" PRIx64 " on hub Handle %" PRId32 - " as appInstance %" PRId32, entry.truncName, + ALOGW("%s App 0x%" PRIx64 " on hub Handle %" PRId32 + " as appInstance %" PRId32, action, entry.truncName, entry.hubHandle, appInstanceHandle); return appInstanceHandle; -- GitLab From 10163d0dd25d637ac91f91cb8138d7dce07503fb Mon Sep 17 00:00:00 2001 From: Greg Kaiser Date: Fri, 19 Aug 2016 10:31:58 -0700 Subject: [PATCH 050/809] ContextHubService: Fix app query We now ask for the appId the user requested, instead of asking for no apps (asking for NANOAPP_VENDOR_ALL_APPS without pairing it with any vendors results in no apps). Bug: 30829899 Change-Id: I896af60814d55c7f8cb298c9142212bac5b06995 --- core/jni/android_hardware_location_ContextHubService.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/jni/android_hardware_location_ContextHubService.cpp b/core/jni/android_hardware_location_ContextHubService.cpp index 62608cd199ca..d0c66a38ae4f 100644 --- a/core/jni/android_hardware_location_ContextHubService.cpp +++ b/core/jni/android_hardware_location_ContextHubService.cpp @@ -305,7 +305,7 @@ static void query_hub_for_apps(uint64_t appId, uint32_t hubHandle) { hub_message_t msg; query_apps_request_t queryMsg; - queryMsg.app_name.id = NANOAPP_VENDOR_ALL_APPS; + queryMsg.app_name.id = appId; msg.message_type = CONTEXT_HUB_QUERY_APPS; msg.message_len = sizeof(queryMsg); -- GitLab From 2197e8d6f50a29bbb0412f9c7e69bbc8a857f76a Mon Sep 17 00:00:00 2001 From: Salvador Martinez Date: Thu, 4 Aug 2016 13:37:52 -0700 Subject: [PATCH 051/809] Added error handling to settings suggestions list The suggestions list in the summary page of the settings app could sometimes cause a crash due to an uncaught exception. Tis fixed now. Bug: 30656840 Change-Id: If79f53e6a8c17a81653228d613797e94c473d410 (cherry picked from commit 60d92b3b8390e33e069f343d6a425ab07c498d3d) --- .../src/com/android/settingslib/SuggestionParser.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/SettingsLib/src/com/android/settingslib/SuggestionParser.java b/packages/SettingsLib/src/com/android/settingslib/SuggestionParser.java index 741b0ea82951..21786c917763 100644 --- a/packages/SettingsLib/src/com/android/settingslib/SuggestionParser.java +++ b/packages/SettingsLib/src/com/android/settingslib/SuggestionParser.java @@ -28,7 +28,6 @@ import android.util.Xml; import android.provider.Settings; import android.accounts.Account; import android.accounts.AccountManager; -import android.content.ContentValues; import android.content.pm.PackageManager; import android.content.res.Resources; import android.view.InflateException; @@ -176,6 +175,9 @@ public class SuggestionParser { } catch (PackageManager.NameNotFoundException e) { Log.w(TAG, "Cannot find resources for " + suggestion.intent.getComponent()); return false; + } catch (Resources.NotFoundException e) { + Log.w(TAG, "Cannot find resources for " + suggestion.intent.getComponent(), e); + return false; } } -- GitLab From fac5be2ace153998d8d317c76a22dffe9bf17f34 Mon Sep 17 00:00:00 2001 From: Greg Kaiser Date: Wed, 17 Aug 2016 15:33:10 -0700 Subject: [PATCH 052/809] ContextHubManager: Fix API documentation. Most notably, the loadNanoApp() claimed it was returning the nano app instance handle on success, when it actually was just returning 0 on success. Bug: 30475803 Change-Id: I436255f0103a743a02f40c41ee4c6f653d007d89 --- .../hardware/location/ContextHubManager.java | 30 +++++++++++++++++-- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/core/java/android/hardware/location/ContextHubManager.java b/core/java/android/hardware/location/ContextHubManager.java index 0c3d4b3d7be6..72ce997c7f1b 100644 --- a/core/java/android/hardware/location/ContextHubManager.java +++ b/core/java/android/hardware/location/ContextHubManager.java @@ -123,10 +123,18 @@ public final class ContextHubManager { /** * Load a nano app on a specified context hub. * + * Note that loading is asynchronous. When we return from this method, + * the nano app (probably) hasn't loaded yet. Assuming a return of 0 + * from this method, then the final success/failure for the load, along + * with the "handle" for the nanoapp, is all delivered in a byte + * string via a call to Callback.onMessageReceipt. + * + * TODO(b/30784270): Provide a better success/failure and "handle" delivery. + * * @param hubHandle handle of context hub to load the app on. * @param app the nanoApp to load on the hub * - * @return int nanoAppInstance of the loaded nanoApp on success, + * @return 0 if the command for loading was sent to the context hub; * -1 otherwise * * @see NanoApp @@ -150,9 +158,17 @@ public final class ContextHubManager { /** * Unload a specified nanoApp * - * @param nanoAppHandle handle of the nanoApp to load + * Note that unloading is asynchronous. When we return from this method, + * the nano app (probably) hasn't unloaded yet. Assuming a return of 0 + * from this method, then the final success/failure for the unload is + * delivered in a byte string via a call to Callback.onMessageReceipt. + * + * TODO(b/30784270): Provide a better success/failure delivery. * - * @return int 0 on success, -1 otherwise + * @param nanoAppHandle handle of the nanoApp to unload + * + * @return 0 if the command for unloading was sent to the context hub; + * -1 otherwise */ public int unloadNanoApp(int nanoAppHandle) { int retVal = -1; @@ -209,6 +225,14 @@ public final class ContextHubManager { /** * Send a message to a specific nano app instance on a context hub. * + * Note that the return value of this method only speaks of success + * up to the point of sending this to the Context Hub. It is not + * an assurance that the Context Hub successfully sent this message + * on to the nanoapp. If assurance is desired, a protocol should be + * established between your code and the nanoapp, with the nanoapp + * sending a confirmation message (which will be reported via + * Callback.onMessageReceipt). + * * @param hubHandle handle of the hub to send the message to * @param nanoAppHandle handle of the nano app to send to * @param message Message to be sent -- GitLab From 6d9e7f669a6f03fa73abcae1ae36b529de1f6f3f Mon Sep 17 00:00:00 2001 From: Greg Kaiser Date: Wed, 17 Aug 2016 16:44:14 -0700 Subject: [PATCH 053/809] ContextHubService: Maintain hub result meaning We're squeezing a 4-byte signed value to 1-byte. The naive (implicit) cast we were using could flip this value from positive to negative, or vice versa, and completely change the meaning of the result. API freeze prevents us from fixing this properly at the moment, but we use a less naive approach to truncate this value, maintaining its meaning and logging when we've changed the value. Bug:30829863 Change-Id: I0e80af9b192066fdf36fee565a4587eb75a5ea7b --- ...id_hardware_location_ContextHubService.cpp | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/core/jni/android_hardware_location_ContextHubService.cpp b/core/jni/android_hardware_location_ContextHubService.cpp index 9515a0e336aa..16a58b1c30c0 100644 --- a/core/jni/android_hardware_location_ContextHubService.cpp +++ b/core/jni/android_hardware_location_ContextHubService.cpp @@ -584,7 +584,32 @@ static void passOnOsResponse(uint32_t hubHandle, uint32_t msgType, header[HEADER_FIELD_HUB_HANDLE] = hubHandle; header[HEADER_FIELD_APP_INSTANCE] = OS_APP_ID; - msg[0] = rsp->result; + // Due to API constraints, at the moment we can't change the fact that + // we're changing our 4-byte response to a 1-byte value. But we can prevent + // the possible change in sign (and thus meaning) that would happen from + // a naive cast. Further, we can log when we're losing part of the value. + // TODO(b/30918279): Don't truncate this result. + int8_t truncatedResult; + bool neededToTruncate; + if (rsp->result < INT8_MIN) { + neededToTruncate = true; + truncatedResult = INT8_MIN; + } else if (rsp->result > INT8_MAX) { + neededToTruncate = true; + truncatedResult = INT8_MAX; + } else { + neededToTruncate = false; + // Since this value fits within an int8_t, this is a safe cast which + // won't change the value or sign. + truncatedResult = static_cast(rsp->result); + } + if (neededToTruncate) { + ALOGW("Response from Context Hub truncated. Value was %" PRId32 + ", but giving Java layer %" PRId8, + rsp->result, (int)truncatedResult); + } + + msg[0] = truncatedResult; if (additionalData) { memcpy(&msg[1], additionalData, additionalDataLen); -- GitLab From 390704908004a9298944091c0f74a481fac1c4a8 Mon Sep 17 00:00:00 2001 From: Greg Kaiser Date: Wed, 17 Aug 2016 16:50:44 -0700 Subject: [PATCH 054/809] NanoAppFilter: Workaround HubId issues There's no API to set mContextHubId, but testMatch() uses this. We can't add API at this point of the release cycle, so instead we default mContextHubId to HUB_ANY, which makes it always match. Bug:30018518 Change-Id: I4e08afc65889dc109a4da1bd99a027345da865ca --- core/java/android/hardware/location/NanoAppFilter.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/java/android/hardware/location/NanoAppFilter.java b/core/java/android/hardware/location/NanoAppFilter.java index 8db70e9c53f1..bf35a3d6fbd6 100644 --- a/core/java/android/hardware/location/NanoAppFilter.java +++ b/core/java/android/hardware/location/NanoAppFilter.java @@ -43,7 +43,8 @@ public class NanoAppFilter { private long mAppIdVendorMask; // Id of the context hub this instance is expected on - private int mContextHubId; + // TODO: Provide an API which will let us change this HubId. + private int mContextHubId = HUB_ANY; /** * Flag indicating any version. With this flag set, all versions shall match provided version. -- GitLab From 823cd0e35a6a98494a45b63c983ed9fc977ec1de Mon Sep 17 00:00:00 2001 From: Salvador Martinez Date: Thu, 11 Aug 2016 17:14:11 -0700 Subject: [PATCH 055/809] Prevent wifi icon from disappearing Made changes to AccessPointPreference to prevent it from ever setting a empty icon to reduce the jittering from elements all changing at once. Bug: 29979747 Change-Id: If432aed1d55b37cf3d48074275f8b3dc0584f884 (cherry picked from commit 45a1594247eecf02d64f6b95b19a6843f298d0e7) --- .../wifi/AccessPointPreference.java | 38 ++++++++++++++++--- 1 file changed, 32 insertions(+), 6 deletions(-) diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPointPreference.java b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPointPreference.java index 284827b57929..aae9cf6de797 100644 --- a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPointPreference.java +++ b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPointPreference.java @@ -29,7 +29,6 @@ import android.text.TextUtils; import android.util.AttributeSet; import android.util.SparseArray; import android.widget.TextView; - import com.android.settingslib.R; public class AccessPointPreference extends Preference { @@ -44,13 +43,14 @@ public class AccessPointPreference extends Preference { private final StateListDrawable mWifiSld; private final int mBadgePadding; private final UserBadgeCache mBadgeCache; - private TextView mTitleView; + private boolean mForSavedNetworks = false; private AccessPoint mAccessPoint; private Drawable mBadge; private int mLevel; private CharSequence mContentDescription; + private int mDefaultIconResId; static final int[] WIFI_CONNECTION_STRENGTH = { R.string.accessibility_wifi_one_bar, @@ -85,6 +85,24 @@ public class AccessPointPreference extends Preference { refresh(); } + public AccessPointPreference(AccessPoint accessPoint, Context context, UserBadgeCache cache, + int iconResId, boolean forSavedNetworks) { + super(context); + mBadgeCache = cache; + mAccessPoint = accessPoint; + mForSavedNetworks = forSavedNetworks; + mAccessPoint.setTag(this); + mLevel = -1; + mDefaultIconResId = iconResId; + + mWifiSld = (StateListDrawable) context.getTheme() + .obtainStyledAttributes(wifi_signal_attributes).getDrawable(0); + + // Distance from the end of the title at which this AP's user badge should sit. + mBadgePadding = context.getResources() + .getDimensionPixelSize(R.dimen.wifi_preference_badge_padding); + } + public AccessPoint getAccessPoint() { return mAccessPoint; } @@ -112,7 +130,7 @@ public class AccessPointPreference extends Preference { protected void updateIcon(int level, Context context) { if (level == -1) { - setIcon(null); + safeSetDefaultIcon(); } else { if (getIcon() == null) { // To avoid a drawing race condition, we first set the state (SECURE/NONE) and then @@ -124,16 +142,24 @@ public class AccessPointPreference extends Preference { ? STATE_SECURED : STATE_NONE); Drawable drawable = mWifiSld.getCurrent(); - if (!mForSavedNetworks) { + if (!mForSavedNetworks && drawable != null) { setIcon(drawable); - } else { - setIcon(null); + return; } } + safeSetDefaultIcon(); } } } + private void safeSetDefaultIcon() { + if (mDefaultIconResId != 0) { + setIcon(mDefaultIconResId); + } else { + setIcon(null); + } + } + protected void updateBadge(Context context) { WifiConfiguration config = mAccessPoint.getConfig(); if (config != null) { -- GitLab From 3be73d3950fbc06d45ce8141f5e3585be141111a Mon Sep 17 00:00:00 2001 From: Greg Kaiser Date: Thu, 18 Aug 2016 10:13:52 -0700 Subject: [PATCH 056/809] ContextHubManager: Document InstanceInfo bug Our getNanoAppInstanceInfo() method returns incorrect information for several fields in many cases. We're too late in the release cycle to fix the core of this issue, but we can at least document it so users aren't surprised. Bug: 30944457 Change-Id: I9330c3b77d08c36befbe20258c6cc45dc640f103 --- .../hardware/location/ContextHubManager.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/core/java/android/hardware/location/ContextHubManager.java b/core/java/android/hardware/location/ContextHubManager.java index 0c3d4b3d7be6..72227a4d2a8a 100644 --- a/core/java/android/hardware/location/ContextHubManager.java +++ b/core/java/android/hardware/location/ContextHubManager.java @@ -169,6 +169,24 @@ public final class ContextHubManager { /** * get information about the nano app instance * + * NOTE: The returned NanoAppInstanceInfo does _not_ contain correct + * information for several fields, specifically: + * - getName() + * - getPublisher() + * - getNeededExecMemBytes() + * - getNeededReadMemBytes() + * - getNeededWriteMemBytes() + * + * For example, say you call loadNanoApp() with a NanoApp that has + * getName() returning "My Name". Later, if you call getNanoAppInstanceInfo + * for that nanoapp, the returned NanoAppInstanceInfo's getName() + * method will claim "Preloaded app, unknown", even though you would + * have expected "My Name". For now, as the user, you'll need to + * separately track the above fields if they are of interest to you. + * + * TODO(b/30943489): Have the returned NanoAppInstanceInfo contain the + * correct information. + * * @param nanoAppHandle handle of the nanoAppInstance * @return NanoAppInstanceInfo Information about the nano app instance. * -- GitLab From ad31603b80e13e914ff4c3a41b5c04558d04d3ca Mon Sep 17 00:00:00 2001 From: Ta-wei Yen Date: Fri, 19 Aug 2016 11:43:15 -0700 Subject: [PATCH 057/809] Add carrier regex config values for VisualVoicemailSmsFilter Verizon requires all SMS that starts with "//VZWVVM" to be treated as a VVM SMS. EXTRA_VOICEMAIL_SMS_MESSAGE_BODY is also added to VociemailContract to send the message body of a SMS that matches the carrier regex but is not parsable. Bug: 30954955 Change-Id: Ib5449164a5290b132648cc28b1e1d3d9ddd5fea0 --- .../android/provider/VoicemailContract.java | 23 +++++++++++++++---- core/res/res/values/config.xml | 9 ++++++++ core/res/res/values/symbols.xml | 2 ++ 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/core/java/android/provider/VoicemailContract.java b/core/java/android/provider/VoicemailContract.java index 27b0a8baf62b..5099eebf6eb1 100644 --- a/core/java/android/provider/VoicemailContract.java +++ b/core/java/android/provider/VoicemailContract.java @@ -30,7 +30,6 @@ import android.provider.CallLog.Calls; import android.telecom.PhoneAccount; import android.telecom.PhoneAccountHandle; import android.telecom.Voicemail; - import java.util.List; /** @@ -123,21 +122,35 @@ public class VoicemailContract { "android.intent.action.VOICEMAIL_SMS_RECEIVED"; /** - * Extra included in {@link #ACTION_VOICEMAIL_SMS_RECEIVED} broadcast intents to indicate the - * event type of the SMS. Common values are "SYNC" or "STATUS" + * Optional extra included in {@link #ACTION_VOICEMAIL_SMS_RECEIVED} broadcast intents to + * indicate the event type of the SMS. Common values are "SYNC" or "STATUS". The extra will not + * exist if the framework cannot parse the SMS as voicemail but the carrier pattern indicates + * it is. */ /** @hide */ public static final String EXTRA_VOICEMAIL_SMS_PREFIX = "com.android.voicemail.extra.VOICEMAIL_SMS_PREFIX"; /** - * Extra included in {@link #ACTION_VOICEMAIL_SMS_RECEIVED} broadcast intents to indicate the - * fields sent by the SMS + * Optional extra included in {@link #ACTION_VOICEMAIL_SMS_RECEIVED} broadcast intents to + * indicate the fields sent by the SMS. The extra will not exist if the framework cannot + * parse the SMS as voicemail but the carrier pattern indicates it is. */ /** @hide */ public static final String EXTRA_VOICEMAIL_SMS_FIELDS = "com.android.voicemail.extra.VOICEMAIL_SMS_FIELDS"; + /** + * Extra included in {@link #ACTION_VOICEMAIL_SMS_RECEIVED} broadcast intents to indicate the + * message body of the SMS. This extra is included if the framework cannot + * parse the SMS as voicemail but the carrier pattern indicates it is. + */ + /** + * @hide + */ + public static final String EXTRA_VOICEMAIL_SMS_MESSAGE_BODY = + "com.android.voicemail.extra.VOICEMAIL_SMS_MESSAGE_BODY"; + /** * Extra included in {@link #ACTION_VOICEMAIL_SMS_RECEIVED} broadcast intents to indicate he * subscription ID of the phone account that received the SMS. diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index 2835c6f5fa0a..ccfbf7d38658 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -2513,4 +2513,13 @@ Note: Also update appropriate overlay files. --> + + + + + 310004,310010,310012,310013,310590,310890,310910,311110,311270,311271,311272,311273,311274,311275,311276,311277,311278,311279,311280,311281,311282,311283,311284,311285,311286,311287,311288,311289,311390,311480,311481,311482,311483,311484,311485,311486,311487,311488,311489;^//VZWVVM.* + diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index 2a40c0836ae5..5ffdb666795b 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -2265,6 +2265,8 @@ + + -- GitLab From 6b312a09fcea77651680f63a876ccd4ea378393f Mon Sep 17 00:00:00 2001 From: Adrian Roos Date: Wed, 17 Aug 2016 13:26:33 -0700 Subject: [PATCH 058/809] HIC: Improve AccelerationClassifier Apply a bunch of improvements to the acceleration classifier: - When dragging from the edges, we get some delay without movement between the DOWN and MOVE, which confounds the classifier. Now discounts data segments where the delay does not match the expected 16ms. - The distance ratio did not compensate for differences in sampling. If it does it's equivalent to the speed ratio however. The distance ratio was removed and the impact of the speed ratio score doubled. - If we cannot calculate the ratio, no longer penalize the traces for this. Bug: 27405075 Change-Id: I067eb4d478593afbb20354e5c85a05353e2b4184 --- .../classifier/AccelerationClassifier.java | 26 ++++++++--------- .../classifier/DistanceRatioEvaluator.java | 29 ------------------- .../classifier/SpeedRatioEvaluator.java | 1 + 3 files changed, 14 insertions(+), 42 deletions(-) delete mode 100644 packages/SystemUI/src/com/android/systemui/classifier/DistanceRatioEvaluator.java diff --git a/packages/SystemUI/src/com/android/systemui/classifier/AccelerationClassifier.java b/packages/SystemUI/src/com/android/systemui/classifier/AccelerationClassifier.java index bad739fdc764..4585fe9fb868 100644 --- a/packages/SystemUI/src/com/android/systemui/classifier/AccelerationClassifier.java +++ b/packages/SystemUI/src/com/android/systemui/classifier/AccelerationClassifier.java @@ -62,36 +62,36 @@ public class AccelerationClassifier extends StrokeClassifier { @Override public float getFalseTouchEvaluation(int type, Stroke stroke) { Data data = mStrokeMap.get(stroke); - return SpeedRatioEvaluator.evaluate(data.maxSpeedRatio) - + DistanceRatioEvaluator.evaluate(data.maxDistanceRatio); + return 2 * SpeedRatioEvaluator.evaluate(data.maxSpeedRatio); } private static class Data { - public Point previousPoint; - public float previousSpeed; - public float previousDistance; - public float maxSpeedRatio; - public float maxDistanceRatio; + + static final float MILLIS_TO_NANOS = 1e6f; + + Point previousPoint; + float previousSpeed = 0; + float maxSpeedRatio = 0; public Data(Point point) { previousPoint = point; - previousSpeed = previousDistance = 0.0f; - maxDistanceRatio = maxSpeedRatio = 0.0f; } public void addPoint(Point point) { float distance = previousPoint.dist(point); float duration = (float) (point.timeOffsetNano - previousPoint.timeOffsetNano + 1); float speed = distance / duration; - if (previousDistance != 0.0f) { - maxDistanceRatio = Math.max(maxDistanceRatio, distance / previousDistance); - } + if (duration > 20 * MILLIS_TO_NANOS || duration < 5 * MILLIS_TO_NANOS) { + // reject this segment and ensure we won't use data about it in the next round. + previousSpeed = 0; + previousPoint = point; + return; + } if (previousSpeed != 0.0f) { maxSpeedRatio = Math.max(maxSpeedRatio, speed / previousSpeed); } - previousDistance = distance; previousSpeed = speed; previousPoint = point; } diff --git a/packages/SystemUI/src/com/android/systemui/classifier/DistanceRatioEvaluator.java b/packages/SystemUI/src/com/android/systemui/classifier/DistanceRatioEvaluator.java deleted file mode 100644 index 8acb009a230f..000000000000 --- a/packages/SystemUI/src/com/android/systemui/classifier/DistanceRatioEvaluator.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * 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. - * 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 - */ - -package com.android.systemui.classifier; - -public class DistanceRatioEvaluator { - public static float evaluate(float value) { - float evaluation = 0.0f; - if (value <= 1.0) evaluation++; - if (value <= 0.5) evaluation++; - if (value > 4.0) evaluation++; - if (value > 7.0) evaluation++; - if (value > 14.0) evaluation++; - return evaluation; - } -} diff --git a/packages/SystemUI/src/com/android/systemui/classifier/SpeedRatioEvaluator.java b/packages/SystemUI/src/com/android/systemui/classifier/SpeedRatioEvaluator.java index 4c6cea0367ad..e34f222d3799 100644 --- a/packages/SystemUI/src/com/android/systemui/classifier/SpeedRatioEvaluator.java +++ b/packages/SystemUI/src/com/android/systemui/classifier/SpeedRatioEvaluator.java @@ -19,6 +19,7 @@ package com.android.systemui.classifier; public class SpeedRatioEvaluator { public static float evaluate(float value) { float evaluation = 0.0f; + if (value == 0) return 0; if (value <= 1.0) evaluation++; if (value <= 0.5) evaluation++; if (value > 9.0) evaluation++; -- GitLab From 085a05cd864252314bcf5c339017a16b68105204 Mon Sep 17 00:00:00 2001 From: Makoto Onuki Date: Fri, 19 Aug 2016 11:39:29 -0700 Subject: [PATCH 059/809] Off-load unlocking users onto a worker thread Bug 29645168 (cherry picked from commit 3107ff78454d54c0494911bf69ca952152af7cf0) Change-Id: I3f8e768f6afeb6386a08ba9ac48e0e206395da2b --- .../android/server/pm/ShortcutService.java | 82 ++++++++++++------- .../server/pm/BaseShortcutManagerTest.java | 11 +++ .../server/pm/ShortcutManagerTest1.java | 17 ++-- 3 files changed, 72 insertions(+), 38 deletions(-) diff --git a/services/core/java/com/android/server/pm/ShortcutService.java b/services/core/java/com/android/server/pm/ShortcutService.java index c1fc7f114c67..b80775b690e2 100644 --- a/services/core/java/com/android/server/pm/ShortcutService.java +++ b/services/core/java/com/android/server/pm/ShortcutService.java @@ -324,9 +324,29 @@ public class ShortcutService extends IShortcutService.Stub { int CHECK_LAUNCHER_ACTIVITY = 12; int IS_ACTIVITY_ENABLED = 13; int PACKAGE_UPDATE_CHECK = 14; - - int COUNT = PACKAGE_UPDATE_CHECK + 1; - } + int ASYNC_PRELOAD_USER_DELAY = 15; + + int COUNT = ASYNC_PRELOAD_USER_DELAY + 1; + } + + private static final String[] STAT_LABELS = { + "getHomeActivities()", + "Launcher permission check", + "getPackageInfo()", + "getPackageInfo(SIG)", + "getApplicationInfo", + "cleanupDanglingBitmaps", + "getActivity+metadata", + "getInstalledPackages", + "checkPackageChanges", + "getApplicationResources", + "resourceNameLookup", + "getLauncherActivity", + "checkLauncherActivity", + "isActivityEnabled", + "packageUpdateCheck", + "asyncPreloadUserDelay" + }; final Object mStatLock = new Object(); @@ -533,19 +553,26 @@ public class ShortcutService extends IShortcutService.Stub { /** lifecycle event */ void handleUnlockUser(int userId) { if (DEBUG) { - Slog.d(TAG, "handleUnlockUser: user=" + userId); + Slog.d(TAG, "handleUnlockUser: user=" + userId); } synchronized (mLock) { mUnlockedUsers.put(userId, true); - - // Preload the user's shortcuts. - // Also see if the locale has changed. - // Note as of nyc, the locale is per-user, so the locale shouldn't change - // when the user is locked. However due to b/30119489 it still happens. - getUserShortcutsLocked(userId).detectLocaleChange(); - - checkPackageChanges(userId); } + + // Preload the user data. + // Note, we don't use mHandler here but instead just start a new thread. + // This is because mHandler (which uses com.android.internal.os.BackgroundThread) is very + // busy at this point and this could take hundreds of milliseconds, which would be too + // late since the launcher would already have started. + // So we just create a new thread. This code runs rarely, so we don't use a thread pool + // or anything. + final long start = injectElapsedRealtime(); + injectRunOnNewThread(() -> { + synchronized (mLock) { + logDurationStat(Stats.ASYNC_PRELOAD_USER_DELAY, start); + getUserShortcutsLocked(userId); + } + }); } /** lifecycle event */ @@ -1110,6 +1137,9 @@ public class ShortcutService extends IShortcutService.Stub { userPackages = new ShortcutUser(this, userId); } mUsers.put(userId, userPackages); + + // Also when a user's data is first accessed, scan all packages. + checkPackageChanges(userId); } return userPackages; } @@ -1468,6 +1498,10 @@ public class ShortcutService extends IShortcutService.Stub { mHandler.post(r); } + void injectRunOnNewThread(Runnable r) { + new Thread(r).start(); + } + /** * @throws IllegalArgumentException if {@code numShortcuts} is bigger than * {@link #getMaxActivityShortcuts()}. @@ -3218,23 +3252,9 @@ public class ShortcutService extends IShortcutService.Stub { pw.println(" Stats:"); synchronized (mStatLock) { - final String p = " "; - dumpStatLS(pw, p, Stats.GET_DEFAULT_HOME, "getHomeActivities()"); - dumpStatLS(pw, p, Stats.LAUNCHER_PERMISSION_CHECK, "Launcher permission check"); - - dumpStatLS(pw, p, Stats.GET_PACKAGE_INFO, "getPackageInfo()"); - dumpStatLS(pw, p, Stats.GET_PACKAGE_INFO_WITH_SIG, "getPackageInfo(SIG)"); - dumpStatLS(pw, p, Stats.GET_APPLICATION_INFO, "getApplicationInfo"); - dumpStatLS(pw, p, Stats.CLEANUP_DANGLING_BITMAPS, "cleanupDanglingBitmaps"); - dumpStatLS(pw, p, Stats.GET_ACTIVITY_WITH_METADATA, "getActivity+metadata"); - dumpStatLS(pw, p, Stats.GET_INSTALLED_PACKAGES, "getInstalledPackages"); - dumpStatLS(pw, p, Stats.CHECK_PACKAGE_CHANGES, "checkPackageChanges"); - dumpStatLS(pw, p, Stats.GET_APPLICATION_RESOURCES, "getApplicationResources"); - dumpStatLS(pw, p, Stats.RESOURCE_NAME_LOOKUP, "resourceNameLookup"); - dumpStatLS(pw, p, Stats.GET_LAUNCHER_ACTIVITY, "getLauncherActivity"); - dumpStatLS(pw, p, Stats.CHECK_LAUNCHER_ACTIVITY, "checkLauncherActivity"); - dumpStatLS(pw, p, Stats.IS_ACTIVITY_ENABLED, "isActivityEnabled"); - dumpStatLS(pw, p, Stats.PACKAGE_UPDATE_CHECK, "packageUpdateCheck"); + for (int i = 0; i < Stats.COUNT; i++) { + dumpStatLS(pw, " ", i); + } } pw.println(); @@ -3277,12 +3297,12 @@ public class ShortcutService extends IShortcutService.Stub { return tobj.format("%Y-%m-%d %H:%M:%S"); } - private void dumpStatLS(PrintWriter pw, String prefix, int statId, String label) { + private void dumpStatLS(PrintWriter pw, String prefix, int statId) { pw.print(prefix); final int count = mCountStats[statId]; final long dur = mDurationStats[statId]; pw.println(String.format("%s: count=%d, total=%dms, avg=%.1fms", - label, count, dur, + STAT_LABELS[statId], count, dur, (count == 0 ? 0 : ((double) dur) / count))); } diff --git a/services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java b/services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java index 1c7a138468cf..e96e97bcaa02 100644 --- a/services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java +++ b/services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java @@ -389,6 +389,11 @@ public abstract class BaseShortcutManagerTest extends InstrumentationTestCase { runOnHandler(r); } + @Override + void injectRunOnNewThread(Runnable r) { + runOnHandler(r); + } + @Override void injectEnforceCallingPermission(String permission, String message) { if (!mCallerPermissions.contains(permission)) { @@ -921,6 +926,12 @@ public abstract class BaseShortcutManagerTest extends InstrumentationTestCase { }); } + protected void setPackageLastUpdateTime(String packageName, long value) { + updatePackageInfo(packageName, pi -> { + pi.lastUpdateTime = value; + }); + } + protected void uninstallPackage(int userId, String packageName) { if (ENABLE_DUMP) { Log.v(TAG, "Unnstall package " + packageName + " / " + userId); diff --git a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java index 253334eec9cf..ed4e391a6273 100644 --- a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java +++ b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java @@ -3945,11 +3945,11 @@ public class ShortcutManagerTest1 extends BaseShortcutManagerTest { mInjectedPackages.remove(CALLING_PACKAGE_1); mInjectedPackages.remove(CALLING_PACKAGE_3); - mService.handleUnlockUser(USER_0); + mService.checkPackageChanges(USER_0); assertNull(mService.getPackageShortcutForTest(CALLING_PACKAGE_1, "s1", USER_0)); assertNotNull(mService.getPackageShortcutForTest(CALLING_PACKAGE_2, "s1", USER_0)); - assertNull(mService.getPackageShortcutForTest(CALLING_PACKAGE_3, "s1", USER_0)); + assertNull(mService.getPackageShortcutForTest(CALLING_PACKAGE_3, "s1", USER_0)); // --------------- assertNotNull(mService.getPackageShortcutForTest(CALLING_PACKAGE_1, "s1", USER_10)); assertNull(mService.getPackageShortcutForTest(CALLING_PACKAGE_2, "s1", USER_10)); assertNotNull(mService.getPackageShortcutForTest(CALLING_PACKAGE_3, "s1", USER_10)); @@ -3961,7 +3961,7 @@ public class ShortcutManagerTest1 extends BaseShortcutManagerTest { assertFalse(bitmapDirectoryExists(CALLING_PACKAGE_2, USER_10)); assertTrue(bitmapDirectoryExists(CALLING_PACKAGE_3, USER_10)); - mService.handleUnlockUser(USER_10); + mService.checkPackageChanges(USER_10); assertNull(mService.getPackageShortcutForTest(CALLING_PACKAGE_1, "s1", USER_0)); assertNotNull(mService.getPackageShortcutForTest(CALLING_PACKAGE_2, "s1", USER_0)); @@ -4154,7 +4154,7 @@ public class ShortcutManagerTest1 extends BaseShortcutManagerTest { updatePackageVersion(CALLING_PACKAGE_1, 1); // Then send the broadcast, to only user-0. - mService.mPackageMonitor.onReceive(getTestContext(), + mService.mPackageMonitor.onReceive(getTestContext(), genPackageUpdateIntent(CALLING_PACKAGE_1, USER_0)); waitOnMainThread(); @@ -4186,10 +4186,13 @@ public class ShortcutManagerTest1 extends BaseShortcutManagerTest { mInjectedCurrentTimeMillis = START_TIME + 200; mRunningUsers.put(USER_10, true); + mUnlockedUsers.put(USER_10, true); reset(c0); reset(c10); + setPackageLastUpdateTime(CALLING_PACKAGE_1, mInjectedCurrentTimeMillis); mService.handleUnlockUser(USER_10); + mService.checkPackageChanges(USER_10); waitOnMainThread(); @@ -4221,7 +4224,7 @@ public class ShortcutManagerTest1 extends BaseShortcutManagerTest { // Then send the broadcast, to only user-0. mService.mPackageMonitor.onReceive(getTestContext(), genPackageUpdateIntent(CALLING_PACKAGE_2, USER_0)); - mService.handleUnlockUser(USER_10); + mService.checkPackageChanges(USER_10); waitOnMainThread(); @@ -4243,9 +4246,9 @@ public class ShortcutManagerTest1 extends BaseShortcutManagerTest { updatePackageVersion(CALLING_PACKAGE_3, 100); // Then send the broadcast, to only user-0. - mService.mPackageMonitor.onReceive(getTestContext(), + mService.mPackageMonitor.onReceive(getTestContext(), genPackageUpdateIntent(CALLING_PACKAGE_3, USER_0)); - mService.handleUnlockUser(USER_10); + mService.checkPackageChanges(USER_10); waitOnMainThread(); -- GitLab From 653c88ed61c1d3465e587e9fa048a31e0d9c8603 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Fri, 19 Aug 2016 17:38:54 -0700 Subject: [PATCH 060/809] Import translations. DO NOT MERGE Change-Id: I454be35982766518b1292b8b62d6f613205ca02e Auto-generated-cl: translation import --- packages/CaptivePortalLogin/res/values-bn-rBD/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/CaptivePortalLogin/res/values-bn-rBD/strings.xml b/packages/CaptivePortalLogin/res/values-bn-rBD/strings.xml index 20173b0dc3bf..24cbfbd6430e 100644 --- a/packages/CaptivePortalLogin/res/values-bn-rBD/strings.xml +++ b/packages/CaptivePortalLogin/res/values-bn-rBD/strings.xml @@ -4,7 +4,7 @@ "CaptivePortalLogin" "যেভাবে আছে সেভাবেই এই নেটওয়ার্ক ব্যবহার করুন" "এই নেটওয়ার্ক ব্যবহার করবেন না" - "নেটওয়ার্কে প্রবেশ করুন করুন" + "নেটওয়ার্কে প্রবেশ করুন" "আপনি যে নেটওয়ার্কে যোগ দেওয়ার চেষ্টা করছেন তাতে নিরাপত্তার সমস্যা আছে।" "উদাহরণস্বরূপ, লগইন পৃষ্ঠাটি প্রদর্শিত প্রতিষ্ঠানের অন্তর্গত নাও হতে পারে৷" "যাই হোক না কেন ব্রাউজারের মাধ্যমে অবিরত রাখুন" -- GitLab From 225d865289536dcf88dcd60abbf038cf2094b5b7 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Fri, 19 Aug 2016 18:06:27 -0700 Subject: [PATCH 061/809] Import translations. DO NOT MERGE Change-Id: I6533c97bd143d63e3ddaa5ef7d86edcbe1dbb611 Auto-generated-cl: translation import --- packages/PrintSpooler/res/values-zh-rCN/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/PrintSpooler/res/values-zh-rCN/strings.xml b/packages/PrintSpooler/res/values-zh-rCN/strings.xml index 3debf8e60cdb..d4e796339bc9 100644 --- a/packages/PrintSpooler/res/values-zh-rCN/strings.xml +++ b/packages/PrintSpooler/res/values-zh-rCN/strings.xml @@ -60,7 +60,7 @@ 找到 %1$s 台打印机 "%1$s - %2$s" - "关于此打印机的更多信息" + "此打印机的详细信息" "无法创建文件" "部分打印服务已停用" "正在搜索打印机" -- GitLab From 8ac0dbea72e6cf2c37984a714286627451d74f99 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Fri, 19 Aug 2016 18:33:08 -0700 Subject: [PATCH 062/809] Import translations. DO NOT MERGE Change-Id: I70e3e40079070238efae9b6b7aa8625395d5b9da Auto-generated-cl: translation import --- packages/SystemUI/res/values-bs-rBA-land/strings.xml | 2 +- packages/SystemUI/res/values-it/strings_car.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/SystemUI/res/values-bs-rBA-land/strings.xml b/packages/SystemUI/res/values-bs-rBA-land/strings.xml index bdc652af8f1a..56a4ad276d08 100644 --- a/packages/SystemUI/res/values-bs-rBA-land/strings.xml +++ b/packages/SystemUI/res/values-bs-rBA-land/strings.xml @@ -19,5 +19,5 @@ - "Ekran je sada zaključan u pejzažnom prikazu." + "Ekran je sada zaključan u vodoravnom prikazu." diff --git a/packages/SystemUI/res/values-it/strings_car.xml b/packages/SystemUI/res/values-it/strings_car.xml index ae26c9e102bd..19c4e2b02ad0 100644 --- a/packages/SystemUI/res/values-it/strings_car.xml +++ b/packages/SystemUI/res/values-it/strings_car.xml @@ -20,5 +20,5 @@ "Guida in modo sicuro" - "È necessario essere sempre pienamente coscienti delle condizioni di guida e rispettare le leggi vigenti. Le indicazioni stradali potrebbero essere imprecise, incomplete, pericolose, non adatte, vietate o implicare l\'attraversamento di confini. Anche le informazioni sulle attività commerciali potrebbero essere imprecise o incomplete. I dati non vengono forniti in tempo reale e non è possibile garantire la precisione della geolocalizzazione. Non maneggiare il dispositivo mobile e non utilizzare app non progettate per Android Auto durante la guida." + "È necessario essere sempre pienamente informati sulle condizioni della strada e rispettare la legislazione vigente. Le indicazioni stradali potrebbero essere imprecise, incomplete, pericolose, inadatte, vietate o richiedere l\'attraversamento di aree amministrative. Anche le informazioni sugli esercizi commerciali potrebbero essere imprecise o incomplete. I dati forniti non sono aggiornati in tempo reale e non è possibile garantire la precisione della geolocalizzazione. Non maneggiare dispositivi mobili e app non destinate ad Android Auto durante la guida." -- GitLab From f71553f601d7d133c26cabac81cc8442366123dd Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Fri, 19 Aug 2016 18:36:00 -0700 Subject: [PATCH 063/809] Import translations. DO NOT MERGE Change-Id: Ia17ddfff5af4a429ba213f34a5298fdf43b584d5 Auto-generated-cl: translation import --- packages/VpnDialogs/res/values-ro/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/VpnDialogs/res/values-ro/strings.xml b/packages/VpnDialogs/res/values-ro/strings.xml index 4865e964fc74..e2e1e44021b0 100644 --- a/packages/VpnDialogs/res/values-ro/strings.xml +++ b/packages/VpnDialogs/res/values-ro/strings.xml @@ -25,5 +25,5 @@ "Durată:" "Trimise:" "Primite:" - "%1$s (de) octeți/%2$s (de) pachete" + "%1$s octeți/%2$s pachete" -- GitLab From f8912fc4894862853f6bf5a767097bd6c894cd02 Mon Sep 17 00:00:00 2001 From: Sungmin Choi Date: Wed, 13 Jul 2016 11:00:09 +0900 Subject: [PATCH 064/809] Fix roam icon issues in Austria Bug: 30026376 Bug: 30026566 Change-Id: I08aaaa9e461009bc6d10f80ca3a9dc3940a98728 --- core/res/res/values-mcc232-mnc10/config.xml | 26 +++++++++++++++++++++ core/res/res/values-mcc232-mnc13/config.xml | 25 ++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 core/res/res/values-mcc232-mnc10/config.xml create mode 100644 core/res/res/values-mcc232-mnc13/config.xml diff --git a/core/res/res/values-mcc232-mnc10/config.xml b/core/res/res/values-mcc232-mnc10/config.xml new file mode 100644 index 000000000000..bdf83016d18e --- /dev/null +++ b/core/res/res/values-mcc232-mnc10/config.xml @@ -0,0 +1,26 @@ + + + + + + + 23203 + 23205 + + diff --git a/core/res/res/values-mcc232-mnc13/config.xml b/core/res/res/values-mcc232-mnc13/config.xml new file mode 100644 index 000000000000..2c14f87374f6 --- /dev/null +++ b/core/res/res/values-mcc232-mnc13/config.xml @@ -0,0 +1,25 @@ + + + + + + + 23203 + + -- GitLab From 0cc68dbf29a72e02c3a1f4b10aced424a1ca3e38 Mon Sep 17 00:00:00 2001 From: Sanket Padawe Date: Sat, 20 Aug 2016 11:03:06 -0700 Subject: [PATCH 065/809] If Vodafone Italy sim is in Spain consider it as roaming on Spain nw. + When Vodafone Italy sim (mccmnc = 22210) is roaming in Spain on any network, consider it to be roaming. Bug: 29493858 Change-Id: I7ab1576012ab72a96e366c0ff1bcdf894a9e64de --- core/res/res/values-mcc222-mnc10/config.xml | 25 --------------------- 1 file changed, 25 deletions(-) diff --git a/core/res/res/values-mcc222-mnc10/config.xml b/core/res/res/values-mcc222-mnc10/config.xml index cd6e8c6f46c2..c819de2ba43c 100644 --- a/core/res/res/values-mcc222-mnc10/config.xml +++ b/core/res/res/values-mcc222-mnc10/config.xml @@ -28,29 +28,4 @@ Tethering Internet,web.omnitel.it,,,,,,,,,222,10,,DUN - - - 21401 - 21402 - 21403 - 21404 - 21405 - 21406 - 21407 - 21408 - 21409 - 21410 - 21411 - 21412 - 21413 - 21414 - 21415 - 21416 - 21417 - 21418 - 21419 - 21420 - 21421 - - -- GitLab From b7573e93cde7f229902dda7121dad931279a5ced Mon Sep 17 00:00:00 2001 From: Daichi Hirono Date: Thu, 18 Aug 2016 15:13:36 +0900 Subject: [PATCH 066/809] Set Root.FLAG_LOCAL_ONLY for MTP roots. The flag indicate whether the root needs network access or not. MTP should be LOCAL_ONLY root. Bug: 30867267 Change-Id: Ia272d4a389cc1ca628d7b963caa37f3dbb6747e3 (cherry picked from commit 83c679e7221460fc50e91402a34787e1866d94ef) --- .../src/com/android/mtp/MtpDatabase.java | 2 +- .../src/com/android/mtp/MtpDatabaseTest.java | 2 +- .../android/mtp/MtpDocumentsProviderTest.java | 17 +++++++++++++---- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/packages/MtpDocumentsProvider/src/com/android/mtp/MtpDatabase.java b/packages/MtpDocumentsProvider/src/com/android/mtp/MtpDatabase.java index cce619e67d19..4950af3e14e0 100644 --- a/packages/MtpDocumentsProvider/src/com/android/mtp/MtpDatabase.java +++ b/packages/MtpDocumentsProvider/src/com/android/mtp/MtpDatabase.java @@ -873,7 +873,7 @@ class MtpDatabase { } private static int getRootFlags(int[] operationsSupported) { - int rootFlag = Root.FLAG_SUPPORTS_IS_CHILD; + int rootFlag = Root.FLAG_SUPPORTS_IS_CHILD | Root.FLAG_LOCAL_ONLY; if (MtpDeviceRecord.isWritingSupported(operationsSupported)) { rootFlag |= Root.FLAG_SUPPORTS_CREATE; } diff --git a/packages/MtpDocumentsProvider/tests/src/com/android/mtp/MtpDatabaseTest.java b/packages/MtpDocumentsProvider/tests/src/com/android/mtp/MtpDatabaseTest.java index 404047b8baed..8c13c813552b 100644 --- a/packages/MtpDocumentsProvider/tests/src/com/android/mtp/MtpDatabaseTest.java +++ b/packages/MtpDocumentsProvider/tests/src/com/android/mtp/MtpDatabaseTest.java @@ -128,7 +128,7 @@ public class MtpDatabaseTest extends AndroidTestCase { cursor.moveToNext(); assertEquals(1, getInt(cursor, Root.COLUMN_ROOT_ID)); assertEquals( - Root.FLAG_SUPPORTS_IS_CHILD | Root.FLAG_SUPPORTS_CREATE, + Root.FLAG_SUPPORTS_IS_CHILD | Root.FLAG_SUPPORTS_CREATE | Root.FLAG_LOCAL_ONLY, getInt(cursor, Root.COLUMN_FLAGS)); assertEquals(R.drawable.ic_root_mtp, getInt(cursor, Root.COLUMN_ICON)); assertEquals("Device Storage", getString(cursor, Root.COLUMN_TITLE)); diff --git a/packages/MtpDocumentsProvider/tests/src/com/android/mtp/MtpDocumentsProviderTest.java b/packages/MtpDocumentsProvider/tests/src/com/android/mtp/MtpDocumentsProviderTest.java index 9ed15c82f336..d19b46083f91 100644 --- a/packages/MtpDocumentsProvider/tests/src/com/android/mtp/MtpDocumentsProviderTest.java +++ b/packages/MtpDocumentsProvider/tests/src/com/android/mtp/MtpDocumentsProviderTest.java @@ -210,7 +210,11 @@ public class MtpDocumentsProviderTest extends AndroidTestCase { assertEquals(2, cursor.getCount()); cursor.moveToNext(); assertEquals("1", cursor.getString(0)); - assertEquals(Root.FLAG_SUPPORTS_IS_CHILD | Root.FLAG_SUPPORTS_CREATE, cursor.getInt(1)); + assertEquals( + Root.FLAG_SUPPORTS_IS_CHILD | + Root.FLAG_SUPPORTS_CREATE | + Root.FLAG_LOCAL_ONLY, + cursor.getInt(1)); assertEquals(R.drawable.ic_root_mtp, cursor.getInt(2)); assertEquals("Device A Storage A", cursor.getString(3)); assertEquals("1", cursor.getString(4)); @@ -225,7 +229,8 @@ public class MtpDocumentsProviderTest extends AndroidTestCase { cursor.moveToNext(); cursor.moveToNext(); assertEquals("2", cursor.getString(0)); - assertEquals(Root.FLAG_SUPPORTS_IS_CHILD, cursor.getInt(1)); + assertEquals( + Root.FLAG_SUPPORTS_IS_CHILD | Root.FLAG_LOCAL_ONLY, cursor.getInt(1)); assertEquals(R.drawable.ic_root_mtp, cursor.getInt(2)); assertEquals("Device B Storage B", cursor.getString(3)); assertEquals("2", cursor.getString(4)); @@ -271,7 +276,9 @@ public class MtpDocumentsProviderTest extends AndroidTestCase { cursor.moveToNext(); assertEquals("1", cursor.getString(0)); - assertEquals(Root.FLAG_SUPPORTS_IS_CHILD | Root.FLAG_SUPPORTS_CREATE, cursor.getInt(1)); + assertEquals( + Root.FLAG_SUPPORTS_IS_CHILD | Root.FLAG_SUPPORTS_CREATE | Root.FLAG_LOCAL_ONLY, + cursor.getInt(1)); assertEquals(R.drawable.ic_root_mtp, cursor.getInt(2)); assertEquals("Device A", cursor.getString(3)); assertEquals("1", cursor.getString(4)); @@ -279,7 +286,9 @@ public class MtpDocumentsProviderTest extends AndroidTestCase { cursor.moveToNext(); assertEquals("2", cursor.getString(0)); - assertEquals(Root.FLAG_SUPPORTS_IS_CHILD | Root.FLAG_SUPPORTS_CREATE, cursor.getInt(1)); + assertEquals( + Root.FLAG_SUPPORTS_IS_CHILD | Root.FLAG_SUPPORTS_CREATE | Root.FLAG_LOCAL_ONLY, + cursor.getInt(1)); assertEquals(R.drawable.ic_root_mtp, cursor.getInt(2)); assertEquals("Device B Storage B", cursor.getString(3)); assertEquals("2", cursor.getString(4)); -- GitLab From 0790ac68bcab55905b492f6542d2393310f14ea3 Mon Sep 17 00:00:00 2001 From: Raph Levien Date: Tue, 9 Aug 2016 14:28:54 -0700 Subject: [PATCH 067/809] Update lint check to accommodate new emoji sequences These are not yet ready for updating in the unicode data, so we patch them in code until they are. Bug: 30594617 Change-Id: Ib4c8568aa4840341474eb0c0c95674d640473f4d (cherry picked from commit 2b8b819fee939c1bca6347a74b42272bc7008fd5) --- tools/fonts/fontchain_lint.py | 36 ++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/tools/fonts/fontchain_lint.py b/tools/fonts/fontchain_lint.py index 336fce96650f..7ec46a3ee86b 100755 --- a/tools/fonts/fontchain_lint.py +++ b/tools/fonts/fontchain_lint.py @@ -507,12 +507,46 @@ def compute_expected_emoji(): all_sequences = set() all_sequences.update(_emoji_variation_sequences) + # add zwj sequences not in the current emoji-zwj-sequences.txt + adjusted_emoji_zwj_sequences = dict(_emoji_zwj_sequences) + adjusted_emoji_zwj_sequences.update(_emoji_zwj_sequences) + # single parent families + additional_emoji_zwj = ( + (0x1F468, 0x200D, 0x1F466), + (0x1F468, 0x200D, 0x1F467), + (0x1F468, 0x200D, 0x1F466, 0x200D, 0x1F466), + (0x1F468, 0x200D, 0x1F467, 0x200D, 0x1F466), + (0x1F468, 0x200D, 0x1F467, 0x200D, 0x1F467), + (0x1F469, 0x200D, 0x1F466), + (0x1F469, 0x200D, 0x1F467), + (0x1F469, 0x200D, 0x1F466, 0x200D, 0x1F466), + (0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F466), + (0x1F469, 0x200D, 0x1F467, 0x200D, 0x1F467), + ) + # sequences formed from man and woman and optional fitzpatrick modifier + modified_extensions = ( + 0x2696, + 0x2708, + 0x1F3A8, + 0x1F680, + 0x1F692, + ) + for seq in additional_emoji_zwj: + adjusted_emoji_zwj_sequences[seq] = 'Emoji_ZWJ_Sequence' + for ext in modified_extensions: + for base in (0x1F468, 0x1F469): + seq = (base, 0x200D, ext) + adjusted_emoji_zwj_sequences[seq] = 'Emoji_ZWJ_Sequence' + for modifier in range(0x1F3FB, 0x1F400): + seq = (base, modifier, 0x200D, ext) + adjusted_emoji_zwj_sequences[seq] = 'Emoji_ZWJ_Sequence' + for sequence in _emoji_sequences.keys(): sequence = tuple(ch for ch in sequence if ch != EMOJI_VS) all_sequences.add(sequence) sequence_pieces.update(sequence) - for sequence in _emoji_zwj_sequences.keys(): + for sequence in adjusted_emoji_zwj_sequences.keys(): sequence = tuple(ch for ch in sequence if ch != EMOJI_VS) all_sequences.add(sequence) sequence_pieces.update(sequence) -- GitLab From 7581cddf2515e9ec7c834549118b8db27e3a494f Mon Sep 17 00:00:00 2001 From: Chong Zhang Date: Mon, 22 Aug 2016 09:35:39 -0700 Subject: [PATCH 068/809] Make sure surface control is really valid before giving it to client Checking mSurfaceControl!=null is not enough to ensure the surface is valid. tryStartExitingAnimation() could destroy/save the surface before app is stopped, if it decided the surface is no longer needed. Use WSA.hasSurface() to check if the surface control is really valid. bug: 30766796 Change-Id: I7724f1929d4ebc3f9a7a3b19eec638d7a7d7b910 --- .../java/com/android/server/wm/WindowManagerService.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index f2f85bf184cf..1f82f0cda9f6 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -2908,12 +2908,11 @@ public class WindowManagerService extends IWindowManager.Stub } result |= RELAYOUT_RES_SURFACE_CHANGED; } - final WindowSurfaceController surfaceController = winAnimator.mSurfaceController; - if (viewVisibility == View.VISIBLE && surfaceController != null) { + if (viewVisibility == View.VISIBLE && winAnimator.hasSurface()) { // We already told the client to go invisible, but the message may not be // handled yet, or it might want to draw a last frame. If we already have a // surface, let the client use that, but don't create new surface at this point. - surfaceController.getSurface(outSurface); + winAnimator.mSurfaceController.getSurface(outSurface); } else { if (DEBUG_VISIBILITY) Slog.i(TAG_WM, "Releasing surface in: " + win); -- GitLab From fd80d5482ac36d03d2a2173923afc5bb4aa8a6ed Mon Sep 17 00:00:00 2001 From: Sungmin Choi Date: Tue, 28 Jun 2016 21:40:41 -0700 Subject: [PATCH 069/809] telephony/roam: Do not show roaming icon for Videotron SIM camped on Canada network Canada Videotron roaming requirement Bug: 29842007 Change-Id: I5cbbab906ef7e3f3f7e34fadf58c1c730d4440fe --- core/res/res/values-mcc302-mnc500/config.xml | 25 ++++++++++++++++++++ core/res/res/values-mcc302-mnc510/config.xml | 25 ++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 core/res/res/values-mcc302-mnc500/config.xml create mode 100644 core/res/res/values-mcc302-mnc510/config.xml diff --git a/core/res/res/values-mcc302-mnc500/config.xml b/core/res/res/values-mcc302-mnc500/config.xml new file mode 100644 index 000000000000..77f64199a80b --- /dev/null +++ b/core/res/res/values-mcc302-mnc500/config.xml @@ -0,0 +1,25 @@ + + + + + + + 302 + + diff --git a/core/res/res/values-mcc302-mnc510/config.xml b/core/res/res/values-mcc302-mnc510/config.xml new file mode 100644 index 000000000000..77f64199a80b --- /dev/null +++ b/core/res/res/values-mcc302-mnc510/config.xml @@ -0,0 +1,25 @@ + + + + + + + 302 + + -- GitLab From c10db985f399a3257a5dcfa80c3388e8b8ee3db4 Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Thu, 11 Aug 2016 13:52:04 -0700 Subject: [PATCH 070/809] Update navup button content description when it's menu. Bug: 30090247 Change-Id: I2ff9529a3dd5f197f2d142ef2993d5d8e90b5645 (cherry picked from commit df915bbbb9d97bdb10185a5b0280ffa0b9582694) --- packages/SettingsLib/res/values/strings.xml | 3 +++ .../com/android/settingslib/drawer/SettingsDrawerActivity.java | 1 + 2 files changed, 4 insertions(+) diff --git a/packages/SettingsLib/res/values/strings.xml b/packages/SettingsLib/res/values/strings.xml index 7d42211be5e5..682af8bd536f 100644 --- a/packages/SettingsLib/res/values/strings.xml +++ b/packages/SettingsLib/res/values/strings.xml @@ -863,4 +863,7 @@ Help & feedback + + Menu + diff --git a/packages/SettingsLib/src/com/android/settingslib/drawer/SettingsDrawerActivity.java b/packages/SettingsLib/src/com/android/settingslib/drawer/SettingsDrawerActivity.java index 6658c14bd1cd..a50b366c26ac 100644 --- a/packages/SettingsLib/src/com/android/settingslib/drawer/SettingsDrawerActivity.java +++ b/packages/SettingsLib/src/com/android/settingslib/drawer/SettingsDrawerActivity.java @@ -226,6 +226,7 @@ public class SettingsDrawerActivity extends Activity { public void showMenuIcon() { mShowingMenu = true; getActionBar().setHomeAsUpIndicator(R.drawable.ic_menu); + getActionBar().setHomeActionContentDescription(R.string.content_description_menu_button); getActionBar().setDisplayHomeAsUpEnabled(true); } -- GitLab From d64255f61db30934e293adab2a5a8ac9eeea0b98 Mon Sep 17 00:00:00 2001 From: Teng-Hui Zhu Date: Tue, 26 Jul 2016 14:36:20 -0700 Subject: [PATCH 071/809] Update the javaDoc for VectorDrawable and AnimatedVectorDrawable b/30269243 Change-Id: I139a3fcac95c41a667fa06aa3223b812caad6243 (cherry picked from commit c224417511d8179a08c4dfd4badc73dd9699ebf2) --- .../drawable/AnimatedVectorDrawable.java | 49 +++++++++++++++++++ .../graphics/drawable/VectorDrawable.java | 40 ++++++++++++--- 2 files changed, 81 insertions(+), 8 deletions(-) diff --git a/graphics/java/android/graphics/drawable/AnimatedVectorDrawable.java b/graphics/java/android/graphics/drawable/AnimatedVectorDrawable.java index c836204486b0..0f305f3cff3d 100644 --- a/graphics/java/android/graphics/drawable/AnimatedVectorDrawable.java +++ b/graphics/java/android/graphics/drawable/AnimatedVectorDrawable.java @@ -144,6 +144,55 @@ import java.util.ArrayList; * android:valueType="pathType"/> * </set> * + *

      + * Since AAPT tool is now supporting a new format which can bundle several related XML files into + * one, we can merge the previous example into one XML file, like this: + *

      + *
      + * <animated-vector xmlns:android="http://schemas.android.com/apk/res/android" >
      + *     <aapt:attr name="android:drawable">
      + *         <vector
      + *             android:height="64dp"
      + *             android:width="64dp"
      + *             android:viewportHeight="600"
      + *             android:viewportWidth="600" >
      + *             <group
      + *                 android:name="rotationGroup"
      + *                 android:pivotX="300.0"
      + *                 android:pivotY="300.0"
      + *                 android:rotation="45.0" >
      + *                 <path
      + *                     android:name="v"
      + *                     android:fillColor="#000000"
      + *                     android:pathData="M300,70 l 0,-70 70,70 0,0 -70,70z" />
      + *             </group>
      + *         </vector>
      + *     </aapt:attr>
      + *
      + *     <target android:name="rotationGroup"> *
      + *         <aapt:attr name="android:animation">
      + *             <objectAnimator
      + *             android:duration="6000"
      + *             android:propertyName="rotation"
      + *             android:valueFrom="0"
      + *             android:valueTo="360" />
      + *         </aapt:attr>
      + *     </target>
      + *
      + *     <target android:name="v" >
      + *         <aapt:attr name="android:animation">
      + *             <set>
      + *                 <objectAnimator
      + *                     android:duration="3000"
      + *                     android:propertyName="pathData"
      + *                     android:valueFrom="M300,70 l 0,-70 70,70 0,0   -70,70z"
      + *                     android:valueTo="M300,70 l 0,-70 70,0  0,140 -70,0 z"
      + *                     android:valueType="pathType"/>
      + *             </set>
      + *         </aapt:attr>
      + *      </target>
      + * </animated-vector>
      + * 
      * * @attr ref android.R.styleable#AnimatedVectorDrawable_drawable * @attr ref android.R.styleable#AnimatedVectorDrawableTarget_name diff --git a/graphics/java/android/graphics/drawable/VectorDrawable.java b/graphics/java/android/graphics/drawable/VectorDrawable.java index dc1d18f3b2bd..9ff69650294d 100644 --- a/graphics/java/android/graphics/drawable/VectorDrawable.java +++ b/graphics/java/android/graphics/drawable/VectorDrawable.java @@ -27,9 +27,9 @@ import android.graphics.Canvas; import android.graphics.ColorFilter; import android.graphics.Insets; import android.graphics.PixelFormat; +import android.graphics.PorterDuff.Mode; import android.graphics.PorterDuffColorFilter; import android.graphics.Rect; -import android.graphics.PorterDuff.Mode; import android.graphics.Shader; import android.util.ArrayMap; import android.util.AttributeSet; @@ -140,12 +140,16 @@ import dalvik.system.VMRuntime; * in the SVG's path data. This is defined in the viewport space. *
      android:fillColor
      *
      Specifies the color used to fill the path. May be a color or, for SDK 24+, a color state list - * or a gradient color. If this property is animated, any value set by the animation will - * override the original value. No path fill is drawn if this property is not specified.
      + * or a gradient color (See {@link android.R.styleable#GradientColor} + * and {@link android.R.styleable#GradientColorItem}). + * If this property is animated, any value set by the animation will override the original value. + * No path fill is drawn if this property is not specified. *
      android:strokeColor
      *
      Specifies the color used to draw the path outline. May be a color or, for SDK 24+, a color - * state list or a gradient color. If this property is animated, any value set by the animation will - * override the original value. No path outline is drawn if this property is not specified.
      + * state list or a gradient color (See {@link android.R.styleable#GradientColor} + * and {@link android.R.styleable#GradientColorItem}). + * If this property is animated, any value set by the animation will override the original value. + * No path outline is drawn if this property is not specified. *
      android:strokeWidth
      *
      The width a path stroke.
      *
      android:strokeAlpha
      @@ -166,8 +170,9 @@ import dalvik.system.VMRuntime; *
      android:strokeMiterLimit
      *
      Sets the Miter limit for a stroked path.
      *
      android:fillType
      - *
      Sets the fillType for a path. It is the same as SVG's "fill-rule" properties. - * For more details, see https://www.w3.org/TR/SVG/painting.html#FillRuleProperty
      + *
      Sets the fillType for a path. The types can be either "evenOdd" or "nonZero". They behave the + * same as SVG's "fill-rule" properties. For more details, see + * FillRuleProperty
      * * * @@ -201,7 +206,26 @@ import dalvik.system.VMRuntime; * android:pathData="M300,70 l 0,-70 70,70 0,0 -70,70z" /> * </group> * </vector> - * + * + * + *
    • And here is an example of linear gradient color, which is supported in SDK 24+. + * See more details in {@link android.R.styleable#GradientColor} and + * {@link android.R.styleable#GradientColorItem}. + *
      + * <gradient xmlns:android="http://schemas.android.com/apk/res/android"
      + *     android:angle="90"
      + *     android:startColor="?android:attr/colorPrimary"
      + *     android:endColor="?android:attr/colorControlActivated"
      + *     android:centerColor="#f00"
      + *     android:startX="0"
      + *     android:startY="0"
      + *     android:endX="100"
      + *     android:endY="100"
      + *     android:type="linear">
      + * </gradient>
      + * 
      + *
    • + * */ public class VectorDrawable extends Drawable { -- GitLab From d0a7649f5307842278eebf0c4606344e2ff43a6a Mon Sep 17 00:00:00 2001 From: fionaxu Date: Fri, 5 Aug 2016 10:59:50 -0700 Subject: [PATCH 072/809] redact PII only for non-null value and apply SHA-1 Bug: 30073833 Change-Id: Iec311ba27dfd07c52df4a05cf89a566994f66ba9 --- telephony/java/android/telephony/Rlog.java | 52 ++++++++++++++++++- .../android/telephony/SubscriptionInfo.java | 2 +- 2 files changed, 51 insertions(+), 3 deletions(-) diff --git a/telephony/java/android/telephony/Rlog.java b/telephony/java/android/telephony/Rlog.java index b4f400fe852c..cd0a012d14fd 100644 --- a/telephony/java/android/telephony/Rlog.java +++ b/telephony/java/android/telephony/Rlog.java @@ -16,8 +16,15 @@ package android.telephony; +import android.text.TextUtils; import android.util.Log; +import android.util.Base64; + +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; + + /** * A class to log strings to the RADIO LOG. * @@ -87,11 +94,52 @@ public final class Rlog { /** * Redact personally identifiable information for production users. - * If log tag is loggable in verbose mode, return the original string, otherwise return XXX. + * @param tag used to identify the source of a log message + * @param pii the personally identifiable information we want to apply secure hash on. + * @return If tag is loggable in verbose mode or pii is null, return the original input. + * otherwise return a secure Hash of input pii */ public static String pii(String tag, Object pii) { - return (isLoggable(tag, Log.VERBOSE) ? String.valueOf(pii) : "XXX"); + String val = String.valueOf(pii); + if (pii == null || TextUtils.isEmpty(val) || isLoggable(tag, Log.VERBOSE)) { + return val; + } + return "[" + secureHash(val.getBytes()) + "]"; } + /** + * Redact personally identifiable information for production users. + * @param enablePiiLogging set when caller explicitly want to enable sensitive logging. + * @param pii the personally identifiable information we want to apply secure hash on. + * @return If enablePiiLogging is set to true or pii is null, return the original input. + * otherwise return a secure Hash of input pii + */ + public static String pii(boolean enablePiiLogging, Object pii) { + String val = String.valueOf(pii); + if (pii == null || TextUtils.isEmpty(val) || enablePiiLogging) { + return val; + } + return "[" + secureHash(val.getBytes()) + "]"; + } + + /** + * Returns a secure hash (using the SHA1 algorithm) of the provided input. + * + * @return the hash + * @param input the bytes for which the secure hash should be computed. + */ + private static String secureHash(byte[] input) { + MessageDigest messageDigest; + + try { + messageDigest = MessageDigest.getInstance("SHA-1"); + } catch (NoSuchAlgorithmException e) { + return "####"; + } + + byte[] result = messageDigest.digest(input); + return Base64.encodeToString( + result, Base64.URL_SAFE | Base64.NO_PADDING | Base64.NO_WRAP); + } } diff --git a/telephony/java/android/telephony/SubscriptionInfo.java b/telephony/java/android/telephony/SubscriptionInfo.java index 6229ed921bcc..cf2d27e28709 100644 --- a/telephony/java/android/telephony/SubscriptionInfo.java +++ b/telephony/java/android/telephony/SubscriptionInfo.java @@ -340,7 +340,7 @@ public class SubscriptionInfo implements Parcelable { String iccIdToPrint = null; if (iccId != null) { if (iccId.length() > 9 && !Build.IS_DEBUGGABLE) { - iccIdToPrint = iccId.substring(0, 9) + "XXXXXXXXXXX"; + iccIdToPrint = iccId.substring(0, 9) + Rlog.pii(false, iccId.substring(9)); } else { iccIdToPrint = iccId; } -- GitLab From 828ec3dc518bfeff9cb9205e40652419e9c59443 Mon Sep 17 00:00:00 2001 From: Robert Carr Date: Mon, 22 Aug 2016 13:32:34 -0700 Subject: [PATCH 073/809] Only allow focused window to select seamless rotation. We require apps to opt in to seamless rotation. If a dialog or some such has popped up above them, the dialog may not be prepared to rotate seamlessly and we should just fall back to the old behavior for now. Bug: 30968345 Change-Id: Ib9a7352ed84d41076bdd162bf38d151b053a307e --- .../java/com/android/server/policy/PhoneWindowManager.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index 8da3a7d7639d..a39add80ba8f 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -7756,6 +7756,9 @@ public class PhoneWindowManager implements WindowManagerPolicy { } final WindowState w = mTopFullscreenOpaqueWindowState; + if (w != mFocusedWindow) { + return false; + } // We only enable seamless rotation if the top window has requested // it and is in the fullscreen opaque state. Seamless rotation -- GitLab From 0c03664fa6acbe5c3fd11d54ab9a6792f43dda07 Mon Sep 17 00:00:00 2001 From: Teng-Hui Zhu Date: Fri, 19 Aug 2016 10:06:25 -0700 Subject: [PATCH 074/809] Add an new internal DrawableContainer to handle animation scale == 0 case. This will help ProgressBar to show something meaningful when animation scale is 0. b/30877925 Change-Id: Ieb2e78712999d2e3f3a2a234bc605b4821ae41c0 --- .../drawable/AnimationScaleListDrawable.java | 254 ++++++++++++++++++ core/res/res/drawable/ic_refresh.xml | 3 - ...ress_indeterminate_anim_large_material.xml | 26 ++ ...ess_indeterminate_anim_medium_material.xml | 27 ++ .../res/drawable/progress_large_material.xml | 18 +- .../res/drawable/progress_medium_material.xml | 17 +- .../res/drawable/progress_small_material.xml | 27 +- .../res/drawable/progress_static_material.xml | 25 ++ core/res/res/values/attrs.xml | 15 ++ .../android/graphics/drawable/Drawable.java | 5 +- .../graphics/drawable/DrawableContainer.java | 10 +- 11 files changed, 381 insertions(+), 46 deletions(-) create mode 100644 core/java/com/android/internal/graphics/drawable/AnimationScaleListDrawable.java create mode 100644 core/res/res/drawable/progress_indeterminate_anim_large_material.xml create mode 100644 core/res/res/drawable/progress_indeterminate_anim_medium_material.xml create mode 100644 core/res/res/drawable/progress_static_material.xml diff --git a/core/java/com/android/internal/graphics/drawable/AnimationScaleListDrawable.java b/core/java/com/android/internal/graphics/drawable/AnimationScaleListDrawable.java new file mode 100644 index 000000000000..11338991c052 --- /dev/null +++ b/core/java/com/android/internal/graphics/drawable/AnimationScaleListDrawable.java @@ -0,0 +1,254 @@ +/* + * Copyright (C) 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. + */ + +package com.android.internal.graphics.drawable; + +import android.animation.ValueAnimator; +import android.annotation.NonNull; +import android.annotation.Nullable; +import android.content.res.Resources; +import android.content.res.Resources.Theme; +import android.content.res.TypedArray; +import android.graphics.drawable.Animatable; +import android.graphics.drawable.Drawable; +import android.graphics.drawable.DrawableContainer; +import android.util.AttributeSet; + +import com.android.internal.R; + +import org.xmlpull.v1.XmlPullParser; +import org.xmlpull.v1.XmlPullParserException; + +import java.io.IOException; + +/** + * An internal DrawableContainer class, used to draw different things depending on animation scale. + * i.e: animation scale can be 0 in battery saver mode. + * This class contains 2 drawable, one is animatable, the other is static. When animation scale is + * not 0, the animatable drawable will the drawn. Otherwise, the static drawable will be drawn. + *

      This class implements Animatable since ProgressBar can pick this up similarly as an + * AnimatedVectorDrawable. + *

      It can be defined in an XML file with the {@code } + * element. + */ +public class AnimationScaleListDrawable extends DrawableContainer implements Animatable { + private static final String TAG = "AnimationScaleListDrawable"; + private AnimatedScaleListState mAnimatedScaleListState; + private boolean mMutated; + + public AnimationScaleListDrawable() { + this(null, null); + } + + private AnimationScaleListDrawable(@Nullable AnimatedScaleListState state, + @Nullable Resources res) { + // Every scale list drawable has its own constant state. + final AnimatedScaleListState newState = new AnimatedScaleListState(state, this, res); + setConstantState(newState); + onStateChange(getState()); + } + + /** + * Set the current drawable according to the animation scale. If scale is 0, then pick the + * static drawable, otherwise, pick the animatable drawable. + */ + @Override + protected boolean onStateChange(int[] stateSet) { + final boolean changed = super.onStateChange(stateSet); + int idx = mAnimatedScaleListState.getCurrentDrawableIndexBasedOnScale(); + return selectDrawable(idx) || changed; + } + + + @Override + public void inflate(@NonNull Resources r, @NonNull XmlPullParser parser, + @NonNull AttributeSet attrs, @Nullable Theme theme) + throws XmlPullParserException, IOException { + final TypedArray a = obtainAttributes(r, theme, attrs, + R.styleable.AnimationScaleListDrawable); + updateDensity(r); + a.recycle(); + + inflateChildElements(r, parser, attrs, theme); + + onStateChange(getState()); + } + + /** + * Inflates child elements from XML. + */ + private void inflateChildElements(@NonNull Resources r, @NonNull XmlPullParser parser, + @NonNull AttributeSet attrs, @Nullable Theme theme) + throws XmlPullParserException, IOException { + final AnimatedScaleListState state = mAnimatedScaleListState; + final int innerDepth = parser.getDepth() + 1; + int type; + int depth; + while ((type = parser.next()) != XmlPullParser.END_DOCUMENT + && ((depth = parser.getDepth()) >= innerDepth + || type != XmlPullParser.END_TAG)) { + if (type != XmlPullParser.START_TAG) { + continue; + } + + if (depth > innerDepth || !parser.getName().equals("item")) { + continue; + } + + // Either pick up the android:drawable attribute. + final TypedArray a = obtainAttributes(r, theme, attrs, + R.styleable.AnimationScaleListDrawableItem); + Drawable dr = a.getDrawable(R.styleable.AnimationScaleListDrawableItem_drawable); + a.recycle(); + + // Or parse the child element under . + if (dr == null) { + while ((type = parser.next()) == XmlPullParser.TEXT) { + } + if (type != XmlPullParser.START_TAG) { + throw new XmlPullParserException( + parser.getPositionDescription() + + ": tag requires a 'drawable' attribute or " + + "child tag defining a drawable"); + } + dr = Drawable.createFromXmlInner(r, parser, attrs, theme); + } + + state.addDrawable(dr); + } + } + + @Override + public Drawable mutate() { + if (!mMutated && super.mutate() == this) { + mAnimatedScaleListState.mutate(); + mMutated = true; + } + return this; + } + + @Override + public void clearMutated() { + super.clearMutated(); + mMutated = false; + } + + @Override + public void start() { + Drawable dr = getCurrent(); + if (dr != null && dr instanceof Animatable) { + ((Animatable) dr).start(); + } + } + + @Override + public void stop() { + Drawable dr = getCurrent(); + if (dr != null && dr instanceof Animatable) { + ((Animatable) dr).stop(); + } + } + + @Override + public boolean isRunning() { + boolean result = false; + Drawable dr = getCurrent(); + if (dr != null && dr instanceof Animatable) { + result = ((Animatable) dr).isRunning(); + } + return result; + } + + static class AnimatedScaleListState extends DrawableContainerState { + int[] mThemeAttrs = null; + // The index of the last static drawable. + int mStaticDrawableIndex = -1; + // The index of the last animatable drawable. + int mAnimatableDrawableIndex = -1; + + AnimatedScaleListState(AnimatedScaleListState orig, AnimationScaleListDrawable owner, + Resources res) { + super(orig, owner, res); + + if (orig != null) { + // Perform a shallow copy and rely on mutate() to deep-copy. + mThemeAttrs = orig.mThemeAttrs; + + mStaticDrawableIndex = orig.mStaticDrawableIndex; + mAnimatableDrawableIndex = orig.mAnimatableDrawableIndex; + } + + } + + void mutate() { + mThemeAttrs = mThemeAttrs != null ? mThemeAttrs.clone() : null; + } + + /** + * Add the drawable into the container. + * This class only keep track one animatable drawable, and one static. If there are multiple + * defined in the XML, then pick the last one. + */ + int addDrawable(Drawable drawable) { + final int pos = addChild(drawable); + if (drawable instanceof Animatable) { + mAnimatableDrawableIndex = pos; + } else { + mStaticDrawableIndex = pos; + } + return pos; + } + + @Override + public Drawable newDrawable() { + return new AnimationScaleListDrawable(this, null); + } + + @Override + public Drawable newDrawable(Resources res) { + return new AnimationScaleListDrawable(this, res); + } + + @Override + public boolean canApplyTheme() { + return mThemeAttrs != null || super.canApplyTheme(); + } + + public int getCurrentDrawableIndexBasedOnScale() { + if (ValueAnimator.getDurationScale() == 0) { + return mStaticDrawableIndex; + } + return mAnimatableDrawableIndex; + } + } + + @Override + public void applyTheme(@NonNull Theme theme) { + super.applyTheme(theme); + + onStateChange(getState()); + } + + @Override + protected void setConstantState(@NonNull DrawableContainerState state) { + super.setConstantState(state); + + if (state instanceof AnimatedScaleListState) { + mAnimatedScaleListState = (AnimatedScaleListState) state; + } + } +} + diff --git a/core/res/res/drawable/ic_refresh.xml b/core/res/res/drawable/ic_refresh.xml index 1f671684861f..1297407fbb8b 100644 --- a/core/res/res/drawable/ic_refresh.xml +++ b/core/res/res/drawable/ic_refresh.xml @@ -21,7 +21,4 @@ Copyright (C) 2016 The Android Open Source Project - diff --git a/core/res/res/drawable/progress_indeterminate_anim_large_material.xml b/core/res/res/drawable/progress_indeterminate_anim_large_material.xml new file mode 100644 index 000000000000..560ec5af508f --- /dev/null +++ b/core/res/res/drawable/progress_indeterminate_anim_large_material.xml @@ -0,0 +1,26 @@ + + + + + + + + diff --git a/core/res/res/drawable/progress_indeterminate_anim_medium_material.xml b/core/res/res/drawable/progress_indeterminate_anim_medium_material.xml new file mode 100644 index 000000000000..fbea22f443e1 --- /dev/null +++ b/core/res/res/drawable/progress_indeterminate_anim_medium_material.xml @@ -0,0 +1,27 @@ + + + + + + + + + \ No newline at end of file diff --git a/core/res/res/drawable/progress_large_material.xml b/core/res/res/drawable/progress_large_material.xml index 526f9141d716..ee82e35d00f5 100644 --- a/core/res/res/drawable/progress_large_material.xml +++ b/core/res/res/drawable/progress_large_material.xml @@ -13,16 +13,8 @@ See the License for the specific language governing permissions and limitations under the License. --> - - - - - - - - + + + + diff --git a/core/res/res/drawable/progress_medium_material.xml b/core/res/res/drawable/progress_medium_material.xml index cc35816c9c3c..5c9260069e5d 100644 --- a/core/res/res/drawable/progress_medium_material.xml +++ b/core/res/res/drawable/progress_medium_material.xml @@ -13,15 +13,8 @@ See the License for the specific language governing permissions and limitations under the License. --> - - - - - - - \ No newline at end of file + + + + diff --git a/core/res/res/drawable/progress_small_material.xml b/core/res/res/drawable/progress_small_material.xml index c6e43801cdf7..cec9d9565183 100644 --- a/core/res/res/drawable/progress_small_material.xml +++ b/core/res/res/drawable/progress_small_material.xml @@ -13,16 +13,17 @@ See the License for the specific language governing permissions and limitations under the License. --> - - - - - - - - + + + + + + + + + diff --git a/core/res/res/drawable/progress_static_material.xml b/core/res/res/drawable/progress_static_material.xml new file mode 100644 index 000000000000..b078fa93a155 --- /dev/null +++ b/core/res/res/drawable/progress_static_material.xml @@ -0,0 +1,25 @@ + + + + diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml index 0c085646e01f..f273d272e41b 100644 --- a/core/res/res/values/attrs.xml +++ b/core/res/res/values/attrs.xml @@ -5312,6 +5312,21 @@ i + + + + + + + + + + + diff --git a/graphics/java/android/graphics/drawable/Drawable.java b/graphics/java/android/graphics/drawable/Drawable.java index 7f3a4373639b..3aca867c0347 100644 --- a/graphics/java/android/graphics/drawable/Drawable.java +++ b/graphics/java/android/graphics/drawable/Drawable.java @@ -1422,9 +1422,10 @@ public abstract class Drawable { /** * Obtains styled attributes from the theme, if available, or unstyled * resources if the theme is null. + * @hide */ - static @NonNull TypedArray obtainAttributes(@NonNull Resources res, @Nullable Theme theme, - @NonNull AttributeSet set, @NonNull int[] attrs) { + protected static @NonNull TypedArray obtainAttributes(@NonNull Resources res, + @Nullable Theme theme, @NonNull AttributeSet set, @NonNull int[] attrs) { if (theme == null) { return res.obtainAttributes(set, attrs); } diff --git a/graphics/java/android/graphics/drawable/DrawableContainer.java b/graphics/java/android/graphics/drawable/DrawableContainer.java index cc7f5c7cf753..c7a3c75f3545 100644 --- a/graphics/java/android/graphics/drawable/DrawableContainer.java +++ b/graphics/java/android/graphics/drawable/DrawableContainer.java @@ -27,8 +27,8 @@ import android.graphics.ColorFilter; import android.graphics.Insets; import android.graphics.Outline; import android.graphics.PixelFormat; -import android.graphics.Rect; import android.graphics.PorterDuff.Mode; +import android.graphics.Rect; import android.os.SystemClock; import android.util.DisplayMetrics; import android.util.LayoutDirection; @@ -601,8 +601,9 @@ public class DrawableContainer extends Drawable implements Drawable.Callback { * during inflation. * * @param res the resources used to inflate density-dependent values + * @hide */ - final void updateDensity(Resources res) { + protected final void updateDensity(Resources res) { mDrawableContainerState.updateDensity(res); } @@ -711,7 +712,10 @@ public class DrawableContainer extends Drawable implements Drawable.Callback { boolean mHasTintList; boolean mHasTintMode; - DrawableContainerState(DrawableContainerState orig, DrawableContainer owner, + /** + * @hide + */ + protected DrawableContainerState(DrawableContainerState orig, DrawableContainer owner, Resources res) { mOwner = owner; mSourceRes = res != null ? res : (orig != null ? orig.mSourceRes : null); -- GitLab From afb5269ad6a507a3230b519b3156ac0bcc5fc3a0 Mon Sep 17 00:00:00 2001 From: Todd Kennedy Date: Mon, 22 Aug 2016 15:44:00 -0700 Subject: [PATCH 075/809] No need to check package name Change-Id: I8c403ca2bc38f2c7191b6e9a709286ac7e450ac4 Fixes: 30958291 --- core/java/android/content/pm/PackageParser.java | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java index 82cd448e7776..2093124d5b8a 100644 --- a/core/java/android/content/pm/PackageParser.java +++ b/core/java/android/content/pm/PackageParser.java @@ -2290,11 +2290,7 @@ public class PackageParser { b.append(cls); return b.toString().intern(); } - if (c >= 'a' && c <= 'z') { - return cls.intern(); - } - outError[0] = "Bad class name " + cls + " in package " + pkg; - return null; + return cls.intern(); } private static String buildCompoundName(String pkg, @@ -2755,12 +2751,7 @@ public class PackageParser { } if (ai.name != null) { - ai.className = buildClassName(pkgName, ai.name, outError); - if (ai.className == null) { - sa.recycle(); - mParseError = PackageManager.INSTALL_PARSE_FAILED_MANIFEST_MALFORMED; - return false; - } + ai.className = ai.name; } String manageSpaceActivity = sa.getNonConfigurationString( -- GitLab From fea1b776e96d10879769d3a3c17f297146605062 Mon Sep 17 00:00:00 2001 From: Todd Kennedy Date: Tue, 28 Jun 2016 14:09:55 -0700 Subject: [PATCH 076/809] Implement new ephemeral resolver design In the new design, the ephemeral installer can be returned from queryIntentActivities which means any intent resolution could potentially return the installer. Additionally, the new design calls for a platform defined broadcast receiver that receives the status from the ephemeral installer. This receiver then starts the final intent -- either to launch the ephemeral application or to launch the fallback. For more detail, see go/ephemeral-design Bug: 30805203 Bug: 30273584 Change-Id: I6644bbb4f180d2d22c63af04b9857577516344a9 (cherry picked from commit 8e2d9d1d9050e93b15c54e992698325c7d4aa57c) --- core/java/android/content/Intent.java | 8 + core/java/android/content/pm/ResolveInfo.java | 6 - .../android/server/am/ActivityStarter.java | 90 ++++++++---- .../server/pm/PackageManagerService.java | 138 +++++++++++------- 4 files changed, 155 insertions(+), 87 deletions(-) diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java index 4d9db98587ce..1cf23ae8d040 100644 --- a/core/java/android/content/Intent.java +++ b/core/java/android/content/Intent.java @@ -4313,6 +4313,14 @@ public class Intent implements Parcelable, Cloneable { */ public static final int FLAG_DEBUG_TRIAGED_MISSING = 0x00000100; + /** + * Internal flag used to indicate ephemeral applications should not be + * considered when resolving the intent. + * + * @hide + */ + public static final int FLAG_IGNORE_EPHEMERAL = 0x00000200; + /** * If set, the new activity is not kept in the history stack. As soon as * the user navigates away from it, the activity is finished. This may also diff --git a/core/java/android/content/pm/ResolveInfo.java b/core/java/android/content/pm/ResolveInfo.java index c9be6edab424..b5df4d75a238 100644 --- a/core/java/android/content/pm/ResolveInfo.java +++ b/core/java/android/content/pm/ResolveInfo.java @@ -67,12 +67,6 @@ public class ResolveInfo implements Parcelable { */ public EphemeralResolveInfo ephemeralResolveInfo; - /** - * A ResolveInfo that points at the ephemeral installer. - * @hide - */ - public ResolveInfo ephemeralInstaller; - /** * The IntentFilter that was matched for this ResolveInfo. */ diff --git a/services/core/java/com/android/server/am/ActivityStarter.java b/services/core/java/com/android/server/am/ActivityStarter.java index 525244699082..6c612268331e 100644 --- a/services/core/java/com/android/server/am/ActivityStarter.java +++ b/services/core/java/com/android/server/am/ActivityStarter.java @@ -103,6 +103,7 @@ import android.os.Build; import android.os.Bundle; import android.os.IBinder; import android.os.PowerManagerInternal; +import android.os.Process; import android.os.RemoteException; import android.os.SystemClock; import android.os.UserHandle; @@ -132,6 +133,9 @@ class ActivityStarter { private static final String TAG_CONFIGURATION = TAG + POSTFIX_CONFIGURATION; private static final String TAG_USER_LEAVING = TAG + POSTFIX_USER_LEAVING; + // TODO b/30204367 remove when the platform fully supports ephemeral applications + private static final boolean USE_DEFAULT_EPHEMERAL_LAUNCHER = false; + private final ActivityManagerService mService; private final ActivityStackSupervisor mSupervisor; private ActivityStartInterceptor mInterceptor; @@ -456,39 +460,13 @@ class ActivityStarter { // starts either the intent we resolved here [on install error] or the ephemeral // app [on install success]. if (rInfo != null && rInfo.ephemeralResolveInfo != null) { - // Create a pending intent to start the intent resolved here. - final IIntentSender failureTarget = mService.getIntentSenderLocked( - ActivityManager.INTENT_SENDER_ACTIVITY, callingPackage, - Binder.getCallingUid(), userId, null, null, 0, new Intent[]{ intent }, - new String[]{ resolvedType }, - PendingIntent.FLAG_CANCEL_CURRENT | PendingIntent.FLAG_ONE_SHOT - | PendingIntent.FLAG_IMMUTABLE, null); - - // Create a pending intent to start the ephemeral application; force it to be - // directed to the ephemeral package. - ephemeralIntent.setPackage(rInfo.ephemeralResolveInfo.getPackageName()); - final IIntentSender ephemeralTarget = mService.getIntentSenderLocked( - ActivityManager.INTENT_SENDER_ACTIVITY, callingPackage, - Binder.getCallingUid(), userId, null, null, 0, new Intent[]{ ephemeralIntent }, - new String[]{ resolvedType }, - PendingIntent.FLAG_CANCEL_CURRENT | PendingIntent.FLAG_ONE_SHOT - | PendingIntent.FLAG_IMMUTABLE, null); - - int flags = intent.getFlags(); - intent = new Intent(); - intent.setFlags(flags - | Intent.FLAG_ACTIVITY_NEW_TASK - | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); - intent.putExtra(Intent.EXTRA_PACKAGE_NAME, - rInfo.ephemeralResolveInfo.getPackageName()); - intent.putExtra(Intent.EXTRA_EPHEMERAL_FAILURE, new IntentSender(failureTarget)); - intent.putExtra(Intent.EXTRA_EPHEMERAL_SUCCESS, new IntentSender(ephemeralTarget)); - + intent = buildEphemeralInstallerIntent(intent, ephemeralIntent, + rInfo.ephemeralResolveInfo.getPackageName(), callingPackage, resolvedType, + userId); resolvedType = null; callingUid = realCallingUid; callingPid = realCallingPid; - rInfo = rInfo.ephemeralInstaller; aInfo = mSupervisor.resolveActivity(intent, rInfo, startFlags, null /*profilerInfo*/); } @@ -543,6 +521,60 @@ class ActivityStarter { return err; } + /** + * Builds and returns an intent to launch the ephemeral installer. + */ + private Intent buildEphemeralInstallerIntent(Intent launchIntent, Intent origIntent, + String ephemeralPackage, String callingPackage, String resolvedType, int userId) { + final Intent nonEphemeralIntent = new Intent(origIntent); + nonEphemeralIntent.setFlags(nonEphemeralIntent.getFlags() | Intent.FLAG_IGNORE_EPHEMERAL); + // Intent that is launched if the ephemeral package couldn't be installed + // for any reason. + final IIntentSender failureIntentTarget = mService.getIntentSenderLocked( + ActivityManager.INTENT_SENDER_ACTIVITY, callingPackage, + Binder.getCallingUid(), userId, null /*token*/, null /*resultWho*/, 1, + new Intent[]{ nonEphemeralIntent }, new String[]{ resolvedType }, + PendingIntent.FLAG_CANCEL_CURRENT | PendingIntent.FLAG_ONE_SHOT + | PendingIntent.FLAG_IMMUTABLE, null /*bOptions*/); + + final Intent ephemeralIntent; + if (USE_DEFAULT_EPHEMERAL_LAUNCHER) { + // Force the intent to be directed to the ephemeral package + ephemeralIntent = new Intent(origIntent); + ephemeralIntent.setPackage(ephemeralPackage); + } else { + // Success intent goes back to the installer + // TODO; do we need any extras for the installer? + ephemeralIntent = new Intent(launchIntent); + ephemeralIntent.setData(null); + } + + // Intent that is eventually launched if the ephemeral package was + // installed successfully. This will actually be launched by a platform + // broadcast receiver. + final IIntentSender successIntentTarget = mService.getIntentSenderLocked( + ActivityManager.INTENT_SENDER_ACTIVITY, callingPackage, + Binder.getCallingUid(), userId, null /*token*/, null /*resultWho*/, 0, + new Intent[]{ ephemeralIntent }, new String[]{ resolvedType }, + PendingIntent.FLAG_CANCEL_CURRENT | PendingIntent.FLAG_ONE_SHOT + | PendingIntent.FLAG_IMMUTABLE, null /*bOptions*/); + + // Finally build the actual intent to launch the ephemeral installer + int flags = launchIntent.getFlags(); + final Intent intent = new Intent(); + intent.setFlags(flags + | Intent.FLAG_ACTIVITY_NEW_TASK + | Intent.FLAG_ACTIVITY_CLEAR_TASK + | Intent.FLAG_ACTIVITY_NO_HISTORY + | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); + intent.putExtra(Intent.EXTRA_PACKAGE_NAME, ephemeralPackage); + intent.putExtra(Intent.EXTRA_EPHEMERAL_FAILURE, new IntentSender(failureIntentTarget)); + intent.putExtra(Intent.EXTRA_EPHEMERAL_SUCCESS, new IntentSender(successIntentTarget)); + // TODO: Remove when the platform has fully implemented ephemeral apps + intent.setData(origIntent.getData()); + return intent; + } + void postStartActivityUncheckedProcessing( ActivityRecord r, int result, int prevFocusedStackId, ActivityRecord sourceRecord, ActivityStack targetStack) { diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 2ed64f18349c..41b2a08b35c7 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -179,6 +179,7 @@ import android.os.Looper; import android.os.Message; import android.os.Parcel; import android.os.ParcelFileDescriptor; +import android.os.PatternMatcher; import android.os.Process; import android.os.RemoteCallbackList; import android.os.RemoteException; @@ -4723,20 +4724,6 @@ public class PackageManagerService extends IPackageManager.Stub { final ResolveInfo bestChoice = chooseBestActivity(intent, resolvedType, flags, query, userId); - - if (isEphemeralAllowed(intent, query, userId)) { - Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "resolveEphemeral"); - final EphemeralResolveInfo ai = - getEphemeralResolveInfo(intent, resolvedType, userId); - if (ai != null) { - if (DEBUG_EPHEMERAL) { - Slog.v(TAG, "Returning an EphemeralResolveInfo"); - } - bestChoice.ephemeralInstaller = mEphemeralInstallerInfo; - bestChoice.ephemeralResolveInfo = ai; - } - Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER); - } return bestChoice; } finally { Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER); @@ -4777,9 +4764,9 @@ public class PackageManagerService extends IPackageManager.Stub { false, false, false, userId); } - private boolean isEphemeralAllowed( - Intent intent, List resolvedActivites, int userId) { + Intent intent, List resolvedActivities, int userId, + boolean skipPackageCheck) { // Short circuit and return early if possible. if (DISABLE_EPHEMERAL_APPS) { return false; @@ -4794,18 +4781,21 @@ public class PackageManagerService extends IPackageManager.Stub { if (intent.getComponent() != null) { return false; } - if (intent.getPackage() != null) { + if ((intent.getFlags() & Intent.FLAG_IGNORE_EPHEMERAL) != 0) { + return false; + } + if (!skipPackageCheck && intent.getPackage() != null) { return false; } final boolean isWebUri = hasWebURI(intent); - if (!isWebUri) { + if (!isWebUri || intent.getData().getHost() == null) { return false; } // Deny ephemeral apps if the user chose _ALWAYS or _ALWAYS_ASK for intent resolution. synchronized (mPackages) { - final int count = resolvedActivites.size(); + final int count = (resolvedActivities == null ? 0 : resolvedActivities.size()); for (int n = 0; n < count; n++) { - ResolveInfo info = resolvedActivites.get(n); + ResolveInfo info = resolvedActivities.get(n); String packageName = info.activityInfo.packageName; PackageSetting ps = mSettings.mPackages.get(packageName); if (ps != null) { @@ -4827,19 +4817,19 @@ public class PackageManagerService extends IPackageManager.Stub { return true; } - private EphemeralResolveInfo getEphemeralResolveInfo(Intent intent, String resolvedType, - int userId) { - final int ephemeralPrefixMask = Global.getInt(mContext.getContentResolver(), + private static EphemeralResolveInfo getEphemeralResolveInfo( + Context context, EphemeralResolverConnection resolverConnection, Intent intent, + String resolvedType, int userId, String packageName) { + final int ephemeralPrefixMask = Global.getInt(context.getContentResolver(), Global.EPHEMERAL_HASH_PREFIX_MASK, DEFAULT_EPHEMERAL_HASH_PREFIX_MASK); - final int ephemeralPrefixCount = Global.getInt(mContext.getContentResolver(), + final int ephemeralPrefixCount = Global.getInt(context.getContentResolver(), Global.EPHEMERAL_HASH_PREFIX_COUNT, DEFAULT_EPHEMERAL_HASH_PREFIX_COUNT); final EphemeralDigest digest = new EphemeralDigest(intent.getData(), ephemeralPrefixMask, ephemeralPrefixCount); final int[] shaPrefix = digest.getDigestPrefix(); final byte[][] digestBytes = digest.getDigestBytes(); final List ephemeralResolveInfoList = - mEphemeralResolverConnection.getEphemeralResolveInfoList( - shaPrefix, ephemeralPrefixMask); + resolverConnection.getEphemeralResolveInfoList(shaPrefix, ephemeralPrefixMask); if (ephemeralResolveInfoList == null || ephemeralResolveInfoList.size() == 0) { // No hash prefix match; there are no ephemeral apps for this domain. return null; @@ -4856,6 +4846,10 @@ public class PackageManagerService extends IPackageManager.Stub { if (filters.isEmpty()) { continue; } + if (packageName != null + && !packageName.equals(ephemeralApplication.getPackageName())) { + continue; + } // We have a domain match; resolve the filters to see if anything matches. final EphemeralIntentResolver ephemeralResolver = new EphemeralIntentResolver(); for (int j = filters.size() - 1; j >= 0; --j) { @@ -5259,8 +5253,12 @@ public class PackageManagerService extends IPackageManager.Stub { } // reader + boolean sortResult = false; + boolean addEphemeral = false; + boolean matchEphemeralPackage = false; + List result; + final String pkgName = intent.getPackage(); synchronized (mPackages) { - final String pkgName = intent.getPackage(); if (pkgName == null) { List matchingFilters = getMatchingCrossProfileIntentFilters(intent, resolvedType, userId); @@ -5268,15 +5266,16 @@ public class PackageManagerService extends IPackageManager.Stub { ResolveInfo xpResolveInfo = querySkipCurrentProfileIntents(matchingFilters, intent, resolvedType, flags, userId); if (xpResolveInfo != null) { - List result = new ArrayList(1); - result.add(xpResolveInfo); - return filterIfNotSystemUser(result, userId); + List xpResult = new ArrayList(1); + xpResult.add(xpResolveInfo); + return filterIfNotSystemUser(xpResult, userId); } // Check for results in the current profile. - List result = mActivities.queryIntent( - intent, resolvedType, flags, userId); - result = filterIfNotSystemUser(result, userId); + result = filterIfNotSystemUser(mActivities.queryIntent( + intent, resolvedType, flags, userId), userId); + addEphemeral = + isEphemeralAllowed(intent, result, userId, false /*skipPackageCheck*/); // Check for cross profile results. boolean hasNonNegativePriorityResult = hasNonNegativePriority(result); @@ -5288,7 +5287,7 @@ public class PackageManagerService extends IPackageManager.Stub { Collections.singletonList(xpResolveInfo), userId).size() > 0; if (isVisibleToUser) { result.add(xpResolveInfo); - Collections.sort(result, mResolvePrioritySorter); + sortResult = true; } } if (hasWebURI(intent)) { @@ -5304,28 +5303,61 @@ public class PackageManagerService extends IPackageManager.Stub { // in the result. result.remove(xpResolveInfo); } - if (result.size() == 0) { + if (result.size() == 0 && !addEphemeral) { result.add(xpDomainInfo.resolveInfo); return result; } - } else if (result.size() <= 1) { - return result; } - result = filterCandidatesWithDomainPreferredActivitiesLPr(intent, flags, result, - xpDomainInfo, userId); - Collections.sort(result, mResolvePrioritySorter); + if (result.size() > 1 || addEphemeral) { + result = filterCandidatesWithDomainPreferredActivitiesLPr( + intent, flags, result, xpDomainInfo, userId); + sortResult = true; + } + } + } else { + final PackageParser.Package pkg = mPackages.get(pkgName); + if (pkg != null) { + result = filterIfNotSystemUser( + mActivities.queryIntentForPackage( + intent, resolvedType, flags, pkg.activities, userId), + userId); + } else { + // the caller wants to resolve for a particular package; however, there + // were no installed results, so, try to find an ephemeral result + addEphemeral = isEphemeralAllowed( + intent, null /*result*/, userId, true /*skipPackageCheck*/); + matchEphemeralPackage = true; + result = new ArrayList(); } - return result; } - final PackageParser.Package pkg = mPackages.get(pkgName); - if (pkg != null) { - return filterIfNotSystemUser( - mActivities.queryIntentForPackage( - intent, resolvedType, flags, pkg.activities, userId), - userId); + } + if (addEphemeral) { + Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "resolveEphemeral"); + final EphemeralResolveInfo ai = getEphemeralResolveInfo( + mContext, mEphemeralResolverConnection, intent, resolvedType, userId, + matchEphemeralPackage ? pkgName : null); + if (ai != null) { + if (DEBUG_EPHEMERAL) { + Slog.v(TAG, "Adding ephemeral installer to the ResolveInfo list"); + } + final ResolveInfo ephemeralInstaller = new ResolveInfo(mEphemeralInstallerInfo); + ephemeralInstaller.ephemeralResolveInfo = ai; + // make sure this resolver is the default + ephemeralInstaller.isDefault = true; + ephemeralInstaller.match = IntentFilter.MATCH_CATEGORY_SCHEME_SPECIFIC_PART + | IntentFilter.MATCH_ADJUSTMENT_NORMAL; + // add a non-generic filter + ephemeralInstaller.filter = new IntentFilter(intent.getAction()); + ephemeralInstaller.filter.addDataPath( + intent.getData().getPath(), PatternMatcher.PATTERN_LITERAL); + result.add(ephemeralInstaller); } - return new ArrayList(); + Trace.traceEnd(TRACE_TAG_PACKAGE_MANAGER); + } + if (sortResult) { + Collections.sort(result, mResolvePrioritySorter); } + return result; } private static class CrossProfileDomainInfo { @@ -9190,15 +9222,17 @@ public class PackageManagerService extends IPackageManager.Stub { mEphemeralInstallerActivity.packageName = pkg.applicationInfo.packageName; mEphemeralInstallerActivity.processName = pkg.applicationInfo.packageName; mEphemeralInstallerActivity.launchMode = ActivityInfo.LAUNCH_MULTIPLE; - mEphemeralInstallerActivity.flags = ActivityInfo.FLAG_EXCLUDE_FROM_RECENTS | - ActivityInfo.FLAG_FINISH_ON_CLOSE_SYSTEM_DIALOGS; + mEphemeralInstallerActivity.flags = ActivityInfo.FLAG_EXCLUDE_FROM_RECENTS + | ActivityInfo.FLAG_FINISH_ON_CLOSE_SYSTEM_DIALOGS; mEphemeralInstallerActivity.theme = 0; mEphemeralInstallerActivity.exported = true; mEphemeralInstallerActivity.enabled = true; mEphemeralInstallerInfo.activityInfo = mEphemeralInstallerActivity; mEphemeralInstallerInfo.priority = 0; - mEphemeralInstallerInfo.preferredOrder = 0; - mEphemeralInstallerInfo.match = 0; + mEphemeralInstallerInfo.preferredOrder = 1; + mEphemeralInstallerInfo.isDefault = true; + mEphemeralInstallerInfo.match = IntentFilter.MATCH_CATEGORY_SCHEME_SPECIFIC_PART + | IntentFilter.MATCH_ADJUSTMENT_NORMAL; if (DEBUG_EPHEMERAL) { Slog.d(TAG, "Set ephemeral installer activity: " + mEphemeralInstallerComponent); -- GitLab From 3366328245621fa6e8fd764a4d3c2f073774d096 Mon Sep 17 00:00:00 2001 From: Makoto Onuki Date: Mon, 22 Aug 2016 16:19:04 -0700 Subject: [PATCH 077/809] Do not scan system apps unless after OTA Bug 30956231 Change-Id: I4af34cdd39cfaf0b8712b9ded1ef119efa3e04b0 --- .../android/server/pm/ShortcutPackage.java | 6 + .../android/server/pm/ShortcutService.java | 19 ++- .../com/android/server/pm/ShortcutUser.java | 18 ++- .../server/pm/BaseShortcutManagerTest.java | 12 ++ .../server/pm/ShortcutManagerTest1.java | 122 ++++++++++++++++++ 5 files changed, 173 insertions(+), 4 deletions(-) diff --git a/services/core/java/com/android/server/pm/ShortcutPackage.java b/services/core/java/com/android/server/pm/ShortcutPackage.java index 827b88a5b61a..6f6fd7c88dcd 100644 --- a/services/core/java/com/android/server/pm/ShortcutPackage.java +++ b/services/core/java/com/android/server/pm/ShortcutPackage.java @@ -667,6 +667,12 @@ class ShortcutPackage extends ShortcutPackageItem { // - version code hasn't change // - lastUpdateTime hasn't change // - all target activities are still enabled. + + // Note, system apps timestamps do *not* change after OTAs. (But they do + // after an adb sync or a local flash.) + // This means if a system app's version code doesn't change on an OTA, + // we don't notice it's updated. But that's fine since their version code *should* + // really change on OTAs. if ((getPackageInfo().getVersionCode() == pi.versionCode) && (getPackageInfo().getLastUpdateTime() == pi.lastUpdateTime) && areAllActivitiesStillEnabled()) { diff --git a/services/core/java/com/android/server/pm/ShortcutService.java b/services/core/java/com/android/server/pm/ShortcutService.java index b80775b690e2..adf19dc8295e 100644 --- a/services/core/java/com/android/server/pm/ShortcutService.java +++ b/services/core/java/com/android/server/pm/ShortcutService.java @@ -54,6 +54,7 @@ import android.graphics.RectF; import android.graphics.drawable.Icon; import android.net.Uri; import android.os.Binder; +import android.os.Build; import android.os.Environment; import android.os.FileUtils; import android.os.Handler; @@ -2659,10 +2660,14 @@ public class ShortcutService extends IShortcutService.Stub { boolean forceRescan) { final ShortcutUser user = getUserShortcutsLocked(userId); + // Note after each OTA, we'll need to rescan all system apps, as their lastUpdateTime + // is not reliable. final long now = injectCurrentTimeMillis(); + final boolean afterOta = + !injectBuildFingerprint().equals(user.getLastAppScanOsFingerprint()); // Then for each installed app, publish manifest shortcuts when needed. - forUpdatedPackages(userId, lastScanTime, ai -> { + forUpdatedPackages(userId, lastScanTime, afterOta, ai -> { user.attemptToRestoreIfNeededAndSave(this, ai.packageName, userId); user.rescanPackageIfNeeded(ai.packageName, forceRescan); }); @@ -2670,6 +2675,7 @@ public class ShortcutService extends IShortcutService.Stub { // Write the time just before the scan, because there may be apps that have just // been updated, and we want to catch them in the next time. user.setLastAppScanTime(now); + user.setLastAppScanOsFingerprint(injectBuildFingerprint()); scheduleSaveUser(userId); } @@ -2908,7 +2914,7 @@ public class ShortcutService extends IShortcutService.Stub { return parceledList.getList(); } - private void forUpdatedPackages(@UserIdInt int userId, long lastScanTime, + private void forUpdatedPackages(@UserIdInt int userId, long lastScanTime, boolean afterOta, Consumer callback) { if (DEBUG) { Slog.d(TAG, "forUpdatedPackages for user " + userId + ", lastScanTime=" + lastScanTime); @@ -2920,7 +2926,8 @@ public class ShortcutService extends IShortcutService.Stub { // If the package has been updated since the last scan time, then scan it. // Also if it's a system app with no update, lastUpdateTime is not reliable, so // just scan it. - if (pi.lastUpdateTime >= lastScanTime || isPureSystemApp(pi.applicationInfo)) { + if (pi.lastUpdateTime >= lastScanTime + || (afterOta && isPureSystemApp(pi.applicationInfo))) { if (DEBUG) { Slog.d(TAG, "Found updated package " + pi.packageName); } @@ -3598,6 +3605,12 @@ public class ShortcutService extends IShortcutService.Stub { Binder.restoreCallingIdentity(token); } + // Injection point. + @VisibleForTesting + String injectBuildFingerprint() { + return Build.FINGERPRINT; + } + final void wtf(String message) { wtf(message, /* exception= */ null); } diff --git a/services/core/java/com/android/server/pm/ShortcutUser.java b/services/core/java/com/android/server/pm/ShortcutUser.java index ce3ed9c7deef..c05c66fedbf8 100644 --- a/services/core/java/com/android/server/pm/ShortcutUser.java +++ b/services/core/java/com/android/server/pm/ShortcutUser.java @@ -60,6 +60,7 @@ class ShortcutUser { // Suffix "2" was added to force rescan all packages after the next OTA. private static final String ATTR_LAST_APP_SCAN_TIME = "last-app-scan-time2"; + private static final String ATTR_LAST_APP_SCAN_OS_FINGERPRINT = "last-app-scan-fp"; private static final String KEY_USER_ID = "userId"; private static final String KEY_LAUNCHERS = "launchers"; private static final String KEY_PACKAGES = "packages"; @@ -125,6 +126,8 @@ class ShortcutUser { private long mLastAppScanTime; + private String mLastAppScanOsFingerprint; + public ShortcutUser(ShortcutService service, int userId) { mService = service; mUserId = userId; @@ -142,6 +145,14 @@ class ShortcutUser { mLastAppScanTime = lastAppScanTime; } + public String getLastAppScanOsFingerprint() { + return mLastAppScanOsFingerprint; + } + + public void setLastAppScanOsFingerprint(String lastAppScanOsFingerprint) { + mLastAppScanOsFingerprint = lastAppScanOsFingerprint; + } + // We don't expose this directly to non-test code because only ShortcutUser should add to/ // remove from it. @VisibleForTesting @@ -318,6 +329,8 @@ class ShortcutUser { ShortcutService.writeAttr(out, ATTR_KNOWN_LOCALES, mKnownLocales); ShortcutService.writeAttr(out, ATTR_LAST_APP_SCAN_TIME, mLastAppScanTime); + ShortcutService.writeAttr(out, ATTR_LAST_APP_SCAN_OS_FINGERPRINT, + mLastAppScanOsFingerprint); ShortcutService.writeTagValue(out, TAG_LAUNCHER, mLastKnownLauncher); @@ -364,7 +377,8 @@ class ShortcutUser { ATTR_LAST_APP_SCAN_TIME); final long currentTime = s.injectCurrentTimeMillis(); ret.mLastAppScanTime = lastAppScanTime < currentTime ? lastAppScanTime : 0; - + ret.mLastAppScanOsFingerprint = ShortcutService.parseStringAttribute(parser, + ATTR_LAST_APP_SCAN_OS_FINGERPRINT); final int outerDepth = parser.getDepth(); int type; while ((type = parser.next()) != XmlPullParser.END_DOCUMENT @@ -457,6 +471,8 @@ class ShortcutUser { pw.print(mLastAppScanTime); pw.print("] "); pw.print(ShortcutService.formatTime(mLastAppScanTime)); + pw.print(" Last app scan FP: "); + pw.print(mLastAppScanOsFingerprint); pw.println(); prefix += prefix + " "; diff --git a/services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java b/services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java index e96e97bcaa02..792f3001c049 100644 --- a/services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java +++ b/services/tests/servicestests/src/com/android/server/pm/BaseShortcutManagerTest.java @@ -406,6 +406,11 @@ public abstract class BaseShortcutManagerTest extends InstrumentationTestCase { return mSafeMode; } + @Override + String injectBuildFingerprint() { + return mInjectedBuildFingerprint; + } + @Override void wtf(String message, Throwable th) { // During tests, WTF is fatal. @@ -528,6 +533,7 @@ public abstract class BaseShortcutManagerTest extends InstrumentationTestCase { protected Map mInjectedPackages; protected Set mUninstalledPackages; + protected Set mSystemPackages; protected PackageManager mMockPackageManager; protected PackageManagerInternal mMockPackageManagerInternal; @@ -628,6 +634,8 @@ public abstract class BaseShortcutManagerTest extends InstrumentationTestCase { protected static final String PACKAGE_FALLBACK_LAUNCHER_NAME = "fallback"; protected static final int PACKAGE_FALLBACK_LAUNCHER_PRIORITY = -999; + protected String mInjectedBuildFingerprint = "build1"; + static { QUERY_ALL.setQueryFlags( ShortcutQuery.FLAG_GET_ALL_KINDS); @@ -677,6 +685,7 @@ public abstract class BaseShortcutManagerTest extends InstrumentationTestCase { pi -> pi.applicationInfo.flags &= ~ApplicationInfo.FLAG_ALLOW_BACKUP); mUninstalledPackages = new HashSet<>(); + mSystemPackages = new HashSet<>(); mInjectedFilePathRoot = new File(getTestContext().getCacheDir(), "test-files"); @@ -963,6 +972,9 @@ public abstract class BaseShortcutManagerTest extends InstrumentationTestCase { if (mUninstalledPackages.contains(PackageWithUser.of(userId, packageName))) { ret.applicationInfo.flags &= ~ApplicationInfo.FLAG_INSTALLED; } + if (mSystemPackages.contains(packageName)) { + ret.applicationInfo.flags |= ApplicationInfo.FLAG_SYSTEM; + } if (getSignatures) { ret.signatures = pi.signatures; diff --git a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java index ed4e391a6273..46ac7ce88b90 100644 --- a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java +++ b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest1.java @@ -4347,6 +4347,128 @@ public class ShortcutManagerTest1 extends BaseShortcutManagerTest { }); } + public void testHandlePackageUpdate_systemAppUpdate() { + + // Package1 is a system app. Package 2 is not a system app, so it's not scanned + // in this test at all. + mSystemPackages.add(CALLING_PACKAGE_1); + + // Initial state: no shortcuts. + mService.checkPackageChanges(USER_0); + + assertEquals(mInjectedCurrentTimeMillis, + mService.getUserShortcutsLocked(USER_0).getLastAppScanTime()); + assertEquals(mInjectedBuildFingerprint, + mService.getUserShortcutsLocked(USER_0).getLastAppScanOsFingerprint()); + + // They have no shortcuts. + runWithCaller(CALLING_PACKAGE_1, USER_0, () -> { + assertWith(getCallerShortcuts()) + .isEmpty(); + }); + + runWithCaller(CALLING_PACKAGE_2, USER_0, () -> { + assertWith(getCallerShortcuts()) + .isEmpty(); + }); + + // Next. + // Update the packages -- now they have 1 manifest shortcut. + // But checkPackageChanges() don't notice it, since their version code / timestamp haven't + // changed. + addManifestShortcutResource( + new ComponentName(CALLING_PACKAGE_1, ShortcutActivity.class.getName()), + R.xml.shortcut_1); + addManifestShortcutResource( + new ComponentName(CALLING_PACKAGE_2, ShortcutActivity.class.getName()), + R.xml.shortcut_1); + mInjectedCurrentTimeMillis += 1000; + mService.checkPackageChanges(USER_0); + + runWithCaller(CALLING_PACKAGE_1, USER_0, () -> { + assertWith(getCallerShortcuts()) + .isEmpty(); + }); + runWithCaller(CALLING_PACKAGE_2, USER_0, () -> { + assertWith(getCallerShortcuts()) + .isEmpty(); + }); + + // Next. + // Update the build finger print. All system apps will be scanned now. + mInjectedBuildFingerprint = "update1"; + mInjectedCurrentTimeMillis += 1000; + mService.checkPackageChanges(USER_0); + + runWithCaller(CALLING_PACKAGE_1, USER_0, () -> { + assertWith(getCallerShortcuts()) + .haveIds("ms1"); + }); + runWithCaller(CALLING_PACKAGE_2, USER_0, () -> { + assertWith(getCallerShortcuts()) + .isEmpty(); + }); + + // Next. + // Update manifest shortcuts. + mInjectedBuildFingerprint = "update2"; + addManifestShortcutResource( + new ComponentName(CALLING_PACKAGE_1, ShortcutActivity.class.getName()), + R.xml.shortcut_2); + addManifestShortcutResource( + new ComponentName(CALLING_PACKAGE_2, ShortcutActivity.class.getName()), + R.xml.shortcut_2); + mInjectedCurrentTimeMillis += 1000; + mService.checkPackageChanges(USER_0); + + // Fingerprint hasn't changed, so CALLING_PACKAGE_1 wasn't scanned. + runWithCaller(CALLING_PACKAGE_1, USER_0, () -> { + assertWith(getCallerShortcuts()) + .haveIds("ms1"); + }); + runWithCaller(CALLING_PACKAGE_2, USER_0, () -> { + assertWith(getCallerShortcuts()) + .isEmpty(); + }); + + // Update the fingerprint, but CALLING_PACKAGE_1's version code hasn't changed, so + // still not scanned. + mInjectedBuildFingerprint = "update2"; + mInjectedCurrentTimeMillis += 1000; + mService.checkPackageChanges(USER_0); + + runWithCaller(CALLING_PACKAGE_1, USER_0, () -> { + assertWith(getCallerShortcuts()) + .haveIds("ms1"); + }); + runWithCaller(CALLING_PACKAGE_2, USER_0, () -> { + assertWith(getCallerShortcuts()) + .isEmpty(); + }); + + // Now update the version code, so CALLING_PACKAGE_1 is scanned again. + mInjectedBuildFingerprint = "update3"; + mInjectedCurrentTimeMillis += 1000; + updatePackageVersion(CALLING_PACKAGE_1, 1); + mService.checkPackageChanges(USER_0); + + runWithCaller(CALLING_PACKAGE_1, USER_0, () -> { + assertWith(getCallerShortcuts()) + .haveIds("ms1", "ms2"); + }); + runWithCaller(CALLING_PACKAGE_2, USER_0, () -> { + assertWith(getCallerShortcuts()) + .isEmpty(); + }); + + // Make sure getLastAppScanTime / getLastAppScanOsFingerprint are persisted. + initService(); + assertEquals(mInjectedCurrentTimeMillis, + mService.getUserShortcutsLocked(USER_0).getLastAppScanTime()); + assertEquals(mInjectedBuildFingerprint, + mService.getUserShortcutsLocked(USER_0).getLastAppScanOsFingerprint()); + } + public void testHandlePackageChanged() { final ComponentName ACTIVITY1 = new ComponentName(CALLING_PACKAGE_1, "act1"); final ComponentName ACTIVITY2 = new ComponentName(CALLING_PACKAGE_1, "act2"); -- GitLab From a49bafad6b4d0f8403edcd794e69d27d8befccb7 Mon Sep 17 00:00:00 2001 From: Makoto Onuki Date: Mon, 22 Aug 2016 11:28:20 -0700 Subject: [PATCH 078/809] Backporting shortcut manager test utils to mr1 Bug 29612099 Change-Id: I33641b2c95f8fe859fa3256b491c039ab273fff5 --- services/tests/shortcutmanagerutils/Android.mk | 2 +- .../ShortcutManagerTestUtils.java | 17 +++++++++++------ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/services/tests/shortcutmanagerutils/Android.mk b/services/tests/shortcutmanagerutils/Android.mk index 701e05857142..2818457c9ac9 100644 --- a/services/tests/shortcutmanagerutils/Android.mk +++ b/services/tests/shortcutmanagerutils/Android.mk @@ -26,6 +26,6 @@ LOCAL_MODULE_TAGS := optional LOCAL_MODULE := ShortcutManagerTestUtils -LOCAL_SDK_VERSION := current +LOCAL_SDK_VERSION := test_current include $(BUILD_STATIC_JAVA_LIBRARY) diff --git a/services/tests/shortcutmanagerutils/src/com/android/server/pm/shortcutmanagertest/ShortcutManagerTestUtils.java b/services/tests/shortcutmanagerutils/src/com/android/server/pm/shortcutmanagertest/ShortcutManagerTestUtils.java index 78f95c4d217e..1fe5cb782315 100644 --- a/services/tests/shortcutmanagerutils/src/com/android/server/pm/shortcutmanagertest/ShortcutManagerTestUtils.java +++ b/services/tests/shortcutmanagerutils/src/com/android/server/pm/shortcutmanagertest/ShortcutManagerTestUtils.java @@ -156,10 +156,10 @@ public class ShortcutManagerTestUtils { return result; } - private static List runCommand(Instrumentation instrumentation, String command) { + public static List runCommand(Instrumentation instrumentation, String command) { return runCommand(instrumentation, command, null); } - private static List runCommand(Instrumentation instrumentation, String command, + public static List runCommand(Instrumentation instrumentation, String command, Predicate> resultAsserter) { Log.d(TAG, "Running command: " + command); final List result; @@ -175,11 +175,11 @@ public class ShortcutManagerTestUtils { return result; } - private static void runCommandForNoOutput(Instrumentation instrumentation, String command) { + public static void runCommandForNoOutput(Instrumentation instrumentation, String command) { runCommand(instrumentation, command, result -> result.size() == 0); } - private static List runShortcutCommand(Instrumentation instrumentation, String command, + public static List runShortcutCommand(Instrumentation instrumentation, String command, Predicate> resultAsserter) { return runCommand(instrumentation, "cmd shortcut " + command, resultAsserter); } @@ -204,7 +204,8 @@ public class ShortcutManagerTestUtils { } public static void setDefaultLauncher(Instrumentation instrumentation, String component) { - runCommand(instrumentation, "cmd package set-home-activity " + component, + runCommand(instrumentation, "cmd package set-home-activity --user " + + instrumentation.getContext().getUserId() + " " + component, result -> result.contains("Success")); } @@ -1053,7 +1054,11 @@ public class ShortcutManagerTestUtils { } public static void retryUntil(BooleanSupplier checker, String message) { - final long timeOut = System.currentTimeMillis() + 30 * 1000; // wait for 30 seconds. + retryUntil(checker, message, 30); + } + + public static void retryUntil(BooleanSupplier checker, String message, long timeoutSeconds) { + final long timeOut = System.currentTimeMillis() + timeoutSeconds * 1000; while (!checker.getAsBoolean()) { if (System.currentTimeMillis() > timeOut) { break; -- GitLab From f2e311f1170629548a531f34650b7a38f063bfdb Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Mon, 22 Aug 2016 20:47:43 -0700 Subject: [PATCH 079/809] Import translations. DO NOT MERGE Change-Id: I5785b293e1062ba5b04d60237569c77be7517603 Auto-generated-cl: translation import --- packages/SystemUI/res/values-hy-rAM/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/SystemUI/res/values-hy-rAM/strings.xml b/packages/SystemUI/res/values-hy-rAM/strings.xml index d0d6c506f72d..2aad63c085f5 100644 --- a/packages/SystemUI/res/values-hy-rAM/strings.xml +++ b/packages/SystemUI/res/values-hy-rAM/strings.xml @@ -32,7 +32,7 @@ "Ծանուցումներ չկան" "Ընթացիկ" "Ծանուցումներ" - "Մարտկոցը լիցքաթափվում է" + "Մարտկոցի լիցքը սպառվում է" "Մնաց %s" "Մնաց %s: Մարտկոցի տնտեսումը միացված է:" "USB լիցքավորումը չի աջակցվում:\nՕգտվեք միայն գործող լիցքավորիչից:" -- GitLab From a8f9a075b14c526a0de75c2ade81ebc4e05e4ef8 Mon Sep 17 00:00:00 2001 From: Sungsoo Date: Tue, 23 Aug 2016 14:48:43 +0900 Subject: [PATCH 080/809] ExifInterface: Make saveAttributes throw an exception before change ExifInterface object can be created with a unsupported file format. If saveAttribute is called with an unsupported file format, ExifInterface makes the file corrupted. This CL prevents those cases by throwing an exception before making any change on the file. Bug: 30936376 Change-Id: I115a42601c774062485974042464abb0d65c35e9 --- media/java/android/media/ExifInterface.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/media/java/android/media/ExifInterface.java b/media/java/android/media/ExifInterface.java index 4848630baacf..56af57aa8e96 100644 --- a/media/java/android/media/ExifInterface.java +++ b/media/java/android/media/ExifInterface.java @@ -679,14 +679,14 @@ public class ExifInterface { if (value instanceof long[]) { long[] array = (long[]) value; if (array.length == 1) { - return (double) array[0]; + return array[0]; } throw new NumberFormatException("There are more than one component"); } if (value instanceof int[]) { int[] array = (int[]) value; if (array.length == 1) { - return (double) array[0]; + return array[0]; } throw new NumberFormatException("There are more than one component"); } @@ -1083,6 +1083,7 @@ public class ExifInterface { private int mThumbnailOffset; private int mThumbnailLength; private byte[] mThumbnailBytes; + private boolean mIsSupportedFile; // Pattern to check non zero timestamp private static final Pattern sNonZeroTimePattern = Pattern.compile(".*[1-9].*"); @@ -1472,9 +1473,11 @@ public class ExifInterface { // Process JPEG input stream getJpegAttributes(in); + mIsSupportedFile = true; } catch (IOException e) { // Ignore exceptions in order to keep the compatibility with the old versions of // ExifInterface. + mIsSupportedFile = false; Log.w(TAG, "Invalid image: ExifInterface got an unsupported image format file" + "(ExifInterface supports JPEG and some RAW image formats only) " + "or a corrupted JPEG file to ExifInterface.", e); @@ -1553,9 +1556,9 @@ public class ExifInterface { * and make a single call rather than multiple calls for each attribute. */ public void saveAttributes() throws IOException { - if (mIsRaw) { + if (!mIsSupportedFile || mIsRaw) { throw new UnsupportedOperationException( - "ExifInterface does not support saving attributes on RAW formats."); + "ExifInterface only supports saving attributes on JPEG formats."); } if (mIsInputStream || (mSeekableFileDescriptor == null && mFilename == null)) { throw new UnsupportedOperationException( @@ -2352,7 +2355,7 @@ public class ExifInterface { for (int i = 0; i < EXIF_TAGS.length; ++i) { int sum = 0; for (Map.Entry entry : (Set) mAttributes[i].entrySet()) { - final ExifAttribute exifAttribute = (ExifAttribute) ((Map.Entry) entry).getValue(); + final ExifAttribute exifAttribute = (ExifAttribute) entry.getValue(); final int size = exifAttribute.size(); if (size > 4) { sum += size; -- GitLab From d13602f1e72377466ec90bce8a46084ea5877df1 Mon Sep 17 00:00:00 2001 From: Adrian Roos Date: Mon, 22 Aug 2016 15:31:38 +0200 Subject: [PATCH 081/809] Ambient: Pulse for every noisy notification exactly once Also increases the pulse duration and switches timing to elapsed realtime instead of wall time for robustness. Also remove triggering for notification light for simplifying code. Only noisy notifications are able to trigger the light anyway and noisy notifications already trigger ambient on their own. Change-Id: I4efbe530bb1a60cabaa46c2b04bcd5e12cdef680 Fixes: 31004875 --- packages/SystemUI/res/values/config.xml | 8 +- .../com/android/systemui/doze/DozeLog.java | 2 +- .../android/systemui/doze/DozeService.java | 143 ++---------------- .../statusbar/phone/DozeParameters.java | 56 ------- 4 files changed, 15 insertions(+), 194 deletions(-) diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml index c2897cd77761..8d44048b9582 100644 --- a/packages/SystemUI/res/values/config.xml +++ b/packages/SystemUI/res/values/config.xml @@ -218,12 +218,6 @@ true - - 10s,30s,60s - - - 2 - 2000 @@ -253,7 +247,7 @@ 130 - 3000 + 6000 600 diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java b/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java index 7c8d0f64c11c..874021ade90c 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java @@ -33,7 +33,7 @@ public class DozeLog { private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); private static final boolean ENABLED = true; private static final int SIZE = Build.IS_DEBUGGABLE ? 400 : 50; - private static final SimpleDateFormat FORMAT = new SimpleDateFormat("MM-dd HH:mm:ss.SSS"); + static final SimpleDateFormat FORMAT = new SimpleDateFormat("MM-dd HH:mm:ss.SSS"); private static final int PULSE_REASONS = 4; diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeService.java b/packages/SystemUI/src/com/android/systemui/doze/DozeService.java index fc0d8bb376d0..ec4f447d3a38 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeService.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeService.java @@ -16,8 +16,6 @@ package com.android.systemui.doze; -import android.app.AlarmManager; -import android.app.PendingIntent; import android.app.UiModeManager; import android.content.BroadcastReceiver; import android.content.Context; @@ -43,7 +41,6 @@ import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.MetricsProto.MetricsEvent; import com.android.systemui.SystemUIApplication; import com.android.systemui.statusbar.phone.DozeParameters; -import com.android.systemui.statusbar.phone.DozeParameters.PulseSchedule; import java.io.FileDescriptor; import java.io.PrintWriter; @@ -55,19 +52,6 @@ public class DozeService extends DreamService { private static final String ACTION_BASE = "com.android.systemui.doze"; private static final String PULSE_ACTION = ACTION_BASE + ".pulse"; - private static final String NOTIFICATION_PULSE_ACTION = ACTION_BASE + ".notification_pulse"; - private static final String EXTRA_INSTANCE = "instance"; - - /** - * Earliest time we pulse due to a notification light after the service started. - * - *

      Incoming notification light events during the blackout period are - * delayed to the earliest time defined by this constant.

      - * - *

      This delay avoids a pulse immediately after screen off, at which - * point the notification light is re-enabled again by NoMan.

      - */ - private static final int EARLIEST_LIGHT_PULSE_AFTER_START_MS = 10 * 1000; private final String mTag = String.format(TAG + ".%08x", hashCode()); private final Context mContext = this; @@ -80,19 +64,14 @@ public class DozeService extends DreamService { private TriggerSensor mPickupSensor; private PowerManager mPowerManager; private PowerManager.WakeLock mWakeLock; - private AlarmManager mAlarmManager; private UiModeManager mUiModeManager; private boolean mDreaming; private boolean mPulsing; private boolean mBroadcastReceiverRegistered; private boolean mDisplayStateSupported; - private boolean mNotificationLightOn; private boolean mPowerSaveActive; private boolean mCarMode; private long mNotificationPulseTime; - private long mLastScheduleResetTime; - private long mEarliestPulseDueToLight; - private int mScheduleResetsRemaining; public DozeService() { if (DEBUG) Log.d(mTag, "new DozeService()"); @@ -110,11 +89,11 @@ public class DozeService extends DreamService { pw.print(" mSigMotionSensor: "); pw.println(mSigMotionSensor); pw.print(" mPickupSensor:"); pw.println(mPickupSensor); pw.print(" mDisplayStateSupported: "); pw.println(mDisplayStateSupported); - pw.print(" mNotificationLightOn: "); pw.println(mNotificationLightOn); pw.print(" mPowerSaveActive: "); pw.println(mPowerSaveActive); pw.print(" mCarMode: "); pw.println(mCarMode); - pw.print(" mNotificationPulseTime: "); pw.println(mNotificationPulseTime); - pw.print(" mScheduleResetsRemaining: "); pw.println(mScheduleResetsRemaining); + pw.print(" mNotificationPulseTime: "); pw.println( + DozeLog.FORMAT.format(new Date(mNotificationPulseTime + - SystemClock.elapsedRealtime() + System.currentTimeMillis()))); mDozeParameters.dump(pw); } @@ -141,7 +120,6 @@ public class DozeService extends DreamService { mPowerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE); mWakeLock = mPowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG); mWakeLock.setReferenceCounted(true); - mAlarmManager = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE); mDisplayStateSupported = mDozeParameters.getDisplayStateSupported(); mUiModeManager = (UiModeManager) mContext.getSystemService(Context.UI_MODE_SERVICE); turnDisplayOff(); @@ -176,8 +154,6 @@ public class DozeService extends DreamService { } mDreaming = true; - rescheduleNotificationPulse(false /*predicate*/); // cancel any pending pulse alarms - mEarliestPulseDueToLight = System.currentTimeMillis() + EARLIEST_LIGHT_PULSE_AFTER_START_MS; listenForPulseSignals(true); // Ask the host to get things ready to start dozing. @@ -316,7 +292,6 @@ public class DozeService extends DreamService { private void listenForBroadcasts(boolean listen) { if (listen) { final IntentFilter filter = new IntentFilter(PULSE_ACTION); - filter.addAction(NOTIFICATION_PULSE_ACTION); filter.addAction(UiModeManager.ACTION_ENTER_CAR_MODE); mContext.registerReceiver(mBroadcastReceiver, filter); mBroadcastReceiverRegistered = true; @@ -330,93 +305,17 @@ public class DozeService extends DreamService { private void listenForNotifications(boolean listen) { if (listen) { - resetNotificationResets(); mHost.addCallback(mHostCallback); - - // Continue to pulse for existing LEDs. - mNotificationLightOn = mHost.isNotificationLightOn(); - if (mNotificationLightOn) { - updateNotificationPulseDueToLight(); - } } else { mHost.removeCallback(mHostCallback); } } - private void resetNotificationResets() { - if (DEBUG) Log.d(mTag, "resetNotificationResets"); - mScheduleResetsRemaining = mDozeParameters.getPulseScheduleResets(); - } - - private void updateNotificationPulseDueToLight() { - long timeMs = System.currentTimeMillis(); - timeMs = Math.max(timeMs, mEarliestPulseDueToLight); - updateNotificationPulse(timeMs); - } - - private void updateNotificationPulse(long notificationTimeMs) { - if (DEBUG) Log.d(mTag, "updateNotificationPulse notificationTimeMs=" + notificationTimeMs); + private void requestNotificationPulse() { + if (DEBUG) Log.d(mTag, "requestNotificationPulse"); if (!mDozeParameters.getPulseOnNotifications()) return; - if (mScheduleResetsRemaining <= 0) { - if (DEBUG) Log.d(mTag, "No more schedule resets remaining"); - return; - } - final long pulseDuration = mDozeParameters.getPulseDuration(false /*pickup*/); - boolean pulseImmediately = System.currentTimeMillis() >= notificationTimeMs; - if ((notificationTimeMs - mLastScheduleResetTime) >= pulseDuration) { - mScheduleResetsRemaining--; - mLastScheduleResetTime = notificationTimeMs; - } else if (!pulseImmediately){ - if (DEBUG) Log.d(mTag, "Recently updated, not resetting schedule"); - return; - } - if (DEBUG) Log.d(mTag, "mScheduleResetsRemaining = " + mScheduleResetsRemaining); - mNotificationPulseTime = notificationTimeMs; - if (pulseImmediately) { - DozeLog.traceNotificationPulse(mContext, 0); - requestPulse(DozeLog.PULSE_REASON_NOTIFICATION); - } - // schedule the rest of the pulses - rescheduleNotificationPulse(true /*predicate*/); - } - - private PendingIntent notificationPulseIntent(long instance) { - return PendingIntent.getBroadcast(mContext, 0, - new Intent(NOTIFICATION_PULSE_ACTION) - .setPackage(getPackageName()) - .putExtra(EXTRA_INSTANCE, instance) - .setFlags(Intent.FLAG_RECEIVER_FOREGROUND), - PendingIntent.FLAG_UPDATE_CURRENT); - } - - private void rescheduleNotificationPulse(boolean predicate) { - if (DEBUG) Log.d(mTag, "rescheduleNotificationPulse predicate=" + predicate); - final PendingIntent notificationPulseIntent = notificationPulseIntent(0); - mAlarmManager.cancel(notificationPulseIntent); - if (!predicate) { - if (DEBUG) Log.d(mTag, " don't reschedule: predicate is false"); - return; - } - final PulseSchedule schedule = mDozeParameters.getPulseSchedule(); - if (schedule == null) { - if (DEBUG) Log.d(mTag, " don't reschedule: schedule is null"); - return; - } - final long now = System.currentTimeMillis(); - final long time = schedule.getNextTime(now, mNotificationPulseTime); - if (time <= 0) { - if (DEBUG) Log.d(mTag, " don't reschedule: time is " + time); - return; - } - final long delta = time - now; - if (delta <= 0) { - if (DEBUG) Log.d(mTag, " don't reschedule: delta is " + delta); - return; - } - final long instance = time - mNotificationPulseTime; - if (DEBUG) Log.d(mTag, "Scheduling pulse " + instance + " in " + delta + "ms for " - + new Date(time)); - mAlarmManager.setExact(AlarmManager.RTC_WAKEUP, time, notificationPulseIntent(instance)); + mNotificationPulseTime = SystemClock.elapsedRealtime(); + requestPulse(DozeLog.PULSE_REASON_NOTIFICATION); } private static String triggerEventToString(TriggerEvent event) { @@ -439,13 +338,6 @@ public class DozeService extends DreamService { if (DEBUG) Log.d(mTag, "Received pulse intent"); requestPulse(DozeLog.PULSE_REASON_INTENT); } - if (NOTIFICATION_PULSE_ACTION.equals(intent.getAction())) { - final long instance = intent.getLongExtra(EXTRA_INSTANCE, -1); - if (DEBUG) Log.d(mTag, "Received notification pulse intent instance=" + instance); - DozeLog.traceNotificationPulse(mContext, instance); - requestPulse(DozeLog.PULSE_REASON_NOTIFICATION); - rescheduleNotificationPulse(mNotificationLightOn); - } if (UiModeManager.ACTION_ENTER_CAR_MODE.equals(intent.getAction())) { mCarMode = true; if (mCarMode && mDreaming) { @@ -465,17 +357,13 @@ public class DozeService extends DreamService { @Override public void onBuzzBeepBlinked() { if (DEBUG) Log.d(mTag, "onBuzzBeepBlinked"); - updateNotificationPulse(System.currentTimeMillis()); + requestNotificationPulse(); } @Override public void onNotificationLight(boolean on) { - if (DEBUG) Log.d(mTag, "onNotificationLight on=" + on); - if (mNotificationLightOn == on) return; - mNotificationLightOn = on; - if (mNotificationLightOn) { - updateNotificationPulseDueToLight(); - } + if (DEBUG) Log.d(mTag, "onNotificationLight (noop) on=" + on); + // noop for now } @Override @@ -564,17 +452,12 @@ public class DozeService extends DreamService { requestPulse(mPulseReason, sensorPerformsProxCheck); updateListener(); // reregister, this sensor only fires once - // reset the notification pulse schedule, but only if we think we were not triggered - // by a notification-related vibration - final long timeSinceNotification = System.currentTimeMillis() + // record pickup gesture, also keep track of whether we might have been triggered + // by recent vibration. + final long timeSinceNotification = SystemClock.elapsedRealtime() - mNotificationPulseTime; final boolean withinVibrationThreshold = timeSinceNotification < mDozeParameters.getPickupVibrationThreshold(); - if (withinVibrationThreshold) { - if (DEBUG) Log.d(mTag, "Not resetting schedule, recent notification"); - } else { - resetNotificationResets(); - } if (mSensor.getType() == Sensor.TYPE_PICK_UP_GESTURE) { DozeLog.tracePickupPulse(mContext, withinVibrationThreshold); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java index 9b3ed33e3158..efceed1d1743 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java @@ -38,8 +38,6 @@ public class DozeParameters { private final Context mContext; - private static PulseSchedule sPulseSchedule; - private static IntInOutMatcher sPickupSubtypePerformsProxMatcher; public DozeParameters(Context context) { @@ -61,8 +59,6 @@ public class DozeParameters { pw.print(" getVibrateOnPickup(): "); pw.println(getVibrateOnPickup()); pw.print(" getProxCheckBeforePulse(): "); pw.println(getProxCheckBeforePulse()); pw.print(" getPulseOnNotifications(): "); pw.println(getPulseOnNotifications()); - pw.print(" getPulseSchedule(): "); pw.println(getPulseSchedule()); - pw.print(" getPulseScheduleResets(): "); pw.println(getPulseScheduleResets()); pw.print(" getPickupVibrationThreshold(): "); pw.println(getPickupVibrationThreshold()); pw.print(" getPickupSubtypePerformsProxCheck(): ");pw.println( dumpPickupSubtypePerformsProxCheck()); @@ -126,18 +122,6 @@ public class DozeParameters { return getBoolean("doze.pulse.notifications", R.bool.doze_pulse_on_notifications); } - public PulseSchedule getPulseSchedule() { - final String spec = getString("doze.pulse.schedule", R.string.doze_pulse_schedule); - if (sPulseSchedule == null || !sPulseSchedule.mSpec.equals(spec)) { - sPulseSchedule = PulseSchedule.parse(spec); - } - return sPulseSchedule; - } - - public int getPulseScheduleResets() { - return getInt("doze.pulse.schedule.resets", R.integer.doze_pulse_schedule_resets); - } - public int getPickupVibrationThreshold() { return getInt("doze.pickup.vibration.threshold", R.integer.doze_pickup_vibration_threshold); } @@ -249,44 +233,4 @@ public class DozeParameters { return (mIsIn.get(value, mDefaultIsIn)); } } - - public static class PulseSchedule { - private static final Pattern PATTERN = Pattern.compile("(\\d+?)s", 0); - - private String mSpec; - private int[] mSchedule; - - public static PulseSchedule parse(String spec) { - if (TextUtils.isEmpty(spec)) return null; - try { - final PulseSchedule rt = new PulseSchedule(); - rt.mSpec = spec; - final String[] tokens = spec.split(","); - rt.mSchedule = new int[tokens.length]; - for (int i = 0; i < tokens.length; i++) { - final Matcher m = PATTERN.matcher(tokens[i]); - if (!m.matches()) throw new IllegalArgumentException("Bad token: " + tokens[i]); - rt.mSchedule[i] = Integer.parseInt(m.group(1)); - } - if (DEBUG) Log.d(TAG, "Parsed spec [" + spec + "] as: " + rt); - return rt; - } catch (RuntimeException e) { - Log.w(TAG, "Error parsing spec: " + spec, e); - return null; - } - } - - @Override - public String toString() { - return Arrays.toString(mSchedule); - } - - public long getNextTime(long now, long notificationTime) { - for (int i = 0; i < mSchedule.length; i++) { - final long time = notificationTime + mSchedule[i] * 1000; - if (time > now) return time; - } - return 0; - } - } } -- GitLab From 6a7e08920c6c7d88352f66df6ba923b9156feb36 Mon Sep 17 00:00:00 2001 From: Adrian Roos Date: Tue, 23 Aug 2016 14:26:39 +0200 Subject: [PATCH 082/809] AppErrors: Don't suppress dialogs when ANR_SHOW_BACKGROUND is set Change-Id: Ie6013013ff4e23e51e471e97d15e113cc759657e Fixes: 30929056 --- core/java/android/provider/Settings.java | 2 ++ .../core/java/com/android/server/am/AppErrors.java | 12 +++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 5da55b164f54..87d73485f3bd 100755 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -5839,6 +5839,8 @@ public final class Settings { /** * If nonzero, ANRs in invisible background processes bring up a dialog. * Otherwise, the process will be silently killed. + * + * Also prevents ANRs and crash dialogs from being suppressed. * @hide */ public static final String ANR_SHOW_BACKGROUND = "anr_show_background"; diff --git a/services/core/java/com/android/server/am/AppErrors.java b/services/core/java/com/android/server/am/AppErrors.java index 7eff773543c8..576f2b27f111 100644 --- a/services/core/java/com/android/server/am/AppErrors.java +++ b/services/core/java/com/android/server/am/AppErrors.java @@ -575,6 +575,8 @@ class AppErrors { boolean handleAppCrashLocked(ProcessRecord app, String reason, String shortMsg, String longMsg, String stackTrace, AppErrorDialog.Data data) { long now = SystemClock.uptimeMillis(); + boolean showBackground = Settings.Secure.getInt(mContext.getContentResolver(), + Settings.Secure.ANR_SHOW_BACKGROUND, 0) != 0; Long crashTime; Long crashTimePersistent; @@ -612,7 +614,9 @@ class AppErrors { // processes run critical code. mService.removeProcessLocked(app, false, false, "crash"); mService.mStackSupervisor.resumeFocusedStackTopActivityLocked(); - return false; + if (!showBackground) { + return false; + } } mService.mStackSupervisor.resumeFocusedStackTopActivityLocked(); } else { @@ -705,7 +709,7 @@ class AppErrors { } final boolean crashSilenced = mAppsNotReportingCrashes != null && mAppsNotReportingCrashes.contains(proc.info.packageName); - if (mService.canShowErrorDialogs() && !crashSilenced) { + if ((mService.canShowErrorDialogs() || showBackground) && !crashSilenced) { proc.crashDialog = new AppErrorDialog(mContext, mService, data); } else { // The device is asleep, so just pretend that the user @@ -942,7 +946,9 @@ class AppErrors { null, null, 0, null, null, null, AppOpsManager.OP_NONE, null, false, false, MY_PID, Process.SYSTEM_UID, 0 /* TODO: Verify */); - if (mService.canShowErrorDialogs()) { + boolean showBackground = Settings.Secure.getInt(mContext.getContentResolver(), + Settings.Secure.ANR_SHOW_BACKGROUND, 0) != 0; + if (mService.canShowErrorDialogs() || showBackground) { d = new AppNotRespondingDialog(mService, mContext, proc, (ActivityRecord)data.get("activity"), msg.arg1 != 0); -- GitLab From da23618043667e9cee680688b7413f65b400516e Mon Sep 17 00:00:00 2001 From: Robin Lee Date: Fri, 12 Aug 2016 12:46:28 +0100 Subject: [PATCH 083/809] Documentation warning against short-lived Contexts It's better to use an Application Context rather than hoping the activity won't be destroyed in another thread (because it will). Change-Id: I9bf842d0d7dbedcc509a4a314d23a9a6cfca4d48 Fix: 29873669 --- keystore/java/android/security/KeyChain.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/keystore/java/android/security/KeyChain.java b/keystore/java/android/security/KeyChain.java index cce58c2096f3..be9ebb58675e 100644 --- a/keystore/java/android/security/KeyChain.java +++ b/keystore/java/android/security/KeyChain.java @@ -20,6 +20,7 @@ import android.annotation.Nullable; import android.annotation.WorkerThread; import android.app.Activity; import android.app.PendingIntent; +import android.app.Service; import android.content.ComponentName; import android.content.Context; import android.content.Intent; @@ -356,6 +357,9 @@ public final class KeyChain { * *

      This method may block while waiting for a connection to another process, and must never * be called from the main thread. + *

      As {@link Activity} and {@link Service} contexts are short-lived and can be destroyed + * at any time from the main thread, it is safer to rely on a long-lived context such as one + * returned from {@link Context#getApplicationContext()}. * * @param alias The alias of the desired private key, typically returned via * {@link KeyChainAliasCallback#alias}. @@ -400,6 +404,9 @@ public final class KeyChain { * *

      This method may block while waiting for a connection to another process, and must never * be called from the main thread. + *

      As {@link Activity} and {@link Service} contexts are short-lived and can be destroyed + * at any time from the main thread, it is safer to rely on a long-lived context such as one + * returned from {@link Context#getApplicationContext()}. * * @param alias The alias of the desired certificate chain, typically * returned via {@link KeyChainAliasCallback#alias}. -- GitLab From 085160612d9066e23c96a6cac15eb3a51481fdaf Mon Sep 17 00:00:00 2001 From: Robert Carr Date: Tue, 23 Aug 2016 10:17:54 -0700 Subject: [PATCH 084/809] PopupWindow: Gravity fixes. First we restore the M semantics with respect to DISPLAY_CLIP_VERTICAL, which we only applied for drop downs, and omitted in the case of showAtLocation. Further, we fix an error where user specified gravity from showAtLocation is erased when calling update() by storing the gravity and including it in computeGravity(). Bug: 30445010 Bug: 30965176 Change-Id: I28a081e1237a8b41f2444717e0db21ef4181507b --- core/java/android/widget/PopupWindow.java | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/core/java/android/widget/PopupWindow.java b/core/java/android/widget/PopupWindow.java index 5935c7889e9c..b12c03ca9c15 100644 --- a/core/java/android/widget/PopupWindow.java +++ b/core/java/android/widget/PopupWindow.java @@ -193,6 +193,8 @@ public class PopupWindow { private int mAnimationStyle = ANIMATION_STYLE_DEFAULT; + private int mGravity = Gravity.NO_GRAVITY; + private static final int[] ABOVE_ANCHOR_STATE_SET = new int[] { com.android.internal.R.attr.state_above_anchor }; @@ -1141,15 +1143,11 @@ public class PopupWindow { mIsShowing = true; mIsDropdown = false; + mGravity = gravity; final WindowManager.LayoutParams p = createPopupLayoutParams(token); preparePopup(p); - // Only override the default if some gravity was specified. - if (gravity != Gravity.NO_GRAVITY) { - p.gravity = gravity; - } - p.x = x; p.y = y; @@ -1394,8 +1392,8 @@ public class PopupWindow { } private int computeGravity() { - int gravity = Gravity.START | Gravity.TOP; - if (mClipToScreen || mClippingEnabled) { + int gravity = mGravity == Gravity.NO_GRAVITY ? Gravity.START | Gravity.TOP : mGravity; + if (mIsDropdown && (mClipToScreen || mClippingEnabled)) { gravity |= Gravity.DISPLAY_CLIP_VERTICAL; } return gravity; -- GitLab From d8a55f6dd87621faa8f8765e0e4cdf7be0824e56 Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Tue, 23 Aug 2016 12:26:25 -0700 Subject: [PATCH 085/809] Don't complain about sender of MASTER_CLEAR Make an exception for MASTER_CLEAR broadcast when checking for non-protected broadcasts being sent by system uid; Settings app in this case. Change-Id: I296404faf2be03601f8f937b96d3e2f70c0e816d Fixes: 30891377 --- .../core/java/com/android/server/am/ActivityManagerService.java | 1 + 1 file changed, 1 insertion(+) diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index ff3f159b1d08..21ff50ca078b 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -17777,6 +17777,7 @@ public final class ActivityManagerService extends ActivityManagerNative || Intent.ACTION_MEDIA_BUTTON.equals(action) || Intent.ACTION_MEDIA_SCANNER_SCAN_FILE.equals(action) || Intent.ACTION_SHOW_KEYBOARD_SHORTCUTS.equals(action) + || Intent.ACTION_MASTER_CLEAR.equals(action) || AppWidgetManager.ACTION_APPWIDGET_CONFIGURE.equals(action) || AppWidgetManager.ACTION_APPWIDGET_UPDATE.equals(action) || LocationManager.HIGH_POWER_REQUEST_CHANGE_ACTION.equals(action) -- GitLab From 244a43ee6ff7227bf02618eefdc38cdddfe5cacf Mon Sep 17 00:00:00 2001 From: Jorim Jaggi Date: Tue, 23 Aug 2016 13:28:04 -0700 Subject: [PATCH 086/809] Update light mode when battery saver changes Change-Id: I56b309222782d823d80a66c87d30eefed2ce5dc7 Fixes: 30150232 --- .../phone/LightStatusBarController.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightStatusBarController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightStatusBarController.java index f98b9e586a1c..df4566b28d8b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightStatusBarController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LightStatusBarController.java @@ -27,7 +27,7 @@ import static com.android.systemui.statusbar.phone.BarTransitions.MODE_TRANSPARE /** * Controls how light status bar flag applies to the icons. */ -public class LightStatusBarController { +public class LightStatusBarController implements BatteryController.BatteryStateChangeCallback { private final StatusBarIconController mIconController; private final BatteryController mBatteryController; @@ -37,6 +37,7 @@ public class LightStatusBarController { private int mDockedStackVisibility; private boolean mFullscreenLight; private boolean mDockedLight; + private int mLastStatusBarMode; private final Rect mLastFullscreenBounds = new Rect(); private final Rect mLastDockedBounds = new Rect(); @@ -45,6 +46,7 @@ public class LightStatusBarController { BatteryController batteryController) { mIconController = iconController; mBatteryController = batteryController; + batteryController.addStateChangedCallback(this); } public void setFingerprintUnlockController( @@ -73,6 +75,7 @@ public class LightStatusBarController { } mFullscreenStackVisibility = newFullscreen; mDockedStackVisibility = newDocked; + mLastStatusBarMode = statusBarMode; mLastFullscreenBounds.set(fullscreenStackBounds); mLastDockedBounds.set(dockedStackBounds); } @@ -123,4 +126,16 @@ public class LightStatusBarController { mIconController.setIconsDark(true, animateChange()); } } + + @Override + public void onBatteryLevelChanged(int level, boolean pluggedIn, boolean charging) { + + } + + @Override + public void onPowerSaveChanged(boolean isPowerSave) { + onSystemUiVisibilityChanged(mFullscreenStackVisibility, mDockedStackVisibility, + 0 /* mask */, mLastFullscreenBounds, mLastDockedBounds, true /* sbModeChange*/, + mLastStatusBarMode); + } } -- GitLab From 3f09052eb9e14a8bee62c54ee10c5be18fa35ad8 Mon Sep 17 00:00:00 2001 From: Jorim Jaggi Date: Mon, 22 Aug 2016 16:16:43 -0700 Subject: [PATCH 087/809] Don't use fullscreen theme for forced resizable info activity Change-Id: I74b5443645dd532ff597d4a1773bbd5a38d71192 Fixes: 29278265 --- packages/SystemUI/res/values/styles.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml index 1ee13e96ecfe..1e3b8419de99 100644 --- a/packages/SystemUI/res/values/styles.xml +++ b/packages/SystemUI/res/values/styles.xml @@ -42,7 +42,7 @@ - - - - candidates diff --git a/core/res/res/values/donottranslate.xml b/core/res/res/values/donottranslate.xml index a139529482da..3a1679c19fc8 100644 --- a/core/res/res/values/donottranslate.xml +++ b/core/res/res/values/donottranslate.xml @@ -26,4 +26,7 @@ eeeMMMMd @string/icu_abbrev_wday_month_day_no_year + + candidates diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml index 9002ed492019..6b3b13df98bd 100644 --- a/core/res/res/values/strings.xml +++ b/core/res/res/values/strings.xml @@ -3122,8 +3122,6 @@ \u0020ABCDEFGHIJKLMNOPQRSTUVWXYZ \u00200123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ - candidates - -- GitLab From f8b0360298a3a85449e3469768692bb05ee2422d Mon Sep 17 00:00:00 2001 From: John Reck Date: Thu, 1 Sep 2016 13:59:47 -0700 Subject: [PATCH 199/809] Fix EGLImage memory leak Bug: 31247709 Change-Id: I9e36206b0d7bdb75b84cd53b70f7746ca34a3469 --- libs/hwui/Readback.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/libs/hwui/Readback.cpp b/libs/hwui/Readback.cpp index 55f823dfe226..0ab247dc8052 100644 --- a/libs/hwui/Readback.cpp +++ b/libs/hwui/Readback.cpp @@ -136,7 +136,7 @@ CopyResult Readback::copySurfaceInto(renderthread::RenderThread& renderThread, EGL_NATIVE_BUFFER_ANDROID, clientBuffer, attrs); if (sourceImage == EGL_NO_IMAGE_KHR) { - ALOGW("Error creating image (%#x)", eglGetError()); + ALOGW("eglCreateImageKHR failed (%#x)", eglGetError()); return CopyResult::UnknownError; } GLuint sourceTexId; @@ -147,7 +147,8 @@ CopyResult Readback::copySurfaceInto(renderthread::RenderThread& renderThread, GLenum status = GL_NO_ERROR; while ((status = glGetError()) != GL_NO_ERROR) { - ALOGW("Error creating image (%#x)", status); + ALOGW("glEGLImageTargetTexture2DOES failed (%#x)", status); + eglDestroyImageKHR(display, sourceImage); return CopyResult::UnknownError; } @@ -183,6 +184,13 @@ CopyResult Readback::copySurfaceInto(renderthread::RenderThread& renderThread, caches.textureState().deleteTexture(texture); renderState.deleteFramebuffer(fbo); + sourceTexture.deleteTexture(); + // All we're flushing & finishing is the deletion of the texture since + // copyTextureInto already did a major flush & finish as an implicit + // part of glReadPixels, so this shouldn't pose any major stalls. + glFinish(); + eglDestroyImageKHR(display, sourceImage); + GL_CHECKPOINT(MODERATE); return CopyResult::Success; -- GitLab From 355f33a1d94288bad3d777a0ca00cbc22a1659b9 Mon Sep 17 00:00:00 2001 From: Dirk Dougherty Date: Thu, 1 Sep 2016 14:07:47 -0700 Subject: [PATCH 200/809] Exclude sdk files from metadata. Change-Id: I16f89a3bfae32a0fa54037e328fc784133e5d9b0 Bug-Id: 31244539 --- docs/html/sdk/1.0_r1/installing.jd | 1 + docs/html/sdk/1.0_r1/requirements.jd | 1 + docs/html/sdk/1.0_r2/installing.jd | 1 + docs/html/sdk/1.0_r2/requirements.jd | 1 + docs/html/sdk/1.1_r1/installing.jd | 1 + docs/html/sdk/1.1_r1/requirements.jd | 1 + docs/html/sdk/1.5_r1/installing.jd | 1 + docs/html/sdk/1.5_r1/requirements.jd | 1 + docs/html/sdk/1.5_r2/installing.jd | 1 + docs/html/sdk/1.5_r2/requirements.jd | 1 + docs/html/sdk/1.5_r3/installing.jd | 1 + docs/html/sdk/1.5_r3/requirements.jd | 1 + docs/html/sdk/1.6_r1/installing.jd | 1 + docs/html/sdk/1.6_r1/requirements.jd | 1 + 14 files changed, 14 insertions(+) diff --git a/docs/html/sdk/1.0_r1/installing.jd b/docs/html/sdk/1.0_r1/installing.jd index 38c2a1a32241..eb02742bbe82 100644 --- a/docs/html/sdk/1.0_r1/installing.jd +++ b/docs/html/sdk/1.0_r1/installing.jd @@ -1,3 +1,4 @@ +excludeFromSuggestions=true @jd:body -

      -
    -- GitLab From c3dc9a1c8e947353fb86f0976c42acf2e7533ac7 Mon Sep 17 00:00:00 2001 From: Kevin Hufnagle Date: Thu, 8 Sep 2016 22:23:49 -0700 Subject: [PATCH 294/809] docs: Fixed typo in first paragraph of connectivity monitoring page Bug: 25649961 Change-Id: Idb5456b2a6190c84abbd1ca026f60db2c2edb08f --- .../training/monitoring-device-state/connectivity-monitoring.jd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/html/training/monitoring-device-state/connectivity-monitoring.jd b/docs/html/training/monitoring-device-state/connectivity-monitoring.jd index 2dd904f325f7..c63822bea116 100644 --- a/docs/html/training/monitoring-device-state/connectivity-monitoring.jd +++ b/docs/html/training/monitoring-device-state/connectivity-monitoring.jd @@ -33,7 +33,7 @@ next.link=manifest-receivers.html

    Some of the most common uses for repeating alarms and background services is to schedule regular updates of application data from Internet resources, cache data, or execute long running downloads. But if you aren't connected to the Internet, or the connection is too slow to complete your -download, why both waking the device to schedule the update at all?

    +download, why bother waking the device to schedule the update at all?

    You can use the {@link android.net.ConnectivityManager} to check that you're actually connected to the Internet, and if so, what type of connection is in place.

    -- GitLab From 043e7b87a5d116b1fb991a0125bb06ed0d279694 Mon Sep 17 00:00:00 2001 From: Kevin Hufnagle Date: Thu, 8 Sep 2016 22:48:56 -0700 Subject: [PATCH 295/809] docs: Fixed variable naming error in code snippet for viewing a video The code snippet in the "View the Video" section now uses consistent naming for the variable that represents the Intent containing the URI of the video to play. Bug: 25068669 Change-Id: Ibb1a454d647e8ab6cccfe9a8b0efd4fb5c986290 --- docs/html/training/camera/videobasics.jd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/html/training/camera/videobasics.jd b/docs/html/training/camera/videobasics.jd index 6da239a33031..b20cfefdf350 100644 --- a/docs/html/training/camera/videobasics.jd +++ b/docs/html/training/camera/videobasics.jd @@ -108,7 +108,7 @@ retrieves this video and displays it in a {@link android.widget.VideoView}.

     @Override
    -protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    +protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
         if (requestCode == REQUEST_VIDEO_CAPTURE && resultCode == RESULT_OK) {
             Uri videoUri = intent.getData();
             mVideoView.setVideoURI(videoUri);
    -- 
    GitLab
    
    
    From 0d79ad97b1de0da2cdbe427dbd855ecc18138b47 Mon Sep 17 00:00:00 2001
    From: Kevin Hufnagle 
    Date: Thu, 8 Sep 2016 23:30:18 -0700
    Subject: [PATCH 296/809] docs: Fixed typo in "Set Up App Indexing" resource
     card
    
    Bug: 25904827
    Change-Id: Ie6c7fcaa3decd7ae334593d442d7fa936a48082a
    ---
     docs/html/jd_extras_en.js | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/docs/html/jd_extras_en.js b/docs/html/jd_extras_en.js
    index f3469b4f4ec1..055de58b996e 100644
    --- a/docs/html/jd_extras_en.js
    +++ b/docs/html/jd_extras_en.js
    @@ -2979,7 +2979,7 @@ METADATA['en'].extras = METADATA['en'].extras.concat([
         "timestamp": 1383243492000,
         "image": "images/cards/google-search_2x.png",
         "title": "Set Up App Indexing",
    -    "summary": "Surface your app content in Google seaerch. Deep link direct to your apps.",
    +    "summary": "Surface your app content in Google search. Deep link direct to your apps.",
         "keywords": ["search", "appindexing", "engagement", "getusers"],
         "type": "distribute",
         "category": "google"
    -- 
    GitLab
    
    
    From 089ca16c4bbb61e28d82db25099ee03785bd5944 Mon Sep 17 00:00:00 2001
    From: Kevin Hufnagle 
    Date: Fri, 9 Sep 2016 00:08:37 -0700
    Subject: [PATCH 297/809] docs: Added "Play Games Quality" card to Distribute >
     Essentials page
    
    Bug: 26949505
    Change-Id: I44c8045906ad4f6b1578efc97d1668e278696ec9
    ---
     docs/html/jd_extras_en.js | 12 ++++++++++++
     1 file changed, 12 insertions(+)
    
    diff --git a/docs/html/jd_extras_en.js b/docs/html/jd_extras_en.js
    index f3469b4f4ec1..fc1d1fbb0bcc 100644
    --- a/docs/html/jd_extras_en.js
    +++ b/docs/html/jd_extras_en.js
    @@ -1031,6 +1031,17 @@ METADATA['en'].extras = METADATA['en'].extras.concat([
         "image":"images/google/gps-play_games_logo.png",
         "type":"distribute"
       },
    +  {
    +    "title": "Play Games Quality",
    +    "category": "google",
    +    "summary": "Meet the basic expectations of game players through compelling features and an intuitive, well-designed UI.",
    +    "url": "https://developers.google.com/games/services/checklist",
    +    "group": "",
    +    "keywords": ["games", "play games", "quality"],
    +    "tags": [],
    +    "image": "images/cards/distribute/engage/card-game-services.png",
    +    "type": "distribute"
    +  },
       {
         "title":"Get Started with Analytics",
         "category":"google",
    @@ -4376,6 +4387,7 @@ METADATA['en'].collections = {
           "distribute/essentials/quality/wear.html",
           "distribute/essentials/quality/tv.html",
           "distribute/essentials/quality/auto.html",
    +      "https://developers.google.com/games/services/checklist",
           "distribute/essentials/quality/billions.html",
           "https://developers.google.com/edu/guidelines"
         ]
    -- 
    GitLab
    
    
    From 72bbf4829dffb5918b859867a63c5597cd461e1a Mon Sep 17 00:00:00 2001
    From: Lorenzo Colitti 
    Date: Wed, 20 Jul 2016 02:39:22 +0900
    Subject: [PATCH 298/809] Rematch requests first and listens second.
    
    This CL splits rematching in two parts: first rematch requests,
    then rematch listens. This will allow us to change a network's
    capabilities depending on what requests are on that network, and
    properly dispatch callbacks depending on those capabilities.
    
    The behaviour changes are as follows:
    
    - Before this CL, callbacks for requests and listens were sent
      intermingled. After this CL, all request callbacks will be
      grouped together, and all listen callbacks will be grouped
      together.
    - Before this CL, the order was:
        1. Send onLost callbacks.
        2. If applicable, switch the default network.
        3. Send onAvailable callbacks.
      After this CL, the order is:
        1. Send onLost callbacks for requests.
        2. If applicable, switch the default network.
        3. Send onLost callbacks for listens.
        4. Send onAvailable callbacks for listens.
        5. Send onAvailable callbacks for requests.
    
    These changes shouldn't affect any apps because:
    
    1. The order of callbacks continues to be first all onLost,
       then all onAvailable.
    2. Both the old and the new code send callbacks in no particular
       order. Thus, the possible ordering combinations of callbacks
       in the new code are a strict subset of the possible ordering
       combinations of the old code.
    3. The default network is switched before any onAvailable
       callback is sent.
    4. Even though the new code does not send all onLost callbacks
       before switching the default network, even before this CL
       there was no guarantee that those callbacks would be received
       before the default network switch anyway, because callbacks
       are asynchronous.
    
    Bug: 23113288
    Change-Id: Ia08900c50db9ff43895047e2f4f36b6c6c31a1f9
    ---
     .../android/server/ConnectivityService.java   | 53 +++++++++++++------
     1 file changed, 37 insertions(+), 16 deletions(-)
    
    diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
    index 58431c856dcf..0c23d1a3ab6b 100644
    --- a/services/core/java/com/android/server/ConnectivityService.java
    +++ b/services/core/java/com/android/server/ConnectivityService.java
    @@ -4631,6 +4631,27 @@ public class ConnectivityService extends IConnectivityManager.Stub
             setDefaultDnsSystemProperties(newNetwork.linkProperties.getDnsServers());
         }
     
    +    private void processListenRequests(NetworkAgentInfo nai) {
    +        // For consistency with previous behaviour, send onLost callbacks before onAvailable.
    +        for (NetworkRequestInfo nri : mNetworkRequests.values()) {
    +            NetworkRequest nr = nri.request;
    +            if (!nr.isListen()) continue;
    +            if (nai.isSatisfyingRequest(nr.requestId) && !nai.satisfies(nr)) {
    +                nai.removeRequest(nri.request.requestId);
    +                callCallbackForRequest(nri, nai, ConnectivityManager.CALLBACK_LOST, 0);
    +            }
    +        }
    +
    +        for (NetworkRequestInfo nri : mNetworkRequests.values()) {
    +            NetworkRequest nr = nri.request;
    +            if (!nr.isListen()) continue;
    +            if (nai.satisfies(nr) && !nai.isSatisfyingRequest(nr.requestId)) {
    +                nai.addRequest(nr);
    +                notifyNetworkCallback(nai, nri);
    +            }
    +        }
    +    }
    +
         // Handles a network appearing or improving its score.
         //
         // - Evaluates all current NetworkRequests that can be
    @@ -4671,6 +4692,12 @@ public class ConnectivityService extends IConnectivityManager.Stub
             ArrayList addedRequests = new ArrayList();
             if (VDBG) log(" network has: " + newNetwork.networkCapabilities);
             for (NetworkRequestInfo nri : mNetworkRequests.values()) {
    +            // Process requests in the first pass and listens in the second pass. This allows us to
    +            // change a network's capabilities depending on which requests it has. This is only
    +            // correct if the change in capabilities doesn't affect whether the network satisfies
    +            // requests or not, and doesn't affect the network's score.
    +            if (nri.request.isListen()) continue;
    +
                 final NetworkAgentInfo currentNetwork = mNetworkForRequestId.get(nri.request.requestId);
                 final boolean satisfies = newNetwork.satisfies(nri.request);
                 if (newNetwork == currentNetwork && satisfies) {
    @@ -4685,13 +4712,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
                 // check if it satisfies the NetworkCapabilities
                 if (VDBG) log("  checking if request is satisfied: " + nri.request);
                 if (satisfies) {
    -                if (nri.request.isListen()) {
    -                    // This is not a request, it's a callback listener.
    -                    // Add it to newNetwork regardless of score.
    -                    if (newNetwork.addRequest(nri.request)) addedRequests.add(nri);
    -                    continue;
    -                }
    -
                     // next check if it's better than any current network we're using for
                     // this request
                     if (VDBG) {
    @@ -4748,16 +4768,14 @@ public class ConnectivityService extends IConnectivityManager.Stub
                         mNetworkForRequestId.remove(nri.request.requestId);
                         sendUpdatedScoreToFactories(nri.request, 0);
                     } else {
    -                    if (nri.request.isRequest()) {
    -                        Slog.wtf(TAG, "BUG: Removing request " + nri.request.requestId + " from " +
    -                                newNetwork.name() +
    -                                " without updating mNetworkForRequestId or factories!");
    -                    }
    +                    Slog.wtf(TAG, "BUG: Removing request " + nri.request.requestId + " from " +
    +                            newNetwork.name() +
    +                            " without updating mNetworkForRequestId or factories!");
                     }
    -                // TODO: technically, sending CALLBACK_LOST here is
    -                // incorrect if nri is a request (not a listen) and there
    -                // is a replacement network currently connected that can
    -                // satisfy it. However, the only capability that can both
    +                // TODO: Technically, sending CALLBACK_LOST here is
    +                // incorrect if there is a replacement network currently
    +                // connected that can satisfy nri, which is a request
    +                // (not a listen). However, the only capability that can both
                     // a) be requested and b) change is NET_CAPABILITY_TRUSTED,
                     // so this code is only incorrect for a network that loses
                     // the TRUSTED capability, which is a rare case.
    @@ -4782,6 +4800,9 @@ public class ConnectivityService extends IConnectivityManager.Stub
                 }
             }
     
    +        // Second pass: process all listens.
    +        processListenRequests(newNetwork);
    +
             // do this after the default net is switched, but
             // before LegacyTypeTracker sends legacy broadcasts
             for (NetworkRequestInfo nri : addedRequests) notifyNetworkCallback(newNetwork, nri);
    -- 
    GitLab
    
    
    From 3d4a10617c6d967aa0f07e129264e07320e99073 Mon Sep 17 00:00:00 2001
    From: Lorenzo Colitti 
    Date: Fri, 9 Sep 2016 18:48:56 +0900
    Subject: [PATCH 299/809] Add a background NetworkRequest type for mobile data
     always on.
    
    Like a normal (foreground) request, a background request is only
    satisfied by one network and will keep that network up. Unlike a
    foreground request, when a network only has background requests,
    it will linger, and after lingering is complete, it will become
    a background network.
    
    Future CLs will cause the system to treat background networks
    differently, e.g., by requiring different permissions.
    
    Bug: 23113288
    Change-Id: I40f735269dad1042eb04fea15e64584fc903ccb3
    ---
     core/java/android/net/NetworkRequest.java     | 56 ++++++++++--
     .../android/server/ConnectivityService.java   | 71 ++++++++++-----
     .../server/connectivity/NetworkAgentInfo.java | 87 ++++++++++++++++---
     3 files changed, 173 insertions(+), 41 deletions(-)
    
    diff --git a/core/java/android/net/NetworkRequest.java b/core/java/android/net/NetworkRequest.java
    index 4501f7b089b9..ae724709c6c6 100644
    --- a/core/java/android/net/NetworkRequest.java
    +++ b/core/java/android/net/NetworkRequest.java
    @@ -49,7 +49,7 @@ public class NetworkRequest implements Parcelable {
         public final int legacyType;
     
         /**
    -     * A NetworkRequest as used by the system can be one of three types:
    +     * A NetworkRequest as used by the system can be one of the following types:
          *
          *     - LISTEN, for which the framework will issue callbacks about any
          *       and all networks that match the specified NetworkCapabilities,
    @@ -64,7 +64,20 @@ public class NetworkRequest implements Parcelable {
          *       current network (if any) that matches the capabilities of the
          *       default Internet request (mDefaultRequest), but which cannot cause
          *       the framework to either create or retain the existence of any
    -     *       specific network.
    +     *       specific network. Note that from the point of view of the request
    +     *       matching code, TRACK_DEFAULT is identical to REQUEST: its special
    +     *       behaviour is not due to different semantics, but to the fact that
    +     *       the system will only ever create a TRACK_DEFAULT with capabilities
    +     *       that are identical to the default request's capabilities, thus
    +     *       causing it to share fate in every way with the default request.
    +     *
    +     *     - BACKGROUND_REQUEST, like REQUEST but does not cause any networks
    +     *       to retain the NET_CAPABILITY_FOREGROUND capability. A network with
    +     *       no foreground requests is in the background. A network that has
    +     *       one or more background requests and loses its last foreground
    +     *       request to a higher-scoring network will not go into the
    +     *       background immediately, but will linger and go into the background
    +     *       after the linger timeout.
          *
          *     - The value NONE is used only by applications. When an application
          *       creates a NetworkRequest, it does not have a type; the type is set
    @@ -77,7 +90,8 @@ public class NetworkRequest implements Parcelable {
             NONE,
             LISTEN,
             TRACK_DEFAULT,
    -        REQUEST
    +        REQUEST,
    +        BACKGROUND_REQUEST,
         };
     
         /**
    @@ -140,7 +154,7 @@ public class NetworkRequest implements Parcelable {
              * Add the given capability requirement to this builder.  These represent
              * the requested network's required capabilities.  Note that when searching
              * for a network to satisfy a request, all capabilities requested must be
    -         * satisfied.  See {@link NetworkCapabilities} for {@code NET_CAPABILITIY_*}
    +         * satisfied.  See {@link NetworkCapabilities} for {@code NET_CAPABILITY_*}
              * definitions.
              *
              * @param capability The {@code NetworkCapabilities.NET_CAPABILITY_*} to add.
    @@ -284,7 +298,7 @@ public class NetworkRequest implements Parcelable {
             };
     
         /**
    -     * Returns true iff. the contained NetworkRequest is of type LISTEN.
    +     * Returns true iff. this NetworkRequest is of type LISTEN.
          *
          * @hide
          */
    @@ -298,8 +312,9 @@ public class NetworkRequest implements Parcelable {
          *     - should be associated with at most one satisfying network
          *       at a time;
          *
    -     *     - should cause a network to be kept up if it is the best network
    -     *       which can satisfy the NetworkRequest.
    +     *     - should cause a network to be kept up, but not necessarily in
    +     *       the foreground, if it is the best network which can satisfy the
    +     *       NetworkRequest.
          *
          * For full detail of how isRequest() is used for pairing Networks with
          * NetworkRequests read rematchNetworkAndRequests().
    @@ -307,9 +322,36 @@ public class NetworkRequest implements Parcelable {
          * @hide
          */
         public boolean isRequest() {
    +        return isForegroundRequest() || isBackgroundRequest();
    +    }
    +
    +    /**
    +     * Returns true iff. the contained NetworkRequest is one that:
    +     *
    +     *     - should be associated with at most one satisfying network
    +     *       at a time;
    +     *
    +     *     - should cause a network to be kept up and in the foreground if
    +     *       it is the best network which can satisfy the NetworkRequest.
    +     *
    +     * For full detail of how isRequest() is used for pairing Networks with
    +     * NetworkRequests read rematchNetworkAndRequests().
    +     *
    +     * @hide
    +     */
    +    public boolean isForegroundRequest() {
             return type == Type.TRACK_DEFAULT || type == Type.REQUEST;
         }
     
    +    /**
    +     * Returns true iff. this NetworkRequest is of type BACKGROUND_REQUEST.
    +     *
    +     * @hide
    +     */
    +    public boolean isBackgroundRequest() {
    +        return type == Type.BACKGROUND_REQUEST;
    +    }
    +
         public String toString() {
             return "NetworkRequest [ " + type + " id=" + requestId +
                     (legacyType != ConnectivityManager.TYPE_NONE ? ", legacyType=" + legacyType : "") +
    diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
    index 0c23d1a3ab6b..eddc4f40949e 100644
    --- a/services/core/java/com/android/server/ConnectivityService.java
    +++ b/services/core/java/com/android/server/ConnectivityService.java
    @@ -262,6 +262,11 @@ public class ConnectivityService extends IConnectivityManager.Stub
             DONT_REAP
         };
     
    +    private enum UnneededFor {
    +        LINGER,    // Determine whether this network is unneeded and should be lingered.
    +        TEARDOWN,  // Determine whether this network is unneeded and should be torn down.
    +    }
    +
         /**
          * used internally to change our mobile data enabled flag
          */
    @@ -691,13 +696,13 @@ public class ConnectivityService extends IConnectivityManager.Stub
             if (DBG) log("ConnectivityService starting up");
     
             mMetricsLog = logger;
    -        mDefaultRequest = createInternetRequestForTransport(-1);
    +        mDefaultRequest = createInternetRequestForTransport(-1, NetworkRequest.Type.REQUEST);
             NetworkRequestInfo defaultNRI = new NetworkRequestInfo(null, mDefaultRequest, new Binder());
             mNetworkRequests.put(mDefaultRequest, defaultNRI);
             mNetworkRequestInfoLogs.log("REGISTER " + defaultNRI);
     
             mDefaultMobileDataRequest = createInternetRequestForTransport(
    -                NetworkCapabilities.TRANSPORT_CELLULAR);
    +                NetworkCapabilities.TRANSPORT_CELLULAR, NetworkRequest.Type.BACKGROUND_REQUEST);
     
             mHandlerThread = createHandlerThread();
             mHandlerThread.start();
    @@ -848,15 +853,15 @@ public class ConnectivityService extends IConnectivityManager.Stub
             mLingerMonitor = new LingerMonitor(mContext, mNotifier, dailyLimit, rateLimit);
         }
     
    -    private NetworkRequest createInternetRequestForTransport(int transportType) {
    +    private NetworkRequest createInternetRequestForTransport(
    +            int transportType, NetworkRequest.Type type) {
             NetworkCapabilities netCap = new NetworkCapabilities();
             netCap.addCapability(NET_CAPABILITY_INTERNET);
             netCap.addCapability(NET_CAPABILITY_NOT_RESTRICTED);
             if (transportType > -1) {
                 netCap.addTransportType(transportType);
             }
    -        return new NetworkRequest(netCap, TYPE_NONE, nextNetworkRequestId(),
    -                NetworkRequest.Type.REQUEST);
    +        return new NetworkRequest(netCap, TYPE_NONE, nextNetworkRequestId(), type);
         }
     
         // Used only for testing.
    @@ -1970,8 +1975,12 @@ public class ConnectivityService extends IConnectivityManager.Stub
             for (NetworkAgentInfo nai : mNetworkAgentInfos.values()) {
                 pw.println(nai.toString());
                 pw.increaseIndent();
    -            pw.println(String.format("Requests: %d request/%d total",
    -                    nai.numRequestNetworkRequests(), nai.numNetworkRequests()));
    +            pw.println(String.format(
    +                    "Requests: REQUEST:%d LISTEN:%d BACKGROUND_REQUEST:%d total:%d",
    +                    nai.numForegroundNetworkRequests(),
    +                    nai.numNetworkRequests() - nai.numRequestNetworkRequests(),
    +                    nai.numBackgroundNetworkRequests(),
    +                    nai.numNetworkRequests()));
                 pw.increaseIndent();
                 for (int i = 0; i < nai.numNetworkRequests(); i++) {
                     pw.println(nai.requestAt(i).toString());
    @@ -2292,15 +2301,13 @@ public class ConnectivityService extends IConnectivityManager.Stub
             // 3. If this network is unneeded (which implies it is not lingering), and there is at least
             //    one lingered request, start lingering.
             nai.updateLingerTimer();
    -        if (nai.isLingering() && nai.numRequestNetworkRequests() > 0) {
    +        if (nai.isLingering() && nai.numForegroundNetworkRequests() > 0) {
                 if (DBG) log("Unlingering " + nai.name());
                 nai.unlinger();
                 logNetworkEvent(nai, NetworkEvent.NETWORK_UNLINGER);
    -        } else if (unneeded(nai) && nai.getLingerExpiry() > 0) {  // unneeded() calls isLingering()
    +        } else if (unneeded(nai, UnneededFor.LINGER) && nai.getLingerExpiry() > 0) {
                 int lingerTime = (int) (nai.getLingerExpiry() - now);
    -            if (DBG) {
    -                Log.d(TAG, "Lingering " + nai.name() + " for " + lingerTime + "ms");
    -            }
    +            if (DBG) log("Lingering " + nai.name() + " for " + lingerTime + "ms");
                 nai.linger();
                 logNetworkEvent(nai, NetworkEvent.NETWORK_LINGER);
                 notifyNetworkCallbacks(nai, ConnectivityManager.CALLBACK_LOSING, lingerTime);
    @@ -2479,15 +2486,37 @@ public class ConnectivityService extends IConnectivityManager.Stub
             }
         }
     
    -    // Is nai unneeded by all NetworkRequests (and should be disconnected)?
    -    // This is whether it is satisfying any NetworkRequests or were it to become validated,
    -    // would it have a chance of satisfying any NetworkRequests.
    -    private boolean unneeded(NetworkAgentInfo nai) {
    -        if (!nai.everConnected || nai.isVPN() ||
    -               nai.isLingering() || nai.numRequestNetworkRequests() > 0) {
    +    // Determines whether the network is the best (or could become the best, if it validated), for
    +    // none of a particular type of NetworkRequests. The type of NetworkRequests considered depends
    +    // on the value of reason:
    +    //
    +    // - UnneededFor.TEARDOWN: non-listen NetworkRequests. If a network is unneeded for this reason,
    +    //   then it should be torn down.
    +    // - UnneededFor.LINGER: foreground NetworkRequests. If a network is unneeded for this reason,
    +    //   then it should be lingered.
    +    private boolean unneeded(NetworkAgentInfo nai, UnneededFor reason) {
    +        final int numRequests;
    +        switch (reason) {
    +            case TEARDOWN:
    +                numRequests = nai.numRequestNetworkRequests();
    +                break;
    +            case LINGER:
    +                numRequests = nai.numForegroundNetworkRequests();
    +                break;
    +            default:
    +                Slog.wtf(TAG, "Invalid reason. Cannot happen.");
    +                return true;
    +        }
    +
    +        if (!nai.everConnected || nai.isVPN() || nai.isLingering() || numRequests > 0) {
                 return false;
             }
             for (NetworkRequestInfo nri : mNetworkRequests.values()) {
    +            if (reason == UnneededFor.LINGER && nri.request.isBackgroundRequest()) {
    +                // Background requests don't affect lingering.
    +                continue;
    +            }
    +
                 // If this Network is already the highest scoring Network for a request, or if
                 // there is hope for it to become one if it validated, then it is needed.
                 if (nri.request.isRequest() && nai.satisfies(nri.request) &&
    @@ -2583,7 +2612,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
                     // If there are still lingered requests on this network, don't tear it down,
                     // but resume lingering instead.
                     updateLingerState(nai, SystemClock.elapsedRealtime());
    -                if (unneeded(nai)) {
    +                if (unneeded(nai, UnneededFor.TEARDOWN)) {
                         if (DBG) log("no live requests for " + nai.name() + "; disconnecting");
                         teardownUnneededNetwork(nai);
                     } else {
    @@ -4612,7 +4641,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
             // must be no other active linger timers, and we must stop lingering.
             oldNetwork.clearLingerState();
     
    -        if (unneeded(oldNetwork)) {
    +        if (unneeded(oldNetwork, UnneededFor.TEARDOWN)) {
                 teardownUnneededNetwork(oldNetwork);
             }
         }
    @@ -4880,7 +4909,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
             }
             if (reapUnvalidatedNetworks == ReapUnvalidatedNetworks.REAP) {
                 for (NetworkAgentInfo nai : mNetworkAgentInfos.values()) {
    -                if (unneeded(nai)) {
    +                if (unneeded(nai, UnneededFor.TEARDOWN)) {
                         if (nai.getLingerExpiry() > 0) {
                             // This network has active linger timers and no requests, but is not
                             // lingering. Linger it.
    diff --git a/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java b/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java
    index b0330b94a678..7044e60ece92 100644
    --- a/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java
    +++ b/services/core/java/com/android/server/connectivity/NetworkAgentInfo.java
    @@ -104,14 +104,16 @@ import java.util.TreeSet;
     // -----------------------------------------------
     // If a network has no chance of satisfying any requests (even if it were to become validated
     // and enter state #5), ConnectivityService will disconnect the NetworkAgent's AsyncChannel.
    -// If the network ever for any period of time had satisfied a NetworkRequest (i.e. had been
    -// the highest scoring that satisfied the NetworkRequest's constraints), but is no longer the
    -// highest scoring network for any NetworkRequest, then there will be a 30s pause before
    -// ConnectivityService disconnects the NetworkAgent's AsyncChannel.  During this pause the
    -// network is considered "lingering".  This pause exists to allow network communication to be
    -// wrapped up rather than abruptly terminated.  During this pause if the network begins satisfying
    -// a NetworkRequest, ConnectivityService will cancel the future disconnection of the NetworkAgent's
    -// AsyncChannel, and the network is no longer considered "lingering".
    +//
    +// If the network was satisfying a foreground NetworkRequest (i.e. had been the highest scoring that
    +// satisfied the NetworkRequest's constraints), but is no longer the highest scoring network for any
    +// foreground NetworkRequest, then there will be a 30s pause to allow network communication to be
    +// wrapped up rather than abruptly terminated. During this pause the network is said to be
    +// "lingering". During this pause if the network begins satisfying a foreground NetworkRequest,
    +// ConnectivityService will cancel the future disconnection of the NetworkAgent's AsyncChannel, and
    +// the network is no longer considered "lingering". After the linger timer expires, if the network
    +// is satisfying one or more background NetworkRequests it is kept up in the background. If it is
    +// not, ConnectivityService disconnects the NetworkAgent's AsyncChannel.
     public class NetworkAgentInfo implements Comparable {
         public NetworkInfo networkInfo;
         // This Network object should always be used if possible, so as to encourage reuse of the
    @@ -227,11 +229,13 @@ public class NetworkAgentInfo implements Comparable {
     
         // The list of NetworkRequests being satisfied by this Network.
         private final SparseArray mNetworkRequests = new SparseArray<>();
    -    // The list of NetworkRequests that this Network previously satisfied with the highest
    -    // score.  A non-empty list indicates that if this Network was validated it is lingered.
    +
         // How many of the satisfied requests are actual requests and not listens.
         private int mNumRequestNetworkRequests = 0;
     
    +    // How many of the satisfied requests are of type BACKGROUND_REQUEST.
    +    private int mNumBackgroundNetworkRequests = 0;
    +
         public final Messenger messenger;
         public final AsyncChannel asyncChannel;
     
    @@ -265,6 +269,32 @@ public class NetworkAgentInfo implements Comparable {
         //
         // These functions must only called on ConnectivityService's main thread.
     
    +    private static final boolean ADD = true;
    +    private static final boolean REMOVE = false;
    +
    +    private void updateRequestCounts(boolean add, NetworkRequest request) {
    +        int delta = add ? +1 : -1;
    +        switch (request.type) {
    +            case REQUEST:
    +            case TRACK_DEFAULT:
    +                mNumRequestNetworkRequests += delta;
    +                break;
    +
    +            case BACKGROUND_REQUEST:
    +                mNumRequestNetworkRequests += delta;
    +                mNumBackgroundNetworkRequests += delta;
    +                break;
    +
    +            case LISTEN:
    +                break;
    +
    +            case NONE:
    +            default:
    +                Log.wtf(TAG, "Unhandled request type " + request.type);
    +                break;
    +        }
    +    }
    +
         /**
          * Add {@code networkRequest} to this network as it's satisfied by this network.
          * @return true if {@code networkRequest} was added or false if {@code networkRequest} was
    @@ -273,9 +303,15 @@ public class NetworkAgentInfo implements Comparable {
         public boolean addRequest(NetworkRequest networkRequest) {
             NetworkRequest existing = mNetworkRequests.get(networkRequest.requestId);
             if (existing == networkRequest) return false;
    -        if (existing != null && existing.isRequest()) mNumRequestNetworkRequests--;
    +        if (existing != null) {
    +            // Should only happen if the requestId wraps. If that happens lots of other things will
    +            // be broken as well.
    +            Log.wtf(TAG, String.format("Duplicate requestId for %s and %s on %s",
    +                    networkRequest, existing, name()));
    +            updateRequestCounts(REMOVE, existing);
    +        }
             mNetworkRequests.put(networkRequest.requestId, networkRequest);
    -        if (networkRequest.isRequest()) mNumRequestNetworkRequests++;
    +        updateRequestCounts(ADD, networkRequest);
             return true;
         }
     
    @@ -285,9 +321,9 @@ public class NetworkAgentInfo implements Comparable {
         public void removeRequest(int requestId) {
             NetworkRequest existing = mNetworkRequests.get(requestId);
             if (existing == null) return;
    +        updateRequestCounts(REMOVE, existing);
             mNetworkRequests.remove(requestId);
             if (existing.isRequest()) {
    -            mNumRequestNetworkRequests--;
                 unlingerRequest(existing);
             }
         }
    @@ -315,6 +351,21 @@ public class NetworkAgentInfo implements Comparable {
             return mNumRequestNetworkRequests;
         }
     
    +    /**
    +     * Returns the number of requests currently satisfied by this network of type
    +     * {@link android.net.NetworkRequest.Type.BACKGROUND_REQUEST}.
    +     */
    +    public int numBackgroundNetworkRequests() {
    +        return mNumBackgroundNetworkRequests;
    +    }
    +
    +    /**
    +     * Returns the number of foreground requests currently satisfied by this network.
    +     */
    +    public int numForegroundNetworkRequests() {
    +        return mNumRequestNetworkRequests - mNumBackgroundNetworkRequests;
    +    }
    +
         /**
          * Returns the number of requests of any type currently satisfied by this network.
          */
    @@ -322,6 +373,16 @@ public class NetworkAgentInfo implements Comparable {
             return mNetworkRequests.size();
         }
     
    +    /**
    +     * Returns whether the network is a background network. A network is a background network if it
    +     * is satisfying no foreground requests and at least one background request. (If it did not have
    +     * a background request, it would be a speculative network that is only being kept up because
    +     * it might satisfy a request if it validated).
    +     */
    +    public boolean isBackgroundNetwork() {
    +        return numForegroundNetworkRequests() == 0 && mNumBackgroundNetworkRequests > 0;
    +    }
    +
         // Does this network satisfy request?
         public boolean satisfies(NetworkRequest request) {
             return created &&
    -- 
    GitLab
    
    
    From 5dc3f284bd4d4163738a5d133448a9193595fde3 Mon Sep 17 00:00:00 2001
    From: Robert Carr 
    Date: Thu, 8 Sep 2016 12:56:42 -0700
    Subject: [PATCH 300/809] Remove reuse of pending deferred transactions.
    
    Only defer transactions originating from repositionChild. There is
    no guarantee the frame we are suggested to synchronize to will ever
    arrive and synchronizing WM originated transactions to this can
    interfere with implementation of system policy. Anyway this code
    originally was fixing a case where transactions pushed by pulling
    down the notification shade, would interrupt animating SurfaceView's
    by pushing an undeferred transaction for those SurfaceView's. This
    doesn't seem to be occuring anymore even without this code. Furthermore
    even if it was occuring, we should prevent transactions from pushing
    updates for Surfaces where nothing has really changed, rather than
    attempt to chain the deferred transactions.
    
    Bug: 31293950
    Bug: 27098060
    Bug: 28858420
    Change-Id: Ifb83fe78bb4e7d18376e53a743709648aa1e03bc
    ---
     .../server/wm/WindowStateAnimator.java        | 26 -------------------
     .../server/wm/WindowSurfacePlacer.java        |  4 ---
     2 files changed, 30 deletions(-)
    
    diff --git a/services/core/java/com/android/server/wm/WindowStateAnimator.java b/services/core/java/com/android/server/wm/WindowStateAnimator.java
    index 00f4a45ba9c5..0285f7075e95 100644
    --- a/services/core/java/com/android/server/wm/WindowStateAnimator.java
    +++ b/services/core/java/com/android/server/wm/WindowStateAnimator.java
    @@ -228,8 +228,6 @@ class WindowStateAnimator {
         int mAttrType;
     
         static final long PENDING_TRANSACTION_FINISH_WAIT_TIME = 100;
    -    long mDeferTransactionUntilFrame = -1;
    -    long mDeferTransactionTime = -1;
     
         boolean mForceScaleUntilResize;
     
    @@ -2055,35 +2053,11 @@ class WindowStateAnimator {
             if (!mWin.isChildWindow()) {
                 return;
             }
    -        mDeferTransactionUntilFrame = frameNumber;
    -        mDeferTransactionTime = System.currentTimeMillis();
             mSurfaceController.deferTransactionUntil(
                     mWin.mAttachedWindow.mWinAnimator.mSurfaceController.getHandle(),
                     frameNumber);
         }
     
    -    // Defer the current transaction to the frame number of the last saved transaction.
    -    // We do this to avoid shooting through an unsynchronized transaction while something is
    -    // pending. This is generally fine, as either we will get in on the synchronization,
    -    // or SurfaceFlinger will see that the frame has already occured. The only
    -    // potential problem is in frame number resets so we reset things with a timeout
    -    // every so often to be careful.
    -    void deferToPendingTransaction() {
    -        if (mDeferTransactionUntilFrame < 0) {
    -            return;
    -        }
    -        long time = System.currentTimeMillis();
    -        if (time > mDeferTransactionTime + PENDING_TRANSACTION_FINISH_WAIT_TIME) {
    -            mDeferTransactionTime = -1;
    -            mDeferTransactionUntilFrame = -1;
    -        } else if (mWin.mAttachedWindow != null &&
    -                mWin.mAttachedWindow.mWinAnimator.hasSurface()) {
    -            mSurfaceController.deferTransactionUntil(
    -                    mWin.mAttachedWindow.mWinAnimator.mSurfaceController.getHandle(),
    -                    mDeferTransactionUntilFrame);
    -        }
    -    }
    -
         /**
          * Sometimes we need to synchronize the first frame of animation with some external event.
          * To achieve this, we prolong the start of the animation and keep producing the first frame of
    diff --git a/services/core/java/com/android/server/wm/WindowSurfacePlacer.java b/services/core/java/com/android/server/wm/WindowSurfacePlacer.java
    index fa5e3cabeb44..5a79da938c60 100644
    --- a/services/core/java/com/android/server/wm/WindowSurfacePlacer.java
    +++ b/services/core/java/com/android/server/wm/WindowSurfacePlacer.java
    @@ -742,10 +742,6 @@ class WindowSurfacePlacer {
     
                     // Moved from updateWindowsAndWallpaperLocked().
                     if (w.mHasSurface) {
    -                    // If we have recently synchronized a previous transaction for this
    -                    // window ensure we don't push through an unsynchronized one now.
    -                    winAnimator.deferToPendingTransaction();
    -
                         // Take care of the window being ready to display.
                         final boolean committed = winAnimator.commitFinishDrawingLocked();
                         if (isDefaultDisplay && committed) {
    -- 
    GitLab
    
    
    From 33c5903e7759b0594b1e0a062b066945a2c86989 Mon Sep 17 00:00:00 2001
    From: Vladislav Kaznacheev 
    Date: Fri, 9 Sep 2016 10:03:31 -0700
    Subject: [PATCH 301/809] Hold a weak reference to PointerController when
     handling vsync
    
    Currently PointerController starts listening to display events
    immediately (in its constructor) and never explicitly removes
    the callback. The reference dangling from the looper
    prevents the PointerController instance from being deleted
    when all the clients have released their references.
    
    As a result, when USB or BT mouse is disconnected,
    the mouse stays frozen on screen and only goes away
    after a 15 sec inactivity timeout.
    
    This change introduces an intermediary LooperCallback
    which holds only a weak reference to PointerController.
    The pointer now disappears immediately upon mouse
    disconnect.
    
    Bug: 30824220
    Change-Id: I5f7208dbfa381b3e21f248cc0da402f307faa184
    ---
     libs/input/PointerController.cpp | 26 +++++++++++++++++++++++++-
     libs/input/PointerController.h   |  1 +
     2 files changed, 26 insertions(+), 1 deletion(-)
    
    diff --git a/libs/input/PointerController.cpp b/libs/input/PointerController.cpp
    index 27193b743379..abef66f9ecd9 100644
    --- a/libs/input/PointerController.cpp
    +++ b/libs/input/PointerController.cpp
    @@ -36,6 +36,29 @@
     
     namespace android {
     
    +// --- WeakLooperCallback ---
    +
    +class WeakLooperCallback: public LooperCallback {
    +protected:
    +    virtual ~WeakLooperCallback() { }
    +
    +public:
    +    WeakLooperCallback(const wp& callback) :
    +        mCallback(callback) {
    +    }
    +
    +    virtual int handleEvent(int fd, int events, void* data) {
    +        sp callback = mCallback.promote();
    +        if (callback != NULL) {
    +            return callback->handleEvent(fd, events, data);
    +        }
    +        return 0; // the client is gone, remove the callback
    +    }
    +
    +private:
    +    wp mCallback;
    +};
    +
     // --- PointerController ---
     
     // Time to wait before starting the fade when the pointer is inactive.
    @@ -57,10 +80,11 @@ PointerController::PointerController(const sp&
             const sp& looper, const sp& spriteController) :
             mPolicy(policy), mLooper(looper), mSpriteController(spriteController) {
         mHandler = new WeakMessageHandler(this);
    +    mCallback = new WeakLooperCallback(this);
     
         if (mDisplayEventReceiver.initCheck() == NO_ERROR) {
             mLooper->addFd(mDisplayEventReceiver.getFd(), Looper::POLL_CALLBACK,
    -                       Looper::EVENT_INPUT, this, nullptr);
    +                       Looper::EVENT_INPUT, mCallback, nullptr);
         } else {
             ALOGE("Failed to initialize DisplayEventReceiver.");
         }
    diff --git a/libs/input/PointerController.h b/libs/input/PointerController.h
    index 99292d7ca8a6..4794f3da824c 100644
    --- a/libs/input/PointerController.h
    +++ b/libs/input/PointerController.h
    @@ -144,6 +144,7 @@ private:
         sp mLooper;
         sp mSpriteController;
         sp mHandler;
    +    sp mCallback;
     
         DisplayEventReceiver mDisplayEventReceiver;
     
    -- 
    GitLab
    
    
    From 72ed12c55f36c61f3ec07ab563ed8c93ea92c733 Mon Sep 17 00:00:00 2001
    From: Svet Ganov 
    Date: Wed, 7 Sep 2016 09:57:41 -0700
    Subject: [PATCH 302/809] [DO NOT MERGE] Backup account access grants
    
    Sync adapters without an account access cannot run until the
    user approves the account access (for the case the account
    access is not allowed by other policy such as being singed
    with the same cert as the authenticator). If the sync adapter
    does not have permission to access the account we ask the
    user to grant access and take a note. This CL adds backup
    for the explicit user grants.
    
    bug:31162498
    
    Change-Id: I31e3f3d010475352c7c54255ac2d3a2fed4d0c72
    ---
     .../accounts/AccountManagerInternal.java      |  14 +
     core/java/android/util/PackageUtils.java      |  96 ++++++
     .../backup/AccountManagerBackupHelper.java    |  85 +++++
     .../server/backup/SystemBackupAgent.java      |   3 +
     .../accounts/AccountManagerBackupHelper.java  | 312 ++++++++++++++++++
     .../accounts/AccountManagerService.java       |  65 ++--
     6 files changed, 552 insertions(+), 23 deletions(-)
     create mode 100644 core/java/android/util/PackageUtils.java
     create mode 100644 core/java/com/android/server/backup/AccountManagerBackupHelper.java
     create mode 100644 services/core/java/com/android/server/accounts/AccountManagerBackupHelper.java
    
    diff --git a/core/java/android/accounts/AccountManagerInternal.java b/core/java/android/accounts/AccountManagerInternal.java
    index 0ac719777e20..68c17c32fdc3 100644
    --- a/core/java/android/accounts/AccountManagerInternal.java
    +++ b/core/java/android/accounts/AccountManagerInternal.java
    @@ -73,4 +73,18 @@ public abstract class AccountManagerInternal {
          */
         public abstract void addOnAppPermissionChangeListener(
                 @NonNull OnAppPermissionChangeListener listener);
    +
    +    /**
    +     * Backups the account access permissions.
    +     * @param userId The user for which to backup.
    +     * @return The backup data.
    +     */
    +    public abstract byte[] backupAccountAccessPermissions(int userId);
    +
    +    /**
    +     * Restores the account access permissions.
    +     * @param data The restore data.
    +     * @param userId The user for which to restore.
    +     */
    +    public abstract void restoreAccountAccessPermissions(byte[] data, int userId);
     }
    diff --git a/core/java/android/util/PackageUtils.java b/core/java/android/util/PackageUtils.java
    new file mode 100644
    index 000000000000..6531aef9a50c
    --- /dev/null
    +++ b/core/java/android/util/PackageUtils.java
    @@ -0,0 +1,96 @@
    +/*
    + * Copyright (C) 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.
    + */
    +
    +package android.util;
    +
    +import android.annotation.NonNull;
    +import android.annotation.Nullable;
    +import android.content.pm.PackageInfo;
    +import android.content.pm.PackageManager;
    +import android.content.pm.Signature;
    +
    +import java.security.MessageDigest;
    +import java.security.NoSuchAlgorithmException;
    +
    +/**
    + * Helper functions applicable to packages.
    + * @hide
    + */
    +public final class PackageUtils {
    +    private final static char[] HEX_ARRAY = "0123456789ABCDEF".toCharArray();
    +
    +    private PackageUtils() {
    +        /* hide constructor */
    +    }
    +
    +    /**
    +     * Computes the SHA256 digest of the signing cert for a package.
    +     * @param packageManager The package manager.
    +     * @param packageName The package for which to generate the digest.
    +     * @param userId The user for which to generate the digest.
    +     * @return The digest or null if the package does not exist for this user.
    +     */
    +    public static @Nullable String computePackageCertSha256Digest(
    +            @NonNull PackageManager packageManager,
    +            @NonNull String packageName, int userId) {
    +        final PackageInfo packageInfo;
    +        try {
    +            packageInfo = packageManager.getPackageInfoAsUser(packageName,
    +                    PackageManager.GET_SIGNATURES, userId);
    +        } catch (PackageManager.NameNotFoundException e) {
    +            return null;
    +        }
    +        return computeCertSha256Digest(packageInfo.signatures[0]);
    +    }
    +
    +    /**
    +     * Computes the SHA256 digest of a cert.
    +     * @param signature The signature.
    +     * @return The digest or null if an error occurs.
    +     */
    +    public static @Nullable String computeCertSha256Digest(@NonNull Signature signature) {
    +        return computeSha256Digest(signature.toByteArray());
    +    }
    +
    +    /**
    +     * Computes the SHA256 digest of some data.
    +     * @param data The data.
    +     * @return The digest or null if an error occurs.
    +     */
    +    public static @Nullable String computeSha256Digest(@NonNull byte[] data) {
    +        MessageDigest messageDigest;
    +        try {
    +            messageDigest = MessageDigest.getInstance("SHA256");
    +        } catch (NoSuchAlgorithmException e) {
    +            /* can't happen */
    +            return null;
    +        }
    +
    +        messageDigest.update(data);
    +
    +        final byte[] digest = messageDigest.digest();
    +        final int digestLength = digest.length;
    +        final int charCount = 2 * digestLength;
    +
    +        final char[] chars = new char[charCount];
    +        for (int i = 0; i < digestLength; i++) {
    +            final int byteHex = digest[i] & 0xFF;
    +            chars[i * 2] = HEX_ARRAY[byteHex >>> 4];
    +            chars[i * 2 + 1] = HEX_ARRAY[byteHex & 0x0F];
    +        }
    +        return new String(chars);
    +    }
    +}
    diff --git a/core/java/com/android/server/backup/AccountManagerBackupHelper.java b/core/java/com/android/server/backup/AccountManagerBackupHelper.java
    new file mode 100644
    index 000000000000..39b18c0f2c16
    --- /dev/null
    +++ b/core/java/com/android/server/backup/AccountManagerBackupHelper.java
    @@ -0,0 +1,85 @@
    +/*
    + * Copyright (C) 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.
    + */
    +
    +package com.android.server.backup;
    +
    +import android.accounts.AccountManagerInternal;
    +import android.app.backup.BlobBackupHelper;
    +import android.os.UserHandle;
    +import android.util.Slog;
    +import com.android.server.LocalServices;
    +
    +/**
    + * Helper for handling backup of account manager specific state.
    + */
    +public class AccountManagerBackupHelper extends BlobBackupHelper {
    +    private static final String TAG = "AccountsBackup";
    +    private static final boolean DEBUG = false;
    +
    +    // current schema of the backup state blob
    +    private static final int STATE_VERSION = 1;
    +
    +    // key under which the account access grant state blob is committed to backup
    +    private static final String KEY_ACCOUNT_ACCESS_GRANTS = "account_access_grants";
    +
    +    public AccountManagerBackupHelper() {
    +        super(STATE_VERSION, KEY_ACCOUNT_ACCESS_GRANTS);
    +    }
    +
    +    @Override
    +    protected byte[] getBackupPayload(String key) {
    +        AccountManagerInternal am = LocalServices.getService(AccountManagerInternal.class);
    +        if (DEBUG) {
    +            Slog.d(TAG, "Handling backup of " + key);
    +        }
    +        try {
    +            switch (key) {
    +                case KEY_ACCOUNT_ACCESS_GRANTS: {
    +                    return am.backupAccountAccessPermissions(UserHandle.USER_SYSTEM);
    +                }
    +
    +                default: {
    +                    Slog.w(TAG, "Unexpected backup key " + key);
    +                }
    +            }
    +        } catch (Exception e) {
    +            Slog.e(TAG, "Unable to store payload " + key);
    +        }
    +
    +        return new byte[0];
    +    }
    +
    +    @Override
    +    protected void applyRestoredPayload(String key, byte[] payload) {
    +        AccountManagerInternal am = LocalServices.getService(AccountManagerInternal.class);
    +        if (DEBUG) {
    +            Slog.d(TAG, "Handling restore of " + key);
    +        }
    +        try {
    +            switch (key) {
    +                case KEY_ACCOUNT_ACCESS_GRANTS: {
    +                    am.restoreAccountAccessPermissions(payload, UserHandle.USER_SYSTEM);
    +                } break;
    +
    +                default: {
    +                    Slog.w(TAG, "Unexpected restore key " + key);
    +                }
    +            }
    +        } catch (Exception e) {
    +            Slog.w(TAG, "Unable to restore key " + key);
    +        }
    +    }
    +}
    diff --git a/core/java/com/android/server/backup/SystemBackupAgent.java b/core/java/com/android/server/backup/SystemBackupAgent.java
    index 9d296fa19400..537565185d9b 100644
    --- a/core/java/com/android/server/backup/SystemBackupAgent.java
    +++ b/core/java/com/android/server/backup/SystemBackupAgent.java
    @@ -49,6 +49,7 @@ public class SystemBackupAgent extends BackupAgentHelper {
         private static final String PERMISSION_HELPER = "permissions";
         private static final String USAGE_STATS_HELPER = "usage_stats";
         private static final String SHORTCUT_MANAGER_HELPER = "shortcut_manager";
    +    private static final String ACCOUNT_MANAGER_HELPER = "account_manager";
     
         // These paths must match what the WallpaperManagerService uses.  The leaf *_FILENAME
         // are also used in the full-backup file format, so must not change unless steps are
    @@ -82,6 +83,7 @@ public class SystemBackupAgent extends BackupAgentHelper {
             addHelper(PERMISSION_HELPER, new PermissionBackupHelper());
             addHelper(USAGE_STATS_HELPER, new UsageStatsBackupHelper(this));
             addHelper(SHORTCUT_MANAGER_HELPER, new ShortcutBackupHelper());
    +        addHelper(ACCOUNT_MANAGER_HELPER, new AccountManagerBackupHelper());
             super.onBackup(oldState, data, newState);
         }
     
    @@ -111,6 +113,7 @@ public class SystemBackupAgent extends BackupAgentHelper {
             addHelper(PERMISSION_HELPER, new PermissionBackupHelper());
             addHelper(USAGE_STATS_HELPER, new UsageStatsBackupHelper(this));
             addHelper(SHORTCUT_MANAGER_HELPER, new ShortcutBackupHelper());
    +        addHelper(ACCOUNT_MANAGER_HELPER, new AccountManagerBackupHelper());
     
             try {
                 super.onRestore(data, appVersionCode, newState);
    diff --git a/services/core/java/com/android/server/accounts/AccountManagerBackupHelper.java b/services/core/java/com/android/server/accounts/AccountManagerBackupHelper.java
    new file mode 100644
    index 000000000000..087ec611dd80
    --- /dev/null
    +++ b/services/core/java/com/android/server/accounts/AccountManagerBackupHelper.java
    @@ -0,0 +1,312 @@
    +/*
    + * Copyright (C) 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.
    + */
    +
    +package com.android.server.accounts;
    +
    +import android.accounts.Account;
    +import android.accounts.AccountManager;
    +import android.accounts.AccountManagerInternal;
    +import android.annotation.IntRange;
    +import android.annotation.NonNull;
    +import android.content.pm.PackageInfo;
    +import android.content.pm.PackageManager;
    +import android.database.Cursor;
    +import android.database.sqlite.SQLiteDatabase;
    +import android.os.UserHandle;
    +import android.text.TextUtils;
    +import android.util.Log;
    +import android.util.PackageUtils;
    +import android.util.Xml;
    +import com.android.internal.annotations.GuardedBy;
    +import com.android.internal.content.PackageMonitor;
    +import com.android.internal.util.FastXmlSerializer;
    +import com.android.internal.util.XmlUtils;
    +import org.xmlpull.v1.XmlPullParser;
    +import org.xmlpull.v1.XmlPullParserException;
    +import org.xmlpull.v1.XmlSerializer;
    +
    +import java.io.ByteArrayInputStream;
    +import java.io.ByteArrayOutputStream;
    +import java.io.IOException;
    +import java.nio.charset.StandardCharsets;
    +import java.util.ArrayList;
    +import java.util.List;
    +
    +/**
    + * Helper class for backup and restore of account access grants.
    + */
    +public final class AccountManagerBackupHelper {
    +    private static final String TAG = "AccountManagerBackupHelper";
    +
    +    private static final long PENDING_RESTORE_TIMEOUT_MILLIS = 60 * 60 * 1000; // 1 hour
    +
    +    private static final String TAG_PERMISSIONS = "permissions";
    +    private static final String TAG_PERMISSION = "permission";
    +    private static final String ATTR_ACCOUNT_SHA_256 = "account-sha-256";
    +    private static final String ATTR_PACKAGE = "package";
    +    private static final String ATTR_DIGEST = "digest";
    +
    +    private static final String ACCOUNT_ACCESS_GRANTS = ""
    +            + "SELECT " + AccountManagerService.ACCOUNTS_NAME + ", "
    +            + AccountManagerService.GRANTS_GRANTEE_UID
    +            + " FROM " + AccountManagerService.TABLE_ACCOUNTS
    +            + ", " + AccountManagerService.TABLE_GRANTS
    +            + " WHERE " + AccountManagerService.GRANTS_ACCOUNTS_ID
    +            + "=" + AccountManagerService.ACCOUNTS_ID;
    +
    +    private final Object mLock = new Object();
    +
    +    private final AccountManagerService mAccountManagerService;
    +    private final AccountManagerInternal mAccountManagerInternal;
    +
    +    @GuardedBy("mLock")
    +    private List mRestorePendingAppPermissions;
    +
    +    @GuardedBy("mLock")
    +    private RestorePackageMonitor mRestorePackageMonitor;
    +
    +    @GuardedBy("mLock")
    +    private Runnable mRestoreCancelCommand;
    +
    +    public AccountManagerBackupHelper(AccountManagerService accountManagerService,
    +            AccountManagerInternal accountManagerInternal) {
    +        mAccountManagerService = accountManagerService;
    +        mAccountManagerInternal = accountManagerInternal;
    +    }
    +
    +    private final class PendingAppPermission {
    +        private final @NonNull String accountDigest;
    +        private final @NonNull String packageName;
    +        private final @NonNull String certDigest;
    +        private final @IntRange(from = 0) int userId;
    +
    +        public PendingAppPermission(String accountDigest, String packageName,
    +                String certDigest, int userId) {
    +            this.accountDigest = accountDigest;
    +            this.packageName = packageName;
    +            this.certDigest = certDigest;
    +            this.userId = userId;
    +        }
    +
    +        public boolean apply(PackageManager packageManager) {
    +            Account account = null;
    +            AccountManagerService.UserAccounts accounts = mAccountManagerService
    +                    .getUserAccounts(userId);
    +            synchronized (accounts.cacheLock) {
    +                for (Account[] accountsPerType : accounts.accountCache.values()) {
    +                    for (Account accountPerType : accountsPerType) {
    +                        if (accountDigest.equals(PackageUtils.computeSha256Digest(
    +                                accountPerType.name.getBytes()))) {
    +                            account = accountPerType;
    +                            break;
    +                        }
    +                    }
    +                    if (account != null) {
    +                        break;
    +                    }
    +                }
    +            }
    +            if (account == null) {
    +                return false;
    +            }
    +            final PackageInfo packageInfo;
    +            try {
    +                packageInfo = packageManager.getPackageInfoAsUser(packageName,
    +                        PackageManager.GET_SIGNATURES, userId);
    +            } catch (PackageManager.NameNotFoundException e) {
    +                return false;
    +            }
    +            String currentCertDigest = PackageUtils.computeCertSha256Digest(
    +                    packageInfo.signatures[0]);
    +            if (!certDigest.equals(currentCertDigest)) {
    +                return false;
    +            }
    +            final int uid = packageInfo.applicationInfo.uid;
    +            if (!mAccountManagerInternal.hasAccountAccess(account, uid)) {
    +                mAccountManagerService.grantAppPermission(account,
    +                        AccountManager.ACCOUNT_ACCESS_TOKEN_TYPE, uid);
    +            }
    +            return true;
    +        }
    +    }
    +
    +    public byte[] backupAccountAccessPermissions(int userId) {
    +        final AccountManagerService.UserAccounts accounts = mAccountManagerService
    +                .getUserAccounts(userId);
    +        synchronized (accounts.cacheLock) {
    +            SQLiteDatabase db = accounts.openHelper.getReadableDatabase();
    +            try (
    +                Cursor cursor = db.rawQuery(ACCOUNT_ACCESS_GRANTS, null);
    +            ) {
    +                if (cursor == null || !cursor.moveToFirst()) {
    +                    return null;
    +                }
    +
    +                final int nameColumnIdx = cursor.getColumnIndex(
    +                        AccountManagerService.ACCOUNTS_NAME);
    +                final int uidColumnIdx = cursor.getColumnIndex(
    +                        AccountManagerService.GRANTS_GRANTEE_UID);
    +
    +                ByteArrayOutputStream dataStream = new ByteArrayOutputStream();
    +                try {
    +                    final XmlSerializer serializer = new FastXmlSerializer();
    +                    serializer.setOutput(dataStream, StandardCharsets.UTF_8.name());
    +                    serializer.startDocument(null, true);
    +                    serializer.startTag(null, TAG_PERMISSIONS);
    +
    +                    PackageManager packageManager = mAccountManagerService.mContext
    +                            .getPackageManager();
    +
    +                    do {
    +                        final String accountName = cursor.getString(nameColumnIdx);
    +                        final int uid = cursor.getInt(uidColumnIdx);
    +
    +                        final String[] packageNames = packageManager.getPackagesForUid(uid);
    +                        if (packageNames == null) {
    +                            continue;
    +                        }
    +
    +                        for (String packageName : packageNames) {
    +                            String digest = PackageUtils.computePackageCertSha256Digest(
    +                                    packageManager, packageName, userId);
    +                            if (digest != null) {
    +                                serializer.startTag(null, TAG_PERMISSION);
    +                                serializer.attribute(null, ATTR_ACCOUNT_SHA_256,
    +                                        PackageUtils.computeSha256Digest(accountName.getBytes()));
    +                                serializer.attribute(null, ATTR_PACKAGE, packageName);
    +                                serializer.attribute(null, ATTR_DIGEST, digest);
    +                                serializer.endTag(null, TAG_PERMISSION);
    +                            }
    +                        }
    +                    } while (cursor.moveToNext());
    +
    +                    serializer.endTag(null, TAG_PERMISSIONS);
    +                    serializer.endDocument();
    +                    serializer.flush();
    +                } catch (IOException e) {
    +                    Log.e(TAG, "Error backing up account access grants", e);
    +                    return null;
    +                }
    +
    +                return dataStream.toByteArray();
    +            }
    +        }
    +    }
    +
    +    public void restoreAccountAccessPermissions(byte[] data, int userId) {
    +        try {
    +            ByteArrayInputStream dataStream = new ByteArrayInputStream(data);
    +            XmlPullParser parser = Xml.newPullParser();
    +            parser.setInput(dataStream, StandardCharsets.UTF_8.name());
    +            PackageManager packageManager = mAccountManagerService.mContext.getPackageManager();
    +
    +            final int permissionsOuterDepth = parser.getDepth();
    +            while (XmlUtils.nextElementWithin(parser, permissionsOuterDepth)) {
    +                if (!TAG_PERMISSIONS.equals(parser.getName())) {
    +                    continue;
    +                }
    +                final int permissionOuterDepth = parser.getDepth();
    +                while (XmlUtils.nextElementWithin(parser, permissionOuterDepth)) {
    +                    if (!TAG_PERMISSION.equals(parser.getName())) {
    +                        continue;
    +                    }
    +                    String accountDigest = parser.getAttributeValue(null, ATTR_ACCOUNT_SHA_256);
    +                    if (TextUtils.isEmpty(accountDigest)) {
    +                        XmlUtils.skipCurrentTag(parser);
    +                    }
    +                    String packageName = parser.getAttributeValue(null, ATTR_PACKAGE);
    +                    if (TextUtils.isEmpty(packageName)) {
    +                        XmlUtils.skipCurrentTag(parser);
    +                    }
    +                    String digest =  parser.getAttributeValue(null, ATTR_DIGEST);
    +                    if (TextUtils.isEmpty(digest)) {
    +                        XmlUtils.skipCurrentTag(parser);
    +                    }
    +
    +                    PendingAppPermission pendingAppPermission = new PendingAppPermission(
    +                            accountDigest, packageName, digest, userId);
    +
    +                    if (!pendingAppPermission.apply(packageManager)) {
    +                        synchronized (mLock) {
    +                            // Start watching before add pending to avoid a missed signal
    +                            if (mRestorePackageMonitor == null) {
    +                                mRestorePackageMonitor = new RestorePackageMonitor();
    +                                mRestorePackageMonitor.register(mAccountManagerService.mContext,
    +                                        mAccountManagerService.mMessageHandler.getLooper(), true);
    +                            }
    +                            if (mRestorePendingAppPermissions == null) {
    +                                mRestorePendingAppPermissions = new ArrayList<>();
    +                            }
    +                            mRestorePendingAppPermissions.add(pendingAppPermission);
    +                        }
    +                    }
    +                }
    +            }
    +
    +            // Make sure we eventually prune the in-memory pending restores
    +            mRestoreCancelCommand = new CancelRestoreCommand();
    +            mAccountManagerService.mMessageHandler.postDelayed(mRestoreCancelCommand,
    +                    PENDING_RESTORE_TIMEOUT_MILLIS);
    +        } catch (XmlPullParserException | IOException e) {
    +            Log.e(TAG, "Error restoring app permissions", e);
    +        }
    +    }
    +
    +    private final class RestorePackageMonitor extends PackageMonitor {
    +        @Override
    +        public void onPackageAdded(String packageName, int uid) {
    +            synchronized (mLock) {
    +                if (mRestorePendingAppPermissions == null) {
    +                    return;
    +                }
    +                if (UserHandle.getUserId(uid) != UserHandle.USER_SYSTEM) {
    +                    return;
    +                }
    +                final int count = mRestorePendingAppPermissions.size();
    +                for (int i = count - 1; i >= 0; i--) {
    +                    PendingAppPermission pendingAppPermission =
    +                            mRestorePendingAppPermissions.get(i);
    +                    if (!pendingAppPermission.packageName.equals(packageName)) {
    +                        continue;
    +                    }
    +                    if (pendingAppPermission.apply(
    +                            mAccountManagerService.mContext.getPackageManager())) {
    +                        mRestorePendingAppPermissions.remove(i);
    +                    }
    +                }
    +                if (mRestorePendingAppPermissions.isEmpty()
    +                        && mRestoreCancelCommand != null) {
    +                    mAccountManagerService.mMessageHandler.removeCallbacks(mRestoreCancelCommand);
    +                    mRestoreCancelCommand.run();
    +                    mRestoreCancelCommand = null;
    +                }
    +            }
    +        }
    +    }
    +
    +    private final class CancelRestoreCommand implements Runnable {
    +        @Override
    +        public void run() {
    +            synchronized (mLock) {
    +                mRestorePendingAppPermissions = null;
    +                if (mRestorePackageMonitor != null) {
    +                    mRestorePackageMonitor.unregister();
    +                    mRestorePackageMonitor = null;
    +                }
    +            }
    +        }
    +    }
    +}
    diff --git a/services/core/java/com/android/server/accounts/AccountManagerService.java b/services/core/java/com/android/server/accounts/AccountManagerService.java
    index b86da67715d6..da890c82ae1e 100644
    --- a/services/core/java/com/android/server/accounts/AccountManagerService.java
    +++ b/services/core/java/com/android/server/accounts/AccountManagerService.java
    @@ -89,12 +89,14 @@ import android.os.UserManager;
     import android.os.storage.StorageManager;
     import android.text.TextUtils;
     import android.util.Log;
    +import android.util.PackageUtils;
     import android.util.Pair;
     import android.util.Slog;
     import android.util.SparseArray;
     import android.util.SparseBooleanArray;
     
     import com.android.internal.R;
    +import com.android.internal.annotations.GuardedBy;
     import com.android.internal.annotations.VisibleForTesting;
     import com.android.internal.content.PackageMonitor;
     import com.android.internal.util.ArrayUtils;
    @@ -156,13 +158,6 @@ public class AccountManagerService
                 publishBinderService(Context.ACCOUNT_SERVICE, mService);
             }
     
    -        @Override
    -        public void onBootPhase(int phase) {
    -            if (phase == SystemService.PHASE_ACTIVITY_MANAGER_READY) {
    -                mService.systemReady();
    -            }
    -        }
    -
             @Override
             public void onUnlockUser(int userHandle) {
                 mService.onUnlockUser(userHandle);
    @@ -176,13 +171,13 @@ public class AccountManagerService
     
         private static final int MAX_DEBUG_DB_SIZE = 64;
     
    -    private final Context mContext;
    +    final Context mContext;
     
         private final PackageManager mPackageManager;
         private final AppOpsManager mAppOpsManager;
         private UserManager mUserManager;
     
    -    private final MessageHandler mMessageHandler;
    +    final MessageHandler mMessageHandler;
     
         // Messages that can be sent on mHandler
         private static final int MESSAGE_TIMED_OUT = 3;
    @@ -190,9 +185,9 @@ public class AccountManagerService
     
         private final IAccountAuthenticatorCache mAuthenticatorCache;
     
    -    private static final String TABLE_ACCOUNTS = "accounts";
    -    private static final String ACCOUNTS_ID = "_id";
    -    private static final String ACCOUNTS_NAME = "name";
    +    static final String TABLE_ACCOUNTS = "accounts";
    +    static final String ACCOUNTS_ID = "_id";
    +    static final String ACCOUNTS_NAME = "name";
         private static final String ACCOUNTS_TYPE = "type";
         private static final String ACCOUNTS_TYPE_COUNT = "count(type)";
         private static final String ACCOUNTS_PASSWORD = "password";
    @@ -206,10 +201,10 @@ public class AccountManagerService
         private static final String AUTHTOKENS_TYPE = "type";
         private static final String AUTHTOKENS_AUTHTOKEN = "authtoken";
     
    -    private static final String TABLE_GRANTS = "grants";
    -    private static final String GRANTS_ACCOUNTS_ID = "accounts_id";
    +    static final String TABLE_GRANTS = "grants";
    +    static final String GRANTS_ACCOUNTS_ID = "accounts_id";
         private static final String GRANTS_AUTH_TOKEN_TYPE = "auth_token_type";
    -    private static final String GRANTS_GRANTEE_UID = "uid";
    +    static final String GRANTS_GRANTEE_UID = "uid";
     
         private static final String TABLE_EXTRAS = "extras";
         private static final String EXTRAS_ID = "_id";
    @@ -276,15 +271,15 @@ public class AccountManagerService
     
         static class UserAccounts {
             private final int userId;
    -        private final DeDatabaseHelper openHelper;
    +        final DeDatabaseHelper openHelper;
             private final HashMap, Integer>, Integer>
                     credentialsPermissionNotificationIds =
                     new HashMap, Integer>, Integer>();
             private final HashMap signinRequiredNotificationIds =
                     new HashMap();
    -        private final Object cacheLock = new Object();
    +        final Object cacheLock = new Object();
             /** protected by the {@link #cacheLock} */
    -        private final HashMap accountCache =
    +        final HashMap accountCache =
                     new LinkedHashMap<>();
             /** protected by the {@link #cacheLock} */
             private final HashMap> userDataCache =
    @@ -526,9 +521,6 @@ public class AccountManagerService
             }
         }
     
    -    public void systemReady() {
    -    }
    -
         private UserManager getUserManager() {
             if (mUserManager == null) {
                 mUserManager = UserManager.get(mContext);
    @@ -4453,7 +4445,7 @@ public class AccountManagerService
             }
         }
     
    -    private class MessageHandler extends Handler {
    +    class MessageHandler extends Handler {
             MessageHandler(Looper looper) {
                 super(looper);
             }
    @@ -5604,7 +5596,7 @@ public class AccountManagerService
          * which is in the system. This means we don't need to protect it with permissions.
          * @hide
          */
    -    private void grantAppPermission(Account account, String authTokenType, int uid) {
    +    void grantAppPermission(Account account, String authTokenType, int uid) {
             if (account == null || authTokenType == null) {
                 Log.e(TAG, "grantAppPermission: called with invalid arguments", new Exception());
                 return;
    @@ -5989,6 +5981,11 @@ public class AccountManagerService
         }
     
         private final class AccountManagerInternalImpl extends AccountManagerInternal {
    +        private final Object mLock = new Object();
    +
    +        @GuardedBy("mLock")
    +        private AccountManagerBackupHelper mBackupHelper;
    +
             @Override
             public void requestAccountAccess(@NonNull Account account, @NonNull String packageName,
                     @IntRange(from = 0) int userId, @NonNull RemoteCallback callback) {
    @@ -6043,5 +6040,27 @@ public class AccountManagerService
             public boolean hasAccountAccess(@NonNull Account account, @IntRange(from = 0) int uid) {
                 return AccountManagerService.this.hasAccountAccess(account, null, uid);
             }
    +
    +        @Override
    +        public byte[] backupAccountAccessPermissions(int userId) {
    +            synchronized (mLock) {
    +                if (mBackupHelper == null) {
    +                    mBackupHelper = new AccountManagerBackupHelper(
    +                            AccountManagerService.this, this);
    +                }
    +                return mBackupHelper.backupAccountAccessPermissions(userId);
    +            }
    +        }
    +
    +        @Override
    +        public void restoreAccountAccessPermissions(byte[] data, int userId) {
    +            synchronized (mLock) {
    +                if (mBackupHelper == null) {
    +                    mBackupHelper = new AccountManagerBackupHelper(
    +                            AccountManagerService.this, this);
    +                }
    +                mBackupHelper.restoreAccountAccessPermissions(data, userId);
    +            }
    +        }
         }
     }
    -- 
    GitLab
    
    
    From 00e587086bce3587a1994716a8577c7da45f65df Mon Sep 17 00:00:00 2001
    From: Adam Powell 
    Date: Fri, 9 Sep 2016 10:26:35 -0700
    Subject: [PATCH 303/809] Fix duplicate entries in ChooserActivity
    
    Fix use of wrong index when checking for duplicates.
    
    Bug 31234526
    
    Change-Id: Ia37d1b04a9054b8d90957057db857633e4b79569
    ---
     core/java/com/android/internal/app/ResolverActivity.java | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/core/java/com/android/internal/app/ResolverActivity.java b/core/java/com/android/internal/app/ResolverActivity.java
    index 0a4ac0d44db4..1e26c92dd764 100644
    --- a/core/java/com/android/internal/app/ResolverActivity.java
    +++ b/core/java/com/android/internal/app/ResolverActivity.java
    @@ -1469,7 +1469,7 @@ public class ResolverActivity extends Activity {
                     boolean found = false;
                     // Only loop to the end of into as it was before we started; no dupes in from.
                     for (int j = 0; j < intoCount; j++) {
    -                    final ResolvedComponentInfo rci = into.get(i);
    +                    final ResolvedComponentInfo rci = into.get(j);
                         if (isSameResolvedComponent(newInfo, rci)) {
                             found = true;
                             rci.add(intent, newInfo);
    -- 
    GitLab
    
    
    From 0f57cce644ae8b5bb87de3e7fba9e9c00f9a0b1a Mon Sep 17 00:00:00 2001
    From: Fyodor Kupolov 
    Date: Fri, 9 Sep 2016 10:36:30 -0700
    Subject: [PATCH 304/809] Fixed a bug with incorrect handling of onUnlockUser
    
    userId should be passed as arg1 instead of obj.
    
    Bug: 31321500
    Change-Id: I11e8c146d83773c73ec6bb5f5cfac566759b7bcc
    ---
     .../core/java/com/android/server/InputMethodManagerService.java | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/services/core/java/com/android/server/InputMethodManagerService.java b/services/core/java/com/android/server/InputMethodManagerService.java
    index 71ac54492cb6..8ae491707542 100644
    --- a/services/core/java/com/android/server/InputMethodManagerService.java
    +++ b/services/core/java/com/android/server/InputMethodManagerService.java
    @@ -822,7 +822,7 @@ public class InputMethodManagerService extends IInputMethodManager.Stub
             public void onUnlockUser(final @UserIdInt int userHandle) {
                 // Called on ActivityManager thread.
                 mService.mHandler.sendMessage(mService.mHandler.obtainMessage(MSG_SYSTEM_UNLOCK_USER,
    -                    userHandle));
    +                    userHandle /* arg1 */, 0 /* arg2 */));
             }
         }
     
    -- 
    GitLab
    
    
    From 57fe701ddf37a5fcdc21321d48d4818e60577f15 Mon Sep 17 00:00:00 2001
    From: Alan Viverette 
    Date: Fri, 9 Sep 2016 14:29:35 -0400
    Subject: [PATCH 305/809] Cancel pending selection before filtering input
    
    There may be a pending selection from a previous filter() call, but the
    current filter() call may return an empty string without posting a new
    pending selection.
    
    Bug: 31049172
    Change-Id: I2cb88b3283a3705b6c85d61f26951c35d2b0acd2
    ---
     core/java/android/widget/NumberPicker.java | 60 +++++++++++++++++-----
     1 file changed, 46 insertions(+), 14 deletions(-)
    
    diff --git a/core/java/android/widget/NumberPicker.java b/core/java/android/widget/NumberPicker.java
    index c3ddec787bfa..25580fd2496e 100644
    --- a/core/java/android/widget/NumberPicker.java
    +++ b/core/java/android/widget/NumberPicker.java
    @@ -16,6 +16,8 @@
     
     package android.widget;
     
    +import com.android.internal.R;
    +
     import android.annotation.CallSuper;
     import android.annotation.IntDef;
     import android.annotation.Widget;
    @@ -29,10 +31,12 @@ import android.graphics.Paint.Align;
     import android.graphics.Rect;
     import android.graphics.drawable.Drawable;
     import android.os.Bundle;
    +import android.text.Editable;
     import android.text.InputFilter;
     import android.text.InputType;
     import android.text.Spanned;
     import android.text.TextUtils;
    +import android.text.TextWatcher;
     import android.text.method.NumberKeyListener;
     import android.util.AttributeSet;
     import android.util.SparseArray;
    @@ -52,9 +56,6 @@ import android.view.animation.DecelerateInterpolator;
     import android.view.inputmethod.EditorInfo;
     import android.view.inputmethod.InputMethodManager;
     
    -import com.android.internal.R;
    -import libcore.icu.LocaleData;
    -
     import java.lang.annotation.Retention;
     import java.lang.annotation.RetentionPolicy;
     import java.util.ArrayList;
    @@ -62,6 +63,8 @@ import java.util.Collections;
     import java.util.List;
     import java.util.Locale;
     
    +import libcore.icu.LocaleData;
    +
     /**
      * A widget that enables the user to select a number from a predefined range.
      * There are two flavors of this widget and which one is presented to the user
    @@ -1991,7 +1994,7 @@ public class NumberPicker extends LinearLayout {
                 removeCallbacks(mChangeCurrentByOneFromLongPressCommand);
             }
             if (mSetSelectionCommand != null) {
    -            removeCallbacks(mSetSelectionCommand);
    +            mSetSelectionCommand.cancel();
             }
             if (mBeginSoftInputOnLongPressCommand != null) {
                 removeCallbacks(mBeginSoftInputOnLongPressCommand);
    @@ -2033,18 +2036,14 @@ public class NumberPicker extends LinearLayout {
         }
     
         /**
    -     * Posts an {@link SetSelectionCommand} from the given selectionStart
    -     *  to selectionEnd.
    +     * Posts a {@link SetSelectionCommand} from the given
    +     * {@code selectionStart} to {@code selectionEnd}.
          */
         private void postSetSelectionCommand(int selectionStart, int selectionEnd) {
             if (mSetSelectionCommand == null) {
    -            mSetSelectionCommand = new SetSelectionCommand();
    -        } else {
    -            removeCallbacks(mSetSelectionCommand);
    +            mSetSelectionCommand = new SetSelectionCommand(mInputText);
             }
    -        mSetSelectionCommand.mSelectionStart = selectionStart;
    -        mSetSelectionCommand.mSelectionEnd = selectionEnd;
    -        post(mSetSelectionCommand);
    +        mSetSelectionCommand.post(selectionStart, selectionEnd);
         }
     
         /**
    @@ -2090,6 +2089,12 @@ public class NumberPicker extends LinearLayout {
             @Override
             public CharSequence filter(
                     CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
    +            // We don't know what the output will be, so always cancel any
    +            // pending set selection command.
    +            if (mSetSelectionCommand != null) {
    +                mSetSelectionCommand.cancel();
    +            }
    +
                 if (mDisplayedValues == null) {
                     CharSequence filtered = super.filter(source, start, end, dest, dstart, dend);
                     if (filtered == null) {
    @@ -2237,12 +2242,39 @@ public class NumberPicker extends LinearLayout {
         /**
          * Command for setting the input text selection.
          */
    -    class SetSelectionCommand implements Runnable {
    -        private int mSelectionStart;
    +    private static class SetSelectionCommand implements Runnable {
    +        private final EditText mInputText;
     
    +        private int mSelectionStart;
             private int mSelectionEnd;
     
    +        /** Whether this runnable is currently posted. */
    +        private boolean mPosted;
    +
    +        public SetSelectionCommand(EditText inputText) {
    +            mInputText = inputText;
    +        }
    +
    +        public void post(int selectionStart, int selectionEnd) {
    +            mSelectionStart = selectionStart;
    +            mSelectionEnd = selectionEnd;
    +
    +            if (!mPosted) {
    +                mInputText.post(this);
    +                mPosted = true;
    +            }
    +        }
    +
    +        public void cancel() {
    +            if (mPosted) {
    +                mInputText.removeCallbacks(this);
    +                mPosted = false;
    +            }
    +        }
    +
    +        @Override
             public void run() {
    +            mPosted = false;
                 mInputText.setSelection(mSelectionStart, mSelectionEnd);
             }
         }
    -- 
    GitLab
    
    
    From 701d73084d13e3fac62a3ede9c6298abed58f66a Mon Sep 17 00:00:00 2001
    From: Robert Carr 
    Date: Tue, 6 Sep 2016 19:07:39 -0700
    Subject: [PATCH 306/809] PopupWindow: Don't ignore top decorations in
     getMaxAvailableHeight.
    
    getMaxAvailableHeight is ignoring the top insets, while
    findDropDownPosition is not. This is causing getMaxAvailableHeight
    to return a fits above position that findDropDownPosition will think
    is too large.
    
    Bug: 31048766
    Change-Id: Ifa57cb4ebe0944c701a6f38b58d4f144d8b9199c
    ---
     core/java/android/widget/PopupWindow.java | 15 +++++++++++++--
     1 file changed, 13 insertions(+), 2 deletions(-)
    
    diff --git a/core/java/android/widget/PopupWindow.java b/core/java/android/widget/PopupWindow.java
    index b12c03ca9c15..9b89491ce408 100644
    --- a/core/java/android/widget/PopupWindow.java
    +++ b/core/java/android/widget/PopupWindow.java
    @@ -1758,11 +1758,22 @@ public class PopupWindow {
          */
         public int getMaxAvailableHeight(
                 @NonNull View anchor, int yOffset, boolean ignoreBottomDecorations) {
    -        final Rect displayFrame = new Rect();
    +        Rect displayFrame = null;
    +        final Rect visibleDisplayFrame = new Rect();
    +
    +        anchor.getWindowVisibleDisplayFrame(visibleDisplayFrame);
             if (ignoreBottomDecorations) {
    +            // In the ignore bottom decorations case we want to
    +            // still respect all other decorations so we use the inset visible
    +            // frame on the top right and left and take the bottom
    +            // value from the full frame.
    +            displayFrame = new Rect();
                 anchor.getWindowDisplayFrame(displayFrame);
    +            displayFrame.top = visibleDisplayFrame.top;
    +            displayFrame.right = visibleDisplayFrame.right;
    +            displayFrame.left = visibleDisplayFrame.left;
             } else {
    -            anchor.getWindowVisibleDisplayFrame(displayFrame);
    +            displayFrame = visibleDisplayFrame;
             }
     
             final int[] anchorPos = mTmpDrawingLocation;
    -- 
    GitLab
    
    
    From e743bda5dec3c81ed6292c06b97b0c9f41464907 Mon Sep 17 00:00:00 2001
    From: Jean-Michel Trivi 
    Date: Fri, 9 Sep 2016 11:56:48 -0700
    Subject: [PATCH 307/809] Fix Zen mode for different notification usage types
    
    ZenModeHelper was only considering a subset of all notification usage
     types. The code was also iterating over the usage values, expecting
     them to be contiguous, which will break with the addition of new
     usage values.
    The update consists in:
     - defining in AudioAttributes an array of expected usage types
     - defining the suppression behavior for each usage type
     - have ZenModeHelper query the behavior for each usage in
        order to apply the corresponding muting behavior.
    
    Bug 29009099
    
    Change-Id: If884dda6297f125c60c5775c757df4f782e22e53
    ---
     media/java/android/media/AudioAttributes.java | 61 +++++++++++++++++++
     .../server/notification/ZenModeHelper.java    | 14 +++--
     2 files changed, 69 insertions(+), 6 deletions(-)
    
    diff --git a/media/java/android/media/AudioAttributes.java b/media/java/android/media/AudioAttributes.java
    index 5286f8fa5ad3..89709ee6b95a 100644
    --- a/media/java/android/media/AudioAttributes.java
    +++ b/media/java/android/media/AudioAttributes.java
    @@ -24,6 +24,7 @@ import android.os.Parcel;
     import android.os.Parcelable;
     import android.text.TextUtils;
     import android.util.Log;
    +import android.util.SparseIntArray;
     
     import java.lang.annotation.Retention;
     import java.lang.annotation.RetentionPolicy;
    @@ -169,6 +170,66 @@ public final class AudioAttributes implements Parcelable {
          */
         public final static int USAGE_VIRTUAL_SOURCE = 15;
     
    +    /**
    +     * IMPORTANT: when adding new usage types, add them to SDK_USAGES and update SUPPRESSIBLE_USAGES
    +     *            if applicable.
    +     */
    +
    +    /**
    +     * @hide
    +     * Denotes a usage for notifications that do not expect immediate intervention from the user,
    +     * will be muted when the Zen mode disables notifications
    +     * @see #SUPPRESSIBLE_USAGES
    +     */
    +    public final static int SUPPRESSIBLE_NOTIFICATION = 1;
    +    /**
    +     * @hide
    +     * Denotes a usage for notifications that do expect immediate intervention from the user,
    +     * will be muted when the Zen mode disables calls
    +     * @see #SUPPRESSIBLE_USAGES
    +     */
    +    public final static int SUPPRESSIBLE_CALL = 2;
    +
    +    /**
    +     * @hide
    +     * Array of all usage types for calls and notifications to assign the suppression behavior,
    +     * used by the Zen mode restrictions.
    +     * @see com.android.server.notification.ZenModeHelper
    +     */
    +    public static final SparseIntArray SUPPRESSIBLE_USAGES;
    +
    +    static {
    +        SUPPRESSIBLE_USAGES = new SparseIntArray();
    +        SUPPRESSIBLE_USAGES.put(USAGE_NOTIFICATION,                      SUPPRESSIBLE_NOTIFICATION);
    +        SUPPRESSIBLE_USAGES.put(USAGE_NOTIFICATION_RINGTONE,             SUPPRESSIBLE_CALL);
    +        SUPPRESSIBLE_USAGES.put(USAGE_NOTIFICATION_COMMUNICATION_REQUEST,SUPPRESSIBLE_CALL);
    +        SUPPRESSIBLE_USAGES.put(USAGE_NOTIFICATION_COMMUNICATION_INSTANT,SUPPRESSIBLE_NOTIFICATION);
    +        SUPPRESSIBLE_USAGES.put(USAGE_NOTIFICATION_COMMUNICATION_DELAYED,SUPPRESSIBLE_NOTIFICATION);
    +        SUPPRESSIBLE_USAGES.put(USAGE_NOTIFICATION_EVENT,                SUPPRESSIBLE_NOTIFICATION);
    +    }
    +
    +    /**
    +     * @hide
    +     * Array of all usage types exposed in the SDK that applications can use.
    +     */
    +    public final static int[] SDK_USAGES = {
    +            USAGE_UNKNOWN,
    +            USAGE_MEDIA,
    +            USAGE_VOICE_COMMUNICATION,
    +            USAGE_VOICE_COMMUNICATION_SIGNALLING,
    +            USAGE_ALARM,
    +            USAGE_NOTIFICATION,
    +            USAGE_NOTIFICATION_RINGTONE,
    +            USAGE_NOTIFICATION_COMMUNICATION_REQUEST,
    +            USAGE_NOTIFICATION_COMMUNICATION_INSTANT,
    +            USAGE_NOTIFICATION_COMMUNICATION_DELAYED,
    +            USAGE_NOTIFICATION_EVENT,
    +            USAGE_ASSISTANCE_ACCESSIBILITY,
    +            USAGE_ASSISTANCE_NAVIGATION_GUIDANCE,
    +            USAGE_ASSISTANCE_SONIFICATION,
    +            USAGE_GAME
    +    };
    +
         /**
          * Flag defining a behavior where the audibility of the sound will be ensured by the system.
          */
    diff --git a/services/core/java/com/android/server/notification/ZenModeHelper.java b/services/core/java/com/android/server/notification/ZenModeHelper.java
    index c22bfb321a5c..afd42ea67c0f 100644
    --- a/services/core/java/com/android/server/notification/ZenModeHelper.java
    +++ b/services/core/java/com/android/server/notification/ZenModeHelper.java
    @@ -35,6 +35,7 @@ import android.content.pm.ServiceInfo;
     import android.content.res.Resources;
     import android.content.res.XmlResourceParser;
     import android.database.ContentObserver;
    +import android.media.AudioAttributes;
     import android.media.AudioManager;
     import android.media.AudioManagerInternal;
     import android.media.AudioSystem;
    @@ -736,13 +737,14 @@ public class ZenModeHelper {
             // total silence restrictions
             final boolean muteEverything = mZenMode == Global.ZEN_MODE_NO_INTERRUPTIONS;
     
    -        for (int i = USAGE_UNKNOWN; i <= USAGE_VIRTUAL_SOURCE; i++) {
    -            if (i == USAGE_NOTIFICATION) {
    -                applyRestrictions(muteNotifications || muteEverything, i);
    -            } else if (i == USAGE_NOTIFICATION_RINGTONE) {
    -                applyRestrictions(muteCalls || muteEverything, i);
    +        for (int usage : AudioAttributes.SDK_USAGES) {
    +            final int suppressionBehavior = AudioAttributes.SUPPRESSIBLE_USAGES.get(usage);
    +            if (suppressionBehavior == AudioAttributes.SUPPRESSIBLE_NOTIFICATION) {
    +                applyRestrictions(muteNotifications || muteEverything, usage);
    +            } else if (suppressionBehavior == AudioAttributes.SUPPRESSIBLE_CALL) {
    +                applyRestrictions(muteCalls || muteEverything, usage);
                 } else {
    -                applyRestrictions(muteEverything, i);
    +                applyRestrictions(muteEverything, usage);
                 }
             }
         }
    -- 
    GitLab
    
    
    From 46ea8e7f9d24d1fab4824f570400d6fb7bf355e0 Mon Sep 17 00:00:00 2001
    From: Makoto Onuki 
    Date: Fri, 9 Sep 2016 11:35:17 -0700
    Subject: [PATCH 308/809] Persist package's test-only flag and always use it
    
    Bug 31382361
    
    Change-Id: Ie48aba5827074d2a6efb6966f61af30444376384
    ---
     .../DevicePolicyManagerService.java           | 70 ++++++++++++++-----
     1 file changed, 54 insertions(+), 16 deletions(-)
    
    diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
    index 8d699436eb30..777c0b35e4be 100644
    --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
    +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
    @@ -525,6 +525,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
     
         static class ActiveAdmin {
             private static final String TAG_DISABLE_KEYGUARD_FEATURES = "disable-keyguard-features";
    +        private static final String TAG_TEST_ONLY_ADMIN = "test-only-admin";
             private static final String TAG_DISABLE_CAMERA = "disable-camera";
             private static final String TAG_DISABLE_CALLER_ID = "disable-caller-id";
             private static final String TAG_DISABLE_CONTACTS_SEARCH = "disable-contacts-search";
    @@ -617,6 +618,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
             int disabledKeyguardFeatures = DEF_KEYGUARD_FEATURES_DISABLED;
     
             boolean encryptionRequested = false;
    +        boolean testOnlyAdmin = false;
             boolean disableCamera = false;
             boolean disableCallerId = false;
             boolean disableContactsSearch = false;
    @@ -786,6 +788,11 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
                     out.attribute(null, ATTR_VALUE, Boolean.toString(encryptionRequested));
                     out.endTag(null, TAG_ENCRYPTION_REQUESTED);
                 }
    +            if (testOnlyAdmin) {
    +                out.startTag(null, TAG_TEST_ONLY_ADMIN);
    +                out.attribute(null, ATTR_VALUE, Boolean.toString(testOnlyAdmin));
    +                out.endTag(null, TAG_TEST_ONLY_ADMIN);
    +            }
                 if (disableCamera) {
                     out.startTag(null, TAG_DISABLE_CAMERA);
                     out.attribute(null, ATTR_VALUE, Boolean.toString(disableCamera));
    @@ -981,6 +988,9 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
                     } else if (TAG_ENCRYPTION_REQUESTED.equals(tag)) {
                         encryptionRequested = Boolean.parseBoolean(
                                 parser.getAttributeValue(null, ATTR_VALUE));
    +                } else if (TAG_TEST_ONLY_ADMIN.equals(tag)) {
    +                    testOnlyAdmin = Boolean.parseBoolean(
    +                            parser.getAttributeValue(null, ATTR_VALUE));
                     } else if (TAG_DISABLE_CAMERA.equals(tag)) {
                         disableCamera = Boolean.parseBoolean(
                                 parser.getAttributeValue(null, ATTR_VALUE));
    @@ -1179,6 +1189,8 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
     
             void dump(String prefix, PrintWriter pw) {
                 pw.print(prefix); pw.print("uid="); pw.println(getUid());
    +            pw.print(prefix); pw.print("testOnlyAdmin=");
    +            pw.println(testOnlyAdmin);
                 pw.print(prefix); pw.println("policies:");
                 ArrayList pols = info.getUsedPolicies();
                 if (pols != null) {
    @@ -2829,8 +2841,9 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
             synchronized (this) {
                 long ident = mInjector.binderClearCallingIdentity();
                 try {
    -                if (!refreshing
    -                        && getActiveAdminUncheckedLocked(adminReceiver, userHandle) != null) {
    +                final ActiveAdmin existingAdmin
    +                        = getActiveAdminUncheckedLocked(adminReceiver, userHandle);
    +                if (!refreshing && existingAdmin != null) {
                         throw new IllegalArgumentException("Admin is already added");
                     }
                     if (policy.mRemovingAdmins.contains(adminReceiver)) {
    @@ -2838,6 +2851,9 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
                                 "Trying to set an admin which is being removed");
                     }
                     ActiveAdmin newAdmin = new ActiveAdmin(info, /* parent */ false);
    +                newAdmin.testOnlyAdmin =
    +                        (existingAdmin != null) ? existingAdmin.testOnlyAdmin
    +                                : isPackageTestOnly(adminReceiver.getPackageName(), userHandle);
                     policy.mAdminMap.put(adminReceiver, newAdmin);
                     int replaceIndex = -1;
                     final int N = policy.mAdminList.size();
    @@ -2949,12 +2965,13 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
             enforceShell("forceRemoveActiveAdmin");
             long ident = mInjector.binderClearCallingIdentity();
             try {
    -            if (!isPackageTestOnly(adminReceiver.getPackageName(), userHandle)) {
    -                throw new SecurityException("Attempt to remove non-test admin "
    -                        + adminReceiver + " " + userHandle);
    -            }
    -            // If admin is a device or profile owner tidy that up first.
                 synchronized (this)  {
    +                if (!isAdminTestOnlyLocked(adminReceiver, userHandle)) {
    +                    throw new SecurityException("Attempt to remove non-test admin "
    +                            + adminReceiver + " " + userHandle);
    +                }
    +
    +                // If admin is a device or profile owner tidy that up first.
                     if (isDeviceOwner(adminReceiver, userHandle)) {
                         clearDeviceOwnerLocked(getDeviceOwnerAdminLocked(), userHandle);
                     }
    @@ -2972,6 +2989,17 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
             }
         }
     
    +    /**
    +     * Return if a given package has testOnly="true", in which case we'll relax certain rules
    +     * for CTS.
    +     *
    +     * DO NOT use this method except in {@link #setActiveAdmin}.  Use {@link #isAdminTestOnlyLocked}
    +     * to check wehter an active admin is test-only or not.
    +     *
    +     * The system allows this flag to be changed when an app is updated, which is not good
    +     * for us.  So we persist the flag in {@link ActiveAdmin} when an admin is first installed,
    +     * and used the persisted version in actual checks. (See b/31382361 and b/28928996)
    +     */
         private boolean isPackageTestOnly(String packageName, int userHandle) {
             final ApplicationInfo ai;
             try {
    @@ -2988,6 +3016,14 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
             return (ai.flags & ApplicationInfo.FLAG_TEST_ONLY) != 0;
         }
     
    +    /**
    +     * See {@link #isPackageTestOnly}.
    +     */
    +    private boolean isAdminTestOnlyLocked(ComponentName who, int userHandle) {
    +        final ActiveAdmin admin = getActiveAdminUncheckedLocked(who, userHandle);
    +        return (admin != null) && admin.testOnlyAdmin;
    +    }
    +
         private void enforceShell(String method) {
             final int callingUid = Binder.getCallingUid();
             if (callingUid != Process.SHELL_UID && callingUid != Process.ROOT_UID) {
    @@ -6225,7 +6261,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
          * The profile owner can only be set before the user setup phase has completed,
          * except for:
          * - SYSTEM_UID
    -     * - adb if there are no accounts. (But see {@link #hasIncompatibleAccounts})
    +     * - adb if there are no accounts. (But see {@link #hasIncompatibleAccountsLocked})
          */
         private void enforceCanSetProfileOwnerLocked(@Nullable ComponentName owner, int userHandle) {
             UserInfo info = getUserInfo(userHandle);
    @@ -6248,7 +6284,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
             int callingUid = mInjector.binderGetCallingUid();
             if (callingUid == Process.SHELL_UID || callingUid == Process.ROOT_UID) {
                 if (hasUserSetupCompleted(userHandle)
    -                    && hasIncompatibleAccounts(userHandle, owner)) {
    +                    && hasIncompatibleAccountsLocked(userHandle, owner)) {
                     throw new IllegalStateException("Not allowed to set the profile owner because "
                             + "there are already some accounts on the profile");
                 }
    @@ -6272,7 +6308,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
                 enforceCanManageProfileAndDeviceOwners();
             }
     
    -        final int code = checkSetDeviceOwnerPreCondition(owner, userId, isAdb);
    +        final int code = checkSetDeviceOwnerPreConditionLocked(owner, userId, isAdb);
             switch (code) {
                 case CODE_OK:
                     return;
    @@ -8489,7 +8525,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
          * The device owner can only be set before the setup phase of the primary user has completed,
          * except for adb command if no accounts or additional users are present on the device.
          */
    -    private synchronized @DeviceOwnerPreConditionCode int checkSetDeviceOwnerPreCondition(
    +    private synchronized @DeviceOwnerPreConditionCode int checkSetDeviceOwnerPreConditionLocked(
                 @Nullable ComponentName owner, int deviceOwnerUserId, boolean isAdb) {
             if (mOwners.hasDeviceOwner()) {
                 return CODE_HAS_DEVICE_OWNER;
    @@ -8507,7 +8543,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
                         if (mUserManager.getUserCount() > 1) {
                             return CODE_NONSYSTEM_USER_EXISTS;
                         }
    -                    if (hasIncompatibleAccounts(UserHandle.USER_SYSTEM, owner)) {
    +                    if (hasIncompatibleAccountsLocked(UserHandle.USER_SYSTEM, owner)) {
                             return CODE_ACCOUNTS_NOT_EMPTY;
                         }
                     } else {
    @@ -8533,8 +8569,10 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
         }
     
         private boolean isDeviceOwnerProvisioningAllowed(int deviceOwnerUserId) {
    -        return CODE_OK == checkSetDeviceOwnerPreCondition(
    -                /* owner unknown */ null, deviceOwnerUserId, /* isAdb */ false);
    +        synchronized (this) {
    +            return CODE_OK == checkSetDeviceOwnerPreConditionLocked(
    +                    /* owner unknown */ null, deviceOwnerUserId, /* isAdb */ false);
    +        }
         }
     
         private boolean hasFeatureManagedUsers() {
    @@ -9103,7 +9141,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
          *   ..._DISALLOWED, return true.
          * - Otherwise return false.
          */
    -    private boolean hasIncompatibleAccounts(int userId, @Nullable ComponentName owner) {
    +    private boolean hasIncompatibleAccountsLocked(int userId, @Nullable ComponentName owner) {
             final long token = mInjector.binderClearCallingIdentity();
             try {
                 final AccountManager am = AccountManager.get(mContext);
    @@ -9141,7 +9179,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
                     // Owner is unknown.  Suppose it's not test-only
                     compatible = false;
                     log = "Only test-only device/profile owner can be installed with accounts";
    -            } else if (isPackageTestOnly(owner.getPackageName(), userId)) {
    +            } else if (isAdminTestOnlyLocked(owner, userId)) {
                     if (compatible) {
                         log = "Installing test-only owner " + owner;
                     } else {
    -- 
    GitLab
    
    
    From 5b0b1fcd0de500bc4d96e5951be1d9386ee0c140 Mon Sep 17 00:00:00 2001
    From: Kevin Hufnagle 
    Date: Fri, 9 Sep 2016 13:30:53 -0700
    Subject: [PATCH 309/809] docs: Added recommendation to use jCenter dependency
     for Volley
    
    Bug: 27170930
    Change-Id: I4c542c7031b89f527f757c76b6cf3ed196fe6f45
    ---
     docs/html/training/volley/index.jd | 17 +++++++++++++----
     1 file changed, 13 insertions(+), 4 deletions(-)
    
    diff --git a/docs/html/training/volley/index.jd b/docs/html/training/volley/index.jd
    index a8c4b84c7c47..d3645d9c8992 100755
    --- a/docs/html/training/volley/index.jd
    +++ b/docs/html/training/volley/index.jd
    @@ -42,7 +42,7 @@ faster. Volley is available through the open
     
  • Automatic scheduling of network requests.
  • Multiple concurrent network connections.
  • Transparent disk and memory response caching with standard HTTP -cache coherence.
  • +cache coherence.
  • Support for request prioritization.
  • Cancellation request API. You can cancel a single request, or you can set blocks or scopes of requests to cancel.
  • @@ -66,13 +66,22 @@ alternative like {@link android.app.DownloadManager}.

    AOSP repository at {@code frameworks/volley} and contains the main request dispatch pipeline as well as a set of commonly applicable utilities, available in the Volley "toolbox." The -easiest way to add Volley to your project is to clone the Volley repository and set it as -a library project:

    +easiest way to add Volley to your project is to add the following dependency to your app's +build.gradle file: + +
    +dependencies {
    +    ...
    +    compile 'com.android.volley:volley:1.0.0'
    +}
    +
    + +You can also clone the Volley repository and set it as a library project:

    1. Git clone the repository by typing the following at the command line: -
      +
       git clone https://android.googlesource.com/platform/frameworks/volley
       
    2. -- GitLab From 6403b4050f057659bd22f8e7d76d2d0978d9d296 Mon Sep 17 00:00:00 2001 From: Doris Ling Date: Fri, 9 Sep 2016 14:29:19 -0700 Subject: [PATCH 310/809] Add secure settings for Ambient Display pick up and double tap gestures. Splitting Ambient Display pulse configuration to have separate control for incoming notification, pick up gesture, and double tap gesture. Adding separate secure settings for the separate control. Test: make SettingsTests and verify read/write of the new settings. Bug: 30595437 Change-Id: Ic301c3234689d9132c283edf86962d1cfb640a28 --- core/java/android/provider/Settings.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 79f11513e798..9637b46942e6 100755 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -5928,6 +5928,18 @@ public final class Settings { */ public static final String DOZE_ENABLED = "doze_enabled"; + /** + * Whether the device should pulse on pick up gesture. + * @hide + */ + public static final String DOZE_PULSE_ON_PICK_UP = "doze_pulse_on_pick_up"; + + /** + * Whether the device should pulse on double tap gesture. + * @hide + */ + public static final String DOZE_PULSE_ON_DOUBLE_TAP = "doze_pulse_on_double_tap"; + /** * The current night mode that has been selected by the user. Owned * and controlled by UiModeManagerService. Constants are as per @@ -6413,6 +6425,9 @@ public final class Settings { CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, SYSTEM_NAVIGATION_KEYS_ENABLED, QS_TILES, + DOZE_ENABLED, + DOZE_PULSE_ON_PICK_UP, + DOZE_PULSE_ON_DOUBLE_TAP }; /** -- GitLab From e175aa82b58d70cc75ee683d65ee6ba041b9fe43 Mon Sep 17 00:00:00 2001 From: Eino-Ville Talvala Date: Thu, 21 Jul 2016 17:04:19 -0700 Subject: [PATCH 311/809] DO NOT MERGE ANYWHERE: ImageReader: Add discardFreeBuffers method This method (currently @hide) discards all cached buffers for the ImageReader, which can be useful to free up memory at the cost of reallocation time if more buffers are needed later. It has no effect on acquired Images, filled Images waiting to be acquired, or buffers being actively used by the source rendering to the Surface. Bug: 28695173 Change-Id: I427a8ba4ad73a267083f843dbf228bfc53a730d9 --- media/java/android/media/ImageReader.java | 26 +++++++++++++++++++++++ media/jni/android_media_ImageReader.cpp | 18 ++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/media/java/android/media/ImageReader.java b/media/java/android/media/ImageReader.java index ec2d4bc9170f..ea51d4c579bf 100644 --- a/media/java/android/media/ImageReader.java +++ b/media/java/android/media/ImageReader.java @@ -520,6 +520,31 @@ public class ImageReader implements AutoCloseable { } } + /** + * Discard any free buffers owned by this ImageReader. + * + *

      + * Generally, the ImageReader caches buffers for reuse once they have been + * allocated, for best performance. However, sometimes it may be important to + * release all the cached, unused buffers to save on memory. + *

      + *

      + * Calling this method will discard all free cached buffers. This does not include any buffers + * associated with Images acquired from the ImageReader, any filled buffers waiting to be + * acquired, and any buffers currently in use by the source rendering buffers into the + * ImageReader's Surface. + *

      + * The ImageReader continues to be usable after this call, but may need to reallocate buffers + * when more buffers are needed for rendering. + *

      + * @hide + */ + public void discardFreeBuffers() { + synchronized (mCloseLock) { + nativeDiscardFreeBuffers(); + } + } + @Override protected void finalize() throws Throwable { try { @@ -872,6 +897,7 @@ public class ImageReader implements AutoCloseable { private synchronized native void nativeReleaseImage(Image i); private synchronized native Surface nativeGetSurface(); private synchronized native int nativeDetachImage(Image i); + private synchronized native void nativeDiscardFreeBuffers(); /** * @return A return code {@code ACQUIRE_*} diff --git a/media/jni/android_media_ImageReader.cpp b/media/jni/android_media_ImageReader.cpp index c3993ae20183..724fc02271e3 100644 --- a/media/jni/android_media_ImageReader.cpp +++ b/media/jni/android_media_ImageReader.cpp @@ -611,6 +611,23 @@ static jint ImageReader_detachImage(JNIEnv* env, jobject thiz, jobject image) { return OK; } +static void ImageReader_discardFreeBuffers(JNIEnv* env, jobject thiz) { + ALOGV("%s:", __FUNCTION__); + JNIImageReaderContext* ctx = ImageReader_getContext(env, thiz); + if (ctx == NULL) { + jniThrowException(env, "java/lang/IllegalStateException", "ImageReader was already closed"); + return; + } + + BufferItemConsumer* bufferConsumer = ctx->getBufferConsumer(); + status_t res = bufferConsumer->discardFreeBuffers(); + if (res != OK) { + ALOGE("Buffer discard failed: %s (%d)", strerror(-res), res); + jniThrowRuntimeException(env, + "nativeDicardFreebuffers failed"); + } +} + static jobject ImageReader_getSurface(JNIEnv* env, jobject thiz) { ALOGV("%s: ", __FUNCTION__); @@ -773,6 +790,7 @@ static const JNINativeMethod gImageReaderMethods[] = { {"nativeImageSetup", "(Landroid/media/Image;)I", (void*)ImageReader_imageSetup }, {"nativeGetSurface", "()Landroid/view/Surface;", (void*)ImageReader_getSurface }, {"nativeDetachImage", "(Landroid/media/Image;)I", (void*)ImageReader_detachImage }, + {"nativeDiscardFreeBuffers", "()V", (void*)ImageReader_discardFreeBuffers } }; static const JNINativeMethod gImageMethods[] = { -- GitLab From d63cde7ba4a96d5a07efd48d67e552cadb45d9ce Mon Sep 17 00:00:00 2001 From: Svet Ganov Date: Thu, 8 Sep 2016 20:15:55 -0700 Subject: [PATCH 312/809] [DO NOT MERGE] Don't show account access request UI until app launched. Sync adapters that don't have account access cannot run until the user explicitly approves in the UI. This is spammy given the user may not use the app right away. This change doesn't show the notificaiton until the app has run. bug:31162498 Change-Id: I1f4f2d2e9426f78763590e8aa542b94d6e93e488 --- .../content/pm/PackageManagerInternal.java | 8 +++++++ .../accounts/AccountManagerBackupHelper.java | 5 ++++- .../accounts/AccountManagerService.java | 2 +- .../android/server/content/SyncManager.java | 21 +++++++++++++++---- .../server/pm/PackageManagerService.java | 7 +++++++ .../java/com/android/server/pm/Settings.java | 8 +++++++ 6 files changed, 45 insertions(+), 6 deletions(-) diff --git a/core/java/android/content/pm/PackageManagerInternal.java b/core/java/android/content/pm/PackageManagerInternal.java index d208fe7c10ca..f5bcf64417a6 100644 --- a/core/java/android/content/pm/PackageManagerInternal.java +++ b/core/java/android/content/pm/PackageManagerInternal.java @@ -160,4 +160,12 @@ public abstract class PackageManagerInternal { * Returns {@code true} if a given package can't be wiped. Otherwise, returns {@code false}. */ public abstract boolean isPackageDataProtected(int userId, String packageName); + + /** + * Gets whether the package was ever launched. + * @param packageName The package name. + * @param userId The user for which to check. + * @return Whether was launched. + */ + public abstract boolean wasPackageEverLaunched(String packageName, int userId); } diff --git a/services/core/java/com/android/server/accounts/AccountManagerBackupHelper.java b/services/core/java/com/android/server/accounts/AccountManagerBackupHelper.java index 087ec611dd80..1361a3166cf0 100644 --- a/services/core/java/com/android/server/accounts/AccountManagerBackupHelper.java +++ b/services/core/java/com/android/server/accounts/AccountManagerBackupHelper.java @@ -257,7 +257,9 @@ public final class AccountManagerBackupHelper { } // Make sure we eventually prune the in-memory pending restores - mRestoreCancelCommand = new CancelRestoreCommand(); + synchronized (mLock) { + mRestoreCancelCommand = new CancelRestoreCommand(); + } mAccountManagerService.mMessageHandler.postDelayed(mRestoreCancelCommand, PENDING_RESTORE_TIMEOUT_MILLIS); } catch (XmlPullParserException | IOException e) { @@ -269,6 +271,7 @@ public final class AccountManagerBackupHelper { @Override public void onPackageAdded(String packageName, int uid) { synchronized (mLock) { + // Can happen if restore is cancelled and there is a notification in flight if (mRestorePendingAppPermissions == null) { return; } diff --git a/services/core/java/com/android/server/accounts/AccountManagerService.java b/services/core/java/com/android/server/accounts/AccountManagerService.java index da890c82ae1e..bee7fdb39813 100644 --- a/services/core/java/com/android/server/accounts/AccountManagerService.java +++ b/services/core/java/com/android/server/accounts/AccountManagerService.java @@ -319,7 +319,7 @@ public class AccountManagerService private final SparseArray mUsers = new SparseArray<>(); private final SparseBooleanArray mLocalUnlockedUsers = new SparseBooleanArray(); - private CopyOnWriteArrayList + private final CopyOnWriteArrayList mAppPermissionChangeListeners = new CopyOnWriteArrayList<>(); private static AtomicReference sThis = new AtomicReference<>(); diff --git a/services/core/java/com/android/server/content/SyncManager.java b/services/core/java/com/android/server/content/SyncManager.java index 8c714789ee2b..6870c56c2ef0 100644 --- a/services/core/java/com/android/server/content/SyncManager.java +++ b/services/core/java/com/android/server/content/SyncManager.java @@ -48,6 +48,7 @@ import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; +import android.content.pm.PackageManagerInternal; import android.content.pm.ProviderInfo; import android.content.pm.RegisteredServicesCache; import android.content.pm.RegisteredServicesCacheListener; @@ -324,6 +325,8 @@ public class SyncManager { private final AccountManagerInternal mAccountManagerInternal; + private final PackageManagerInternal mPackageManagerInternal; + private List getAllUsers() { return mUserManager.getUsers(); } @@ -575,6 +578,7 @@ public class SyncManager { mUserManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE); mAccountManager = (AccountManager) mContext.getSystemService(Context.ACCOUNT_SERVICE); mAccountManagerInternal = LocalServices.getService(AccountManagerInternal.class); + mPackageManagerInternal = LocalServices.getService(PackageManagerInternal.class); mAccountManagerInternal.addOnAppPermissionChangeListener((Account account, int uid) -> { // If the UID gained access to the account kick-off syncs lacking account access @@ -891,9 +895,13 @@ public class SyncManager { + "isSyncable == SYNCABLE_NO_ACCOUNT_ACCESS"); } Bundle finalExtras = new Bundle(extras); + String packageName = syncAdapterInfo.componentName.getPackageName(); + // If the app did not run and has no account access, done + if (!mPackageManagerInternal.wasPackageEverLaunched(packageName, userId)) { + continue; + } mAccountManagerInternal.requestAccountAccess(account.account, - syncAdapterInfo.componentName.getPackageName(), - UserHandle.getUserId(owningUid), + packageName, userId, new RemoteCallback((Bundle result) -> { if (result != null && result.getBoolean(AccountManager.KEY_BOOLEAN_RESULT)) { @@ -2798,9 +2806,14 @@ public class SyncManager { final int syncOpState = computeSyncOpState(op); switch (syncOpState) { case SYNC_OP_STATE_INVALID_NO_ACCOUNT_ACCESS: { + String packageName = op.owningPackage; + final int userId = UserHandle.getUserId(op.owningUid); + // If the app did not run and has no account access, done + if (!mPackageManagerInternal.wasPackageEverLaunched(packageName, userId)) { + return; + } mAccountManagerInternal.requestAccountAccess(op.target.account, - op.owningPackage, UserHandle.getUserId(op.owningUid), - new RemoteCallback((Bundle result) -> { + packageName, userId, new RemoteCallback((Bundle result) -> { if (result != null && result.getBoolean(AccountManager.KEY_BOOLEAN_RESULT)) { updateOrAddPeriodicSync(target, pollFrequency, flex, extras); diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 419e4ad19e71..676f7125ac6f 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -20980,6 +20980,13 @@ Slog.v(TAG, ":: stepped forward, applying functor at tag " + parser.getName()); public boolean isPackageDataProtected(int userId, String packageName) { return mProtectedPackages.isPackageDataProtected(userId, packageName); } + + @Override + public boolean wasPackageEverLaunched(String packageName, int userId) { + synchronized (mPackages) { + return mSettings.wasPackageEverLaunchedLPr(packageName, userId); + } + } } @Override diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java index 5126305dd0d1..b0c536f04652 100644 --- a/services/core/java/com/android/server/pm/Settings.java +++ b/services/core/java/com/android/server/pm/Settings.java @@ -4154,6 +4154,14 @@ final class Settings { return pkg.getCurrentEnabledStateLPr(classNameStr, userId); } + boolean wasPackageEverLaunchedLPr(String packageName, int userId) { + final PackageSetting pkgSetting = mPackages.get(packageName); + if (pkgSetting == null) { + throw new IllegalArgumentException("Unknown package: " + packageName); + } + return !pkgSetting.getNotLaunched(userId); + } + boolean setPackageStoppedStateLPw(PackageManagerService pm, String packageName, boolean stopped, boolean allowedByPermission, int uid, int userId) { int appId = UserHandle.getAppId(uid); -- GitLab From f6a50be25ceb253a4857c0e6a0ff1df161c22628 Mon Sep 17 00:00:00 2001 From: Aurimas Liutikas Date: Fri, 9 Sep 2016 15:32:55 -0700 Subject: [PATCH 313/809] Fix SearchView measure for UNSPECIFIED height. Previously it would almost always force SearchView to become 0 when height mode was UNSPECIFIED. Bug: 31302290 Change-Id: Icd2116b84951b1b967666147dbc5762d996408e6 --- core/java/android/widget/SearchView.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/java/android/widget/SearchView.java b/core/java/android/widget/SearchView.java index 5878cad2f9a3..9139361eda7c 100644 --- a/core/java/android/widget/SearchView.java +++ b/core/java/android/widget/SearchView.java @@ -816,9 +816,11 @@ public class SearchView extends LinearLayout implements CollapsibleActionView { switch (heightMode) { case MeasureSpec.AT_MOST: - case MeasureSpec.UNSPECIFIED: height = Math.min(getPreferredHeight(), height); break; + case MeasureSpec.UNSPECIFIED: + height = getPreferredHeight(); + break; } heightMode = MeasureSpec.EXACTLY; -- GitLab From 8c18431be868e0960e80638c1a974d71a0df05b4 Mon Sep 17 00:00:00 2001 From: Andre Eisenbach Date: Tue, 6 Sep 2016 18:03:10 -0700 Subject: [PATCH 314/809] Enable Bluetooth by default Bug: 29446913 Change-Id: I6d42810cb3f99617b886f6c643f8c66c42c1d017 --- packages/SettingsProvider/res/values/defaults.xml | 2 +- .../core/java/com/android/server/BluetoothManagerService.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/SettingsProvider/res/values/defaults.xml b/packages/SettingsProvider/res/values/defaults.xml index f7e9541b0d33..cd2d6b337f73 100644 --- a/packages/SettingsProvider/res/values/defaults.xml +++ b/packages/SettingsProvider/res/values/defaults.xml @@ -36,7 +36,7 @@ 100% true - false + true false false true diff --git a/services/core/java/com/android/server/BluetoothManagerService.java b/services/core/java/com/android/server/BluetoothManagerService.java index 8c5887f7a514..89fdfaf30559 100644 --- a/services/core/java/com/android/server/BluetoothManagerService.java +++ b/services/core/java/com/android/server/BluetoothManagerService.java @@ -293,7 +293,7 @@ class BluetoothManagerService extends IBluetoothManager.Stub { */ private final boolean isBluetoothPersistedStateOn() { return Settings.Global.getInt(mContentResolver, - Settings.Global.BLUETOOTH_ON, 0) != BLUETOOTH_OFF; + Settings.Global.BLUETOOTH_ON, BLUETOOTH_ON_BLUETOOTH) != BLUETOOTH_OFF; } /** @@ -301,7 +301,7 @@ class BluetoothManagerService extends IBluetoothManager.Stub { */ private final boolean isBluetoothPersistedStateOnBluetooth() { return Settings.Global.getInt(mContentResolver, - Settings.Global.BLUETOOTH_ON, 0) == BLUETOOTH_ON_BLUETOOTH; + Settings.Global.BLUETOOTH_ON, BLUETOOTH_ON_BLUETOOTH) == BLUETOOTH_ON_BLUETOOTH; } /** -- GitLab From 88082e9ff87b69a3cc094c98aaed37ad376f1558 Mon Sep 17 00:00:00 2001 From: Andrew Solovay Date: Fri, 9 Sep 2016 14:55:40 -0700 Subject: [PATCH 315/809] docs: Updated for Support Library 24.2.1 Added new (bugfix-only) Support Library 24.2.1. Updated "features" page so Gradle include lines use that version. See first comment for doc stage location. bug: 31338993 Change-Id: Ifaeecbc47c6aeff79d6e328e19e4e8775ce51e6c --- .../libraries/support-library/features.jd | 42 ++++++------ .../libraries/support-library/revisions.jd | 64 ++++++++++++++++++- 2 files changed, 84 insertions(+), 22 deletions(-) diff --git a/docs/html/topic/libraries/support-library/features.jd b/docs/html/topic/libraries/support-library/features.jd index 614392e00d44..b5f189a0886e 100755 --- a/docs/html/topic/libraries/support-library/features.jd +++ b/docs/html/topic/libraries/support-library/features.jd @@ -108,7 +108,7 @@ page.title=Support Library Features

      The Gradle build script dependency identifier for this library is as follows:

      -com.android.support:support-compat:24.2.0
      +com.android.support:support-compat:24.2.1
       

      v4 core-utils library

      @@ -124,7 +124,7 @@ com.android.support:support-compat:24.2.0

      -com.android.support:support-core-utils:24.2.0
      +com.android.support:support-core-utils:24.2.1
       

      v4 core-ui library

      @@ -141,7 +141,7 @@ com.android.support:support-core-utils:24.2.0

      -com.android.support:support-core-ui:24.2.0
      +com.android.support:support-core-ui:24.2.1
       

      v4 media-compat library

      @@ -158,7 +158,7 @@ com.android.support:support-core-ui:24.2.0

      -com.android.support:support-media-compat:24.2.0
      +com.android.support:support-media-compat:24.2.1
       

      v4 fragment library

      @@ -178,7 +178,7 @@ com.android.support:support-media-compat:24.2.0

      -com.android.support:support-fragment:24.2.0
      +com.android.support:support-fragment:24.2.1
       

      Multidex Support Library

      @@ -245,7 +245,7 @@ com.android.support:multidex:1.0.0

      The Gradle build script dependency identifier for this library is as follows:

      -com.android.support:appcompat-v7:24.2.0
      +com.android.support:appcompat-v7:24.2.1
       
      @@ -260,7 +260,7 @@ implementations, and are used extensively in layouts for TV apps.

      The Gradle build script dependency identifier for this library is as follows:

      -com.android.support:cardview-v7:24.2.0
      +com.android.support:cardview-v7:24.2.1
       
      @@ -276,7 +276,7 @@ For detailed information about the v7 gridlayout library APIs, see the

      The Gradle build script dependency identifier for this library is as follows:

      -com.android.support:gridlayout-v7:24.2.0
      +com.android.support:gridlayout-v7:24.2.1
       
      @@ -299,7 +299,7 @@ reference.

      The Gradle build script dependency identifier for this library is as follows:

      -com.android.support:mediarouter-v7:24.2.0
      +com.android.support:mediarouter-v7:24.2.1
       

      The v7 mediarouter library APIs introduced in Support Library @@ -319,7 +319,7 @@ title card.

      The Gradle build script dependency identifier for this library is as follows:

      -com.android.support:palette-v7:24.2.0
      +com.android.support:palette-v7:24.2.1
       
      @@ -335,7 +335,7 @@ limited window of data items.

      The Gradle build script dependency identifier for this library is as follows:

      -com.android.support:recyclerview-v7:24.2.0
      +com.android.support:recyclerview-v7:24.2.1
       
      @@ -358,7 +358,7 @@ such as {@link android.support.v7.preference.CheckBoxPreference} and

      The Gradle build script dependency identifier for this library is as follows:

      -com.android.support:preference-v7:24.2.0
      +com.android.support:preference-v7:24.2.1
       

      v8 Support Library

      @@ -409,7 +409,7 @@ defaultConfig {

      The Gradle build script dependency identifier for this library is as follows:

      -com.android.support:support-v13:24.2.0
      +com.android.support:support-v13:24.2.1
       
      @@ -435,7 +435,7 @@ for preference interfaces such as

      The Gradle build script dependency identifier for this library is as follows:

      -com.android.support:preference-v14:24.2.0
      +com.android.support:preference-v14:24.2.1
       
      @@ -458,7 +458,7 @@ interface and classes, such as

      The Gradle build script dependency identifier for this library is as follows:

      -com.android.support:preference-leanback-v17:24.2.0
      +com.android.support:preference-leanback-v17:24.2.1
       
      @@ -494,7 +494,7 @@ com.android.support:preference-leanback-v17:24.2.0

      The Gradle build script dependency identifier for this library is as follows:

      -com.android.support:leanback-v17:24.2.0
      +com.android.support:leanback-v17:24.2.1
       
      @@ -509,7 +509,7 @@ package provides APIs to support adding annotation metadata to your apps.

      The Gradle build script dependency identifier for this library is as follows:

      -com.android.support:support-annotations:24.2.0
      +com.android.support:support-annotations:24.2.1
       
      @@ -527,7 +527,7 @@ snackbars, and tabs. <

      The Gradle build script dependency identifier for this library is as follows:

      -com.android.support:design:24.2.0
      +com.android.support:design:24.2.1
       
      @@ -548,7 +548,7 @@ Callback.

      The Gradle build script dependency identifier for this library is as follows:

      -com.android.support:customtabs:24.2.0
      +com.android.support:customtabs:24.2.1
       
      @@ -572,7 +572,7 @@ PercentRelativeLayout.

      The Gradle build script dependency identifier for this library is as follows:

      -com.android.support:percent:24.2.0
      +com.android.support:percent:24.2.1
       
      @@ -595,5 +595,5 @@ RecommendationExtender.

      The Gradle build script dependency identifier for this library is as follows:

      -com.android.support:recommendation:24.2.0
      +com.android.support:recommendation:24.2.1
       
      diff --git a/docs/html/topic/libraries/support-library/revisions.jd b/docs/html/topic/libraries/support-library/revisions.jd index 4b743d5d5b91..db99ec8b4d31 100644 --- a/docs/html/topic/libraries/support-library/revisions.jd +++ b/docs/html/topic/libraries/support-library/revisions.jd @@ -6,9 +6,71 @@ page.metaDescription=This page provides details about the Support Library packag

      This page provides details about the Support Library package releases.

      -

      +

      Android Support Library, revision 24.2.1 + (September 2016) +

      + +
      + +

      Fixed issues:

      + +
        +
      • {@link android.support.design.widget.FloatingActionButton} can no longer + be anchored to indirect children of {@link + android.support.design.widget.CoordinatorLayout}. (AOSP issue 220250) +
      • + +
      • Image inside {@link + android.support.design.widget.CollapsingToolbarLayout} doesn’t scale properly + with fitsSystemWindows=true. (AOSP issue 220389) +
      • + +
      • {@link android.support.design.widget.CoordinatorLayout} throws {@link + java.lang.IndexOutOfBoundsException} when {@link + android.support.design.widget.Snackbar} is shown and dismissed. (AOSP issue + 220762) +
      • + +
      • {@link android.support.design.widget.TextInputLayout} fails to resolve + error text color. (AOSP issue 220305) +
      • + +
      • {@link android.support.v7.util.SortedList.BatchedCallback#onMoved + BatchedCallback.onMoved()} calls {@link + android.support.v7.util.SortedList.BatchedCallback#onInserted + BatchedCallback.onInserted()}. (AOSP issue 220309) +
      • + +
      • {@link android.support.design.widget.TextInputLayout} overrides right + compound drawable. (AOSP issue 220728) +
      • +
      + +

      + A complete list of public bug fixes is available on the + AOSP Issue Tracker. +

      + + +
      +
      + + + +
      +

      + Android Support Library, revision 24.2.0 (August 2016)

      -- GitLab From 2c984f16eb4afc3455482cfbf3e8b03c97189bca Mon Sep 17 00:00:00 2001 From: Selim Cinek Date: Tue, 6 Sep 2016 16:23:17 -0700 Subject: [PATCH 316/809] Fixes a crash with a renderthread camera animation Test: double-tap power button when display is off and freshly restarted. Change-Id: I6bad3e75568ba578245dd86f7dd28597c29ae95d Fixes: 31084435 --- .../android/systemui/statusbar/KeyguardAffordanceView.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardAffordanceView.java b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardAffordanceView.java index 88f37a320926..8b4225a8ab0b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardAffordanceView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardAffordanceView.java @@ -174,7 +174,10 @@ public class KeyguardAffordanceView extends ImageView { private void drawBackgroundCircle(Canvas canvas) { if (mCircleRadius > 0 || mFinishing) { - if (mFinishing && mSupportHardware) { + if (mFinishing && mSupportHardware && mHwCenterX != null) { + // Our hardware drawing proparties can be null if the finishing started but we have + // never drawn before. In that case we are not doing a render thread animation + // anyway, so we need to use the normal drawing. DisplayListCanvas displayListCanvas = (DisplayListCanvas) canvas; displayListCanvas.drawCircle(mHwCenterX, mHwCenterY, mHwCircleRadius, mHwCirclePaint); -- GitLab From 68422fd1293c005dea032367efd92e4303da4a1f Mon Sep 17 00:00:00 2001 From: Selim Cinek Date: Tue, 6 Sep 2016 16:42:54 -0700 Subject: [PATCH 317/809] Update contentDescription of the DismissView when locale changes When the locale changes, update not only text but also contentDescription of the DismissView. Test: switch language and observe dismiss view description Fixes: 31320721 Change-Id: If89fd6d2f3c3819927a181ff69849b66855ae451 --- .../src/com/android/systemui/statusbar/DismissView.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/DismissView.java b/packages/SystemUI/src/com/android/systemui/statusbar/DismissView.java index 2045ec8dfa2d..1d7bede962d3 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/DismissView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/DismissView.java @@ -56,6 +56,8 @@ public class DismissView extends StackScrollerDecorView { protected void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); mDismissButton.setText(R.string.clear_all_notifications_text); + mDismissButton.setContentDescription( + mContext.getString(R.string.accessibility_clear_all)); } public boolean isButtonVisible() { -- GitLab From 09b7dea5b7613e3c96e46006a7b62e2ff84e77f2 Mon Sep 17 00:00:00 2001 From: Selim Cinek Date: Tue, 30 Aug 2016 11:28:19 -0700 Subject: [PATCH 318/809] Overflow number supports RTL layout Fix overlapping issue of overflow number view in RTL layout. And also, fit the width of overflow Single-line view to match_parent. Change-Id: I436a3770c8a0001b7a577e3f726bb52cd978298e Fixes: 31181327 --- .../android/systemui/statusbar/NotificationContentView.java | 2 +- .../statusbar/stack/NotificationChildrenContainer.java | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationContentView.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationContentView.java index 9fd09d92162c..78e56c04ce9b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationContentView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationContentView.java @@ -205,7 +205,7 @@ public class NotificationContentView extends FrameLayout { && MeasureSpec.getMode(widthMeasureSpec) != MeasureSpec.UNSPECIFIED) { singleLineWidthSpec = MeasureSpec.makeMeasureSpec( width - mSingleLineWidthIndention + mSingleLineView.getPaddingEnd(), - MeasureSpec.AT_MOST); + MeasureSpec.EXACTLY); } mSingleLineView.measure(singleLineWidthSpec, MeasureSpec.makeMeasureSpec(maxSize, MeasureSpec.AT_MOST)); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationChildrenContainer.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationChildrenContainer.java index 3c9373bd46a2..d7920a9b1e7b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationChildrenContainer.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationChildrenContainer.java @@ -123,8 +123,10 @@ public class NotificationChildrenContainer extends ViewGroup { mDividers.get(i).layout(0, 0, getWidth(), mDividerHeight); } if (mOverflowNumber != null) { - mOverflowNumber.layout(getWidth() - mOverflowNumber.getMeasuredWidth(), 0, getWidth(), - mOverflowNumber.getMeasuredHeight()); + boolean isRtl = getLayoutDirection() == LAYOUT_DIRECTION_RTL; + int left = (isRtl ? 0 : getWidth() - mOverflowNumber.getMeasuredWidth()); + int right = left + mOverflowNumber.getMeasuredWidth(); + mOverflowNumber.layout(left, 0, right, mOverflowNumber.getMeasuredHeight()); } if (mNotificationHeader != null) { mNotificationHeader.layout(0, 0, mNotificationHeader.getMeasuredWidth(), -- GitLab From e5fedb95761fbffbd80200440f32e99e0d8c6f90 Mon Sep 17 00:00:00 2001 From: Andreas Gampe Date: Fri, 9 Sep 2016 17:08:53 -0700 Subject: [PATCH 319/809] Installer: Support delete_odex command Add support for deleting odex files. Bug: 31347757 Change-Id: I29bca8751bcee8d6981c682fbbc816c73b78ac68 --- services/core/java/com/android/server/pm/Installer.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/services/core/java/com/android/server/pm/Installer.java b/services/core/java/com/android/server/pm/Installer.java index 72c549f7bec6..2e18b1c417fe 100644 --- a/services/core/java/com/android/server/pm/Installer.java +++ b/services/core/java/com/android/server/pm/Installer.java @@ -230,6 +230,11 @@ public final class Installer extends SystemService { mInstaller.execute("move_ab", apkPath, instructionSet, outputPath); } + public void deleteOdex(String apkPath, String instructionSet, String outputPath) + throws InstallerException { + mInstaller.execute("delete_odex", apkPath, instructionSet, outputPath); + } + private static void assertValidInstructionSet(String instructionSet) throws InstallerException { for (String abi : Build.SUPPORTED_ABIS) { -- GitLab From aa394dd42c049479bface1991f11b863dc1a0922 Mon Sep 17 00:00:00 2001 From: John Reck Date: Mon, 12 Sep 2016 10:43:35 -0700 Subject: [PATCH 320/809] Ensure munmap matches mmap Bug: 31350622 Change-Id: I6d3f9faec32d54360caa6706d17405e20b50966c --- core/jni/android/graphics/Bitmap.cpp | 6 +++--- core/jni/android/graphics/Bitmap.h | 4 ++-- core/jni/android/graphics/Graphics.cpp | 9 +++++---- core/jni/android/graphics/GraphicsJNI.h | 2 +- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/core/jni/android/graphics/Bitmap.cpp b/core/jni/android/graphics/Bitmap.cpp index fbe3ececc348..02d4334df45b 100755 --- a/core/jni/android/graphics/Bitmap.cpp +++ b/core/jni/android/graphics/Bitmap.cpp @@ -149,12 +149,12 @@ Bitmap::Bitmap(void* address, void* context, FreeFunc freeFunc, mPixelRef->unref(); } -Bitmap::Bitmap(void* address, int fd, +Bitmap::Bitmap(void* address, int fd, size_t mappedSize, const SkImageInfo& info, size_t rowBytes, SkColorTable* ctable) : mPixelStorageType(PixelStorageType::Ashmem) { mPixelStorage.ashmem.address = address; mPixelStorage.ashmem.fd = fd; - mPixelStorage.ashmem.size = ashmem_get_size_region(fd); + mPixelStorage.ashmem.size = mappedSize; mPixelRef.reset(new WrappedPixelRef(this, address, info, rowBytes, ctable)); // Note: this will trigger a call to onStrongRefDestroyed(), but // we want the pixel ref to have a ref count of 0 at this point @@ -1013,7 +1013,7 @@ static jobject Bitmap_createFromParcel(JNIEnv* env, jobject, jobject parcel) { // Map the pixels in place and take ownership of the ashmem region. nativeBitmap = GraphicsJNI::mapAshmemPixelRef(env, bitmap.get(), - ctable, dupFd, const_cast(blob.data()), !isMutable); + ctable, dupFd, const_cast(blob.data()), size, !isMutable); SkSafeUnref(ctable); if (!nativeBitmap) { close(dupFd); diff --git a/core/jni/android/graphics/Bitmap.h b/core/jni/android/graphics/Bitmap.h index eadba5c0e634..aaea178e7387 100644 --- a/core/jni/android/graphics/Bitmap.h +++ b/core/jni/android/graphics/Bitmap.h @@ -51,8 +51,8 @@ public: const SkImageInfo& info, size_t rowBytes, SkColorTable* ctable); Bitmap(void* address, void* context, FreeFunc freeFunc, const SkImageInfo& info, size_t rowBytes, SkColorTable* ctable); - Bitmap(void* address, int fd, const SkImageInfo& info, size_t rowBytes, - SkColorTable* ctable); + Bitmap(void* address, int fd, size_t mappedSize, const SkImageInfo& info, + size_t rowBytes, SkColorTable* ctable); const SkImageInfo& info() const; diff --git a/core/jni/android/graphics/Graphics.cpp b/core/jni/android/graphics/Graphics.cpp index 93259e70abbd..b669871d90e3 100644 --- a/core/jni/android/graphics/Graphics.cpp +++ b/core/jni/android/graphics/Graphics.cpp @@ -613,7 +613,7 @@ android::Bitmap* GraphicsJNI::allocateAshmemPixelRef(JNIEnv* env, SkBitmap* bitm return nullptr; } - android::Bitmap* wrapper = new android::Bitmap(addr, fd, info, rowBytes, ctable); + android::Bitmap* wrapper = new android::Bitmap(addr, fd, size, info, rowBytes, ctable); wrapper->getSkBitmap(bitmap); // since we're already allocated, we lockPixels right away // HeapAllocator behaves this way too @@ -623,7 +623,7 @@ android::Bitmap* GraphicsJNI::allocateAshmemPixelRef(JNIEnv* env, SkBitmap* bitm } android::Bitmap* GraphicsJNI::mapAshmemPixelRef(JNIEnv* env, SkBitmap* bitmap, - SkColorTable* ctable, int fd, void* addr, bool readOnly) { + SkColorTable* ctable, int fd, void* addr, size_t size, bool readOnly) { const SkImageInfo& info = bitmap->info(); if (info.fColorType == kUnknown_SkColorType) { doThrowIAE(env, "unknown bitmap configuration"); @@ -633,7 +633,8 @@ android::Bitmap* GraphicsJNI::mapAshmemPixelRef(JNIEnv* env, SkBitmap* bitmap, if (!addr) { // Map existing ashmem region if not already mapped. int flags = readOnly ? (PROT_READ) : (PROT_READ | PROT_WRITE); - addr = mmap(NULL, ashmem_get_size_region(fd), flags, MAP_SHARED, fd, 0); + size = ashmem_get_size_region(fd); + addr = mmap(NULL, size, flags, MAP_SHARED, fd, 0); if (addr == MAP_FAILED) { return nullptr; } @@ -643,7 +644,7 @@ android::Bitmap* GraphicsJNI::mapAshmemPixelRef(JNIEnv* env, SkBitmap* bitmap, // attempting to compute our own. const size_t rowBytes = bitmap->rowBytes(); - android::Bitmap* wrapper = new android::Bitmap(addr, fd, info, rowBytes, ctable); + android::Bitmap* wrapper = new android::Bitmap(addr, fd, size, info, rowBytes, ctable); wrapper->getSkBitmap(bitmap); if (readOnly) { bitmap->pixelRef()->setImmutable(); diff --git a/core/jni/android/graphics/GraphicsJNI.h b/core/jni/android/graphics/GraphicsJNI.h index bcd834b0501b..b1d66b710eb3 100644 --- a/core/jni/android/graphics/GraphicsJNI.h +++ b/core/jni/android/graphics/GraphicsJNI.h @@ -99,7 +99,7 @@ public: SkColorTable* ctable); static android::Bitmap* mapAshmemPixelRef(JNIEnv* env, SkBitmap* bitmap, - SkColorTable* ctable, int fd, void* addr, bool readOnly); + SkColorTable* ctable, int fd, void* addr, size_t size, bool readOnly); /** * Given a bitmap we natively allocate a memory block to store the contents -- GitLab From 62b7f8bf7cf867babaf64bb2c64c1057369b8c9e Mon Sep 17 00:00:00 2001 From: Michael Wright Date: Mon, 12 Sep 2016 19:24:47 +0100 Subject: [PATCH 321/809] DO NOT MERGE Track generics in API definition. Bug: 24265043 Change-Id: I2f51d5b914ef4aa66a973db4765da117385e3bfb --- api/current.txt | 1132 ++++++++++++++++++++-------------------- api/system-current.txt | 1132 ++++++++++++++++++++-------------------- api/test-current.txt | 1132 ++++++++++++++++++++-------------------- 3 files changed, 1698 insertions(+), 1698 deletions(-) diff --git a/api/current.txt b/api/current.txt index 533b577034db..08bf3ed4a5aa 100644 --- a/api/current.txt +++ b/api/current.txt @@ -2906,11 +2906,11 @@ package android.accounts { field public static final java.lang.String LOGIN_ACCOUNTS_CHANGED_ACTION = "android.accounts.LOGIN_ACCOUNTS_CHANGED"; } - public abstract interface AccountManagerCallback { + public abstract interface AccountManagerCallback { method public abstract void run(android.accounts.AccountManagerFuture); } - public abstract interface AccountManagerFuture { + public abstract interface AccountManagerFuture { method public abstract boolean cancel(boolean); method public abstract V getResult() throws android.accounts.AuthenticatorException, java.io.IOException, android.accounts.OperationCanceledException; method public abstract V getResult(long, java.util.concurrent.TimeUnit) throws android.accounts.AuthenticatorException, java.io.IOException, android.accounts.OperationCanceledException; @@ -3056,7 +3056,7 @@ package android.animation { method public java.lang.Object evaluate(float, java.lang.Object, java.lang.Object); } - public abstract class BidirectionalTypeConverter extends android.animation.TypeConverter { + public abstract class BidirectionalTypeConverter extends android.animation.TypeConverter { ctor public BidirectionalTypeConverter(java.lang.Class, java.lang.Class); method public abstract T convertBack(V); method public android.animation.BidirectionalTypeConverter invert(); @@ -3148,26 +3148,26 @@ package android.animation { method public java.lang.String getPropertyName(); method public java.lang.Object getTarget(); method public static android.animation.ObjectAnimator ofArgb(java.lang.Object, java.lang.String, int...); - method public static android.animation.ObjectAnimator ofArgb(T, android.util.Property, int...); + method public static android.animation.ObjectAnimator ofArgb(T, android.util.Property, int...); method public static android.animation.ObjectAnimator ofFloat(java.lang.Object, java.lang.String, float...); method public static android.animation.ObjectAnimator ofFloat(java.lang.Object, java.lang.String, java.lang.String, android.graphics.Path); - method public static android.animation.ObjectAnimator ofFloat(T, android.util.Property, float...); - method public static android.animation.ObjectAnimator ofFloat(T, android.util.Property, android.util.Property, android.graphics.Path); + method public static android.animation.ObjectAnimator ofFloat(T, android.util.Property, float...); + method public static android.animation.ObjectAnimator ofFloat(T, android.util.Property, android.util.Property, android.graphics.Path); method public static android.animation.ObjectAnimator ofInt(java.lang.Object, java.lang.String, int...); method public static android.animation.ObjectAnimator ofInt(java.lang.Object, java.lang.String, java.lang.String, android.graphics.Path); - method public static android.animation.ObjectAnimator ofInt(T, android.util.Property, int...); - method public static android.animation.ObjectAnimator ofInt(T, android.util.Property, android.util.Property, android.graphics.Path); + method public static android.animation.ObjectAnimator ofInt(T, android.util.Property, int...); + method public static android.animation.ObjectAnimator ofInt(T, android.util.Property, android.util.Property, android.graphics.Path); method public static android.animation.ObjectAnimator ofMultiFloat(java.lang.Object, java.lang.String, float[][]); method public static android.animation.ObjectAnimator ofMultiFloat(java.lang.Object, java.lang.String, android.graphics.Path); - method public static android.animation.ObjectAnimator ofMultiFloat(java.lang.Object, java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, T...); + method public static android.animation.ObjectAnimator ofMultiFloat(java.lang.Object, java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, T...); method public static android.animation.ObjectAnimator ofMultiInt(java.lang.Object, java.lang.String, int[][]); method public static android.animation.ObjectAnimator ofMultiInt(java.lang.Object, java.lang.String, android.graphics.Path); - method public static android.animation.ObjectAnimator ofMultiInt(java.lang.Object, java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, T...); + method public static android.animation.ObjectAnimator ofMultiInt(java.lang.Object, java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, T...); method public static android.animation.ObjectAnimator ofObject(java.lang.Object, java.lang.String, android.animation.TypeEvaluator, java.lang.Object...); method public static android.animation.ObjectAnimator ofObject(java.lang.Object, java.lang.String, android.animation.TypeConverter, android.graphics.Path); - method public static android.animation.ObjectAnimator ofObject(T, android.util.Property, android.animation.TypeEvaluator, V...); - method public static android.animation.ObjectAnimator ofObject(T, android.util.Property, android.animation.TypeConverter, android.animation.TypeEvaluator, V...); - method public static android.animation.ObjectAnimator ofObject(T, android.util.Property, android.animation.TypeConverter, android.graphics.Path); + method public static android.animation.ObjectAnimator ofObject(T, android.util.Property, android.animation.TypeEvaluator, V...); + method public static android.animation.ObjectAnimator ofObject(T, android.util.Property, android.animation.TypeConverter, android.animation.TypeEvaluator, V...); + method public static android.animation.ObjectAnimator ofObject(T, android.util.Property, android.animation.TypeConverter, android.graphics.Path); method public static android.animation.ObjectAnimator ofPropertyValuesHolder(java.lang.Object, android.animation.PropertyValuesHolder...); method public void setAutoCancel(boolean); method public void setProperty(android.util.Property); @@ -3191,17 +3191,17 @@ package android.animation { method public static android.animation.PropertyValuesHolder ofKeyframe(android.util.Property, android.animation.Keyframe...); method public static android.animation.PropertyValuesHolder ofMultiFloat(java.lang.String, float[][]); method public static android.animation.PropertyValuesHolder ofMultiFloat(java.lang.String, android.graphics.Path); - method public static android.animation.PropertyValuesHolder ofMultiFloat(java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, V...); - method public static android.animation.PropertyValuesHolder ofMultiFloat(java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, android.animation.Keyframe...); + method public static android.animation.PropertyValuesHolder ofMultiFloat(java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, V...); + method public static android.animation.PropertyValuesHolder ofMultiFloat(java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, android.animation.Keyframe...); method public static android.animation.PropertyValuesHolder ofMultiInt(java.lang.String, int[][]); method public static android.animation.PropertyValuesHolder ofMultiInt(java.lang.String, android.graphics.Path); - method public static android.animation.PropertyValuesHolder ofMultiInt(java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, V...); - method public static android.animation.PropertyValuesHolder ofMultiInt(java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, android.animation.Keyframe...); + method public static android.animation.PropertyValuesHolder ofMultiInt(java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, V...); + method public static android.animation.PropertyValuesHolder ofMultiInt(java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, android.animation.Keyframe...); method public static android.animation.PropertyValuesHolder ofObject(java.lang.String, android.animation.TypeEvaluator, java.lang.Object...); method public static android.animation.PropertyValuesHolder ofObject(java.lang.String, android.animation.TypeConverter, android.graphics.Path); - method public static android.animation.PropertyValuesHolder ofObject(android.util.Property, android.animation.TypeEvaluator, V...); - method public static android.animation.PropertyValuesHolder ofObject(android.util.Property, android.animation.TypeConverter, android.animation.TypeEvaluator, T...); - method public static android.animation.PropertyValuesHolder ofObject(android.util.Property, android.animation.TypeConverter, android.graphics.Path); + method public static android.animation.PropertyValuesHolder ofObject(android.util.Property, android.animation.TypeEvaluator, V...); + method public static android.animation.PropertyValuesHolder ofObject(android.util.Property, android.animation.TypeConverter, android.animation.TypeEvaluator, T...); + method public static android.animation.PropertyValuesHolder ofObject(android.util.Property, android.animation.TypeConverter, android.graphics.Path); method public void setConverter(android.animation.TypeConverter); method public void setEvaluator(android.animation.TypeEvaluator); method public void setFloatValues(float...); @@ -3238,12 +3238,12 @@ package android.animation { method public abstract float getInterpolation(float); } - public abstract class TypeConverter { + public abstract class TypeConverter { ctor public TypeConverter(java.lang.Class, java.lang.Class); method public abstract V convert(T); } - public abstract interface TypeEvaluator { + public abstract interface TypeEvaluator { method public abstract T evaluate(float, T, T); } @@ -4571,7 +4571,7 @@ package android.app { method public android.os.Parcelable saveAllState(); } - public abstract class FragmentHostCallback extends android.app.FragmentContainer { + public abstract class FragmentHostCallback extends android.app.FragmentContainer { ctor public FragmentHostCallback(android.content.Context, android.os.Handler, int); method public void onAttachFragment(android.app.Fragment); method public void onDump(java.lang.String, java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]); @@ -4838,12 +4838,12 @@ package android.app { method public abstract void destroyLoader(int); method public abstract void dump(java.lang.String, java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]); method public static void enableDebugLogging(boolean); - method public abstract android.content.Loader getLoader(int); - method public abstract android.content.Loader initLoader(int, android.os.Bundle, android.app.LoaderManager.LoaderCallbacks); - method public abstract android.content.Loader restartLoader(int, android.os.Bundle, android.app.LoaderManager.LoaderCallbacks); + method public abstract android.content.Loader getLoader(int); + method public abstract android.content.Loader initLoader(int, android.os.Bundle, android.app.LoaderManager.LoaderCallbacks); + method public abstract android.content.Loader restartLoader(int, android.os.Bundle, android.app.LoaderManager.LoaderCallbacks); } - public static abstract interface LoaderManager.LoaderCallbacks { + public static abstract interface LoaderManager.LoaderCallbacks { method public abstract android.content.Loader onCreateLoader(int, android.os.Bundle); method public abstract void onLoadFinished(android.content.Loader, D); method public abstract void onLoaderReset(android.content.Loader); @@ -7629,7 +7629,7 @@ package android.content { ctor public AsyncQueryHandler.WorkerHandler(android.os.Looper); } - public abstract class AsyncTaskLoader extends android.content.Loader { + public abstract class AsyncTaskLoader extends android.content.Loader { ctor public AsyncTaskLoader(android.content.Context); method public void cancelLoadInBackground(); method public boolean isLoadInBackgroundCanceled(); @@ -7811,7 +7811,7 @@ package android.content { method public android.os.ParcelFileDescriptor openFile(android.net.Uri, java.lang.String) throws java.io.FileNotFoundException; method public android.os.ParcelFileDescriptor openFile(android.net.Uri, java.lang.String, android.os.CancellationSignal) throws java.io.FileNotFoundException; method protected final android.os.ParcelFileDescriptor openFileHelper(android.net.Uri, java.lang.String) throws java.io.FileNotFoundException; - method public android.os.ParcelFileDescriptor openPipeHelper(android.net.Uri, java.lang.String, android.os.Bundle, T, android.content.ContentProvider.PipeDataWriter) throws java.io.FileNotFoundException; + method public android.os.ParcelFileDescriptor openPipeHelper(android.net.Uri, java.lang.String, android.os.Bundle, T, android.content.ContentProvider.PipeDataWriter) throws java.io.FileNotFoundException; method public android.content.res.AssetFileDescriptor openTypedAssetFile(android.net.Uri, java.lang.String, android.os.Bundle) throws java.io.FileNotFoundException; method public android.content.res.AssetFileDescriptor openTypedAssetFile(android.net.Uri, java.lang.String, android.os.Bundle, android.os.CancellationSignal) throws java.io.FileNotFoundException; method public abstract android.database.Cursor query(android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String); @@ -7824,7 +7824,7 @@ package android.content { method public abstract int update(android.net.Uri, android.content.ContentValues, java.lang.String, java.lang.String[]); } - public static abstract interface ContentProvider.PipeDataWriter { + public static abstract interface ContentProvider.PipeDataWriter { method public abstract void writeDataToPipe(android.os.ParcelFileDescriptor, android.net.Uri, java.lang.String, android.os.Bundle, T); } @@ -8095,7 +8095,7 @@ package android.content { method public final java.lang.String getString(int); method public final java.lang.String getString(int, java.lang.Object...); method public abstract java.lang.Object getSystemService(java.lang.String); - method public final T getSystemService(java.lang.Class); + method public final T getSystemService(java.lang.Class); method public abstract java.lang.String getSystemServiceName(java.lang.Class); method public final java.lang.CharSequence getText(int); method public abstract android.content.res.Resources.Theme getTheme(); @@ -8450,8 +8450,8 @@ package android.content { method public long getLongExtra(java.lang.String, long); method public java.lang.String getPackage(); method public android.os.Parcelable[] getParcelableArrayExtra(java.lang.String); - method public java.util.ArrayList getParcelableArrayListExtra(java.lang.String); - method public T getParcelableExtra(java.lang.String); + method public java.util.ArrayList getParcelableArrayListExtra(java.lang.String); + method public T getParcelableExtra(java.lang.String); method public java.lang.String getScheme(); method public android.content.Intent getSelector(); method public java.io.Serializable getSerializableExtra(java.lang.String); @@ -8926,7 +8926,7 @@ package android.content { ctor public IntentSender.SendIntentException(java.lang.Exception); } - public class Loader { + public class Loader { ctor public Loader(android.content.Context); method public void abandon(); method public boolean cancelLoad(); @@ -8963,11 +8963,11 @@ package android.content { ctor public Loader.ForceLoadContentObserver(); } - public static abstract interface Loader.OnLoadCanceledListener { + public static abstract interface Loader.OnLoadCanceledListener { method public abstract void onLoadCanceled(android.content.Loader); } - public static abstract interface Loader.OnLoadCompleteListener { + public static abstract interface Loader.OnLoadCompleteListener { method public abstract void onLoadComplete(android.content.Loader, D); } @@ -10839,7 +10839,7 @@ package android.database { method public boolean isNull(int); } - public abstract class Observable { + public abstract class Observable { ctor public Observable(); method public void registerObserver(T); method public void unregisterAll(); @@ -12729,7 +12729,7 @@ package android.graphics.drawable { public class AnimatedStateListDrawable extends android.graphics.drawable.StateListDrawable { ctor public AnimatedStateListDrawable(); method public void addState(int[], android.graphics.drawable.Drawable, int); - method public void addTransition(int, int, T, boolean); + method public void addTransition(int, int, T, boolean); } public class AnimatedVectorDrawable extends android.graphics.drawable.Drawable implements android.graphics.drawable.Animatable2 { @@ -13853,7 +13853,7 @@ package android.hardware.camera2 { } public final class CameraCharacteristics extends android.hardware.camera2.CameraMetadata { - method public T get(android.hardware.camera2.CameraCharacteristics.Key); + method public T get(android.hardware.camera2.CameraCharacteristics.Key); method public java.util.List> getAvailableCaptureRequestKeys(); method public java.util.List> getAvailableCaptureResultKeys(); field public static final android.hardware.camera2.CameraCharacteristics.Key COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES; @@ -13938,7 +13938,7 @@ package android.hardware.camera2 { field public static final android.hardware.camera2.CameraCharacteristics.Key TONEMAP_MAX_CURVE_POINTS; } - public static final class CameraCharacteristics.Key { + public static final class CameraCharacteristics.Key { method public final boolean equals(java.lang.Object); method public java.lang.String getName(); method public final int hashCode(); @@ -14003,7 +14003,7 @@ package android.hardware.camera2 { method public void onTorchModeUnavailable(java.lang.String); } - public abstract class CameraMetadata { + public abstract class CameraMetadata { method public java.util.List getKeys(); field public static final int COLOR_CORRECTION_ABERRATION_MODE_FAST = 1; // 0x1 field public static final int COLOR_CORRECTION_ABERRATION_MODE_HIGH_QUALITY = 2; // 0x2 @@ -14211,7 +14211,7 @@ package android.hardware.camera2 { public final class CaptureRequest extends android.hardware.camera2.CameraMetadata implements android.os.Parcelable { method public int describeContents(); - method public T get(android.hardware.camera2.CaptureRequest.Key); + method public T get(android.hardware.camera2.CaptureRequest.Key); method public java.lang.Object getTag(); method public boolean isReprocess(); method public void writeToParcel(android.os.Parcel, int); @@ -14274,20 +14274,20 @@ package android.hardware.camera2 { public static final class CaptureRequest.Builder { method public void addTarget(android.view.Surface); method public android.hardware.camera2.CaptureRequest build(); - method public T get(android.hardware.camera2.CaptureRequest.Key); + method public T get(android.hardware.camera2.CaptureRequest.Key); method public void removeTarget(android.view.Surface); - method public void set(android.hardware.camera2.CaptureRequest.Key, T); + method public void set(android.hardware.camera2.CaptureRequest.Key, T); method public void setTag(java.lang.Object); } - public static final class CaptureRequest.Key { + public static final class CaptureRequest.Key { method public final boolean equals(java.lang.Object); method public java.lang.String getName(); method public final int hashCode(); } public class CaptureResult extends android.hardware.camera2.CameraMetadata { - method public T get(android.hardware.camera2.CaptureResult.Key); + method public T get(android.hardware.camera2.CaptureResult.Key); method public long getFrameNumber(); method public android.hardware.camera2.CaptureRequest getRequest(); method public int getSequenceId(); @@ -14368,7 +14368,7 @@ package android.hardware.camera2 { field public static final android.hardware.camera2.CaptureResult.Key TONEMAP_PRESET_CURVE; } - public static final class CaptureResult.Key { + public static final class CaptureResult.Key { method public final boolean equals(java.lang.Object); method public java.lang.String getName(); method public final int hashCode(); @@ -14493,14 +14493,14 @@ package android.hardware.camera2.params { method public android.util.Size[] getInputSizes(int); method public final int[] getOutputFormats(); method public long getOutputMinFrameDuration(int, android.util.Size); - method public long getOutputMinFrameDuration(java.lang.Class, android.util.Size); - method public android.util.Size[] getOutputSizes(java.lang.Class); + method public long getOutputMinFrameDuration(java.lang.Class, android.util.Size); + method public android.util.Size[] getOutputSizes(java.lang.Class); method public android.util.Size[] getOutputSizes(int); method public long getOutputStallDuration(int, android.util.Size); - method public long getOutputStallDuration(java.lang.Class, android.util.Size); + method public long getOutputStallDuration(java.lang.Class, android.util.Size); method public final int[] getValidOutputFormatsForInput(int); method public boolean isOutputSupportedFor(int); - method public static boolean isOutputSupportedFor(java.lang.Class); + method public static boolean isOutputSupportedFor(java.lang.Class); method public boolean isOutputSupportedFor(android.view.Surface); } @@ -16201,7 +16201,7 @@ package android.icu.math { package android.icu.text { - public final class AlphabeticIndex implements java.lang.Iterable { + public final class AlphabeticIndex implements java.lang.Iterable { ctor public AlphabeticIndex(android.icu.util.ULocale); ctor public AlphabeticIndex(java.util.Locale); ctor public AlphabeticIndex(android.icu.text.RuleBasedCollator); @@ -16227,7 +16227,7 @@ package android.icu.text { method public android.icu.text.AlphabeticIndex setUnderflowLabel(java.lang.String); } - public static class AlphabeticIndex.Bucket implements java.lang.Iterable { + public static class AlphabeticIndex.Bucket implements java.lang.Iterable { method public java.lang.String getLabel(); method public android.icu.text.AlphabeticIndex.Bucket.LabelType getLabelType(); method public java.util.Iterator> iterator(); @@ -16243,14 +16243,14 @@ package android.icu.text { enum_constant public static final android.icu.text.AlphabeticIndex.Bucket.LabelType UNDERFLOW; } - public static final class AlphabeticIndex.ImmutableIndex implements java.lang.Iterable { + public static final class AlphabeticIndex.ImmutableIndex implements java.lang.Iterable { method public android.icu.text.AlphabeticIndex.Bucket getBucket(int); method public int getBucketCount(); method public int getBucketIndex(java.lang.CharSequence); method public java.util.Iterator> iterator(); } - public static class AlphabeticIndex.Record { + public static class AlphabeticIndex.Record { method public V getData(); method public java.lang.CharSequence getName(); } @@ -17763,8 +17763,8 @@ package android.icu.text { method public final android.icu.text.UnicodeSet addAll(java.lang.CharSequence); method public android.icu.text.UnicodeSet addAll(android.icu.text.UnicodeSet); method public android.icu.text.UnicodeSet addAll(java.lang.Iterable); - method public android.icu.text.UnicodeSet addAll(T...); - method public T addAllTo(T); + method public android.icu.text.UnicodeSet addAll(T...); + method public > T addAllTo(T); method public void addMatchSetTo(android.icu.text.UnicodeSet); method public android.icu.text.UnicodeSet applyIntPropertyValue(int, int); method public final android.icu.text.UnicodeSet applyPattern(java.lang.String); @@ -17792,15 +17792,15 @@ package android.icu.text { method public final boolean contains(java.lang.CharSequence); method public boolean containsAll(android.icu.text.UnicodeSet); method public boolean containsAll(java.lang.String); - method public boolean containsAll(java.lang.Iterable); + method public boolean containsAll(java.lang.Iterable); method public boolean containsNone(int, int); method public boolean containsNone(android.icu.text.UnicodeSet); method public boolean containsNone(java.lang.CharSequence); - method public boolean containsNone(java.lang.Iterable); + method public boolean containsNone(java.lang.Iterable); method public final boolean containsSome(int, int); method public final boolean containsSome(android.icu.text.UnicodeSet); method public final boolean containsSome(java.lang.CharSequence); - method public final boolean containsSome(java.lang.Iterable); + method public final boolean containsSome(java.lang.Iterable); method public android.icu.text.UnicodeSet freeze(); method public static android.icu.text.UnicodeSet from(java.lang.CharSequence); method public static android.icu.text.UnicodeSet fromAll(java.lang.CharSequence); @@ -17818,14 +17818,14 @@ package android.icu.text { method public final android.icu.text.UnicodeSet remove(java.lang.CharSequence); method public final android.icu.text.UnicodeSet removeAll(java.lang.CharSequence); method public android.icu.text.UnicodeSet removeAll(android.icu.text.UnicodeSet); - method public android.icu.text.UnicodeSet removeAll(java.lang.Iterable); + method public android.icu.text.UnicodeSet removeAll(java.lang.Iterable); method public final android.icu.text.UnicodeSet removeAllStrings(); method public android.icu.text.UnicodeSet retain(int, int); method public final android.icu.text.UnicodeSet retain(int); method public final android.icu.text.UnicodeSet retain(java.lang.CharSequence); method public final android.icu.text.UnicodeSet retainAll(java.lang.CharSequence); method public android.icu.text.UnicodeSet retainAll(android.icu.text.UnicodeSet); - method public android.icu.text.UnicodeSet retainAll(java.lang.Iterable); + method public android.icu.text.UnicodeSet retainAll(java.lang.Iterable); method public android.icu.text.UnicodeSet set(int, int); method public android.icu.text.UnicodeSet set(android.icu.text.UnicodeSet); method public int size(); @@ -18235,7 +18235,7 @@ package android.icu.util { method public long getToDate(); } - public abstract interface Freezable implements java.lang.Cloneable { + public abstract interface Freezable implements java.lang.Cloneable { method public abstract T cloneAsThawed(); method public abstract T freeze(); method public abstract boolean isFrozen(); @@ -18517,7 +18517,7 @@ package android.icu.util { field public static final android.icu.util.TimeUnit YEAR; } - public class Output { + public class Output { ctor public Output(); ctor public Output(T); field public T value; @@ -28169,7 +28169,7 @@ package android.opengl { package android.os { - public abstract class AsyncTask { + public abstract class AsyncTask { ctor public AsyncTask(); method public final boolean cancel(boolean); method protected abstract Result doInBackground(Params...); @@ -28396,16 +28396,16 @@ package android.os { method public float getFloat(java.lang.String, float); method public float[] getFloatArray(java.lang.String); method public java.util.ArrayList getIntegerArrayList(java.lang.String); - method public T getParcelable(java.lang.String); + method public T getParcelable(java.lang.String); method public android.os.Parcelable[] getParcelableArray(java.lang.String); - method public java.util.ArrayList getParcelableArrayList(java.lang.String); + method public java.util.ArrayList getParcelableArrayList(java.lang.String); method public java.io.Serializable getSerializable(java.lang.String); method public short getShort(java.lang.String); method public short getShort(java.lang.String, short); method public short[] getShortArray(java.lang.String); method public android.util.Size getSize(java.lang.String); method public android.util.SizeF getSizeF(java.lang.String); - method public android.util.SparseArray getSparseParcelableArray(java.lang.String); + method public android.util.SparseArray getSparseParcelableArray(java.lang.String); method public java.util.ArrayList getStringArrayList(java.lang.String); method public boolean hasFileDescriptors(); method public void putAll(android.os.Bundle); @@ -28910,8 +28910,8 @@ package android.os { method public final long[] createLongArray(); method public final java.lang.String[] createStringArray(); method public final java.util.ArrayList createStringArrayList(); - method public final T[] createTypedArray(android.os.Parcelable.Creator); - method public final java.util.ArrayList createTypedArrayList(android.os.Parcelable.Creator); + method public final T[] createTypedArray(android.os.Parcelable.Creator); + method public final java.util.ArrayList createTypedArrayList(android.os.Parcelable.Creator); method public final int dataAvail(); method public final int dataCapacity(); method public final int dataPosition(); @@ -28944,7 +28944,7 @@ package android.os { method public final long readLong(); method public final void readLongArray(long[]); method public final void readMap(java.util.Map, java.lang.ClassLoader); - method public final T readParcelable(java.lang.ClassLoader); + method public final T readParcelable(java.lang.ClassLoader); method public final android.os.Parcelable[] readParcelableArray(java.lang.ClassLoader); method public final android.os.PersistableBundle readPersistableBundle(); method public final android.os.PersistableBundle readPersistableBundle(java.lang.ClassLoader); @@ -28957,9 +28957,9 @@ package android.os { method public final void readStringArray(java.lang.String[]); method public final void readStringList(java.util.List); method public final android.os.IBinder readStrongBinder(); - method public final void readTypedArray(T[], android.os.Parcelable.Creator); - method public final void readTypedList(java.util.List, android.os.Parcelable.Creator); - method public final T readTypedObject(android.os.Parcelable.Creator); + method public final void readTypedArray(T[], android.os.Parcelable.Creator); + method public final void readTypedList(java.util.List, android.os.Parcelable.Creator); + method public final T readTypedObject(android.os.Parcelable.Creator); method public final java.lang.Object readValue(java.lang.ClassLoader); method public final void recycle(); method public final void setDataCapacity(int); @@ -28990,7 +28990,7 @@ package android.os { method public final void writeMap(java.util.Map); method public final void writeNoException(); method public final void writeParcelable(android.os.Parcelable, int); - method public final void writeParcelableArray(T[], int); + method public final void writeParcelableArray(T[], int); method public final void writePersistableBundle(android.os.PersistableBundle); method public final void writeSerializable(java.io.Serializable); method public final void writeSize(android.util.Size); @@ -29002,9 +29002,9 @@ package android.os { method public final void writeStringList(java.util.List); method public final void writeStrongBinder(android.os.IBinder); method public final void writeStrongInterface(android.os.IInterface); - method public final void writeTypedArray(T[], int); - method public final void writeTypedList(java.util.List); - method public final void writeTypedObject(T, int); + method public final void writeTypedArray(T[], int); + method public final void writeTypedList(java.util.List); + method public final void writeTypedObject(T, int); method public final void writeValue(java.lang.Object); field public static final android.os.Parcelable.Creator STRING_CREATOR; } @@ -29082,11 +29082,11 @@ package android.os { field public static final int PARCELABLE_WRITE_RETURN_VALUE = 1; // 0x1 } - public static abstract interface Parcelable.ClassLoaderCreator implements android.os.Parcelable.Creator { + public static abstract interface Parcelable.ClassLoaderCreator implements android.os.Parcelable.Creator { method public abstract T createFromParcel(android.os.Parcel, java.lang.ClassLoader); } - public static abstract interface Parcelable.Creator { + public static abstract interface Parcelable.Creator { method public abstract T createFromParcel(android.os.Parcel); method public abstract T[] newArray(int); } @@ -29200,7 +29200,7 @@ package android.os { method public abstract void onProgress(int); } - public class RemoteCallbackList { + public class RemoteCallbackList { ctor public RemoteCallbackList(); method public int beginBroadcast(); method public void finishBroadcast(); @@ -34520,7 +34520,7 @@ package android.service.carrier { field public static final java.lang.String SERVICE_INTERFACE = "android.service.carrier.CarrierMessagingService"; } - public static abstract interface CarrierMessagingService.ResultCallback { + public static abstract interface CarrierMessagingService.ResultCallback { method public abstract void onReceiveResult(T) throws android.os.RemoteException; } @@ -34671,7 +34671,7 @@ package android.service.media { field public static final java.lang.String EXTRA_SUGGESTED = "android.service.media.extra.SUGGESTED"; } - public class MediaBrowserService.Result { + public class MediaBrowserService.Result { method public void detach(); method public void sendResult(T); } @@ -37584,14 +37584,14 @@ package android.telephony.gsm { package android.test { - public abstract deprecated class ActivityInstrumentationTestCase extends android.test.ActivityTestCase { + public abstract deprecated class ActivityInstrumentationTestCase extends android.test.ActivityTestCase { ctor public ActivityInstrumentationTestCase(java.lang.String, java.lang.Class); ctor public ActivityInstrumentationTestCase(java.lang.String, java.lang.Class, boolean); method public T getActivity(); method public void testActivityTestCaseSetUpProperly() throws java.lang.Exception; } - public abstract deprecated class ActivityInstrumentationTestCase2 extends android.test.ActivityTestCase { + public abstract deprecated class ActivityInstrumentationTestCase2 extends android.test.ActivityTestCase { ctor public deprecated ActivityInstrumentationTestCase2(java.lang.String, java.lang.Class); ctor public ActivityInstrumentationTestCase2(java.lang.Class); method public T getActivity(); @@ -37606,7 +37606,7 @@ package android.test { method protected void setActivity(android.app.Activity); } - public abstract deprecated class ActivityUnitTestCase extends android.test.ActivityTestCase { + public abstract deprecated class ActivityUnitTestCase extends android.test.ActivityTestCase { ctor public ActivityUnitTestCase(java.lang.Class); method public T getActivity(); method public int getFinishedActivityRequest(); @@ -37652,7 +37652,7 @@ package android.test { method public void testStarted(java.lang.String); } - public abstract deprecated class ApplicationTestCase extends android.test.AndroidTestCase { + public abstract deprecated class ApplicationTestCase extends android.test.AndroidTestCase { ctor public ApplicationTestCase(java.lang.Class); method protected final void createApplication(); method public T getApplication(); @@ -37678,8 +37678,8 @@ package android.test { method public android.app.Instrumentation getInstrumentation(); method public deprecated void injectInsrumentation(android.app.Instrumentation); method public void injectInstrumentation(android.app.Instrumentation); - method public final T launchActivity(java.lang.String, java.lang.Class, android.os.Bundle); - method public final T launchActivityWithIntent(java.lang.String, java.lang.Class, android.content.Intent); + method public final T launchActivity(java.lang.String, java.lang.Class, android.os.Bundle); + method public final T launchActivityWithIntent(java.lang.String, java.lang.Class, android.content.Intent); method public void runTestOnUiThread(java.lang.Runnable) throws java.lang.Throwable; method public void sendKeys(java.lang.String); method public void sendKeys(int...); @@ -37719,7 +37719,7 @@ package android.test { public class LoaderTestCase extends android.test.AndroidTestCase { ctor public LoaderTestCase(); - method public T getLoaderResultSynchronously(android.content.Loader); + method public T getLoaderResultSynchronously(android.content.Loader); } public final deprecated class MoreAsserts { @@ -37774,20 +37774,20 @@ package android.test { method public abstract void startTiming(boolean); } - public abstract deprecated class ProviderTestCase extends android.test.InstrumentationTestCase { + public abstract deprecated class ProviderTestCase extends android.test.InstrumentationTestCase { ctor public ProviderTestCase(java.lang.Class, java.lang.String); method public android.test.mock.MockContentResolver getMockContentResolver(); method public android.test.IsolatedContext getMockContext(); method public T getProvider(); - method public static android.content.ContentResolver newResolverWithContentProviderFromSql(android.content.Context, java.lang.Class, java.lang.String, java.lang.String, int, java.lang.String) throws java.lang.IllegalAccessException, java.lang.InstantiationException; + method public static android.content.ContentResolver newResolverWithContentProviderFromSql(android.content.Context, java.lang.Class, java.lang.String, java.lang.String, int, java.lang.String) throws java.lang.IllegalAccessException, java.lang.InstantiationException; } - public abstract class ProviderTestCase2 extends android.test.AndroidTestCase { + public abstract class ProviderTestCase2 extends android.test.AndroidTestCase { ctor public ProviderTestCase2(java.lang.Class, java.lang.String); method public android.test.mock.MockContentResolver getMockContentResolver(); method public android.test.IsolatedContext getMockContext(); method public T getProvider(); - method public static android.content.ContentResolver newResolverWithContentProviderFromSql(android.content.Context, java.lang.String, java.lang.Class, java.lang.String, java.lang.String, int, java.lang.String) throws java.lang.IllegalAccessException, java.lang.InstantiationException; + method public static android.content.ContentResolver newResolverWithContentProviderFromSql(android.content.Context, java.lang.String, java.lang.Class, java.lang.String, java.lang.String, int, java.lang.String) throws java.lang.IllegalAccessException, java.lang.InstantiationException; } public deprecated class RenamingDelegatingContext extends android.content.ContextWrapper { @@ -37795,11 +37795,11 @@ package android.test { ctor public RenamingDelegatingContext(android.content.Context, android.content.Context, java.lang.String); method public java.lang.String getDatabasePrefix(); method public void makeExistingFilesAndDbsAccessible(); - method public static T providerWithRenamedContext(java.lang.Class, android.content.Context, java.lang.String) throws java.lang.IllegalAccessException, java.lang.InstantiationException; - method public static T providerWithRenamedContext(java.lang.Class, android.content.Context, java.lang.String, boolean) throws java.lang.IllegalAccessException, java.lang.InstantiationException; + method public static T providerWithRenamedContext(java.lang.Class, android.content.Context, java.lang.String) throws java.lang.IllegalAccessException, java.lang.InstantiationException; + method public static T providerWithRenamedContext(java.lang.Class, android.content.Context, java.lang.String, boolean) throws java.lang.IllegalAccessException, java.lang.InstantiationException; } - public abstract deprecated class ServiceTestCase extends android.test.AndroidTestCase { + public abstract deprecated class ServiceTestCase extends android.test.AndroidTestCase { ctor public ServiceTestCase(java.lang.Class); method protected android.os.IBinder bindService(android.content.Intent); method public android.app.Application getApplication(); @@ -37812,7 +37812,7 @@ package android.test { method public void testServiceTestCaseSetUpProperly() throws java.lang.Exception; } - public abstract deprecated class SingleLaunchActivityTestCase extends android.test.InstrumentationTestCase { + public abstract deprecated class SingleLaunchActivityTestCase extends android.test.InstrumentationTestCase { ctor public SingleLaunchActivityTestCase(java.lang.String, java.lang.Class); method public T getActivity(); method public void testActivityTestCaseSetUpProperly() throws java.lang.Exception; @@ -38167,7 +38167,7 @@ package android.test.suitebuilder { ctor public TestMethod(java.lang.String, java.lang.Class); ctor public TestMethod(junit.framework.TestCase); method public junit.framework.TestCase createTest() throws java.lang.IllegalAccessException, java.lang.InstantiationException, java.lang.reflect.InvocationTargetException; - method public T getAnnotation(java.lang.Class); + method public T getAnnotation(java.lang.Class); method public java.lang.Class getEnclosingClass(); method public java.lang.String getEnclosingClassname(); method public java.lang.String getName(); @@ -38610,7 +38610,7 @@ package android.text { method public int getSpanEnd(java.lang.Object); method public int getSpanFlags(java.lang.Object); method public int getSpanStart(java.lang.Object); - method public T[] getSpans(int, int, java.lang.Class); + method public T[] getSpans(int, int, java.lang.Class); method public deprecated int getTextRunCursor(int, int, int, int, int, android.graphics.Paint); method public int getTextWatcherDepth(); method public android.text.SpannableStringBuilder insert(int, java.lang.CharSequence, int, int); @@ -38632,7 +38632,7 @@ package android.text { method public int getSpanEnd(java.lang.Object); method public int getSpanFlags(java.lang.Object); method public int getSpanStart(java.lang.Object); - method public T[] getSpans(int, int, java.lang.Class); + method public T[] getSpans(int, int, java.lang.Class); method public final int length(); method public int nextSpanTransition(int, int, java.lang.Class); method public final java.lang.String toString(); @@ -38642,7 +38642,7 @@ package android.text { method public abstract int getSpanEnd(java.lang.Object); method public abstract int getSpanFlags(java.lang.Object); method public abstract int getSpanStart(java.lang.Object); - method public abstract T[] getSpans(int, int, java.lang.Class); + method public abstract T[] getSpans(int, int, java.lang.Class); method public abstract int nextSpanTransition(int, int, java.lang.Class); field public static final int SPAN_COMPOSING = 256; // 0x100 field public static final int SPAN_EXCLUSIVE_EXCLUSIVE = 33; // 0x21 @@ -39619,7 +39619,7 @@ package android.text.style { field public static final int WEEKDAY_WEDNESDAY = 4; // 0x4 } - public static class TtsSpan.Builder { + public static class TtsSpan.Builder> { ctor public TtsSpan.Builder(java.lang.String); method public android.text.style.TtsSpan build(); method public C setIntArgument(java.lang.String, int); @@ -39715,7 +39715,7 @@ package android.text.style { method public android.text.style.TtsSpan.OrdinalBuilder setNumber(java.lang.String); } - public static class TtsSpan.SemioticClassBuilder extends android.text.style.TtsSpan.Builder { + public static class TtsSpan.SemioticClassBuilder> extends android.text.style.TtsSpan.Builder { ctor public TtsSpan.SemioticClassBuilder(java.lang.String); method public C setAnimacy(java.lang.String); method public C setCase(java.lang.String); @@ -40122,7 +40122,7 @@ package android.util { ctor public AndroidRuntimeException(java.lang.Exception); } - public final class ArrayMap implements java.util.Map { + public final class ArrayMap implements java.util.Map { ctor public ArrayMap(); ctor public ArrayMap(int); ctor public ArrayMap(android.util.ArrayMap); @@ -40150,7 +40150,7 @@ package android.util { method public java.util.Collection values(); } - public final class ArraySet implements java.util.Collection java.util.Set { + public final class ArraySet implements java.util.Collection java.util.Set { ctor public ArraySet(); ctor public ArraySet(int); ctor public ArraySet(android.util.ArraySet); @@ -40171,7 +40171,7 @@ package android.util { method public boolean retainAll(java.util.Collection); method public int size(); method public java.lang.Object[] toArray(); - method public T[] toArray(T[]); + method public T[] toArray(T[]); method public E valueAt(int); } @@ -40316,13 +40316,13 @@ package android.util { public deprecated class FloatMath { } - public abstract class FloatProperty extends android.util.Property { + public abstract class FloatProperty extends android.util.Property { ctor public FloatProperty(java.lang.String); method public final void set(T, java.lang.Float); method public abstract void setValue(T, float); } - public abstract class IntProperty extends android.util.Property { + public abstract class IntProperty extends android.util.Property { ctor public IntProperty(java.lang.String); method public final void set(T, java.lang.Integer); method public abstract void setValue(T, int); @@ -40422,7 +40422,7 @@ package android.util { method public void println(java.lang.String); } - public class LongSparseArray implements java.lang.Cloneable { + public class LongSparseArray implements java.lang.Cloneable { ctor public LongSparseArray(); ctor public LongSparseArray(int); method public void append(long, E); @@ -40442,7 +40442,7 @@ package android.util { method public E valueAt(int); } - public class LruCache { + public class LruCache { ctor public LruCache(int); method protected V create(K); method public final synchronized int createCount(); @@ -40530,9 +40530,9 @@ package android.util { ctor public NoSuchPropertyException(java.lang.String); } - public class Pair { + public class Pair { ctor public Pair(F, S); - method public static android.util.Pair create(A, B); + method public static android.util.Pair create(A, B); field public final F first; field public final S second; } @@ -40565,22 +40565,22 @@ package android.util { method public abstract void println(java.lang.String); } - public abstract class Property { + public abstract class Property { ctor public Property(java.lang.Class, java.lang.String); method public abstract V get(T); method public java.lang.String getName(); method public java.lang.Class getType(); method public boolean isReadOnly(); - method public static android.util.Property of(java.lang.Class, java.lang.Class, java.lang.String); + method public static android.util.Property of(java.lang.Class, java.lang.Class, java.lang.String); method public void set(T, V); } - public final class Range { + public final class Range> { ctor public Range(T, T); method public T clamp(T); method public boolean contains(T); method public boolean contains(android.util.Range); - method public static android.util.Range create(T, T); + method public static > android.util.Range create(T, T); method public android.util.Range extend(android.util.Range); method public android.util.Range extend(T, T); method public android.util.Range extend(T); @@ -40624,7 +40624,7 @@ package android.util { method public static android.util.SizeF parseSizeF(java.lang.String) throws java.lang.NumberFormatException; } - public class SparseArray implements java.lang.Cloneable { + public class SparseArray implements java.lang.Cloneable { ctor public SparseArray(); ctor public SparseArray(int); method public void append(int, E); @@ -45353,7 +45353,7 @@ package android.webkit { method public static java.lang.String stripAnchor(java.lang.String); } - public abstract interface ValueCallback { + public abstract interface ValueCallback { method public abstract void onReceiveValue(T); } @@ -46087,7 +46087,7 @@ package android.widget { field public static final int NO_SELECTION = -2147483648; // 0x80000000 } - public abstract class AdapterView extends android.view.ViewGroup { + public abstract class AdapterView extends android.view.ViewGroup { ctor public AdapterView(android.content.Context); ctor public AdapterView(android.content.Context, android.util.AttributeSet); ctor public AdapterView(android.content.Context, android.util.AttributeSet, int); @@ -46210,7 +46210,7 @@ package android.widget { ctor public AnalogClock(android.content.Context, android.util.AttributeSet, int, int); } - public class ArrayAdapter extends android.widget.BaseAdapter implements android.widget.Filterable android.widget.ThemedSpinnerAdapter { + public class ArrayAdapter extends android.widget.BaseAdapter implements android.widget.Filterable android.widget.ThemedSpinnerAdapter { ctor public ArrayAdapter(android.content.Context, int); ctor public ArrayAdapter(android.content.Context, int, int); ctor public ArrayAdapter(android.content.Context, int, T[]); @@ -46271,7 +46271,7 @@ package android.widget { method protected void performFiltering(java.lang.CharSequence, int); method public void performValidation(); method protected void replaceText(java.lang.CharSequence); - method public void setAdapter(T); + method public void setAdapter(T); method public void setCompletionHint(java.lang.CharSequence); method public void setDropDownAnchor(int); method public void setDropDownBackgroundDrawable(android.graphics.drawable.Drawable); @@ -48556,7 +48556,7 @@ package android.widget { package com.android.internal.util { - public abstract interface Predicate { + public abstract interface Predicate { method public abstract boolean apply(T); } @@ -50603,13 +50603,13 @@ package java.lang { enum_constant public static final java.lang.Character.UnicodeScript YI; } - public final class Class implements java.lang.reflect.AnnotatedElement java.lang.reflect.GenericDeclaration java.io.Serializable java.lang.reflect.Type { - method public java.lang.Class asSubclass(java.lang.Class); + public final class Class implements java.lang.reflect.AnnotatedElement java.lang.reflect.GenericDeclaration java.io.Serializable java.lang.reflect.Type { + method public java.lang.Class asSubclass(java.lang.Class); method public T cast(java.lang.Object); method public boolean desiredAssertionStatus(); method public static java.lang.Class forName(java.lang.String) throws java.lang.ClassNotFoundException; method public static java.lang.Class forName(java.lang.String, boolean, java.lang.ClassLoader) throws java.lang.ClassNotFoundException; - method public A getAnnotation(java.lang.Class); + method public A getAnnotation(java.lang.Class); method public java.lang.annotation.Annotation[] getAnnotations(); method public java.lang.String getCanonicalName(); method public java.lang.ClassLoader getClassLoader(); @@ -50726,7 +50726,7 @@ package java.lang { public abstract interface Cloneable { } - public abstract interface Comparable { + public abstract interface Comparable { method public abstract int compareTo(T); } @@ -50780,7 +50780,7 @@ package java.lang { field public static final java.lang.Class TYPE; } - public abstract class Enum implements java.lang.Comparable java.io.Serializable { + public abstract class Enum> implements java.lang.Comparable java.io.Serializable { ctor protected Enum(java.lang.String, int); method protected final java.lang.Object clone() throws java.lang.CloneNotSupportedException; method public final int compareTo(E); @@ -50790,7 +50790,7 @@ package java.lang { method public final int hashCode(); method public final java.lang.String name(); method public final int ordinal(); - method public static T valueOf(java.lang.Class, java.lang.String); + method public static > T valueOf(java.lang.Class, java.lang.String); } public class EnumConstantNotPresentException extends java.lang.RuntimeException { @@ -50909,7 +50909,7 @@ package java.lang { ctor public IndexOutOfBoundsException(java.lang.String); } - public class InheritableThreadLocal extends java.lang.ThreadLocal { + public class InheritableThreadLocal extends java.lang.ThreadLocal { ctor public InheritableThreadLocal(); method protected T childValue(T); } @@ -50980,7 +50980,7 @@ package java.lang { ctor public InterruptedException(java.lang.String); } - public abstract interface Iterable { + public abstract interface Iterable { method public default void forEach(java.util.function.Consumer); method public abstract java.util.Iterator iterator(); method public default java.util.Spliterator spliterator(); @@ -51188,12 +51188,12 @@ package java.lang { } public class Package implements java.lang.reflect.AnnotatedElement { - method public A getAnnotation(java.lang.Class); + method public A getAnnotation(java.lang.Class); method public java.lang.annotation.Annotation[] getAnnotations(); - method public A[] getAnnotationsByType(java.lang.Class); - method public A getDeclaredAnnotation(java.lang.Class); + method public A[] getAnnotationsByType(java.lang.Class); + method public A getDeclaredAnnotation(java.lang.Class); method public java.lang.annotation.Annotation[] getDeclaredAnnotations(); - method public A[] getDeclaredAnnotationsByType(java.lang.Class); + method public A[] getDeclaredAnnotationsByType(java.lang.Class); method public java.lang.String getImplementationTitle(); method public java.lang.String getImplementationVendor(); method public java.lang.String getImplementationVersion(); @@ -51753,7 +51753,7 @@ package java.lang { method public void uncaughtException(java.lang.Thread, java.lang.Throwable); } - public class ThreadLocal { + public class ThreadLocal { ctor public ThreadLocal(); method public T get(); method protected T initialValue(); @@ -51893,30 +51893,30 @@ package java.lang.annotation { package java.lang.ref { - public class PhantomReference extends java.lang.ref.Reference { + public class PhantomReference extends java.lang.ref.Reference { ctor public PhantomReference(T, java.lang.ref.ReferenceQueue); } - public abstract class Reference { + public abstract class Reference { method public void clear(); method public boolean enqueue(); method public T get(); method public boolean isEnqueued(); } - public class ReferenceQueue { + public class ReferenceQueue { ctor public ReferenceQueue(); method public java.lang.ref.Reference poll(); method public java.lang.ref.Reference remove(long) throws java.lang.IllegalArgumentException, java.lang.InterruptedException; method public java.lang.ref.Reference remove() throws java.lang.InterruptedException; } - public class SoftReference extends java.lang.ref.Reference { + public class SoftReference extends java.lang.ref.Reference { ctor public SoftReference(T); ctor public SoftReference(T, java.lang.ref.ReferenceQueue); } - public class WeakReference extends java.lang.ref.Reference { + public class WeakReference extends java.lang.ref.Reference { ctor public WeakReference(T); ctor public WeakReference(T, java.lang.ref.ReferenceQueue); } @@ -51927,7 +51927,7 @@ package java.lang.reflect { public class AccessibleObject implements java.lang.reflect.AnnotatedElement { ctor protected AccessibleObject(); - method public T getAnnotation(java.lang.Class); + method public T getAnnotation(java.lang.Class); method public java.lang.annotation.Annotation[] getAnnotations(); method public java.lang.annotation.Annotation[] getDeclaredAnnotations(); method public boolean isAccessible(); @@ -51936,12 +51936,12 @@ package java.lang.reflect { } public abstract interface AnnotatedElement { - method public abstract T getAnnotation(java.lang.Class); + method public abstract T getAnnotation(java.lang.Class); method public abstract java.lang.annotation.Annotation[] getAnnotations(); - method public default T[] getAnnotationsByType(java.lang.Class); - method public default java.lang.annotation.Annotation getDeclaredAnnotation(java.lang.Class); + method public default T[] getAnnotationsByType(java.lang.Class); + method public default java.lang.annotation.Annotation getDeclaredAnnotation(java.lang.Class); method public abstract java.lang.annotation.Annotation[] getDeclaredAnnotations(); - method public default T[] getDeclaredAnnotationsByType(java.lang.Class); + method public default T[] getDeclaredAnnotationsByType(java.lang.Class); method public default boolean isAnnotationPresent(java.lang.Class); } @@ -51969,8 +51969,8 @@ package java.lang.reflect { method public static void setShort(java.lang.Object, int, short) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException; } - public final class Constructor extends java.lang.reflect.AccessibleObject implements java.lang.reflect.GenericDeclaration java.lang.reflect.Member { - method public A getAnnotation(java.lang.Class); + public final class Constructor extends java.lang.reflect.AccessibleObject implements java.lang.reflect.GenericDeclaration java.lang.reflect.Member { + method public A getAnnotation(java.lang.Class); method public java.lang.Class getDeclaringClass(); method public java.lang.Class[] getExceptionTypes(); method public java.lang.reflect.Type[] getGenericExceptionTypes(); @@ -51989,7 +51989,7 @@ package java.lang.reflect { public final class Field extends java.lang.reflect.AccessibleObject implements java.lang.reflect.Member { method public java.lang.Object get(java.lang.Object) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException; - method public A getAnnotation(java.lang.Class); + method public A getAnnotation(java.lang.Class); method public boolean getBoolean(java.lang.Object) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException; method public byte getByte(java.lang.Object) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException; method public char getChar(java.lang.Object) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException; @@ -52055,7 +52055,7 @@ package java.lang.reflect { } public final class Method extends java.lang.reflect.AccessibleObject implements java.lang.reflect.GenericDeclaration java.lang.reflect.Member { - method public A getAnnotation(java.lang.Class); + method public A getAnnotation(java.lang.Class); method public java.lang.Class getDeclaringClass(); method public java.lang.Object getDefaultValue(); method public java.lang.Class[] getExceptionTypes(); @@ -52133,7 +52133,7 @@ package java.lang.reflect { public abstract interface Type { } - public abstract interface TypeVariable implements java.lang.reflect.Type { + public abstract interface TypeVariable implements java.lang.reflect.Type { method public abstract java.lang.reflect.Type[] getBounds(); method public abstract D getGenericDeclaration(); method public abstract java.lang.String getName(); @@ -52922,7 +52922,7 @@ package java.net { method public abstract java.net.SocketImpl createSocketImpl(); } - public abstract interface SocketOption { + public abstract interface SocketOption { method public abstract java.lang.String name(); method public abstract java.lang.Class type(); } @@ -53506,7 +53506,7 @@ package java.nio.channels { method public final long read(java.nio.ByteBuffer[]) throws java.io.IOException; method public abstract java.net.SocketAddress receive(java.nio.ByteBuffer) throws java.io.IOException; method public abstract int send(java.nio.ByteBuffer, java.net.SocketAddress) throws java.io.IOException; - method public abstract java.nio.channels.DatagramChannel setOption(java.net.SocketOption, T) throws java.io.IOException; + method public abstract java.nio.channels.DatagramChannel setOption(java.net.SocketOption, T) throws java.io.IOException; method public abstract java.net.DatagramSocket socket(); method public final int validOps(); method public abstract int write(java.nio.ByteBuffer) throws java.io.IOException; @@ -53582,8 +53582,8 @@ package java.nio.channels { public abstract interface NetworkChannel implements java.nio.channels.Channel { method public abstract java.nio.channels.NetworkChannel bind(java.net.SocketAddress) throws java.io.IOException; method public abstract java.net.SocketAddress getLocalAddress() throws java.io.IOException; - method public abstract T getOption(java.net.SocketOption) throws java.io.IOException; - method public abstract java.nio.channels.NetworkChannel setOption(java.net.SocketOption, T) throws java.io.IOException; + method public abstract T getOption(java.net.SocketOption) throws java.io.IOException; + method public abstract java.nio.channels.NetworkChannel setOption(java.net.SocketOption, T) throws java.io.IOException; method public abstract java.util.Set> supportedOptions(); } @@ -53700,7 +53700,7 @@ package java.nio.channels { method public final java.nio.channels.ServerSocketChannel bind(java.net.SocketAddress) throws java.io.IOException; method public abstract java.nio.channels.ServerSocketChannel bind(java.net.SocketAddress, int) throws java.io.IOException; method public static java.nio.channels.ServerSocketChannel open() throws java.io.IOException; - method public abstract java.nio.channels.ServerSocketChannel setOption(java.net.SocketOption, T) throws java.io.IOException; + method public abstract java.nio.channels.ServerSocketChannel setOption(java.net.SocketOption, T) throws java.io.IOException; method public abstract java.net.ServerSocket socket(); method public final int validOps(); } @@ -53718,7 +53718,7 @@ package java.nio.channels { method public abstract int read(java.nio.ByteBuffer) throws java.io.IOException; method public abstract long read(java.nio.ByteBuffer[], int, int) throws java.io.IOException; method public final long read(java.nio.ByteBuffer[]) throws java.io.IOException; - method public abstract java.nio.channels.SocketChannel setOption(java.net.SocketOption, T) throws java.io.IOException; + method public abstract java.nio.channels.SocketChannel setOption(java.net.SocketOption, T) throws java.io.IOException; method public abstract java.nio.channels.SocketChannel shutdownInput() throws java.io.IOException; method public abstract java.nio.channels.SocketChannel shutdownOutput() throws java.io.IOException; method public abstract java.net.Socket socket(); @@ -53965,12 +53965,12 @@ package java.security { public final class AccessController { method public static void checkPermission(java.security.Permission) throws java.security.AccessControlException; - method public static T doPrivileged(java.security.PrivilegedAction); - method public static T doPrivileged(java.security.PrivilegedAction, java.security.AccessControlContext); - method public static T doPrivileged(java.security.PrivilegedExceptionAction) throws java.security.PrivilegedActionException; - method public static T doPrivileged(java.security.PrivilegedExceptionAction, java.security.AccessControlContext) throws java.security.PrivilegedActionException; - method public static T doPrivilegedWithCombiner(java.security.PrivilegedAction); - method public static T doPrivilegedWithCombiner(java.security.PrivilegedExceptionAction) throws java.security.PrivilegedActionException; + method public static T doPrivileged(java.security.PrivilegedAction); + method public static T doPrivileged(java.security.PrivilegedAction, java.security.AccessControlContext); + method public static T doPrivileged(java.security.PrivilegedExceptionAction) throws java.security.PrivilegedActionException; + method public static T doPrivileged(java.security.PrivilegedExceptionAction, java.security.AccessControlContext) throws java.security.PrivilegedActionException; + method public static T doPrivilegedWithCombiner(java.security.PrivilegedAction); + method public static T doPrivilegedWithCombiner(java.security.PrivilegedExceptionAction) throws java.security.PrivilegedActionException; method public static java.security.AccessControlContext getContext(); } @@ -54009,7 +54009,7 @@ package java.security { method public static java.security.AlgorithmParameters getInstance(java.lang.String) throws java.security.NoSuchAlgorithmException; method public static java.security.AlgorithmParameters getInstance(java.lang.String, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException; method public static java.security.AlgorithmParameters getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException; - method public final T getParameterSpec(java.lang.Class) throws java.security.spec.InvalidParameterSpecException; + method public final T getParameterSpec(java.lang.Class) throws java.security.spec.InvalidParameterSpecException; method public final java.security.Provider getProvider(); method public final void init(java.security.spec.AlgorithmParameterSpec) throws java.security.spec.InvalidParameterSpecException; method public final void init(byte[]) throws java.io.IOException; @@ -54021,7 +54021,7 @@ package java.security { ctor public AlgorithmParametersSpi(); method protected abstract byte[] engineGetEncoded() throws java.io.IOException; method protected abstract byte[] engineGetEncoded(java.lang.String) throws java.io.IOException; - method protected abstract T engineGetParameterSpec(java.lang.Class) throws java.security.spec.InvalidParameterSpecException; + method protected abstract T engineGetParameterSpec(java.lang.Class) throws java.security.spec.InvalidParameterSpecException; method protected abstract void engineInit(java.security.spec.AlgorithmParameterSpec) throws java.security.spec.InvalidParameterSpecException; method protected abstract void engineInit(byte[]) throws java.io.IOException; method protected abstract void engineInit(byte[], java.lang.String) throws java.io.IOException; @@ -54206,7 +54206,7 @@ package java.security { method public static java.security.KeyFactory getInstance(java.lang.String) throws java.security.NoSuchAlgorithmException; method public static java.security.KeyFactory getInstance(java.lang.String, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException; method public static java.security.KeyFactory getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException; - method public final T getKeySpec(java.security.Key, java.lang.Class) throws java.security.spec.InvalidKeySpecException; + method public final T getKeySpec(java.security.Key, java.lang.Class) throws java.security.spec.InvalidKeySpecException; method public final java.security.Provider getProvider(); method public final java.security.Key translateKey(java.security.Key) throws java.security.InvalidKeyException; } @@ -54215,7 +54215,7 @@ package java.security { ctor public KeyFactorySpi(); method protected abstract java.security.PrivateKey engineGeneratePrivate(java.security.spec.KeySpec) throws java.security.spec.InvalidKeySpecException; method protected abstract java.security.PublicKey engineGeneratePublic(java.security.spec.KeySpec) throws java.security.spec.InvalidKeySpecException; - method protected abstract T engineGetKeySpec(java.security.Key, java.lang.Class) throws java.security.spec.InvalidKeySpecException; + method protected abstract T engineGetKeySpec(java.security.Key, java.lang.Class) throws java.security.spec.InvalidKeySpecException; method protected abstract java.security.Key engineTranslateKey(java.security.Key) throws java.security.InvalidKeyException; } @@ -54484,7 +54484,7 @@ package java.security { field public static final long serialVersionUID = 6034044314589513430L; // 0x53bd3b559a12c6d6L } - public abstract interface PrivilegedAction { + public abstract interface PrivilegedAction { method public abstract T run(); } @@ -54493,7 +54493,7 @@ package java.security { method public java.lang.Exception getException(); } - public abstract interface PrivilegedExceptionAction { + public abstract interface PrivilegedExceptionAction { method public abstract T run() throws java.lang.Exception; } @@ -56675,11 +56675,11 @@ package java.sql { method public abstract void free() throws java.sql.SQLException; method public abstract java.io.InputStream getBinaryStream() throws java.sql.SQLException; method public abstract java.io.Reader getCharacterStream() throws java.sql.SQLException; - method public abstract T getSource(java.lang.Class) throws java.sql.SQLException; + method public abstract T getSource(java.lang.Class) throws java.sql.SQLException; method public abstract java.lang.String getString() throws java.sql.SQLException; method public abstract java.io.OutputStream setBinaryStream() throws java.sql.SQLException; method public abstract java.io.Writer setCharacterStream() throws java.sql.SQLException; - method public abstract T setResult(java.lang.Class) throws java.sql.SQLException; + method public abstract T setResult(java.lang.Class) throws java.sql.SQLException; method public abstract void setString(java.lang.String) throws java.sql.SQLException; } @@ -56803,7 +56803,7 @@ package java.sql { public abstract interface Wrapper { method public abstract boolean isWrapperFor(java.lang.Class) throws java.sql.SQLException; - method public abstract T unwrap(java.lang.Class) throws java.sql.SQLException; + method public abstract T unwrap(java.lang.Class) throws java.sql.SQLException; } } @@ -57336,7 +57336,7 @@ package java.text { package java.util { - public abstract class AbstractCollection implements java.util.Collection { + public abstract class AbstractCollection implements java.util.Collection { ctor protected AbstractCollection(); method public boolean add(E); method public boolean addAll(java.util.Collection); @@ -57350,10 +57350,10 @@ package java.util { method public boolean retainAll(java.util.Collection); method public abstract int size(); method public java.lang.Object[] toArray(); - method public T[] toArray(T[]); + method public T[] toArray(T[]); } - public abstract class AbstractList extends java.util.AbstractCollection implements java.util.List { + public abstract class AbstractList extends java.util.AbstractCollection implements java.util.List { ctor protected AbstractList(); method public void add(int, E); method public boolean addAll(int, java.util.Collection); @@ -57370,7 +57370,7 @@ package java.util { field protected transient int modCount; } - public abstract class AbstractMap implements java.util.Map { + public abstract class AbstractMap implements java.util.Map { ctor protected AbstractMap(); method public void clear(); method public boolean containsKey(java.lang.Object); @@ -57386,7 +57386,7 @@ package java.util { method public java.util.Collection values(); } - public static class AbstractMap.SimpleEntry implements java.util.Map.Entry java.io.Serializable { + public static class AbstractMap.SimpleEntry implements java.util.Map.Entry java.io.Serializable { ctor public AbstractMap.SimpleEntry(K, V); ctor public AbstractMap.SimpleEntry(java.util.Map.Entry); method public K getKey(); @@ -57394,7 +57394,7 @@ package java.util { method public V setValue(V); } - public static class AbstractMap.SimpleImmutableEntry implements java.util.Map.Entry java.io.Serializable { + public static class AbstractMap.SimpleImmutableEntry implements java.util.Map.Entry java.io.Serializable { ctor public AbstractMap.SimpleImmutableEntry(K, V); ctor public AbstractMap.SimpleImmutableEntry(java.util.Map.Entry); method public K getKey(); @@ -57402,23 +57402,23 @@ package java.util { method public V setValue(V); } - public abstract class AbstractQueue extends java.util.AbstractCollection implements java.util.Queue { + public abstract class AbstractQueue extends java.util.AbstractCollection implements java.util.Queue { ctor protected AbstractQueue(); method public E element(); method public E remove(); } - public abstract class AbstractSequentialList extends java.util.AbstractList { + public abstract class AbstractSequentialList extends java.util.AbstractList { ctor protected AbstractSequentialList(); method public E get(int); method public abstract java.util.ListIterator listIterator(int); } - public abstract class AbstractSet extends java.util.AbstractCollection implements java.util.Set { + public abstract class AbstractSet extends java.util.AbstractCollection implements java.util.Set { ctor protected AbstractSet(); } - public class ArrayDeque extends java.util.AbstractCollection implements java.lang.Cloneable java.util.Deque java.io.Serializable { + public class ArrayDeque extends java.util.AbstractCollection implements java.lang.Cloneable java.util.Deque java.io.Serializable { ctor public ArrayDeque(); ctor public ArrayDeque(int); ctor public ArrayDeque(java.util.Collection); @@ -57450,7 +57450,7 @@ package java.util { method public java.util.Spliterator spliterator(); } - public class ArrayList extends java.util.AbstractList implements java.lang.Cloneable java.util.List java.util.RandomAccess java.io.Serializable { + public class ArrayList extends java.util.AbstractList implements java.lang.Cloneable java.util.List java.util.RandomAccess java.io.Serializable { ctor public ArrayList(int); ctor public ArrayList(); ctor public ArrayList(java.util.Collection); @@ -57467,7 +57467,7 @@ package java.util { } public class Arrays { - method public static java.util.List asList(T...); + method public static java.util.List asList(T...); method public static int binarySearch(long[], long); method public static int binarySearch(long[], int, int, long); method public static int binarySearch(int[], int); @@ -57484,10 +57484,10 @@ package java.util { method public static int binarySearch(float[], int, int, float); method public static int binarySearch(java.lang.Object[], java.lang.Object); method public static int binarySearch(java.lang.Object[], int, int, java.lang.Object); - method public static int binarySearch(T[], T, java.util.Comparator); - method public static int binarySearch(T[], int, int, T, java.util.Comparator); - method public static T[] copyOf(T[], int); - method public static T[] copyOf(U[], int, java.lang.Class); + method public static int binarySearch(T[], T, java.util.Comparator); + method public static int binarySearch(T[], int, int, T, java.util.Comparator); + method public static T[] copyOf(T[], int); + method public static T[] copyOf(U[], int, java.lang.Class); method public static byte[] copyOf(byte[], int); method public static short[] copyOf(short[], int); method public static int[] copyOf(int[], int); @@ -57496,8 +57496,8 @@ package java.util { method public static float[] copyOf(float[], int); method public static double[] copyOf(double[], int); method public static boolean[] copyOf(boolean[], int); - method public static T[] copyOfRange(T[], int, int); - method public static T[] copyOfRange(U[], int, int, java.lang.Class); + method public static T[] copyOfRange(T[], int, int); + method public static T[] copyOfRange(U[], int, int, java.lang.Class); method public static byte[] copyOfRange(byte[], int, int); method public static short[] copyOfRange(short[], int, int); method public static int[] copyOfRange(int[], int, int); @@ -57545,15 +57545,15 @@ package java.util { method public static int hashCode(float[]); method public static int hashCode(double[]); method public static int hashCode(java.lang.Object[]); - method public static void parallelPrefix(T[], java.util.function.BinaryOperator); - method public static void parallelPrefix(T[], int, int, java.util.function.BinaryOperator); + method public static void parallelPrefix(T[], java.util.function.BinaryOperator); + method public static void parallelPrefix(T[], int, int, java.util.function.BinaryOperator); method public static void parallelPrefix(long[], java.util.function.LongBinaryOperator); method public static void parallelPrefix(long[], int, int, java.util.function.LongBinaryOperator); method public static void parallelPrefix(double[], java.util.function.DoubleBinaryOperator); method public static void parallelPrefix(double[], int, int, java.util.function.DoubleBinaryOperator); method public static void parallelPrefix(int[], java.util.function.IntBinaryOperator); method public static void parallelPrefix(int[], int, int, java.util.function.IntBinaryOperator); - method public static void parallelSetAll(T[], java.util.function.IntFunction); + method public static void parallelSetAll(T[], java.util.function.IntFunction); method public static void parallelSetAll(int[], java.util.function.IntUnaryOperator); method public static void parallelSetAll(long[], java.util.function.IntToLongFunction); method public static void parallelSetAll(double[], java.util.function.IntToDoubleFunction); @@ -57571,11 +57571,11 @@ package java.util { method public static void parallelSort(float[], int, int); method public static void parallelSort(double[]); method public static void parallelSort(double[], int, int); - method public static void parallelSort(T[]); - method public static void parallelSort(T[], int, int); - method public static void parallelSort(T[], java.util.Comparator); - method public static void parallelSort(T[], int, int, java.util.Comparator); - method public static void setAll(T[], java.util.function.IntFunction); + method public static > void parallelSort(T[]); + method public static > void parallelSort(T[], int, int); + method public static void parallelSort(T[], java.util.Comparator); + method public static void parallelSort(T[], int, int, java.util.Comparator); + method public static void setAll(T[], java.util.function.IntFunction); method public static void setAll(int[], java.util.function.IntUnaryOperator); method public static void setAll(long[], java.util.function.IntToLongFunction); method public static void setAll(double[], java.util.function.IntToDoubleFunction); @@ -57595,18 +57595,18 @@ package java.util { method public static void sort(double[], int, int); method public static void sort(java.lang.Object[]); method public static void sort(java.lang.Object[], int, int); - method public static void sort(T[], java.util.Comparator); - method public static void sort(T[], int, int, java.util.Comparator); - method public static java.util.Spliterator spliterator(T[]); - method public static java.util.Spliterator spliterator(T[], int, int); + method public static void sort(T[], java.util.Comparator); + method public static void sort(T[], int, int, java.util.Comparator); + method public static java.util.Spliterator spliterator(T[]); + method public static java.util.Spliterator spliterator(T[], int, int); method public static java.util.Spliterator.OfInt spliterator(int[]); method public static java.util.Spliterator.OfInt spliterator(int[], int, int); method public static java.util.Spliterator.OfLong spliterator(long[]); method public static java.util.Spliterator.OfLong spliterator(long[], int, int); method public static java.util.Spliterator.OfDouble spliterator(double[]); method public static java.util.Spliterator.OfDouble spliterator(double[], int, int); - method public static java.util.stream.Stream stream(T[]); - method public static java.util.stream.Stream stream(T[], int, int); + method public static java.util.stream.Stream stream(T[]); + method public static java.util.stream.Stream stream(T[], int, int); method public static java.util.stream.IntStream stream(int[]); method public static java.util.stream.IntStream stream(int[], int, int); method public static java.util.stream.LongStream stream(long[]); @@ -57763,7 +57763,7 @@ package java.util { field protected long time; } - public abstract interface Collection implements java.lang.Iterable { + public abstract interface Collection implements java.lang.Iterable { method public abstract boolean add(E); method public abstract boolean addAll(java.util.Collection); method public abstract void clear(); @@ -57781,86 +57781,86 @@ package java.util { method public abstract int size(); method public default java.util.stream.Stream stream(); method public abstract java.lang.Object[] toArray(); - method public abstract T[] toArray(T[]); + method public abstract T[] toArray(T[]); } public class Collections { - method public static boolean addAll(java.util.Collection, T...); - method public static java.util.Queue asLifoQueue(java.util.Deque); - method public static int binarySearch(java.util.List>, T); - method public static int binarySearch(java.util.List, T, java.util.Comparator); - method public static java.util.Collection checkedCollection(java.util.Collection, java.lang.Class); - method public static java.util.List checkedList(java.util.List, java.lang.Class); - method public static java.util.Map checkedMap(java.util.Map, java.lang.Class, java.lang.Class); - method public static java.util.Set checkedSet(java.util.Set, java.lang.Class); - method public static java.util.SortedMap checkedSortedMap(java.util.SortedMap, java.lang.Class, java.lang.Class); - method public static java.util.SortedSet checkedSortedSet(java.util.SortedSet, java.lang.Class); - method public static void copy(java.util.List, java.util.List); + method public static boolean addAll(java.util.Collection, T...); + method public static java.util.Queue asLifoQueue(java.util.Deque); + method public static int binarySearch(java.util.List>, T); + method public static int binarySearch(java.util.List, T, java.util.Comparator); + method public static java.util.Collection checkedCollection(java.util.Collection, java.lang.Class); + method public static java.util.List checkedList(java.util.List, java.lang.Class); + method public static java.util.Map checkedMap(java.util.Map, java.lang.Class, java.lang.Class); + method public static java.util.Set checkedSet(java.util.Set, java.lang.Class); + method public static java.util.SortedMap checkedSortedMap(java.util.SortedMap, java.lang.Class, java.lang.Class); + method public static java.util.SortedSet checkedSortedSet(java.util.SortedSet, java.lang.Class); + method public static void copy(java.util.List, java.util.List); method public static boolean disjoint(java.util.Collection, java.util.Collection); - method public static java.util.Enumeration emptyEnumeration(); - method public static java.util.Iterator emptyIterator(); - method public static final java.util.List emptyList(); - method public static java.util.ListIterator emptyListIterator(); - method public static final java.util.Map emptyMap(); - method public static final java.util.Set emptySet(); - method public static java.util.Enumeration enumeration(java.util.Collection); - method public static void fill(java.util.List, T); + method public static java.util.Enumeration emptyEnumeration(); + method public static java.util.Iterator emptyIterator(); + method public static final java.util.List emptyList(); + method public static java.util.ListIterator emptyListIterator(); + method public static final java.util.Map emptyMap(); + method public static final java.util.Set emptySet(); + method public static java.util.Enumeration enumeration(java.util.Collection); + method public static void fill(java.util.List, T); method public static int frequency(java.util.Collection, java.lang.Object); method public static int indexOfSubList(java.util.List, java.util.List); method public static int lastIndexOfSubList(java.util.List, java.util.List); - method public static java.util.ArrayList list(java.util.Enumeration); - method public static T max(java.util.Collection); - method public static T max(java.util.Collection, java.util.Comparator); - method public static T min(java.util.Collection); - method public static T min(java.util.Collection, java.util.Comparator); - method public static java.util.List nCopies(int, T); - method public static java.util.Set newSetFromMap(java.util.Map); - method public static boolean replaceAll(java.util.List, T, T); + method public static java.util.ArrayList list(java.util.Enumeration); + method public static > T max(java.util.Collection); + method public static T max(java.util.Collection, java.util.Comparator); + method public static > T min(java.util.Collection); + method public static T min(java.util.Collection, java.util.Comparator); + method public static java.util.List nCopies(int, T); + method public static java.util.Set newSetFromMap(java.util.Map); + method public static boolean replaceAll(java.util.List, T, T); method public static void reverse(java.util.List); - method public static java.util.Comparator reverseOrder(); - method public static java.util.Comparator reverseOrder(java.util.Comparator); + method public static java.util.Comparator reverseOrder(); + method public static java.util.Comparator reverseOrder(java.util.Comparator); method public static void rotate(java.util.List, int); method public static void shuffle(java.util.List); method public static void shuffle(java.util.List, java.util.Random); - method public static java.util.Set singleton(E); - method public static java.util.List singletonList(E); - method public static java.util.Map singletonMap(K, V); - method public static void sort(java.util.List); - method public static void sort(java.util.List, java.util.Comparator); + method public static java.util.Set singleton(E); + method public static java.util.List singletonList(E); + method public static java.util.Map singletonMap(K, V); + method public static > void sort(java.util.List); + method public static void sort(java.util.List, java.util.Comparator); method public static void swap(java.util.List, int, int); - method public static java.util.Collection synchronizedCollection(java.util.Collection); - method public static java.util.List synchronizedList(java.util.List); - method public static java.util.Map synchronizedMap(java.util.Map); - method public static java.util.Set synchronizedSet(java.util.Set); - method public static java.util.SortedMap synchronizedSortedMap(java.util.SortedMap); - method public static java.util.SortedSet synchronizedSortedSet(java.util.SortedSet); - method public static java.util.Collection unmodifiableCollection(java.util.Collection); - method public static java.util.List unmodifiableList(java.util.List); - method public static java.util.Map unmodifiableMap(java.util.Map); - method public static java.util.Set unmodifiableSet(java.util.Set); - method public static java.util.SortedMap unmodifiableSortedMap(java.util.SortedMap); - method public static java.util.SortedSet unmodifiableSortedSet(java.util.SortedSet); + method public static java.util.Collection synchronizedCollection(java.util.Collection); + method public static java.util.List synchronizedList(java.util.List); + method public static java.util.Map synchronizedMap(java.util.Map); + method public static java.util.Set synchronizedSet(java.util.Set); + method public static java.util.SortedMap synchronizedSortedMap(java.util.SortedMap); + method public static java.util.SortedSet synchronizedSortedSet(java.util.SortedSet); + method public static java.util.Collection unmodifiableCollection(java.util.Collection); + method public static java.util.List unmodifiableList(java.util.List); + method public static java.util.Map unmodifiableMap(java.util.Map); + method public static java.util.Set unmodifiableSet(java.util.Set); + method public static java.util.SortedMap unmodifiableSortedMap(java.util.SortedMap); + method public static java.util.SortedSet unmodifiableSortedSet(java.util.SortedSet); field public static final java.util.List EMPTY_LIST; field public static final java.util.Map EMPTY_MAP; field public static final java.util.Set EMPTY_SET; } - public abstract interface Comparator { + public abstract interface Comparator { method public abstract int compare(T, T); - method public static java.util.Comparator comparing(java.util.function.Function, java.util.Comparator); - method public static java.util.Comparator comparing(java.util.function.Function); - method public static java.util.Comparator comparingDouble(java.util.function.ToDoubleFunction); - method public static java.util.Comparator comparingInt(java.util.function.ToIntFunction); - method public static java.util.Comparator comparingLong(java.util.function.ToLongFunction); + method public static java.util.Comparator comparing(java.util.function.Function, java.util.Comparator); + method public static > java.util.Comparator comparing(java.util.function.Function); + method public static java.util.Comparator comparingDouble(java.util.function.ToDoubleFunction); + method public static java.util.Comparator comparingInt(java.util.function.ToIntFunction); + method public static java.util.Comparator comparingLong(java.util.function.ToLongFunction); method public abstract boolean equals(java.lang.Object); - method public static java.util.Comparator naturalOrder(); - method public static java.util.Comparator nullsFirst(java.util.Comparator); - method public static java.util.Comparator nullsLast(java.util.Comparator); - method public static java.util.Comparator reverseOrder(); + method public static > java.util.Comparator naturalOrder(); + method public static java.util.Comparator nullsFirst(java.util.Comparator); + method public static java.util.Comparator nullsLast(java.util.Comparator); + method public static > java.util.Comparator reverseOrder(); method public default java.util.Comparator reversed(); method public default java.util.Comparator thenComparing(java.util.Comparator); - method public default java.util.Comparator thenComparing(java.util.function.Function, java.util.Comparator); - method public default java.util.Comparator thenComparing(java.util.function.Function); + method public default java.util.Comparator thenComparing(java.util.function.Function, java.util.Comparator); + method public default > java.util.Comparator thenComparing(java.util.function.Function); method public default java.util.Comparator thenComparingDouble(java.util.function.ToDoubleFunction); method public default java.util.Comparator thenComparingInt(java.util.function.ToIntFunction); method public default java.util.Comparator thenComparingLong(java.util.function.ToLongFunction); @@ -57919,7 +57919,7 @@ package java.util { method public deprecated java.lang.String toLocaleString(); } - public abstract interface Deque implements java.util.Queue { + public abstract interface Deque implements java.util.Queue { method public abstract boolean add(E); method public abstract void addFirst(E); method public abstract void addLast(E); @@ -57949,7 +57949,7 @@ package java.util { method public abstract int size(); } - public abstract class Dictionary { + public abstract class Dictionary { ctor public Dictionary(); method public abstract java.util.Enumeration elements(); method public abstract V get(java.lang.Object); @@ -57980,7 +57980,7 @@ package java.util { ctor public EmptyStackException(); } - public class EnumMap extends java.util.AbstractMap implements java.lang.Cloneable java.io.Serializable { + public class EnumMap, V> extends java.util.AbstractMap implements java.lang.Cloneable java.io.Serializable { ctor public EnumMap(java.lang.Class); ctor public EnumMap(java.util.EnumMap); ctor public EnumMap(java.util.Map); @@ -57988,23 +57988,23 @@ package java.util { method public java.util.Set> entrySet(); } - public abstract class EnumSet extends java.util.AbstractSet implements java.lang.Cloneable java.io.Serializable { - method public static java.util.EnumSet allOf(java.lang.Class); + public abstract class EnumSet> extends java.util.AbstractSet implements java.lang.Cloneable java.io.Serializable { + method public static > java.util.EnumSet allOf(java.lang.Class); method public java.util.EnumSet clone(); - method public static java.util.EnumSet complementOf(java.util.EnumSet); - method public static java.util.EnumSet copyOf(java.util.EnumSet); - method public static java.util.EnumSet copyOf(java.util.Collection); - method public static java.util.EnumSet noneOf(java.lang.Class); - method public static java.util.EnumSet of(E); - method public static java.util.EnumSet of(E, E); - method public static java.util.EnumSet of(E, E, E); - method public static java.util.EnumSet of(E, E, E, E); - method public static java.util.EnumSet of(E, E, E, E, E); - method public static java.util.EnumSet of(E, E...); - method public static java.util.EnumSet range(E, E); - } - - public abstract interface Enumeration { + method public static > java.util.EnumSet complementOf(java.util.EnumSet); + method public static > java.util.EnumSet copyOf(java.util.EnumSet); + method public static > java.util.EnumSet copyOf(java.util.Collection); + method public static > java.util.EnumSet noneOf(java.lang.Class); + method public static > java.util.EnumSet of(E); + method public static > java.util.EnumSet of(E, E); + method public static > java.util.EnumSet of(E, E, E); + method public static > java.util.EnumSet of(E, E, E, E); + method public static > java.util.EnumSet of(E, E, E, E, E); + method public static > java.util.EnumSet of(E, E...); + method public static > java.util.EnumSet range(E, E); + } + + public abstract interface Enumeration { method public abstract boolean hasMoreElements(); method public abstract E nextElement(); } @@ -58012,7 +58012,7 @@ package java.util { public abstract interface EventListener { } - public abstract class EventListenerProxy implements java.util.EventListener { + public abstract class EventListenerProxy implements java.util.EventListener { ctor public EventListenerProxy(T); method public T getListener(); } @@ -58098,7 +58098,7 @@ package java.util { field public static final int BC = 0; // 0x0 } - public class HashMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.Map java.io.Serializable { + public class HashMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.Map java.io.Serializable { ctor public HashMap(int, float); ctor public HashMap(int); ctor public HashMap(); @@ -58110,7 +58110,7 @@ package java.util { method public void replaceAll(java.util.function.BiFunction); } - public class HashSet extends java.util.AbstractSet implements java.lang.Cloneable java.io.Serializable java.util.Set { + public class HashSet extends java.util.AbstractSet implements java.lang.Cloneable java.io.Serializable java.util.Set { ctor public HashSet(); ctor public HashSet(java.util.Collection); ctor public HashSet(int, float); @@ -58121,7 +58121,7 @@ package java.util { method public java.util.Spliterator spliterator(); } - public class Hashtable extends java.util.Dictionary implements java.lang.Cloneable java.util.Map java.io.Serializable { + public class Hashtable extends java.util.Dictionary implements java.lang.Cloneable java.util.Map java.io.Serializable { ctor public Hashtable(int, float); ctor public Hashtable(int); ctor public Hashtable(); @@ -58156,7 +58156,7 @@ package java.util { method public java.util.Collection values(); } - public class IdentityHashMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.Map java.io.Serializable { + public class IdentityHashMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.Map java.io.Serializable { ctor public IdentityHashMap(); ctor public IdentityHashMap(int); ctor public IdentityHashMap(java.util.Map); @@ -58223,14 +58223,14 @@ package java.util { ctor public InvalidPropertiesFormatException(java.lang.String); } - public abstract interface Iterator { + public abstract interface Iterator { method public default void forEachRemaining(java.util.function.Consumer); method public abstract boolean hasNext(); method public abstract E next(); method public default void remove(); } - public class LinkedHashMap extends java.util.HashMap implements java.util.Map { + public class LinkedHashMap extends java.util.HashMap implements java.util.Map { ctor public LinkedHashMap(int, float); ctor public LinkedHashMap(int); ctor public LinkedHashMap(); @@ -58239,14 +58239,14 @@ package java.util { method protected boolean removeEldestEntry(java.util.Map.Entry); } - public class LinkedHashSet extends java.util.HashSet implements java.lang.Cloneable java.io.Serializable java.util.Set { + public class LinkedHashSet extends java.util.HashSet implements java.lang.Cloneable java.io.Serializable java.util.Set { ctor public LinkedHashSet(int, float); ctor public LinkedHashSet(int); ctor public LinkedHashSet(); ctor public LinkedHashSet(java.util.Collection); } - public class LinkedList extends java.util.AbstractSequentialList implements java.lang.Cloneable java.util.Deque java.util.List java.io.Serializable { + public class LinkedList extends java.util.AbstractSequentialList implements java.lang.Cloneable java.util.Deque java.util.List java.io.Serializable { ctor public LinkedList(); ctor public LinkedList(java.util.Collection); method public void addFirst(E); @@ -58277,7 +58277,7 @@ package java.util { method public java.util.Spliterator spliterator(); } - public abstract interface List implements java.util.Collection { + public abstract interface List implements java.util.Collection { method public abstract boolean add(E); method public abstract void add(int, E); method public abstract boolean addAll(java.util.Collection); @@ -58304,10 +58304,10 @@ package java.util { method public default void sort(java.util.Comparator); method public abstract java.util.List subList(int, int); method public abstract java.lang.Object[] toArray(); - method public abstract T[] toArray(T[]); + method public abstract T[] toArray(T[]); } - public abstract interface ListIterator implements java.util.Iterator { + public abstract interface ListIterator implements java.util.Iterator { method public abstract void add(E); method public abstract boolean hasNext(); method public abstract boolean hasPrevious(); @@ -58424,7 +58424,7 @@ package java.util { method public final long getSum(); } - public abstract interface Map { + public abstract interface Map { method public abstract void clear(); method public default V compute(K, java.util.function.BiFunction); method public default V computeIfAbsent(K, java.util.function.Function); @@ -58452,11 +58452,11 @@ package java.util { method public abstract java.util.Collection values(); } - public static abstract interface Map.Entry { - method public static java.util.Comparator> comparingByKey(); - method public static java.util.Comparator> comparingByKey(java.util.Comparator); - method public static java.util.Comparator> comparingByValue(); - method public static java.util.Comparator> comparingByValue(java.util.Comparator); + public static abstract interface Map.Entry { + method public static , V> java.util.Comparator> comparingByKey(); + method public static java.util.Comparator> comparingByKey(java.util.Comparator); + method public static > java.util.Comparator> comparingByValue(); + method public static java.util.Comparator> comparingByValue(java.util.Comparator); method public abstract boolean equals(java.lang.Object); method public abstract K getKey(); method public abstract V getValue(); @@ -58480,7 +58480,7 @@ package java.util { method public java.lang.String getKey(); } - public abstract interface NavigableMap implements java.util.SortedMap { + public abstract interface NavigableMap implements java.util.SortedMap { method public abstract java.util.Map.Entry ceilingEntry(K); method public abstract K ceilingKey(K); method public abstract java.util.NavigableSet descendingKeySet(); @@ -58504,7 +58504,7 @@ package java.util { method public abstract java.util.SortedMap tailMap(K); } - public abstract interface NavigableSet implements java.util.SortedSet { + public abstract interface NavigableSet implements java.util.SortedSet { method public abstract E ceiling(E); method public abstract java.util.Iterator descendingIterator(); method public abstract java.util.NavigableSet descendingSet(); @@ -58528,16 +58528,16 @@ package java.util { } public final class Objects { - method public static int compare(T, T, java.util.Comparator); + method public static int compare(T, T, java.util.Comparator); method public static boolean deepEquals(java.lang.Object, java.lang.Object); method public static boolean equals(java.lang.Object, java.lang.Object); method public static int hash(java.lang.Object...); method public static int hashCode(java.lang.Object); method public static boolean isNull(java.lang.Object); method public static boolean nonNull(java.lang.Object); - method public static T requireNonNull(T); - method public static T requireNonNull(T, java.lang.String); - method public static T requireNonNull(T, java.util.function.Supplier); + method public static T requireNonNull(T); + method public static T requireNonNull(T, java.lang.String); + method public static T requireNonNull(T, java.util.function.Supplier); method public static java.lang.String toString(java.lang.Object); method public static java.lang.String toString(java.lang.Object, java.lang.String); } @@ -58559,19 +58559,19 @@ package java.util { method public abstract void update(java.util.Observable, java.lang.Object); } - public final class Optional { - method public static java.util.Optional empty(); + public final class Optional { + method public static java.util.Optional empty(); method public java.util.Optional filter(java.util.function.Predicate); - method public java.util.Optional flatMap(java.util.function.Function>); + method public java.util.Optional flatMap(java.util.function.Function>); method public T get(); method public void ifPresent(java.util.function.Consumer); method public boolean isPresent(); - method public java.util.Optional map(java.util.function.Function); - method public static java.util.Optional of(T); - method public static java.util.Optional ofNullable(T); + method public java.util.Optional map(java.util.function.Function); + method public static java.util.Optional of(T); + method public static java.util.Optional ofNullable(T); method public T orElse(T); method public T orElseGet(java.util.function.Supplier); - method public T orElseThrow(java.util.function.Supplier) throws java.lang.Throwable; + method public T orElseThrow(java.util.function.Supplier) throws java.lang.Throwable; } public final class OptionalDouble { @@ -58582,7 +58582,7 @@ package java.util { method public static java.util.OptionalDouble of(double); method public double orElse(double); method public double orElseGet(java.util.function.DoubleSupplier); - method public double orElseThrow(java.util.function.Supplier) throws java.lang.Throwable; + method public double orElseThrow(java.util.function.Supplier) throws java.lang.Throwable; } public final class OptionalInt { @@ -58593,7 +58593,7 @@ package java.util { method public static java.util.OptionalInt of(int); method public int orElse(int); method public int orElseGet(java.util.function.IntSupplier); - method public int orElseThrow(java.util.function.Supplier) throws java.lang.Throwable; + method public int orElseThrow(java.util.function.Supplier) throws java.lang.Throwable; } public final class OptionalLong { @@ -58604,10 +58604,10 @@ package java.util { method public static java.util.OptionalLong of(long); method public long orElse(long); method public long orElseGet(java.util.function.LongSupplier); - method public long orElseThrow(java.util.function.Supplier) throws java.lang.Throwable; + method public long orElseThrow(java.util.function.Supplier) throws java.lang.Throwable; } - public abstract interface PrimitiveIterator implements java.util.Iterator { + public abstract interface PrimitiveIterator implements java.util.Iterator { method public abstract void forEachRemaining(T_CONS); } @@ -58632,7 +58632,7 @@ package java.util { method public abstract long nextLong(); } - public class PriorityQueue extends java.util.AbstractQueue implements java.io.Serializable { + public class PriorityQueue extends java.util.AbstractQueue implements java.io.Serializable { ctor public PriorityQueue(); ctor public PriorityQueue(int); ctor public PriorityQueue(java.util.Comparator); @@ -58681,7 +58681,7 @@ package java.util { method public java.lang.Object handleGetObject(java.lang.String); } - public abstract interface Queue implements java.util.Collection { + public abstract interface Queue implements java.util.Collection { method public abstract boolean add(E); method public abstract E element(); method public abstract boolean offer(E); @@ -58831,15 +58831,15 @@ package java.util { ctor public ServiceConfigurationError(java.lang.String, java.lang.Throwable); } - public final class ServiceLoader implements java.lang.Iterable { + public final class ServiceLoader implements java.lang.Iterable { method public java.util.Iterator iterator(); - method public static java.util.ServiceLoader load(java.lang.Class, java.lang.ClassLoader); - method public static java.util.ServiceLoader load(java.lang.Class); - method public static java.util.ServiceLoader loadInstalled(java.lang.Class); + method public static java.util.ServiceLoader load(java.lang.Class, java.lang.ClassLoader); + method public static java.util.ServiceLoader load(java.lang.Class); + method public static java.util.ServiceLoader loadInstalled(java.lang.Class); method public void reload(); } - public abstract interface Set implements java.util.Collection { + public abstract interface Set implements java.util.Collection { method public abstract boolean add(E); method public abstract boolean addAll(java.util.Collection); method public abstract void clear(); @@ -58854,7 +58854,7 @@ package java.util { method public abstract boolean retainAll(java.util.Collection); method public abstract int size(); method public abstract java.lang.Object[] toArray(); - method public abstract T[] toArray(T[]); + method public abstract T[] toArray(T[]); } public class SimpleTimeZone extends java.util.TimeZone { @@ -58880,7 +58880,7 @@ package java.util { field public static final int WALL_TIME = 0; // 0x0 } - public abstract interface SortedMap implements java.util.Map { + public abstract interface SortedMap implements java.util.Map { method public abstract java.util.Comparator comparator(); method public abstract java.util.Set> entrySet(); method public abstract K firstKey(); @@ -58892,7 +58892,7 @@ package java.util { method public abstract java.util.Collection values(); } - public abstract interface SortedSet implements java.util.Set { + public abstract interface SortedSet implements java.util.Set { method public abstract java.util.Comparator comparator(); method public abstract E first(); method public abstract java.util.SortedSet headSet(E); @@ -58901,7 +58901,7 @@ package java.util { method public abstract java.util.SortedSet tailSet(E); } - public abstract interface Spliterator { + public abstract interface Spliterator { method public abstract int characteristics(); method public abstract long estimateSize(); method public default void forEachRemaining(java.util.function.Consumer); @@ -58944,7 +58944,7 @@ package java.util { method public abstract java.util.Spliterator.OfLong trySplit(); } - public static abstract interface Spliterator.OfPrimitive implements java.util.Spliterator { + public static abstract interface Spliterator.OfPrimitive> implements java.util.Spliterator { method public default void forEachRemaining(T_CONS); method public abstract boolean tryAdvance(T_CONS); method public abstract T_SPLITR trySplit(); @@ -58954,25 +58954,25 @@ package java.util { method public static java.util.Spliterator.OfDouble emptyDoubleSpliterator(); method public static java.util.Spliterator.OfInt emptyIntSpliterator(); method public static java.util.Spliterator.OfLong emptyLongSpliterator(); - method public static java.util.Spliterator emptySpliterator(); - method public static java.util.Iterator iterator(java.util.Spliterator); + method public static java.util.Spliterator emptySpliterator(); + method public static java.util.Iterator iterator(java.util.Spliterator); method public static java.util.PrimitiveIterator.OfInt iterator(java.util.Spliterator.OfInt); method public static java.util.PrimitiveIterator.OfLong iterator(java.util.Spliterator.OfLong); method public static java.util.PrimitiveIterator.OfDouble iterator(java.util.Spliterator.OfDouble); - method public static java.util.Spliterator spliterator(java.lang.Object[], int); - method public static java.util.Spliterator spliterator(java.lang.Object[], int, int, int); + method public static java.util.Spliterator spliterator(java.lang.Object[], int); + method public static java.util.Spliterator spliterator(java.lang.Object[], int, int, int); method public static java.util.Spliterator.OfInt spliterator(int[], int); method public static java.util.Spliterator.OfInt spliterator(int[], int, int, int); method public static java.util.Spliterator.OfLong spliterator(long[], int); method public static java.util.Spliterator.OfLong spliterator(long[], int, int, int); method public static java.util.Spliterator.OfDouble spliterator(double[], int); method public static java.util.Spliterator.OfDouble spliterator(double[], int, int, int); - method public static java.util.Spliterator spliterator(java.util.Collection, int); - method public static java.util.Spliterator spliterator(java.util.Iterator, long, int); + method public static java.util.Spliterator spliterator(java.util.Collection, int); + method public static java.util.Spliterator spliterator(java.util.Iterator, long, int); method public static java.util.Spliterator.OfInt spliterator(java.util.PrimitiveIterator.OfInt, long, int); method public static java.util.Spliterator.OfLong spliterator(java.util.PrimitiveIterator.OfLong, long, int); method public static java.util.Spliterator.OfDouble spliterator(java.util.PrimitiveIterator.OfDouble, long, int); - method public static java.util.Spliterator spliteratorUnknownSize(java.util.Iterator, int); + method public static java.util.Spliterator spliteratorUnknownSize(java.util.Iterator, int); method public static java.util.Spliterator.OfInt spliteratorUnknownSize(java.util.PrimitiveIterator.OfInt, int); method public static java.util.Spliterator.OfLong spliteratorUnknownSize(java.util.PrimitiveIterator.OfLong, int); method public static java.util.Spliterator.OfDouble spliteratorUnknownSize(java.util.PrimitiveIterator.OfDouble, int); @@ -58999,7 +58999,7 @@ package java.util { method public java.util.Spliterator.OfLong trySplit(); } - public static abstract class Spliterators.AbstractSpliterator implements java.util.Spliterator { + public static abstract class Spliterators.AbstractSpliterator implements java.util.Spliterator { ctor protected Spliterators.AbstractSpliterator(long, int); method public int characteristics(); method public long estimateSize(); @@ -59034,7 +59034,7 @@ package java.util { method public java.util.SplittableRandom split(); } - public class Stack extends java.util.Vector { + public class Stack extends java.util.Vector { ctor public Stack(); method public boolean empty(); method public synchronized E peek(); @@ -59118,7 +59118,7 @@ package java.util { ctor public TooManyListenersException(java.lang.String); } - public class TreeMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.NavigableMap java.io.Serializable { + public class TreeMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.NavigableMap java.io.Serializable { ctor public TreeMap(); ctor public TreeMap(java.util.Comparator); ctor public TreeMap(java.util.Map); @@ -59155,7 +59155,7 @@ package java.util { method public java.util.SortedMap tailMap(K); } - public class TreeSet extends java.util.AbstractSet implements java.lang.Cloneable java.util.NavigableSet java.io.Serializable { + public class TreeSet extends java.util.AbstractSet implements java.lang.Cloneable java.util.NavigableSet java.io.Serializable { ctor public TreeSet(); ctor public TreeSet(java.util.Comparator); ctor public TreeSet(java.util.Collection); @@ -59208,7 +59208,7 @@ package java.util { method public java.lang.String getFlags(); } - public class Vector extends java.util.AbstractList implements java.lang.Cloneable java.util.List java.util.RandomAccess java.io.Serializable { + public class Vector extends java.util.AbstractList implements java.lang.Cloneable java.util.List java.util.RandomAccess java.io.Serializable { ctor public Vector(int, int); ctor public Vector(int); ctor public Vector(); @@ -59243,7 +59243,7 @@ package java.util { field protected java.lang.Object[] elementData; } - public class WeakHashMap extends java.util.AbstractMap implements java.util.Map { + public class WeakHashMap extends java.util.AbstractMap implements java.util.Map { ctor public WeakHashMap(int, float); ctor public WeakHashMap(int); ctor public WeakHashMap(); @@ -59259,18 +59259,18 @@ package java.util.concurrent { public abstract class AbstractExecutorService implements java.util.concurrent.ExecutorService { ctor public AbstractExecutorService(); - method public java.util.List> invokeAll(java.util.Collection>) throws java.lang.InterruptedException; - method public java.util.List> invokeAll(java.util.Collection>, long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException; - method public T invokeAny(java.util.Collection>) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException; - method public T invokeAny(java.util.Collection>, long, java.util.concurrent.TimeUnit) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException, java.util.concurrent.TimeoutException; - method protected java.util.concurrent.RunnableFuture newTaskFor(java.lang.Runnable, T); - method protected java.util.concurrent.RunnableFuture newTaskFor(java.util.concurrent.Callable); + method public java.util.List> invokeAll(java.util.Collection>) throws java.lang.InterruptedException; + method public java.util.List> invokeAll(java.util.Collection>, long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException; + method public T invokeAny(java.util.Collection>) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException; + method public T invokeAny(java.util.Collection>, long, java.util.concurrent.TimeUnit) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException, java.util.concurrent.TimeoutException; + method protected java.util.concurrent.RunnableFuture newTaskFor(java.lang.Runnable, T); + method protected java.util.concurrent.RunnableFuture newTaskFor(java.util.concurrent.Callable); method public java.util.concurrent.Future submit(java.lang.Runnable); - method public java.util.concurrent.Future submit(java.lang.Runnable, T); - method public java.util.concurrent.Future submit(java.util.concurrent.Callable); + method public java.util.concurrent.Future submit(java.lang.Runnable, T); + method public java.util.concurrent.Future submit(java.util.concurrent.Callable); } - public class ArrayBlockingQueue extends java.util.AbstractQueue implements java.util.concurrent.BlockingQueue java.io.Serializable { + public class ArrayBlockingQueue extends java.util.AbstractQueue implements java.util.concurrent.BlockingQueue java.io.Serializable { ctor public ArrayBlockingQueue(int); ctor public ArrayBlockingQueue(int, boolean); ctor public ArrayBlockingQueue(int, boolean, java.util.Collection); @@ -59289,7 +59289,7 @@ package java.util.concurrent { method public E take() throws java.lang.InterruptedException; } - public abstract interface BlockingDeque implements java.util.concurrent.BlockingQueue java.util.Deque { + public abstract interface BlockingDeque implements java.util.concurrent.BlockingQueue java.util.Deque { method public abstract boolean add(E); method public abstract void addFirst(E); method public abstract void addLast(E); @@ -59321,7 +59321,7 @@ package java.util.concurrent { method public abstract E takeLast() throws java.lang.InterruptedException; } - public abstract interface BlockingQueue implements java.util.Queue { + public abstract interface BlockingQueue implements java.util.Queue { method public abstract boolean add(E); method public abstract boolean contains(java.lang.Object); method public abstract int drainTo(java.util.Collection); @@ -59340,7 +59340,7 @@ package java.util.concurrent { ctor public BrokenBarrierException(java.lang.String); } - public abstract interface Callable { + public abstract interface Callable { method public abstract V call() throws java.lang.Exception; } @@ -59349,28 +59349,28 @@ package java.util.concurrent { ctor public CancellationException(java.lang.String); } - public class CompletableFuture implements java.util.concurrent.CompletionStage java.util.concurrent.Future { + public class CompletableFuture implements java.util.concurrent.CompletionStage java.util.concurrent.Future { ctor public CompletableFuture(); method public java.util.concurrent.CompletableFuture acceptEither(java.util.concurrent.CompletionStage, java.util.function.Consumer); method public java.util.concurrent.CompletableFuture acceptEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Consumer); method public java.util.concurrent.CompletableFuture acceptEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Consumer, java.util.concurrent.Executor); method public static java.util.concurrent.CompletableFuture allOf(java.util.concurrent.CompletableFuture...); method public static java.util.concurrent.CompletableFuture anyOf(java.util.concurrent.CompletableFuture...); - method public java.util.concurrent.CompletableFuture applyToEither(java.util.concurrent.CompletionStage, java.util.function.Function); - method public java.util.concurrent.CompletableFuture applyToEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Function); - method public java.util.concurrent.CompletableFuture applyToEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Function, java.util.concurrent.Executor); + method public java.util.concurrent.CompletableFuture applyToEither(java.util.concurrent.CompletionStage, java.util.function.Function); + method public java.util.concurrent.CompletableFuture applyToEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Function); + method public java.util.concurrent.CompletableFuture applyToEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Function, java.util.concurrent.Executor); method public boolean cancel(boolean); method public boolean complete(T); method public boolean completeExceptionally(java.lang.Throwable); - method public static java.util.concurrent.CompletableFuture completedFuture(U); + method public static java.util.concurrent.CompletableFuture completedFuture(U); method public java.util.concurrent.CompletableFuture exceptionally(java.util.function.Function); method public T get() throws java.util.concurrent.ExecutionException, java.lang.InterruptedException; method public T get(long, java.util.concurrent.TimeUnit) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException, java.util.concurrent.TimeoutException; method public T getNow(T); method public int getNumberOfDependents(); - method public java.util.concurrent.CompletableFuture handle(java.util.function.BiFunction); - method public java.util.concurrent.CompletableFuture handleAsync(java.util.function.BiFunction); - method public java.util.concurrent.CompletableFuture handleAsync(java.util.function.BiFunction, java.util.concurrent.Executor); + method public java.util.concurrent.CompletableFuture handle(java.util.function.BiFunction); + method public java.util.concurrent.CompletableFuture handleAsync(java.util.function.BiFunction); + method public java.util.concurrent.CompletableFuture handleAsync(java.util.function.BiFunction, java.util.concurrent.Executor); method public boolean isCancelled(); method public boolean isCompletedExceptionally(); method public boolean isDone(); @@ -59385,23 +59385,23 @@ package java.util.concurrent { method public java.util.concurrent.CompletableFuture runAfterEitherAsync(java.util.concurrent.CompletionStage, java.lang.Runnable, java.util.concurrent.Executor); method public static java.util.concurrent.CompletableFuture runAsync(java.lang.Runnable); method public static java.util.concurrent.CompletableFuture runAsync(java.lang.Runnable, java.util.concurrent.Executor); - method public static java.util.concurrent.CompletableFuture supplyAsync(java.util.function.Supplier); - method public static java.util.concurrent.CompletableFuture supplyAsync(java.util.function.Supplier, java.util.concurrent.Executor); + method public static java.util.concurrent.CompletableFuture supplyAsync(java.util.function.Supplier); + method public static java.util.concurrent.CompletableFuture supplyAsync(java.util.function.Supplier, java.util.concurrent.Executor); method public java.util.concurrent.CompletableFuture thenAccept(java.util.function.Consumer); method public java.util.concurrent.CompletableFuture thenAcceptAsync(java.util.function.Consumer); method public java.util.concurrent.CompletableFuture thenAcceptAsync(java.util.function.Consumer, java.util.concurrent.Executor); - method public java.util.concurrent.CompletableFuture thenAcceptBoth(java.util.concurrent.CompletionStage, java.util.function.BiConsumer); - method public java.util.concurrent.CompletableFuture thenAcceptBothAsync(java.util.concurrent.CompletionStage, java.util.function.BiConsumer); - method public java.util.concurrent.CompletableFuture thenAcceptBothAsync(java.util.concurrent.CompletionStage, java.util.function.BiConsumer, java.util.concurrent.Executor); - method public java.util.concurrent.CompletableFuture thenApply(java.util.function.Function); - method public java.util.concurrent.CompletableFuture thenApplyAsync(java.util.function.Function); - method public java.util.concurrent.CompletableFuture thenApplyAsync(java.util.function.Function, java.util.concurrent.Executor); - method public java.util.concurrent.CompletableFuture thenCombine(java.util.concurrent.CompletionStage, java.util.function.BiFunction); - method public java.util.concurrent.CompletableFuture thenCombineAsync(java.util.concurrent.CompletionStage, java.util.function.BiFunction); - method public java.util.concurrent.CompletableFuture thenCombineAsync(java.util.concurrent.CompletionStage, java.util.function.BiFunction, java.util.concurrent.Executor); - method public java.util.concurrent.CompletableFuture thenCompose(java.util.function.Function>); - method public java.util.concurrent.CompletableFuture thenComposeAsync(java.util.function.Function>); - method public java.util.concurrent.CompletableFuture thenComposeAsync(java.util.function.Function>, java.util.concurrent.Executor); + method public java.util.concurrent.CompletableFuture thenAcceptBoth(java.util.concurrent.CompletionStage, java.util.function.BiConsumer); + method public java.util.concurrent.CompletableFuture thenAcceptBothAsync(java.util.concurrent.CompletionStage, java.util.function.BiConsumer); + method public java.util.concurrent.CompletableFuture thenAcceptBothAsync(java.util.concurrent.CompletionStage, java.util.function.BiConsumer, java.util.concurrent.Executor); + method public java.util.concurrent.CompletableFuture thenApply(java.util.function.Function); + method public java.util.concurrent.CompletableFuture thenApplyAsync(java.util.function.Function); + method public java.util.concurrent.CompletableFuture thenApplyAsync(java.util.function.Function, java.util.concurrent.Executor); + method public java.util.concurrent.CompletableFuture thenCombine(java.util.concurrent.CompletionStage, java.util.function.BiFunction); + method public java.util.concurrent.CompletableFuture thenCombineAsync(java.util.concurrent.CompletionStage, java.util.function.BiFunction); + method public java.util.concurrent.CompletableFuture thenCombineAsync(java.util.concurrent.CompletionStage, java.util.function.BiFunction, java.util.concurrent.Executor); + method public java.util.concurrent.CompletableFuture thenCompose(java.util.function.Function>); + method public java.util.concurrent.CompletableFuture thenComposeAsync(java.util.function.Function>); + method public java.util.concurrent.CompletableFuture thenComposeAsync(java.util.function.Function>, java.util.concurrent.Executor); method public java.util.concurrent.CompletableFuture thenRun(java.lang.Runnable); method public java.util.concurrent.CompletableFuture thenRunAsync(java.lang.Runnable); method public java.util.concurrent.CompletableFuture thenRunAsync(java.lang.Runnable, java.util.concurrent.Executor); @@ -59421,7 +59421,7 @@ package java.util.concurrent { ctor public CompletionException(java.lang.Throwable); } - public abstract interface CompletionService { + public abstract interface CompletionService { method public abstract java.util.concurrent.Future poll(); method public abstract java.util.concurrent.Future poll(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException; method public abstract java.util.concurrent.Future submit(java.util.concurrent.Callable); @@ -59429,17 +59429,17 @@ package java.util.concurrent { method public abstract java.util.concurrent.Future take() throws java.lang.InterruptedException; } - public abstract interface CompletionStage { + public abstract interface CompletionStage { method public abstract java.util.concurrent.CompletionStage acceptEither(java.util.concurrent.CompletionStage, java.util.function.Consumer); method public abstract java.util.concurrent.CompletionStage acceptEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Consumer); method public abstract java.util.concurrent.CompletionStage acceptEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Consumer, java.util.concurrent.Executor); - method public abstract java.util.concurrent.CompletionStage applyToEither(java.util.concurrent.CompletionStage, java.util.function.Function); - method public abstract java.util.concurrent.CompletionStage applyToEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Function); - method public abstract java.util.concurrent.CompletionStage applyToEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Function, java.util.concurrent.Executor); + method public abstract java.util.concurrent.CompletionStage applyToEither(java.util.concurrent.CompletionStage, java.util.function.Function); + method public abstract java.util.concurrent.CompletionStage applyToEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Function); + method public abstract java.util.concurrent.CompletionStage applyToEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Function, java.util.concurrent.Executor); method public abstract java.util.concurrent.CompletionStage exceptionally(java.util.function.Function); - method public abstract java.util.concurrent.CompletionStage handle(java.util.function.BiFunction); - method public abstract java.util.concurrent.CompletionStage handleAsync(java.util.function.BiFunction); - method public abstract java.util.concurrent.CompletionStage handleAsync(java.util.function.BiFunction, java.util.concurrent.Executor); + method public abstract java.util.concurrent.CompletionStage handle(java.util.function.BiFunction); + method public abstract java.util.concurrent.CompletionStage handleAsync(java.util.function.BiFunction); + method public abstract java.util.concurrent.CompletionStage handleAsync(java.util.function.BiFunction, java.util.concurrent.Executor); method public abstract java.util.concurrent.CompletionStage runAfterBoth(java.util.concurrent.CompletionStage, java.lang.Runnable); method public abstract java.util.concurrent.CompletionStage runAfterBothAsync(java.util.concurrent.CompletionStage, java.lang.Runnable); method public abstract java.util.concurrent.CompletionStage runAfterBothAsync(java.util.concurrent.CompletionStage, java.lang.Runnable, java.util.concurrent.Executor); @@ -59449,18 +59449,18 @@ package java.util.concurrent { method public abstract java.util.concurrent.CompletionStage thenAccept(java.util.function.Consumer); method public abstract java.util.concurrent.CompletionStage thenAcceptAsync(java.util.function.Consumer); method public abstract java.util.concurrent.CompletionStage thenAcceptAsync(java.util.function.Consumer, java.util.concurrent.Executor); - method public abstract java.util.concurrent.CompletionStage thenAcceptBoth(java.util.concurrent.CompletionStage, java.util.function.BiConsumer); - method public abstract java.util.concurrent.CompletionStage thenAcceptBothAsync(java.util.concurrent.CompletionStage, java.util.function.BiConsumer); - method public abstract java.util.concurrent.CompletionStage thenAcceptBothAsync(java.util.concurrent.CompletionStage, java.util.function.BiConsumer, java.util.concurrent.Executor); - method public abstract java.util.concurrent.CompletionStage thenApply(java.util.function.Function); - method public abstract java.util.concurrent.CompletionStage thenApplyAsync(java.util.function.Function); - method public abstract java.util.concurrent.CompletionStage thenApplyAsync(java.util.function.Function, java.util.concurrent.Executor); - method public abstract java.util.concurrent.CompletionStage thenCombine(java.util.concurrent.CompletionStage, java.util.function.BiFunction); - method public abstract java.util.concurrent.CompletionStage thenCombineAsync(java.util.concurrent.CompletionStage, java.util.function.BiFunction); - method public abstract java.util.concurrent.CompletionStage thenCombineAsync(java.util.concurrent.CompletionStage, java.util.function.BiFunction, java.util.concurrent.Executor); - method public abstract java.util.concurrent.CompletionStage thenCompose(java.util.function.Function>); - method public abstract java.util.concurrent.CompletionStage thenComposeAsync(java.util.function.Function>); - method public abstract java.util.concurrent.CompletionStage thenComposeAsync(java.util.function.Function>, java.util.concurrent.Executor); + method public abstract java.util.concurrent.CompletionStage thenAcceptBoth(java.util.concurrent.CompletionStage, java.util.function.BiConsumer); + method public abstract java.util.concurrent.CompletionStage thenAcceptBothAsync(java.util.concurrent.CompletionStage, java.util.function.BiConsumer); + method public abstract java.util.concurrent.CompletionStage thenAcceptBothAsync(java.util.concurrent.CompletionStage, java.util.function.BiConsumer, java.util.concurrent.Executor); + method public abstract java.util.concurrent.CompletionStage thenApply(java.util.function.Function); + method public abstract java.util.concurrent.CompletionStage thenApplyAsync(java.util.function.Function); + method public abstract java.util.concurrent.CompletionStage thenApplyAsync(java.util.function.Function, java.util.concurrent.Executor); + method public abstract java.util.concurrent.CompletionStage thenCombine(java.util.concurrent.CompletionStage, java.util.function.BiFunction); + method public abstract java.util.concurrent.CompletionStage thenCombineAsync(java.util.concurrent.CompletionStage, java.util.function.BiFunction); + method public abstract java.util.concurrent.CompletionStage thenCombineAsync(java.util.concurrent.CompletionStage, java.util.function.BiFunction, java.util.concurrent.Executor); + method public abstract java.util.concurrent.CompletionStage thenCompose(java.util.function.Function>); + method public abstract java.util.concurrent.CompletionStage thenComposeAsync(java.util.function.Function>); + method public abstract java.util.concurrent.CompletionStage thenComposeAsync(java.util.function.Function>, java.util.concurrent.Executor); method public abstract java.util.concurrent.CompletionStage thenRun(java.lang.Runnable); method public abstract java.util.concurrent.CompletionStage thenRunAsync(java.lang.Runnable); method public abstract java.util.concurrent.CompletionStage thenRunAsync(java.lang.Runnable, java.util.concurrent.Executor); @@ -59470,7 +59470,7 @@ package java.util.concurrent { method public abstract java.util.concurrent.CompletionStage whenCompleteAsync(java.util.function.BiConsumer, java.util.concurrent.Executor); } - public class ConcurrentHashMap extends java.util.AbstractMap implements java.util.concurrent.ConcurrentMap java.io.Serializable { + public class ConcurrentHashMap extends java.util.AbstractMap implements java.util.concurrent.ConcurrentMap java.io.Serializable { ctor public ConcurrentHashMap(); ctor public ConcurrentHashMap(int); ctor public ConcurrentHashMap(java.util.Map); @@ -59484,29 +59484,29 @@ package java.util.concurrent { method public java.util.Set> entrySet(); method public void forEach(java.util.function.BiConsumer); method public void forEach(long, java.util.function.BiConsumer); - method public void forEach(long, java.util.function.BiFunction, java.util.function.Consumer); + method public void forEach(long, java.util.function.BiFunction, java.util.function.Consumer); method public void forEachEntry(long, java.util.function.Consumer>); - method public void forEachEntry(long, java.util.function.Function, ? extends U>, java.util.function.Consumer); + method public void forEachEntry(long, java.util.function.Function, ? extends U>, java.util.function.Consumer); method public void forEachKey(long, java.util.function.Consumer); - method public void forEachKey(long, java.util.function.Function, java.util.function.Consumer); + method public void forEachKey(long, java.util.function.Function, java.util.function.Consumer); method public void forEachValue(long, java.util.function.Consumer); - method public void forEachValue(long, java.util.function.Function, java.util.function.Consumer); + method public void forEachValue(long, java.util.function.Function, java.util.function.Consumer); method public V getOrDefault(java.lang.Object, V); method public java.util.concurrent.ConcurrentHashMap.KeySetView keySet(V); method public java.util.Enumeration keys(); method public long mappingCount(); method public V merge(K, V, java.util.function.BiFunction); - method public static java.util.concurrent.ConcurrentHashMap.KeySetView newKeySet(); - method public static java.util.concurrent.ConcurrentHashMap.KeySetView newKeySet(int); + method public static java.util.concurrent.ConcurrentHashMap.KeySetView newKeySet(); + method public static java.util.concurrent.ConcurrentHashMap.KeySetView newKeySet(int); method public V putIfAbsent(K, V); - method public U reduce(long, java.util.function.BiFunction, java.util.function.BiFunction); + method public U reduce(long, java.util.function.BiFunction, java.util.function.BiFunction); method public java.util.Map.Entry reduceEntries(long, java.util.function.BiFunction, java.util.Map.Entry, ? extends java.util.Map.Entry>); - method public U reduceEntries(long, java.util.function.Function, ? extends U>, java.util.function.BiFunction); + method public U reduceEntries(long, java.util.function.Function, ? extends U>, java.util.function.BiFunction); method public double reduceEntriesToDouble(long, java.util.function.ToDoubleFunction>, double, java.util.function.DoubleBinaryOperator); method public int reduceEntriesToInt(long, java.util.function.ToIntFunction>, int, java.util.function.IntBinaryOperator); method public long reduceEntriesToLong(long, java.util.function.ToLongFunction>, long, java.util.function.LongBinaryOperator); method public K reduceKeys(long, java.util.function.BiFunction); - method public U reduceKeys(long, java.util.function.Function, java.util.function.BiFunction); + method public U reduceKeys(long, java.util.function.Function, java.util.function.BiFunction); method public double reduceKeysToDouble(long, java.util.function.ToDoubleFunction, double, java.util.function.DoubleBinaryOperator); method public int reduceKeysToInt(long, java.util.function.ToIntFunction, int, java.util.function.IntBinaryOperator); method public long reduceKeysToLong(long, java.util.function.ToLongFunction, long, java.util.function.LongBinaryOperator); @@ -59514,7 +59514,7 @@ package java.util.concurrent { method public int reduceToInt(long, java.util.function.ToIntBiFunction, int, java.util.function.IntBinaryOperator); method public long reduceToLong(long, java.util.function.ToLongBiFunction, long, java.util.function.LongBinaryOperator); method public V reduceValues(long, java.util.function.BiFunction); - method public U reduceValues(long, java.util.function.Function, java.util.function.BiFunction); + method public U reduceValues(long, java.util.function.Function, java.util.function.BiFunction); method public double reduceValuesToDouble(long, java.util.function.ToDoubleFunction, double, java.util.function.DoubleBinaryOperator); method public int reduceValuesToInt(long, java.util.function.ToIntFunction, int, java.util.function.IntBinaryOperator); method public long reduceValuesToLong(long, java.util.function.ToLongFunction, long, java.util.function.LongBinaryOperator); @@ -59522,13 +59522,13 @@ package java.util.concurrent { method public boolean replace(K, V, V); method public V replace(K, V); method public void replaceAll(java.util.function.BiFunction); - method public U search(long, java.util.function.BiFunction); - method public U searchEntries(long, java.util.function.Function, ? extends U>); - method public U searchKeys(long, java.util.function.Function); - method public U searchValues(long, java.util.function.Function); + method public U search(long, java.util.function.BiFunction); + method public U searchEntries(long, java.util.function.Function, ? extends U>); + method public U searchKeys(long, java.util.function.Function); + method public U searchValues(long, java.util.function.Function); } - static abstract class ConcurrentHashMap.CollectionView implements java.util.Collection java.io.Serializable { + static abstract class ConcurrentHashMap.CollectionView implements java.util.Collection java.io.Serializable { method public final void clear(); method public abstract boolean contains(java.lang.Object); method public final boolean containsAll(java.util.Collection); @@ -59540,11 +59540,11 @@ package java.util.concurrent { method public final boolean retainAll(java.util.Collection); method public final int size(); method public final java.lang.Object[] toArray(); - method public final T[] toArray(T[]); + method public final T[] toArray(T[]); method public final java.lang.String toString(); } - public static class ConcurrentHashMap.KeySetView extends java.util.concurrent.ConcurrentHashMap.CollectionView implements java.io.Serializable java.util.Set { + public static class ConcurrentHashMap.KeySetView extends java.util.concurrent.ConcurrentHashMap.CollectionView implements java.io.Serializable java.util.Set { method public boolean add(K); method public boolean addAll(java.util.Collection); method public boolean contains(java.lang.Object); @@ -59555,7 +59555,7 @@ package java.util.concurrent { method public java.util.Spliterator spliterator(); } - public class ConcurrentLinkedDeque extends java.util.AbstractCollection implements java.util.Deque java.io.Serializable { + public class ConcurrentLinkedDeque extends java.util.AbstractCollection implements java.util.Deque java.io.Serializable { ctor public ConcurrentLinkedDeque(); ctor public ConcurrentLinkedDeque(java.util.Collection); method public void addFirst(E); @@ -59585,7 +59585,7 @@ package java.util.concurrent { method public java.util.Spliterator spliterator(); } - public class ConcurrentLinkedQueue extends java.util.AbstractQueue implements java.util.Queue java.io.Serializable { + public class ConcurrentLinkedQueue extends java.util.AbstractQueue implements java.util.Queue java.io.Serializable { ctor public ConcurrentLinkedQueue(); ctor public ConcurrentLinkedQueue(java.util.Collection); method public java.util.Iterator iterator(); @@ -59596,14 +59596,14 @@ package java.util.concurrent { method public java.util.Spliterator spliterator(); } - public abstract interface ConcurrentMap implements java.util.Map { + public abstract interface ConcurrentMap implements java.util.Map { method public abstract V putIfAbsent(K, V); method public abstract boolean remove(java.lang.Object, java.lang.Object); method public abstract boolean replace(K, V, V); method public abstract V replace(K, V); } - public abstract interface ConcurrentNavigableMap implements java.util.concurrent.ConcurrentMap java.util.NavigableMap { + public abstract interface ConcurrentNavigableMap implements java.util.concurrent.ConcurrentMap java.util.NavigableMap { method public abstract java.util.NavigableSet descendingKeySet(); method public abstract java.util.concurrent.ConcurrentNavigableMap descendingMap(); method public abstract java.util.concurrent.ConcurrentNavigableMap headMap(K, boolean); @@ -59616,7 +59616,7 @@ package java.util.concurrent { method public abstract java.util.concurrent.ConcurrentNavigableMap tailMap(K); } - public class ConcurrentSkipListMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.concurrent.ConcurrentNavigableMap java.io.Serializable { + public class ConcurrentSkipListMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.concurrent.ConcurrentNavigableMap java.io.Serializable { ctor public ConcurrentSkipListMap(); ctor public ConcurrentSkipListMap(java.util.Comparator); ctor public ConcurrentSkipListMap(java.util.Map); @@ -59660,7 +59660,7 @@ package java.util.concurrent { method public java.util.concurrent.ConcurrentNavigableMap tailMap(K); } - public class ConcurrentSkipListSet extends java.util.AbstractSet implements java.lang.Cloneable java.util.NavigableSet java.io.Serializable { + public class ConcurrentSkipListSet extends java.util.AbstractSet implements java.lang.Cloneable java.util.NavigableSet java.io.Serializable { ctor public ConcurrentSkipListSet(); ctor public ConcurrentSkipListSet(java.util.Comparator); ctor public ConcurrentSkipListSet(java.util.Collection); @@ -59688,7 +59688,7 @@ package java.util.concurrent { method public java.util.NavigableSet tailSet(E); } - public class CopyOnWriteArrayList implements java.lang.Cloneable java.util.List java.util.RandomAccess java.io.Serializable { + public class CopyOnWriteArrayList implements java.lang.Cloneable java.util.List java.util.RandomAccess java.io.Serializable { ctor public CopyOnWriteArrayList(); ctor public CopyOnWriteArrayList(java.util.Collection); ctor public CopyOnWriteArrayList(E[]); @@ -59720,10 +59720,10 @@ package java.util.concurrent { method public int size(); method public java.util.List subList(int, int); method public java.lang.Object[] toArray(); - method public T[] toArray(T[]); + method public T[] toArray(T[]); } - public class CopyOnWriteArraySet extends java.util.AbstractSet implements java.io.Serializable { + public class CopyOnWriteArraySet extends java.util.AbstractSet implements java.io.Serializable { ctor public CopyOnWriteArraySet(); ctor public CopyOnWriteArraySet(java.util.Collection); method public void forEach(java.util.function.Consumer); @@ -59741,7 +59741,7 @@ package java.util.concurrent { method public long getCount(); } - public abstract class CountedCompleter extends java.util.concurrent.ForkJoinTask { + public abstract class CountedCompleter extends java.util.concurrent.ForkJoinTask { ctor protected CountedCompleter(java.util.concurrent.CountedCompleter, int); ctor protected CountedCompleter(java.util.concurrent.CountedCompleter); ctor protected CountedCompleter(); @@ -59778,7 +59778,7 @@ package java.util.concurrent { method public void reset(); } - public class DelayQueue extends java.util.AbstractQueue implements java.util.concurrent.BlockingQueue { + public class DelayQueue extends java.util.AbstractQueue implements java.util.concurrent.BlockingQueue { ctor public DelayQueue(); ctor public DelayQueue(java.util.Collection); method public int drainTo(java.util.Collection); @@ -59799,7 +59799,7 @@ package java.util.concurrent { method public abstract long getDelay(java.util.concurrent.TimeUnit); } - public class Exchanger { + public class Exchanger { ctor public Exchanger(); method public V exchange(V) throws java.lang.InterruptedException; method public V exchange(V, long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException, java.util.concurrent.TimeoutException; @@ -59816,7 +59816,7 @@ package java.util.concurrent { method public abstract void execute(java.lang.Runnable); } - public class ExecutorCompletionService implements java.util.concurrent.CompletionService { + public class ExecutorCompletionService implements java.util.concurrent.CompletionService { ctor public ExecutorCompletionService(java.util.concurrent.Executor); ctor public ExecutorCompletionService(java.util.concurrent.Executor, java.util.concurrent.BlockingQueue>); method public java.util.concurrent.Future poll(); @@ -59828,21 +59828,21 @@ package java.util.concurrent { public abstract interface ExecutorService implements java.util.concurrent.Executor { method public abstract boolean awaitTermination(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException; - method public abstract java.util.List> invokeAll(java.util.Collection>) throws java.lang.InterruptedException; - method public abstract java.util.List> invokeAll(java.util.Collection>, long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException; - method public abstract T invokeAny(java.util.Collection>) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException; - method public abstract T invokeAny(java.util.Collection>, long, java.util.concurrent.TimeUnit) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException, java.util.concurrent.TimeoutException; + method public abstract java.util.List> invokeAll(java.util.Collection>) throws java.lang.InterruptedException; + method public abstract java.util.List> invokeAll(java.util.Collection>, long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException; + method public abstract T invokeAny(java.util.Collection>) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException; + method public abstract T invokeAny(java.util.Collection>, long, java.util.concurrent.TimeUnit) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException, java.util.concurrent.TimeoutException; method public abstract boolean isShutdown(); method public abstract boolean isTerminated(); method public abstract void shutdown(); method public abstract java.util.List shutdownNow(); - method public abstract java.util.concurrent.Future submit(java.util.concurrent.Callable); - method public abstract java.util.concurrent.Future submit(java.lang.Runnable, T); + method public abstract java.util.concurrent.Future submit(java.util.concurrent.Callable); + method public abstract java.util.concurrent.Future submit(java.lang.Runnable, T); method public abstract java.util.concurrent.Future submit(java.lang.Runnable); } public class Executors { - method public static java.util.concurrent.Callable callable(java.lang.Runnable, T); + method public static java.util.concurrent.Callable callable(java.lang.Runnable, T); method public static java.util.concurrent.Callable callable(java.lang.Runnable); method public static java.util.concurrent.Callable callable(java.security.PrivilegedAction); method public static java.util.concurrent.Callable callable(java.security.PrivilegedExceptionAction); @@ -59859,8 +59859,8 @@ package java.util.concurrent { method public static java.util.concurrent.ScheduledExecutorService newSingleThreadScheduledExecutor(java.util.concurrent.ThreadFactory); method public static java.util.concurrent.ExecutorService newWorkStealingPool(int); method public static java.util.concurrent.ExecutorService newWorkStealingPool(); - method public static java.util.concurrent.Callable privilegedCallable(java.util.concurrent.Callable); - method public static java.util.concurrent.Callable privilegedCallableUsingCurrentClassLoader(java.util.concurrent.Callable); + method public static java.util.concurrent.Callable privilegedCallable(java.util.concurrent.Callable); + method public static java.util.concurrent.Callable privilegedCallableUsingCurrentClassLoader(java.util.concurrent.Callable); method public static java.util.concurrent.ThreadFactory privilegedThreadFactory(); method public static java.util.concurrent.ExecutorService unconfigurableExecutorService(java.util.concurrent.ExecutorService); method public static java.util.concurrent.ScheduledExecutorService unconfigurableScheduledExecutorService(java.util.concurrent.ScheduledExecutorService); @@ -59888,7 +59888,7 @@ package java.util.concurrent { method public long getStealCount(); method public java.lang.Thread.UncaughtExceptionHandler getUncaughtExceptionHandler(); method public boolean hasQueuedSubmissions(); - method public T invoke(java.util.concurrent.ForkJoinTask); + method public T invoke(java.util.concurrent.ForkJoinTask); method public boolean isQuiescent(); method public boolean isShutdown(); method public boolean isTerminated(); @@ -59897,7 +59897,7 @@ package java.util.concurrent { method protected java.util.concurrent.ForkJoinTask pollSubmission(); method public void shutdown(); method public java.util.List shutdownNow(); - method public java.util.concurrent.ForkJoinTask submit(java.util.concurrent.ForkJoinTask); + method public java.util.concurrent.ForkJoinTask submit(java.util.concurrent.ForkJoinTask); field public static final java.util.concurrent.ForkJoinPool.ForkJoinWorkerThreadFactory defaultForkJoinWorkerThreadFactory; } @@ -59910,11 +59910,11 @@ package java.util.concurrent { method public abstract boolean isReleasable(); } - public abstract class ForkJoinTask implements java.util.concurrent.Future java.io.Serializable { + public abstract class ForkJoinTask implements java.util.concurrent.Future java.io.Serializable { ctor public ForkJoinTask(); method public static java.util.concurrent.ForkJoinTask adapt(java.lang.Runnable); - method public static java.util.concurrent.ForkJoinTask adapt(java.lang.Runnable, T); - method public static java.util.concurrent.ForkJoinTask adapt(java.util.concurrent.Callable); + method public static java.util.concurrent.ForkJoinTask adapt(java.lang.Runnable, T); + method public static java.util.concurrent.ForkJoinTask adapt(java.util.concurrent.Callable); method public boolean cancel(boolean); method public final boolean compareAndSetForkJoinTaskTag(short, short); method public void complete(V); @@ -59934,7 +59934,7 @@ package java.util.concurrent { method public final V invoke(); method public static void invokeAll(java.util.concurrent.ForkJoinTask, java.util.concurrent.ForkJoinTask); method public static void invokeAll(java.util.concurrent.ForkJoinTask...); - method public static java.util.Collection invokeAll(java.util.Collection); + method public static > java.util.Collection invokeAll(java.util.Collection); method public final boolean isCancelled(); method public final boolean isCompletedAbnormally(); method public final boolean isCompletedNormally(); @@ -59960,7 +59960,7 @@ package java.util.concurrent { method protected void onTermination(java.lang.Throwable); } - public abstract interface Future { + public abstract interface Future { method public abstract boolean cancel(boolean); method public abstract V get() throws java.util.concurrent.ExecutionException, java.lang.InterruptedException; method public abstract V get(long, java.util.concurrent.TimeUnit) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException, java.util.concurrent.TimeoutException; @@ -59968,7 +59968,7 @@ package java.util.concurrent { method public abstract boolean isDone(); } - public class FutureTask implements java.util.concurrent.RunnableFuture { + public class FutureTask implements java.util.concurrent.RunnableFuture { ctor public FutureTask(java.util.concurrent.Callable); ctor public FutureTask(java.lang.Runnable, V); method public boolean cancel(boolean); @@ -59983,7 +59983,7 @@ package java.util.concurrent { method protected void setException(java.lang.Throwable); } - public class LinkedBlockingDeque extends java.util.AbstractQueue implements java.util.concurrent.BlockingDeque java.io.Serializable { + public class LinkedBlockingDeque extends java.util.AbstractQueue implements java.util.concurrent.BlockingDeque java.io.Serializable { ctor public LinkedBlockingDeque(); ctor public LinkedBlockingDeque(int); ctor public LinkedBlockingDeque(java.util.Collection); @@ -60027,7 +60027,7 @@ package java.util.concurrent { method public E takeLast() throws java.lang.InterruptedException; } - public class LinkedBlockingQueue extends java.util.AbstractQueue implements java.util.concurrent.BlockingQueue java.io.Serializable { + public class LinkedBlockingQueue extends java.util.AbstractQueue implements java.util.concurrent.BlockingQueue java.io.Serializable { ctor public LinkedBlockingQueue(); ctor public LinkedBlockingQueue(int); ctor public LinkedBlockingQueue(java.util.Collection); @@ -60046,7 +60046,7 @@ package java.util.concurrent { method public E take() throws java.lang.InterruptedException; } - public class LinkedTransferQueue extends java.util.AbstractQueue implements java.io.Serializable java.util.concurrent.TransferQueue { + public class LinkedTransferQueue extends java.util.AbstractQueue implements java.io.Serializable java.util.concurrent.TransferQueue { ctor public LinkedTransferQueue(); ctor public LinkedTransferQueue(java.util.Collection); method public int drainTo(java.util.Collection); @@ -60093,7 +60093,7 @@ package java.util.concurrent { method public int register(); } - public class PriorityBlockingQueue extends java.util.AbstractQueue implements java.util.concurrent.BlockingQueue java.io.Serializable { + public class PriorityBlockingQueue extends java.util.AbstractQueue implements java.util.concurrent.BlockingQueue java.io.Serializable { ctor public PriorityBlockingQueue(); ctor public PriorityBlockingQueue(int); ctor public PriorityBlockingQueue(int, java.util.Comparator); @@ -60122,7 +60122,7 @@ package java.util.concurrent { method protected final void setRawResult(java.lang.Void); } - public abstract class RecursiveTask extends java.util.concurrent.ForkJoinTask { + public abstract class RecursiveTask extends java.util.concurrent.ForkJoinTask { ctor public RecursiveTask(); method protected abstract V compute(); method protected final boolean exec(); @@ -60141,22 +60141,22 @@ package java.util.concurrent { method public abstract void rejectedExecution(java.lang.Runnable, java.util.concurrent.ThreadPoolExecutor); } - public abstract interface RunnableFuture implements java.util.concurrent.Future java.lang.Runnable { + public abstract interface RunnableFuture implements java.util.concurrent.Future java.lang.Runnable { method public abstract void run(); } - public abstract interface RunnableScheduledFuture implements java.util.concurrent.RunnableFuture java.util.concurrent.ScheduledFuture { + public abstract interface RunnableScheduledFuture implements java.util.concurrent.RunnableFuture java.util.concurrent.ScheduledFuture { method public abstract boolean isPeriodic(); } public abstract interface ScheduledExecutorService implements java.util.concurrent.ExecutorService { method public abstract java.util.concurrent.ScheduledFuture schedule(java.lang.Runnable, long, java.util.concurrent.TimeUnit); - method public abstract java.util.concurrent.ScheduledFuture schedule(java.util.concurrent.Callable, long, java.util.concurrent.TimeUnit); + method public abstract java.util.concurrent.ScheduledFuture schedule(java.util.concurrent.Callable, long, java.util.concurrent.TimeUnit); method public abstract java.util.concurrent.ScheduledFuture scheduleAtFixedRate(java.lang.Runnable, long, long, java.util.concurrent.TimeUnit); method public abstract java.util.concurrent.ScheduledFuture scheduleWithFixedDelay(java.lang.Runnable, long, long, java.util.concurrent.TimeUnit); } - public abstract interface ScheduledFuture implements java.util.concurrent.Delayed java.util.concurrent.Future { + public abstract interface ScheduledFuture implements java.util.concurrent.Delayed java.util.concurrent.Future { } public class ScheduledThreadPoolExecutor extends java.util.concurrent.ThreadPoolExecutor implements java.util.concurrent.ScheduledExecutorService { @@ -60164,13 +60164,13 @@ package java.util.concurrent { ctor public ScheduledThreadPoolExecutor(int, java.util.concurrent.ThreadFactory); ctor public ScheduledThreadPoolExecutor(int, java.util.concurrent.RejectedExecutionHandler); ctor public ScheduledThreadPoolExecutor(int, java.util.concurrent.ThreadFactory, java.util.concurrent.RejectedExecutionHandler); - method protected java.util.concurrent.RunnableScheduledFuture decorateTask(java.lang.Runnable, java.util.concurrent.RunnableScheduledFuture); - method protected java.util.concurrent.RunnableScheduledFuture decorateTask(java.util.concurrent.Callable, java.util.concurrent.RunnableScheduledFuture); + method protected java.util.concurrent.RunnableScheduledFuture decorateTask(java.lang.Runnable, java.util.concurrent.RunnableScheduledFuture); + method protected java.util.concurrent.RunnableScheduledFuture decorateTask(java.util.concurrent.Callable, java.util.concurrent.RunnableScheduledFuture); method public boolean getContinueExistingPeriodicTasksAfterShutdownPolicy(); method public boolean getExecuteExistingDelayedTasksAfterShutdownPolicy(); method public boolean getRemoveOnCancelPolicy(); method public java.util.concurrent.ScheduledFuture schedule(java.lang.Runnable, long, java.util.concurrent.TimeUnit); - method public java.util.concurrent.ScheduledFuture schedule(java.util.concurrent.Callable, long, java.util.concurrent.TimeUnit); + method public java.util.concurrent.ScheduledFuture schedule(java.util.concurrent.Callable, long, java.util.concurrent.TimeUnit); method public java.util.concurrent.ScheduledFuture scheduleAtFixedRate(java.lang.Runnable, long, long, java.util.concurrent.TimeUnit); method public java.util.concurrent.ScheduledFuture scheduleWithFixedDelay(java.lang.Runnable, long, long, java.util.concurrent.TimeUnit); method public void setContinueExistingPeriodicTasksAfterShutdownPolicy(boolean); @@ -60200,7 +60200,7 @@ package java.util.concurrent { method public boolean tryAcquire(int, long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException; } - public class SynchronousQueue extends java.util.AbstractQueue implements java.util.concurrent.BlockingQueue java.io.Serializable { + public class SynchronousQueue extends java.util.AbstractQueue implements java.util.concurrent.BlockingQueue java.io.Serializable { ctor public SynchronousQueue(); ctor public SynchronousQueue(boolean); method public int drainTo(java.util.Collection); @@ -60318,7 +60318,7 @@ package java.util.concurrent { ctor public TimeoutException(java.lang.String); } - public abstract interface TransferQueue implements java.util.concurrent.BlockingQueue { + public abstract interface TransferQueue implements java.util.concurrent.BlockingQueue { method public abstract int getWaitingConsumerCount(); method public abstract boolean hasWaitingConsumer(); method public abstract void transfer(E) throws java.lang.InterruptedException; @@ -60388,7 +60388,7 @@ package java.util.concurrent.atomic { method public final boolean weakCompareAndSet(int, int, int); } - public abstract class AtomicIntegerFieldUpdater { + public abstract class AtomicIntegerFieldUpdater { ctor protected AtomicIntegerFieldUpdater(); method public final int accumulateAndGet(T, int, java.util.function.IntBinaryOperator); method public int addAndGet(T, int); @@ -60403,7 +60403,7 @@ package java.util.concurrent.atomic { method public final int getAndUpdate(T, java.util.function.IntUnaryOperator); method public int incrementAndGet(T); method public abstract void lazySet(T, int); - method public static java.util.concurrent.atomic.AtomicIntegerFieldUpdater newUpdater(java.lang.Class, java.lang.String); + method public static java.util.concurrent.atomic.AtomicIntegerFieldUpdater newUpdater(java.lang.Class, java.lang.String); method public abstract void set(T, int); method public final int updateAndGet(T, java.util.function.IntUnaryOperator); method public abstract boolean weakCompareAndSet(T, int, int); @@ -60456,7 +60456,7 @@ package java.util.concurrent.atomic { method public final boolean weakCompareAndSet(int, long, long); } - public abstract class AtomicLongFieldUpdater { + public abstract class AtomicLongFieldUpdater { ctor protected AtomicLongFieldUpdater(); method public final long accumulateAndGet(T, long, java.util.function.LongBinaryOperator); method public long addAndGet(T, long); @@ -60471,13 +60471,13 @@ package java.util.concurrent.atomic { method public final long getAndUpdate(T, java.util.function.LongUnaryOperator); method public long incrementAndGet(T); method public abstract void lazySet(T, long); - method public static java.util.concurrent.atomic.AtomicLongFieldUpdater newUpdater(java.lang.Class, java.lang.String); + method public static java.util.concurrent.atomic.AtomicLongFieldUpdater newUpdater(java.lang.Class, java.lang.String); method public abstract void set(T, long); method public final long updateAndGet(T, java.util.function.LongUnaryOperator); method public abstract boolean weakCompareAndSet(T, long, long); } - public class AtomicMarkableReference { + public class AtomicMarkableReference { ctor public AtomicMarkableReference(V, boolean); method public boolean attemptMark(V, boolean); method public boolean compareAndSet(V, V, boolean, boolean); @@ -60488,7 +60488,7 @@ package java.util.concurrent.atomic { method public boolean weakCompareAndSet(V, V, boolean, boolean); } - public class AtomicReference implements java.io.Serializable { + public class AtomicReference implements java.io.Serializable { ctor public AtomicReference(V); ctor public AtomicReference(); method public final V accumulateAndGet(V, java.util.function.BinaryOperator); @@ -60503,7 +60503,7 @@ package java.util.concurrent.atomic { method public final boolean weakCompareAndSet(V, V); } - public class AtomicReferenceArray implements java.io.Serializable { + public class AtomicReferenceArray implements java.io.Serializable { ctor public AtomicReferenceArray(int); ctor public AtomicReferenceArray(E[]); method public final E accumulateAndGet(int, E, java.util.function.BinaryOperator); @@ -60519,7 +60519,7 @@ package java.util.concurrent.atomic { method public final boolean weakCompareAndSet(int, E, E); } - public abstract class AtomicReferenceFieldUpdater { + public abstract class AtomicReferenceFieldUpdater { ctor protected AtomicReferenceFieldUpdater(); method public final V accumulateAndGet(T, V, java.util.function.BinaryOperator); method public abstract boolean compareAndSet(T, V, V); @@ -60528,13 +60528,13 @@ package java.util.concurrent.atomic { method public V getAndSet(T, V); method public final V getAndUpdate(T, java.util.function.UnaryOperator); method public abstract void lazySet(T, V); - method public static java.util.concurrent.atomic.AtomicReferenceFieldUpdater newUpdater(java.lang.Class, java.lang.Class, java.lang.String); + method public static java.util.concurrent.atomic.AtomicReferenceFieldUpdater newUpdater(java.lang.Class, java.lang.Class, java.lang.String); method public abstract void set(T, V); method public final V updateAndGet(T, java.util.function.UnaryOperator); method public abstract boolean weakCompareAndSet(T, V, V); } - public class AtomicStampedReference { + public class AtomicStampedReference { ctor public AtomicStampedReference(V, int); method public boolean attemptStamp(V, int); method public boolean compareAndSet(V, V, int, int); @@ -60837,33 +60837,33 @@ package java.util.concurrent.locks { package java.util.function { - public abstract interface BiConsumer { + public abstract interface BiConsumer { method public abstract void accept(T, U); method public default java.util.function.BiConsumer andThen(java.util.function.BiConsumer); } - public abstract interface BiFunction { - method public default java.util.function.BiFunction andThen(java.util.function.Function); + public abstract interface BiFunction { + method public default java.util.function.BiFunction andThen(java.util.function.Function); method public abstract R apply(T, U); } - public abstract interface BiPredicate { + public abstract interface BiPredicate { method public default java.util.function.BiPredicate and(java.util.function.BiPredicate); method public default java.util.function.BiPredicate negate(); method public default java.util.function.BiPredicate or(java.util.function.BiPredicate); method public abstract boolean test(T, U); } - public abstract interface BinaryOperator implements java.util.function.BiFunction { - method public static java.util.function.BinaryOperator maxBy(java.util.Comparator); - method public static java.util.function.BinaryOperator minBy(java.util.Comparator); + public abstract interface BinaryOperator implements java.util.function.BiFunction { + method public static java.util.function.BinaryOperator maxBy(java.util.Comparator); + method public static java.util.function.BinaryOperator minBy(java.util.Comparator); } public abstract interface BooleanSupplier { method public abstract boolean getAsBoolean(); } - public abstract interface Consumer { + public abstract interface Consumer { method public abstract void accept(T); method public default java.util.function.Consumer andThen(java.util.function.Consumer); } @@ -60877,7 +60877,7 @@ package java.util.function { method public default java.util.function.DoubleConsumer andThen(java.util.function.DoubleConsumer); } - public abstract interface DoubleFunction { + public abstract interface DoubleFunction { method public abstract R apply(double); } @@ -60907,11 +60907,11 @@ package java.util.function { method public static java.util.function.DoubleUnaryOperator identity(); } - public abstract interface Function { - method public default java.util.function.Function andThen(java.util.function.Function); + public abstract interface Function { + method public default java.util.function.Function andThen(java.util.function.Function); method public abstract R apply(T); - method public default java.util.function.Function compose(java.util.function.Function); - method public static java.util.function.Function identity(); + method public default java.util.function.Function compose(java.util.function.Function); + method public static java.util.function.Function identity(); } public abstract interface IntBinaryOperator { @@ -60923,7 +60923,7 @@ package java.util.function { method public default java.util.function.IntConsumer andThen(java.util.function.IntConsumer); } - public abstract interface IntFunction { + public abstract interface IntFunction { method public abstract R apply(int); } @@ -60962,7 +60962,7 @@ package java.util.function { method public default java.util.function.LongConsumer andThen(java.util.function.LongConsumer); } - public abstract interface LongFunction { + public abstract interface LongFunction { method public abstract R apply(long); } @@ -60992,56 +60992,56 @@ package java.util.function { method public static java.util.function.LongUnaryOperator identity(); } - public abstract interface ObjDoubleConsumer { + public abstract interface ObjDoubleConsumer { method public abstract void accept(T, double); } - public abstract interface ObjIntConsumer { + public abstract interface ObjIntConsumer { method public abstract void accept(T, int); } - public abstract interface ObjLongConsumer { + public abstract interface ObjLongConsumer { method public abstract void accept(T, long); } - public abstract interface Predicate { + public abstract interface Predicate { method public default java.util.function.Predicate and(java.util.function.Predicate); - method public static java.util.function.Predicate isEqual(java.lang.Object); + method public static java.util.function.Predicate isEqual(java.lang.Object); method public default java.util.function.Predicate negate(); method public default java.util.function.Predicate or(java.util.function.Predicate); method public abstract boolean test(T); } - public abstract interface Supplier { + public abstract interface Supplier { method public abstract T get(); } - public abstract interface ToDoubleBiFunction { + public abstract interface ToDoubleBiFunction { method public abstract double applyAsDouble(T, U); } - public abstract interface ToDoubleFunction { + public abstract interface ToDoubleFunction { method public abstract double applyAsDouble(T); } - public abstract interface ToIntBiFunction { + public abstract interface ToIntBiFunction { method public abstract int applyAsInt(T, U); } - public abstract interface ToIntFunction { + public abstract interface ToIntFunction { method public abstract int applyAsInt(T); } - public abstract interface ToLongBiFunction { + public abstract interface ToLongBiFunction { method public abstract long applyAsLong(T, U); } - public abstract interface ToLongFunction { + public abstract interface ToLongFunction { method public abstract long applyAsLong(T); } - public abstract interface UnaryOperator implements java.util.function.Function { - method public static java.util.function.UnaryOperator identity(); + public abstract interface UnaryOperator implements java.util.function.Function { + method public static java.util.function.UnaryOperator identity(); } } @@ -61629,7 +61629,7 @@ package java.util.regex { package java.util.stream { - public abstract interface BaseStream implements java.lang.AutoCloseable { + public abstract interface BaseStream> implements java.lang.AutoCloseable { method public abstract void close(); method public abstract boolean isParallel(); method public abstract java.util.Iterator iterator(); @@ -61640,13 +61640,13 @@ package java.util.stream { method public abstract S unordered(); } - public abstract interface Collector { + public abstract interface Collector { method public abstract java.util.function.BiConsumer accumulator(); method public abstract java.util.Set characteristics(); method public abstract java.util.function.BinaryOperator combiner(); method public abstract java.util.function.Function finisher(); - method public static java.util.stream.Collector of(java.util.function.Supplier, java.util.function.BiConsumer, java.util.function.BinaryOperator, java.util.stream.Collector.Characteristics...); - method public static java.util.stream.Collector of(java.util.function.Supplier, java.util.function.BiConsumer, java.util.function.BinaryOperator, java.util.function.Function, java.util.stream.Collector.Characteristics...); + method public static java.util.stream.Collector of(java.util.function.Supplier, java.util.function.BiConsumer, java.util.function.BinaryOperator, java.util.stream.Collector.Characteristics...); + method public static java.util.stream.Collector of(java.util.function.Supplier, java.util.function.BiConsumer, java.util.function.BinaryOperator, java.util.function.Function, java.util.stream.Collector.Characteristics...); method public abstract java.util.function.Supplier supplier(); } @@ -61659,43 +61659,43 @@ package java.util.stream { } public final class Collectors { - method public static java.util.stream.Collector averagingDouble(java.util.function.ToDoubleFunction); - method public static java.util.stream.Collector averagingInt(java.util.function.ToIntFunction); - method public static java.util.stream.Collector averagingLong(java.util.function.ToLongFunction); - method public static java.util.stream.Collector collectingAndThen(java.util.stream.Collector, java.util.function.Function); - method public static java.util.stream.Collector counting(); - method public static java.util.stream.Collector>> groupingBy(java.util.function.Function); - method public static java.util.stream.Collector> groupingBy(java.util.function.Function, java.util.stream.Collector); - method public static java.util.stream.Collector groupingBy(java.util.function.Function, java.util.function.Supplier, java.util.stream.Collector); - method public static java.util.stream.Collector>> groupingByConcurrent(java.util.function.Function); - method public static java.util.stream.Collector> groupingByConcurrent(java.util.function.Function, java.util.stream.Collector); - method public static java.util.stream.Collector groupingByConcurrent(java.util.function.Function, java.util.function.Supplier, java.util.stream.Collector); + method public static java.util.stream.Collector averagingDouble(java.util.function.ToDoubleFunction); + method public static java.util.stream.Collector averagingInt(java.util.function.ToIntFunction); + method public static java.util.stream.Collector averagingLong(java.util.function.ToLongFunction); + method public static java.util.stream.Collector collectingAndThen(java.util.stream.Collector, java.util.function.Function); + method public static java.util.stream.Collector counting(); + method public static java.util.stream.Collector>> groupingBy(java.util.function.Function); + method public static java.util.stream.Collector> groupingBy(java.util.function.Function, java.util.stream.Collector); + method public static > java.util.stream.Collector groupingBy(java.util.function.Function, java.util.function.Supplier, java.util.stream.Collector); + method public static java.util.stream.Collector>> groupingByConcurrent(java.util.function.Function); + method public static java.util.stream.Collector> groupingByConcurrent(java.util.function.Function, java.util.stream.Collector); + method public static > java.util.stream.Collector groupingByConcurrent(java.util.function.Function, java.util.function.Supplier, java.util.stream.Collector); method public static java.util.stream.Collector joining(); method public static java.util.stream.Collector joining(java.lang.CharSequence); method public static java.util.stream.Collector joining(java.lang.CharSequence, java.lang.CharSequence, java.lang.CharSequence); - method public static java.util.stream.Collector mapping(java.util.function.Function, java.util.stream.Collector); - method public static java.util.stream.Collector> maxBy(java.util.Comparator); - method public static java.util.stream.Collector> minBy(java.util.Comparator); - method public static java.util.stream.Collector>> partitioningBy(java.util.function.Predicate); - method public static java.util.stream.Collector> partitioningBy(java.util.function.Predicate, java.util.stream.Collector); - method public static java.util.stream.Collector reducing(T, java.util.function.BinaryOperator); - method public static java.util.stream.Collector> reducing(java.util.function.BinaryOperator); - method public static java.util.stream.Collector reducing(U, java.util.function.Function, java.util.function.BinaryOperator); - method public static java.util.stream.Collector summarizingDouble(java.util.function.ToDoubleFunction); - method public static java.util.stream.Collector summarizingInt(java.util.function.ToIntFunction); - method public static java.util.stream.Collector summarizingLong(java.util.function.ToLongFunction); - method public static java.util.stream.Collector summingDouble(java.util.function.ToDoubleFunction); - method public static java.util.stream.Collector summingInt(java.util.function.ToIntFunction); - method public static java.util.stream.Collector summingLong(java.util.function.ToLongFunction); - method public static java.util.stream.Collector toCollection(java.util.function.Supplier); - method public static java.util.stream.Collector> toConcurrentMap(java.util.function.Function, java.util.function.Function); - method public static java.util.stream.Collector> toConcurrentMap(java.util.function.Function, java.util.function.Function, java.util.function.BinaryOperator); - method public static java.util.stream.Collector toConcurrentMap(java.util.function.Function, java.util.function.Function, java.util.function.BinaryOperator, java.util.function.Supplier); - method public static java.util.stream.Collector> toList(); - method public static java.util.stream.Collector> toMap(java.util.function.Function, java.util.function.Function); - method public static java.util.stream.Collector> toMap(java.util.function.Function, java.util.function.Function, java.util.function.BinaryOperator); - method public static java.util.stream.Collector toMap(java.util.function.Function, java.util.function.Function, java.util.function.BinaryOperator, java.util.function.Supplier); - method public static java.util.stream.Collector> toSet(); + method public static java.util.stream.Collector mapping(java.util.function.Function, java.util.stream.Collector); + method public static java.util.stream.Collector> maxBy(java.util.Comparator); + method public static java.util.stream.Collector> minBy(java.util.Comparator); + method public static java.util.stream.Collector>> partitioningBy(java.util.function.Predicate); + method public static java.util.stream.Collector> partitioningBy(java.util.function.Predicate, java.util.stream.Collector); + method public static java.util.stream.Collector reducing(T, java.util.function.BinaryOperator); + method public static java.util.stream.Collector> reducing(java.util.function.BinaryOperator); + method public static java.util.stream.Collector reducing(U, java.util.function.Function, java.util.function.BinaryOperator); + method public static java.util.stream.Collector summarizingDouble(java.util.function.ToDoubleFunction); + method public static java.util.stream.Collector summarizingInt(java.util.function.ToIntFunction); + method public static java.util.stream.Collector summarizingLong(java.util.function.ToLongFunction); + method public static java.util.stream.Collector summingDouble(java.util.function.ToDoubleFunction); + method public static java.util.stream.Collector summingInt(java.util.function.ToIntFunction); + method public static java.util.stream.Collector summingLong(java.util.function.ToLongFunction); + method public static > java.util.stream.Collector toCollection(java.util.function.Supplier); + method public static java.util.stream.Collector> toConcurrentMap(java.util.function.Function, java.util.function.Function); + method public static java.util.stream.Collector> toConcurrentMap(java.util.function.Function, java.util.function.Function, java.util.function.BinaryOperator); + method public static > java.util.stream.Collector toConcurrentMap(java.util.function.Function, java.util.function.Function, java.util.function.BinaryOperator, java.util.function.Supplier); + method public static java.util.stream.Collector> toList(); + method public static java.util.stream.Collector> toMap(java.util.function.Function, java.util.function.Function); + method public static java.util.stream.Collector> toMap(java.util.function.Function, java.util.function.Function, java.util.function.BinaryOperator); + method public static > java.util.stream.Collector toMap(java.util.function.Function, java.util.function.Function, java.util.function.BinaryOperator, java.util.function.Supplier); + method public static java.util.stream.Collector> toSet(); } public abstract interface DoubleStream implements java.util.stream.BaseStream { @@ -61704,7 +61704,7 @@ package java.util.stream { method public abstract java.util.OptionalDouble average(); method public abstract java.util.stream.Stream boxed(); method public static java.util.stream.DoubleStream.Builder builder(); - method public abstract R collect(java.util.function.Supplier, java.util.function.ObjDoubleConsumer, java.util.function.BiConsumer); + method public abstract R collect(java.util.function.Supplier, java.util.function.ObjDoubleConsumer, java.util.function.BiConsumer); method public static java.util.stream.DoubleStream concat(java.util.stream.DoubleStream, java.util.stream.DoubleStream); method public abstract long count(); method public abstract java.util.stream.DoubleStream distinct(); @@ -61722,7 +61722,7 @@ package java.util.stream { method public abstract java.util.stream.DoubleStream map(java.util.function.DoubleUnaryOperator); method public abstract java.util.stream.IntStream mapToInt(java.util.function.DoubleToIntFunction); method public abstract java.util.stream.LongStream mapToLong(java.util.function.DoubleToLongFunction); - method public abstract java.util.stream.Stream mapToObj(java.util.function.DoubleFunction); + method public abstract java.util.stream.Stream mapToObj(java.util.function.DoubleFunction); method public abstract java.util.OptionalDouble max(); method public abstract java.util.OptionalDouble min(); method public abstract boolean noneMatch(java.util.function.DoublePredicate); @@ -61755,7 +61755,7 @@ package java.util.stream { method public abstract java.util.OptionalDouble average(); method public abstract java.util.stream.Stream boxed(); method public static java.util.stream.IntStream.Builder builder(); - method public abstract R collect(java.util.function.Supplier, java.util.function.ObjIntConsumer, java.util.function.BiConsumer); + method public abstract R collect(java.util.function.Supplier, java.util.function.ObjIntConsumer, java.util.function.BiConsumer); method public static java.util.stream.IntStream concat(java.util.stream.IntStream, java.util.stream.IntStream); method public abstract long count(); method public abstract java.util.stream.IntStream distinct(); @@ -61773,7 +61773,7 @@ package java.util.stream { method public abstract java.util.stream.IntStream map(java.util.function.IntUnaryOperator); method public abstract java.util.stream.DoubleStream mapToDouble(java.util.function.IntToDoubleFunction); method public abstract java.util.stream.LongStream mapToLong(java.util.function.IntToLongFunction); - method public abstract java.util.stream.Stream mapToObj(java.util.function.IntFunction); + method public abstract java.util.stream.Stream mapToObj(java.util.function.IntFunction); method public abstract java.util.OptionalInt max(); method public abstract java.util.OptionalInt min(); method public abstract boolean noneMatch(java.util.function.IntPredicate); @@ -61807,7 +61807,7 @@ package java.util.stream { method public abstract java.util.OptionalDouble average(); method public abstract java.util.stream.Stream boxed(); method public static java.util.stream.LongStream.Builder builder(); - method public abstract R collect(java.util.function.Supplier, java.util.function.ObjLongConsumer, java.util.function.BiConsumer); + method public abstract R collect(java.util.function.Supplier, java.util.function.ObjLongConsumer, java.util.function.BiConsumer); method public static java.util.stream.LongStream concat(java.util.stream.LongStream, java.util.stream.LongStream); method public abstract long count(); method public abstract java.util.stream.LongStream distinct(); @@ -61825,7 +61825,7 @@ package java.util.stream { method public abstract java.util.stream.LongStream map(java.util.function.LongUnaryOperator); method public abstract java.util.stream.DoubleStream mapToDouble(java.util.function.LongToDoubleFunction); method public abstract java.util.stream.IntStream mapToInt(java.util.function.LongToIntFunction); - method public abstract java.util.stream.Stream mapToObj(java.util.function.LongFunction); + method public abstract java.util.stream.Stream mapToObj(java.util.function.LongFunction); method public abstract java.util.OptionalLong max(); method public abstract java.util.OptionalLong min(); method public abstract boolean noneMatch(java.util.function.LongPredicate); @@ -61852,49 +61852,49 @@ package java.util.stream { method public abstract java.util.stream.LongStream build(); } - public abstract interface Stream implements java.util.stream.BaseStream { + public abstract interface Stream implements java.util.stream.BaseStream { method public abstract boolean allMatch(java.util.function.Predicate); method public abstract boolean anyMatch(java.util.function.Predicate); - method public static java.util.stream.Stream.Builder builder(); - method public abstract R collect(java.util.function.Supplier, java.util.function.BiConsumer, java.util.function.BiConsumer); - method public abstract R collect(java.util.stream.Collector); - method public static java.util.stream.Stream concat(java.util.stream.Stream, java.util.stream.Stream); + method public static java.util.stream.Stream.Builder builder(); + method public abstract R collect(java.util.function.Supplier, java.util.function.BiConsumer, java.util.function.BiConsumer); + method public abstract R collect(java.util.stream.Collector); + method public static java.util.stream.Stream concat(java.util.stream.Stream, java.util.stream.Stream); method public abstract long count(); method public abstract java.util.stream.Stream distinct(); - method public static java.util.stream.Stream empty(); + method public static java.util.stream.Stream empty(); method public abstract java.util.stream.Stream filter(java.util.function.Predicate); method public abstract java.util.Optional findAny(); method public abstract java.util.Optional findFirst(); - method public abstract java.util.stream.Stream flatMap(java.util.function.Function>); + method public abstract java.util.stream.Stream flatMap(java.util.function.Function>); method public abstract java.util.stream.DoubleStream flatMapToDouble(java.util.function.Function); method public abstract java.util.stream.IntStream flatMapToInt(java.util.function.Function); method public abstract java.util.stream.LongStream flatMapToLong(java.util.function.Function); method public abstract void forEach(java.util.function.Consumer); method public abstract void forEachOrdered(java.util.function.Consumer); - method public static java.util.stream.Stream generate(java.util.function.Supplier); - method public static java.util.stream.Stream iterate(T, java.util.function.UnaryOperator); + method public static java.util.stream.Stream generate(java.util.function.Supplier); + method public static java.util.stream.Stream iterate(T, java.util.function.UnaryOperator); method public abstract java.util.stream.Stream limit(long); - method public abstract java.util.stream.Stream map(java.util.function.Function); + method public abstract java.util.stream.Stream map(java.util.function.Function); method public abstract java.util.stream.DoubleStream mapToDouble(java.util.function.ToDoubleFunction); method public abstract java.util.stream.IntStream mapToInt(java.util.function.ToIntFunction); method public abstract java.util.stream.LongStream mapToLong(java.util.function.ToLongFunction); method public abstract java.util.Optional max(java.util.Comparator); method public abstract java.util.Optional min(java.util.Comparator); method public abstract boolean noneMatch(java.util.function.Predicate); - method public static java.util.stream.Stream of(T); - method public static java.util.stream.Stream of(T...); + method public static java.util.stream.Stream of(T); + method public static java.util.stream.Stream of(T...); method public abstract java.util.stream.Stream peek(java.util.function.Consumer); method public abstract T reduce(T, java.util.function.BinaryOperator); method public abstract java.util.Optional reduce(java.util.function.BinaryOperator); - method public abstract U reduce(U, java.util.function.BiFunction, java.util.function.BinaryOperator); + method public abstract U reduce(U, java.util.function.BiFunction, java.util.function.BinaryOperator); method public abstract java.util.stream.Stream skip(long); method public abstract java.util.stream.Stream sorted(); method public abstract java.util.stream.Stream sorted(java.util.Comparator); method public abstract java.lang.Object[] toArray(); - method public abstract A[] toArray(java.util.function.IntFunction); + method public abstract A[] toArray(java.util.function.IntFunction); } - public static abstract interface Stream.Builder implements java.util.function.Consumer { + public static abstract interface Stream.Builder implements java.util.function.Consumer { method public abstract void accept(T); method public default java.util.stream.Stream.Builder add(T); method public abstract java.util.stream.Stream build(); @@ -61907,8 +61907,8 @@ package java.util.stream { method public static java.util.stream.IntStream intStream(java.util.function.Supplier, int, boolean); method public static java.util.stream.LongStream longStream(java.util.Spliterator.OfLong, boolean); method public static java.util.stream.LongStream longStream(java.util.function.Supplier, int, boolean); - method public static java.util.stream.Stream stream(java.util.Spliterator, boolean); - method public static java.util.stream.Stream stream(java.util.function.Supplier>, int, boolean); + method public static java.util.stream.Stream stream(java.util.Spliterator, boolean); + method public static java.util.stream.Stream stream(java.util.function.Supplier>, int, boolean); } } @@ -64079,16 +64079,16 @@ package javax.security.auth { public final class Subject implements java.io.Serializable { ctor public Subject(); ctor public Subject(boolean, java.util.Set, java.util.Set, java.util.Set); - method public static T doAs(javax.security.auth.Subject, java.security.PrivilegedAction); - method public static T doAs(javax.security.auth.Subject, java.security.PrivilegedExceptionAction) throws java.security.PrivilegedActionException; - method public static T doAsPrivileged(javax.security.auth.Subject, java.security.PrivilegedAction, java.security.AccessControlContext); - method public static T doAsPrivileged(javax.security.auth.Subject, java.security.PrivilegedExceptionAction, java.security.AccessControlContext) throws java.security.PrivilegedActionException; + method public static T doAs(javax.security.auth.Subject, java.security.PrivilegedAction); + method public static T doAs(javax.security.auth.Subject, java.security.PrivilegedExceptionAction) throws java.security.PrivilegedActionException; + method public static T doAsPrivileged(javax.security.auth.Subject, java.security.PrivilegedAction, java.security.AccessControlContext); + method public static T doAsPrivileged(javax.security.auth.Subject, java.security.PrivilegedExceptionAction, java.security.AccessControlContext) throws java.security.PrivilegedActionException; method public java.util.Set getPrincipals(); - method public java.util.Set getPrincipals(java.lang.Class); + method public java.util.Set getPrincipals(java.lang.Class); method public java.util.Set getPrivateCredentials(); - method public java.util.Set getPrivateCredentials(java.lang.Class); + method public java.util.Set getPrivateCredentials(java.lang.Class); method public java.util.Set getPublicCredentials(); - method public java.util.Set getPublicCredentials(java.lang.Class); + method public java.util.Set getPublicCredentials(java.lang.Class); method public static javax.security.auth.Subject getSubject(java.security.AccessControlContext); method public boolean isReadOnly(); method public void setReadOnly(); diff --git a/api/system-current.txt b/api/system-current.txt index c33fe6eed6cc..b3d016962984 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -3031,11 +3031,11 @@ package android.accounts { field public static final java.lang.String LOGIN_ACCOUNTS_CHANGED_ACTION = "android.accounts.LOGIN_ACCOUNTS_CHANGED"; } - public abstract interface AccountManagerCallback { + public abstract interface AccountManagerCallback { method public abstract void run(android.accounts.AccountManagerFuture); } - public abstract interface AccountManagerFuture { + public abstract interface AccountManagerFuture { method public abstract boolean cancel(boolean); method public abstract V getResult() throws android.accounts.AuthenticatorException, java.io.IOException, android.accounts.OperationCanceledException; method public abstract V getResult(long, java.util.concurrent.TimeUnit) throws android.accounts.AuthenticatorException, java.io.IOException, android.accounts.OperationCanceledException; @@ -3181,7 +3181,7 @@ package android.animation { method public java.lang.Object evaluate(float, java.lang.Object, java.lang.Object); } - public abstract class BidirectionalTypeConverter extends android.animation.TypeConverter { + public abstract class BidirectionalTypeConverter extends android.animation.TypeConverter { ctor public BidirectionalTypeConverter(java.lang.Class, java.lang.Class); method public abstract T convertBack(V); method public android.animation.BidirectionalTypeConverter invert(); @@ -3273,26 +3273,26 @@ package android.animation { method public java.lang.String getPropertyName(); method public java.lang.Object getTarget(); method public static android.animation.ObjectAnimator ofArgb(java.lang.Object, java.lang.String, int...); - method public static android.animation.ObjectAnimator ofArgb(T, android.util.Property, int...); + method public static android.animation.ObjectAnimator ofArgb(T, android.util.Property, int...); method public static android.animation.ObjectAnimator ofFloat(java.lang.Object, java.lang.String, float...); method public static android.animation.ObjectAnimator ofFloat(java.lang.Object, java.lang.String, java.lang.String, android.graphics.Path); - method public static android.animation.ObjectAnimator ofFloat(T, android.util.Property, float...); - method public static android.animation.ObjectAnimator ofFloat(T, android.util.Property, android.util.Property, android.graphics.Path); + method public static android.animation.ObjectAnimator ofFloat(T, android.util.Property, float...); + method public static android.animation.ObjectAnimator ofFloat(T, android.util.Property, android.util.Property, android.graphics.Path); method public static android.animation.ObjectAnimator ofInt(java.lang.Object, java.lang.String, int...); method public static android.animation.ObjectAnimator ofInt(java.lang.Object, java.lang.String, java.lang.String, android.graphics.Path); - method public static android.animation.ObjectAnimator ofInt(T, android.util.Property, int...); - method public static android.animation.ObjectAnimator ofInt(T, android.util.Property, android.util.Property, android.graphics.Path); + method public static android.animation.ObjectAnimator ofInt(T, android.util.Property, int...); + method public static android.animation.ObjectAnimator ofInt(T, android.util.Property, android.util.Property, android.graphics.Path); method public static android.animation.ObjectAnimator ofMultiFloat(java.lang.Object, java.lang.String, float[][]); method public static android.animation.ObjectAnimator ofMultiFloat(java.lang.Object, java.lang.String, android.graphics.Path); - method public static android.animation.ObjectAnimator ofMultiFloat(java.lang.Object, java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, T...); + method public static android.animation.ObjectAnimator ofMultiFloat(java.lang.Object, java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, T...); method public static android.animation.ObjectAnimator ofMultiInt(java.lang.Object, java.lang.String, int[][]); method public static android.animation.ObjectAnimator ofMultiInt(java.lang.Object, java.lang.String, android.graphics.Path); - method public static android.animation.ObjectAnimator ofMultiInt(java.lang.Object, java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, T...); + method public static android.animation.ObjectAnimator ofMultiInt(java.lang.Object, java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, T...); method public static android.animation.ObjectAnimator ofObject(java.lang.Object, java.lang.String, android.animation.TypeEvaluator, java.lang.Object...); method public static android.animation.ObjectAnimator ofObject(java.lang.Object, java.lang.String, android.animation.TypeConverter, android.graphics.Path); - method public static android.animation.ObjectAnimator ofObject(T, android.util.Property, android.animation.TypeEvaluator, V...); - method public static android.animation.ObjectAnimator ofObject(T, android.util.Property, android.animation.TypeConverter, android.animation.TypeEvaluator, V...); - method public static android.animation.ObjectAnimator ofObject(T, android.util.Property, android.animation.TypeConverter, android.graphics.Path); + method public static android.animation.ObjectAnimator ofObject(T, android.util.Property, android.animation.TypeEvaluator, V...); + method public static android.animation.ObjectAnimator ofObject(T, android.util.Property, android.animation.TypeConverter, android.animation.TypeEvaluator, V...); + method public static android.animation.ObjectAnimator ofObject(T, android.util.Property, android.animation.TypeConverter, android.graphics.Path); method public static android.animation.ObjectAnimator ofPropertyValuesHolder(java.lang.Object, android.animation.PropertyValuesHolder...); method public void setAutoCancel(boolean); method public void setProperty(android.util.Property); @@ -3316,17 +3316,17 @@ package android.animation { method public static android.animation.PropertyValuesHolder ofKeyframe(android.util.Property, android.animation.Keyframe...); method public static android.animation.PropertyValuesHolder ofMultiFloat(java.lang.String, float[][]); method public static android.animation.PropertyValuesHolder ofMultiFloat(java.lang.String, android.graphics.Path); - method public static android.animation.PropertyValuesHolder ofMultiFloat(java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, V...); - method public static android.animation.PropertyValuesHolder ofMultiFloat(java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, android.animation.Keyframe...); + method public static android.animation.PropertyValuesHolder ofMultiFloat(java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, V...); + method public static android.animation.PropertyValuesHolder ofMultiFloat(java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, android.animation.Keyframe...); method public static android.animation.PropertyValuesHolder ofMultiInt(java.lang.String, int[][]); method public static android.animation.PropertyValuesHolder ofMultiInt(java.lang.String, android.graphics.Path); - method public static android.animation.PropertyValuesHolder ofMultiInt(java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, V...); - method public static android.animation.PropertyValuesHolder ofMultiInt(java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, android.animation.Keyframe...); + method public static android.animation.PropertyValuesHolder ofMultiInt(java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, V...); + method public static android.animation.PropertyValuesHolder ofMultiInt(java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, android.animation.Keyframe...); method public static android.animation.PropertyValuesHolder ofObject(java.lang.String, android.animation.TypeEvaluator, java.lang.Object...); method public static android.animation.PropertyValuesHolder ofObject(java.lang.String, android.animation.TypeConverter, android.graphics.Path); - method public static android.animation.PropertyValuesHolder ofObject(android.util.Property, android.animation.TypeEvaluator, V...); - method public static android.animation.PropertyValuesHolder ofObject(android.util.Property, android.animation.TypeConverter, android.animation.TypeEvaluator, T...); - method public static android.animation.PropertyValuesHolder ofObject(android.util.Property, android.animation.TypeConverter, android.graphics.Path); + method public static android.animation.PropertyValuesHolder ofObject(android.util.Property, android.animation.TypeEvaluator, V...); + method public static android.animation.PropertyValuesHolder ofObject(android.util.Property, android.animation.TypeConverter, android.animation.TypeEvaluator, T...); + method public static android.animation.PropertyValuesHolder ofObject(android.util.Property, android.animation.TypeConverter, android.graphics.Path); method public void setConverter(android.animation.TypeConverter); method public void setEvaluator(android.animation.TypeEvaluator); method public void setFloatValues(float...); @@ -3363,12 +3363,12 @@ package android.animation { method public abstract float getInterpolation(float); } - public abstract class TypeConverter { + public abstract class TypeConverter { ctor public TypeConverter(java.lang.Class, java.lang.Class); method public abstract V convert(T); } - public abstract interface TypeEvaluator { + public abstract interface TypeEvaluator { method public abstract T evaluate(float, T, T); } @@ -4726,7 +4726,7 @@ package android.app { method public android.os.Parcelable saveAllState(); } - public abstract class FragmentHostCallback extends android.app.FragmentContainer { + public abstract class FragmentHostCallback extends android.app.FragmentContainer { ctor public FragmentHostCallback(android.content.Context, android.os.Handler, int); method public void onAttachFragment(android.app.Fragment); method public void onDump(java.lang.String, java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]); @@ -4993,12 +4993,12 @@ package android.app { method public abstract void destroyLoader(int); method public abstract void dump(java.lang.String, java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]); method public static void enableDebugLogging(boolean); - method public abstract android.content.Loader getLoader(int); - method public abstract android.content.Loader initLoader(int, android.os.Bundle, android.app.LoaderManager.LoaderCallbacks); - method public abstract android.content.Loader restartLoader(int, android.os.Bundle, android.app.LoaderManager.LoaderCallbacks); + method public abstract android.content.Loader getLoader(int); + method public abstract android.content.Loader initLoader(int, android.os.Bundle, android.app.LoaderManager.LoaderCallbacks); + method public abstract android.content.Loader restartLoader(int, android.os.Bundle, android.app.LoaderManager.LoaderCallbacks); } - public static abstract interface LoaderManager.LoaderCallbacks { + public static abstract interface LoaderManager.LoaderCallbacks { method public abstract android.content.Loader onCreateLoader(int, android.os.Bundle); method public abstract void onLoadFinished(android.content.Loader, D); method public abstract void onLoaderReset(android.content.Loader); @@ -7952,7 +7952,7 @@ package android.content { ctor public AsyncQueryHandler.WorkerHandler(android.os.Looper); } - public abstract class AsyncTaskLoader extends android.content.Loader { + public abstract class AsyncTaskLoader extends android.content.Loader { ctor public AsyncTaskLoader(android.content.Context); method public void cancelLoadInBackground(); method public boolean isLoadInBackgroundCanceled(); @@ -8134,7 +8134,7 @@ package android.content { method public android.os.ParcelFileDescriptor openFile(android.net.Uri, java.lang.String) throws java.io.FileNotFoundException; method public android.os.ParcelFileDescriptor openFile(android.net.Uri, java.lang.String, android.os.CancellationSignal) throws java.io.FileNotFoundException; method protected final android.os.ParcelFileDescriptor openFileHelper(android.net.Uri, java.lang.String) throws java.io.FileNotFoundException; - method public android.os.ParcelFileDescriptor openPipeHelper(android.net.Uri, java.lang.String, android.os.Bundle, T, android.content.ContentProvider.PipeDataWriter) throws java.io.FileNotFoundException; + method public android.os.ParcelFileDescriptor openPipeHelper(android.net.Uri, java.lang.String, android.os.Bundle, T, android.content.ContentProvider.PipeDataWriter) throws java.io.FileNotFoundException; method public android.content.res.AssetFileDescriptor openTypedAssetFile(android.net.Uri, java.lang.String, android.os.Bundle) throws java.io.FileNotFoundException; method public android.content.res.AssetFileDescriptor openTypedAssetFile(android.net.Uri, java.lang.String, android.os.Bundle, android.os.CancellationSignal) throws java.io.FileNotFoundException; method public abstract android.database.Cursor query(android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String); @@ -8147,7 +8147,7 @@ package android.content { method public abstract int update(android.net.Uri, android.content.ContentValues, java.lang.String, java.lang.String[]); } - public static abstract interface ContentProvider.PipeDataWriter { + public static abstract interface ContentProvider.PipeDataWriter { method public abstract void writeDataToPipe(android.os.ParcelFileDescriptor, android.net.Uri, java.lang.String, android.os.Bundle, T); } @@ -8420,7 +8420,7 @@ package android.content { method public final java.lang.String getString(int); method public final java.lang.String getString(int, java.lang.Object...); method public abstract java.lang.Object getSystemService(java.lang.String); - method public final T getSystemService(java.lang.Class); + method public final T getSystemService(java.lang.Class); method public abstract java.lang.String getSystemServiceName(java.lang.Class); method public final java.lang.CharSequence getText(int); method public abstract android.content.res.Resources.Theme getTheme(); @@ -8789,8 +8789,8 @@ package android.content { method public long getLongExtra(java.lang.String, long); method public java.lang.String getPackage(); method public android.os.Parcelable[] getParcelableArrayExtra(java.lang.String); - method public java.util.ArrayList getParcelableArrayListExtra(java.lang.String); - method public T getParcelableExtra(java.lang.String); + method public java.util.ArrayList getParcelableArrayListExtra(java.lang.String); + method public T getParcelableExtra(java.lang.String); method public java.lang.String getScheme(); method public android.content.Intent getSelector(); method public java.io.Serializable getSerializableExtra(java.lang.String); @@ -9277,7 +9277,7 @@ package android.content { ctor public IntentSender.SendIntentException(java.lang.Exception); } - public class Loader { + public class Loader { ctor public Loader(android.content.Context); method public void abandon(); method public boolean cancelLoad(); @@ -9314,11 +9314,11 @@ package android.content { ctor public Loader.ForceLoadContentObserver(); } - public static abstract interface Loader.OnLoadCanceledListener { + public static abstract interface Loader.OnLoadCanceledListener { method public abstract void onLoadCanceled(android.content.Loader); } - public static abstract interface Loader.OnLoadCompleteListener { + public static abstract interface Loader.OnLoadCompleteListener { method public abstract void onLoadComplete(android.content.Loader, D); } @@ -11287,7 +11287,7 @@ package android.database { method public boolean isNull(int); } - public abstract class Observable { + public abstract class Observable { ctor public Observable(); method public void registerObserver(T); method public void unregisterAll(); @@ -13177,7 +13177,7 @@ package android.graphics.drawable { public class AnimatedStateListDrawable extends android.graphics.drawable.StateListDrawable { ctor public AnimatedStateListDrawable(); method public void addState(int[], android.graphics.drawable.Drawable, int); - method public void addTransition(int, int, T, boolean); + method public void addTransition(int, int, T, boolean); } public class AnimatedVectorDrawable extends android.graphics.drawable.Drawable implements android.graphics.drawable.Animatable2 { @@ -14309,7 +14309,7 @@ package android.hardware.camera2 { } public final class CameraCharacteristics extends android.hardware.camera2.CameraMetadata { - method public T get(android.hardware.camera2.CameraCharacteristics.Key); + method public T get(android.hardware.camera2.CameraCharacteristics.Key); method public java.util.List> getAvailableCaptureRequestKeys(); method public java.util.List> getAvailableCaptureResultKeys(); field public static final android.hardware.camera2.CameraCharacteristics.Key COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES; @@ -14394,7 +14394,7 @@ package android.hardware.camera2 { field public static final android.hardware.camera2.CameraCharacteristics.Key TONEMAP_MAX_CURVE_POINTS; } - public static final class CameraCharacteristics.Key { + public static final class CameraCharacteristics.Key { method public final boolean equals(java.lang.Object); method public java.lang.String getName(); method public final int hashCode(); @@ -14459,7 +14459,7 @@ package android.hardware.camera2 { method public void onTorchModeUnavailable(java.lang.String); } - public abstract class CameraMetadata { + public abstract class CameraMetadata { method public java.util.List getKeys(); field public static final int COLOR_CORRECTION_ABERRATION_MODE_FAST = 1; // 0x1 field public static final int COLOR_CORRECTION_ABERRATION_MODE_HIGH_QUALITY = 2; // 0x2 @@ -14667,7 +14667,7 @@ package android.hardware.camera2 { public final class CaptureRequest extends android.hardware.camera2.CameraMetadata implements android.os.Parcelable { method public int describeContents(); - method public T get(android.hardware.camera2.CaptureRequest.Key); + method public T get(android.hardware.camera2.CaptureRequest.Key); method public java.lang.Object getTag(); method public boolean isReprocess(); method public void writeToParcel(android.os.Parcel, int); @@ -14730,20 +14730,20 @@ package android.hardware.camera2 { public static final class CaptureRequest.Builder { method public void addTarget(android.view.Surface); method public android.hardware.camera2.CaptureRequest build(); - method public T get(android.hardware.camera2.CaptureRequest.Key); + method public T get(android.hardware.camera2.CaptureRequest.Key); method public void removeTarget(android.view.Surface); - method public void set(android.hardware.camera2.CaptureRequest.Key, T); + method public void set(android.hardware.camera2.CaptureRequest.Key, T); method public void setTag(java.lang.Object); } - public static final class CaptureRequest.Key { + public static final class CaptureRequest.Key { method public final boolean equals(java.lang.Object); method public java.lang.String getName(); method public final int hashCode(); } public class CaptureResult extends android.hardware.camera2.CameraMetadata { - method public T get(android.hardware.camera2.CaptureResult.Key); + method public T get(android.hardware.camera2.CaptureResult.Key); method public long getFrameNumber(); method public android.hardware.camera2.CaptureRequest getRequest(); method public int getSequenceId(); @@ -14824,7 +14824,7 @@ package android.hardware.camera2 { field public static final android.hardware.camera2.CaptureResult.Key TONEMAP_PRESET_CURVE; } - public static final class CaptureResult.Key { + public static final class CaptureResult.Key { method public final boolean equals(java.lang.Object); method public java.lang.String getName(); method public final int hashCode(); @@ -14956,14 +14956,14 @@ package android.hardware.camera2.params { method public android.util.Size[] getInputSizes(int); method public final int[] getOutputFormats(); method public long getOutputMinFrameDuration(int, android.util.Size); - method public long getOutputMinFrameDuration(java.lang.Class, android.util.Size); - method public android.util.Size[] getOutputSizes(java.lang.Class); + method public long getOutputMinFrameDuration(java.lang.Class, android.util.Size); + method public android.util.Size[] getOutputSizes(java.lang.Class); method public android.util.Size[] getOutputSizes(int); method public long getOutputStallDuration(int, android.util.Size); - method public long getOutputStallDuration(java.lang.Class, android.util.Size); + method public long getOutputStallDuration(java.lang.Class, android.util.Size); method public final int[] getValidOutputFormatsForInput(int); method public boolean isOutputSupportedFor(int); - method public static boolean isOutputSupportedFor(java.lang.Class); + method public static boolean isOutputSupportedFor(java.lang.Class); method public boolean isOutputSupportedFor(android.view.Surface); } @@ -17411,7 +17411,7 @@ package android.icu.math { package android.icu.text { - public final class AlphabeticIndex implements java.lang.Iterable { + public final class AlphabeticIndex implements java.lang.Iterable { ctor public AlphabeticIndex(android.icu.util.ULocale); ctor public AlphabeticIndex(java.util.Locale); ctor public AlphabeticIndex(android.icu.text.RuleBasedCollator); @@ -17437,7 +17437,7 @@ package android.icu.text { method public android.icu.text.AlphabeticIndex setUnderflowLabel(java.lang.String); } - public static class AlphabeticIndex.Bucket implements java.lang.Iterable { + public static class AlphabeticIndex.Bucket implements java.lang.Iterable { method public java.lang.String getLabel(); method public android.icu.text.AlphabeticIndex.Bucket.LabelType getLabelType(); method public java.util.Iterator> iterator(); @@ -17453,14 +17453,14 @@ package android.icu.text { enum_constant public static final android.icu.text.AlphabeticIndex.Bucket.LabelType UNDERFLOW; } - public static final class AlphabeticIndex.ImmutableIndex implements java.lang.Iterable { + public static final class AlphabeticIndex.ImmutableIndex implements java.lang.Iterable { method public android.icu.text.AlphabeticIndex.Bucket getBucket(int); method public int getBucketCount(); method public int getBucketIndex(java.lang.CharSequence); method public java.util.Iterator> iterator(); } - public static class AlphabeticIndex.Record { + public static class AlphabeticIndex.Record { method public V getData(); method public java.lang.CharSequence getName(); } @@ -18973,8 +18973,8 @@ package android.icu.text { method public final android.icu.text.UnicodeSet addAll(java.lang.CharSequence); method public android.icu.text.UnicodeSet addAll(android.icu.text.UnicodeSet); method public android.icu.text.UnicodeSet addAll(java.lang.Iterable); - method public android.icu.text.UnicodeSet addAll(T...); - method public T addAllTo(T); + method public android.icu.text.UnicodeSet addAll(T...); + method public > T addAllTo(T); method public void addMatchSetTo(android.icu.text.UnicodeSet); method public android.icu.text.UnicodeSet applyIntPropertyValue(int, int); method public final android.icu.text.UnicodeSet applyPattern(java.lang.String); @@ -19002,15 +19002,15 @@ package android.icu.text { method public final boolean contains(java.lang.CharSequence); method public boolean containsAll(android.icu.text.UnicodeSet); method public boolean containsAll(java.lang.String); - method public boolean containsAll(java.lang.Iterable); + method public boolean containsAll(java.lang.Iterable); method public boolean containsNone(int, int); method public boolean containsNone(android.icu.text.UnicodeSet); method public boolean containsNone(java.lang.CharSequence); - method public boolean containsNone(java.lang.Iterable); + method public boolean containsNone(java.lang.Iterable); method public final boolean containsSome(int, int); method public final boolean containsSome(android.icu.text.UnicodeSet); method public final boolean containsSome(java.lang.CharSequence); - method public final boolean containsSome(java.lang.Iterable); + method public final boolean containsSome(java.lang.Iterable); method public android.icu.text.UnicodeSet freeze(); method public static android.icu.text.UnicodeSet from(java.lang.CharSequence); method public static android.icu.text.UnicodeSet fromAll(java.lang.CharSequence); @@ -19028,14 +19028,14 @@ package android.icu.text { method public final android.icu.text.UnicodeSet remove(java.lang.CharSequence); method public final android.icu.text.UnicodeSet removeAll(java.lang.CharSequence); method public android.icu.text.UnicodeSet removeAll(android.icu.text.UnicodeSet); - method public android.icu.text.UnicodeSet removeAll(java.lang.Iterable); + method public android.icu.text.UnicodeSet removeAll(java.lang.Iterable); method public final android.icu.text.UnicodeSet removeAllStrings(); method public android.icu.text.UnicodeSet retain(int, int); method public final android.icu.text.UnicodeSet retain(int); method public final android.icu.text.UnicodeSet retain(java.lang.CharSequence); method public final android.icu.text.UnicodeSet retainAll(java.lang.CharSequence); method public android.icu.text.UnicodeSet retainAll(android.icu.text.UnicodeSet); - method public android.icu.text.UnicodeSet retainAll(java.lang.Iterable); + method public android.icu.text.UnicodeSet retainAll(java.lang.Iterable); method public android.icu.text.UnicodeSet set(int, int); method public android.icu.text.UnicodeSet set(android.icu.text.UnicodeSet); method public int size(); @@ -19445,7 +19445,7 @@ package android.icu.util { method public long getToDate(); } - public abstract interface Freezable implements java.lang.Cloneable { + public abstract interface Freezable implements java.lang.Cloneable { method public abstract T cloneAsThawed(); method public abstract T freeze(); method public abstract boolean isFrozen(); @@ -19727,7 +19727,7 @@ package android.icu.util { field public static final android.icu.util.TimeUnit YEAR; } - public class Output { + public class Output { ctor public Output(); ctor public Output(T); field public T value; @@ -30658,7 +30658,7 @@ package android.opengl { package android.os { - public abstract class AsyncTask { + public abstract class AsyncTask { ctor public AsyncTask(); method public final boolean cancel(boolean); method protected abstract Result doInBackground(Params...); @@ -30886,16 +30886,16 @@ package android.os { method public float getFloat(java.lang.String, float); method public float[] getFloatArray(java.lang.String); method public java.util.ArrayList getIntegerArrayList(java.lang.String); - method public T getParcelable(java.lang.String); + method public T getParcelable(java.lang.String); method public android.os.Parcelable[] getParcelableArray(java.lang.String); - method public java.util.ArrayList getParcelableArrayList(java.lang.String); + method public java.util.ArrayList getParcelableArrayList(java.lang.String); method public java.io.Serializable getSerializable(java.lang.String); method public short getShort(java.lang.String); method public short getShort(java.lang.String, short); method public short[] getShortArray(java.lang.String); method public android.util.Size getSize(java.lang.String); method public android.util.SizeF getSizeF(java.lang.String); - method public android.util.SparseArray getSparseParcelableArray(java.lang.String); + method public android.util.SparseArray getSparseParcelableArray(java.lang.String); method public java.util.ArrayList getStringArrayList(java.lang.String); method public boolean hasFileDescriptors(); method public void putAll(android.os.Bundle); @@ -31400,8 +31400,8 @@ package android.os { method public final long[] createLongArray(); method public final java.lang.String[] createStringArray(); method public final java.util.ArrayList createStringArrayList(); - method public final T[] createTypedArray(android.os.Parcelable.Creator); - method public final java.util.ArrayList createTypedArrayList(android.os.Parcelable.Creator); + method public final T[] createTypedArray(android.os.Parcelable.Creator); + method public final java.util.ArrayList createTypedArrayList(android.os.Parcelable.Creator); method public final int dataAvail(); method public final int dataCapacity(); method public final int dataPosition(); @@ -31434,7 +31434,7 @@ package android.os { method public final long readLong(); method public final void readLongArray(long[]); method public final void readMap(java.util.Map, java.lang.ClassLoader); - method public final T readParcelable(java.lang.ClassLoader); + method public final T readParcelable(java.lang.ClassLoader); method public final android.os.Parcelable[] readParcelableArray(java.lang.ClassLoader); method public final android.os.PersistableBundle readPersistableBundle(); method public final android.os.PersistableBundle readPersistableBundle(java.lang.ClassLoader); @@ -31447,9 +31447,9 @@ package android.os { method public final void readStringArray(java.lang.String[]); method public final void readStringList(java.util.List); method public final android.os.IBinder readStrongBinder(); - method public final void readTypedArray(T[], android.os.Parcelable.Creator); - method public final void readTypedList(java.util.List, android.os.Parcelable.Creator); - method public final T readTypedObject(android.os.Parcelable.Creator); + method public final void readTypedArray(T[], android.os.Parcelable.Creator); + method public final void readTypedList(java.util.List, android.os.Parcelable.Creator); + method public final T readTypedObject(android.os.Parcelable.Creator); method public final java.lang.Object readValue(java.lang.ClassLoader); method public final void recycle(); method public final void setDataCapacity(int); @@ -31480,7 +31480,7 @@ package android.os { method public final void writeMap(java.util.Map); method public final void writeNoException(); method public final void writeParcelable(android.os.Parcelable, int); - method public final void writeParcelableArray(T[], int); + method public final void writeParcelableArray(T[], int); method public final void writePersistableBundle(android.os.PersistableBundle); method public final void writeSerializable(java.io.Serializable); method public final void writeSize(android.util.Size); @@ -31492,9 +31492,9 @@ package android.os { method public final void writeStringList(java.util.List); method public final void writeStrongBinder(android.os.IBinder); method public final void writeStrongInterface(android.os.IInterface); - method public final void writeTypedArray(T[], int); - method public final void writeTypedList(java.util.List); - method public final void writeTypedObject(T, int); + method public final void writeTypedArray(T[], int); + method public final void writeTypedList(java.util.List); + method public final void writeTypedObject(T, int); method public final void writeValue(java.lang.Object); field public static final android.os.Parcelable.Creator STRING_CREATOR; } @@ -31572,11 +31572,11 @@ package android.os { field public static final int PARCELABLE_WRITE_RETURN_VALUE = 1; // 0x1 } - public static abstract interface Parcelable.ClassLoaderCreator implements android.os.Parcelable.Creator { + public static abstract interface Parcelable.ClassLoaderCreator implements android.os.Parcelable.Creator { method public abstract T createFromParcel(android.os.Parcel, java.lang.ClassLoader); } - public static abstract interface Parcelable.Creator { + public static abstract interface Parcelable.Creator { method public abstract T createFromParcel(android.os.Parcel); method public abstract T[] newArray(int); } @@ -31718,7 +31718,7 @@ package android.os { method public abstract void onResult(android.os.Bundle); } - public class RemoteCallbackList { + public class RemoteCallbackList { ctor public RemoteCallbackList(); method public int beginBroadcast(); method public void finishBroadcast(); @@ -37278,7 +37278,7 @@ package android.service.carrier { field public static final java.lang.String SERVICE_INTERFACE = "android.service.carrier.CarrierMessagingService"; } - public static abstract interface CarrierMessagingService.ResultCallback { + public static abstract interface CarrierMessagingService.ResultCallback { method public abstract void onReceiveResult(T) throws android.os.RemoteException; } @@ -37429,7 +37429,7 @@ package android.service.media { field public static final java.lang.String EXTRA_SUGGESTED = "android.service.media.extra.SUGGESTED"; } - public class MediaBrowserService.Result { + public class MediaBrowserService.Result { method public void detach(); method public void sendResult(T); } @@ -40749,14 +40749,14 @@ package android.telephony.gsm { package android.test { - public abstract deprecated class ActivityInstrumentationTestCase extends android.test.ActivityTestCase { + public abstract deprecated class ActivityInstrumentationTestCase extends android.test.ActivityTestCase { ctor public ActivityInstrumentationTestCase(java.lang.String, java.lang.Class); ctor public ActivityInstrumentationTestCase(java.lang.String, java.lang.Class, boolean); method public T getActivity(); method public void testActivityTestCaseSetUpProperly() throws java.lang.Exception; } - public abstract deprecated class ActivityInstrumentationTestCase2 extends android.test.ActivityTestCase { + public abstract deprecated class ActivityInstrumentationTestCase2 extends android.test.ActivityTestCase { ctor public deprecated ActivityInstrumentationTestCase2(java.lang.String, java.lang.Class); ctor public ActivityInstrumentationTestCase2(java.lang.Class); method public T getActivity(); @@ -40771,7 +40771,7 @@ package android.test { method protected void setActivity(android.app.Activity); } - public abstract deprecated class ActivityUnitTestCase extends android.test.ActivityTestCase { + public abstract deprecated class ActivityUnitTestCase extends android.test.ActivityTestCase { ctor public ActivityUnitTestCase(java.lang.Class); method public T getActivity(); method public int getFinishedActivityRequest(); @@ -40817,7 +40817,7 @@ package android.test { method public void testStarted(java.lang.String); } - public abstract deprecated class ApplicationTestCase extends android.test.AndroidTestCase { + public abstract deprecated class ApplicationTestCase extends android.test.AndroidTestCase { ctor public ApplicationTestCase(java.lang.Class); method protected final void createApplication(); method public T getApplication(); @@ -40843,8 +40843,8 @@ package android.test { method public android.app.Instrumentation getInstrumentation(); method public deprecated void injectInsrumentation(android.app.Instrumentation); method public void injectInstrumentation(android.app.Instrumentation); - method public final T launchActivity(java.lang.String, java.lang.Class, android.os.Bundle); - method public final T launchActivityWithIntent(java.lang.String, java.lang.Class, android.content.Intent); + method public final T launchActivity(java.lang.String, java.lang.Class, android.os.Bundle); + method public final T launchActivityWithIntent(java.lang.String, java.lang.Class, android.content.Intent); method public void runTestOnUiThread(java.lang.Runnable) throws java.lang.Throwable; method public void sendKeys(java.lang.String); method public void sendKeys(int...); @@ -40884,7 +40884,7 @@ package android.test { public class LoaderTestCase extends android.test.AndroidTestCase { ctor public LoaderTestCase(); - method public T getLoaderResultSynchronously(android.content.Loader); + method public T getLoaderResultSynchronously(android.content.Loader); } public final deprecated class MoreAsserts { @@ -40939,20 +40939,20 @@ package android.test { method public abstract void startTiming(boolean); } - public abstract deprecated class ProviderTestCase extends android.test.InstrumentationTestCase { + public abstract deprecated class ProviderTestCase extends android.test.InstrumentationTestCase { ctor public ProviderTestCase(java.lang.Class, java.lang.String); method public android.test.mock.MockContentResolver getMockContentResolver(); method public android.test.IsolatedContext getMockContext(); method public T getProvider(); - method public static android.content.ContentResolver newResolverWithContentProviderFromSql(android.content.Context, java.lang.Class, java.lang.String, java.lang.String, int, java.lang.String) throws java.lang.IllegalAccessException, java.lang.InstantiationException; + method public static android.content.ContentResolver newResolverWithContentProviderFromSql(android.content.Context, java.lang.Class, java.lang.String, java.lang.String, int, java.lang.String) throws java.lang.IllegalAccessException, java.lang.InstantiationException; } - public abstract class ProviderTestCase2 extends android.test.AndroidTestCase { + public abstract class ProviderTestCase2 extends android.test.AndroidTestCase { ctor public ProviderTestCase2(java.lang.Class, java.lang.String); method public android.test.mock.MockContentResolver getMockContentResolver(); method public android.test.IsolatedContext getMockContext(); method public T getProvider(); - method public static android.content.ContentResolver newResolverWithContentProviderFromSql(android.content.Context, java.lang.String, java.lang.Class, java.lang.String, java.lang.String, int, java.lang.String) throws java.lang.IllegalAccessException, java.lang.InstantiationException; + method public static android.content.ContentResolver newResolverWithContentProviderFromSql(android.content.Context, java.lang.String, java.lang.Class, java.lang.String, java.lang.String, int, java.lang.String) throws java.lang.IllegalAccessException, java.lang.InstantiationException; } public deprecated class RenamingDelegatingContext extends android.content.ContextWrapper { @@ -40960,11 +40960,11 @@ package android.test { ctor public RenamingDelegatingContext(android.content.Context, android.content.Context, java.lang.String); method public java.lang.String getDatabasePrefix(); method public void makeExistingFilesAndDbsAccessible(); - method public static T providerWithRenamedContext(java.lang.Class, android.content.Context, java.lang.String) throws java.lang.IllegalAccessException, java.lang.InstantiationException; - method public static T providerWithRenamedContext(java.lang.Class, android.content.Context, java.lang.String, boolean) throws java.lang.IllegalAccessException, java.lang.InstantiationException; + method public static T providerWithRenamedContext(java.lang.Class, android.content.Context, java.lang.String) throws java.lang.IllegalAccessException, java.lang.InstantiationException; + method public static T providerWithRenamedContext(java.lang.Class, android.content.Context, java.lang.String, boolean) throws java.lang.IllegalAccessException, java.lang.InstantiationException; } - public abstract deprecated class ServiceTestCase extends android.test.AndroidTestCase { + public abstract deprecated class ServiceTestCase extends android.test.AndroidTestCase { ctor public ServiceTestCase(java.lang.Class); method protected android.os.IBinder bindService(android.content.Intent); method public android.app.Application getApplication(); @@ -40977,7 +40977,7 @@ package android.test { method public void testServiceTestCaseSetUpProperly() throws java.lang.Exception; } - public abstract deprecated class SingleLaunchActivityTestCase extends android.test.InstrumentationTestCase { + public abstract deprecated class SingleLaunchActivityTestCase extends android.test.InstrumentationTestCase { ctor public SingleLaunchActivityTestCase(java.lang.String, java.lang.Class); method public T getActivity(); method public void testActivityTestCaseSetUpProperly() throws java.lang.Exception; @@ -41344,7 +41344,7 @@ package android.test.suitebuilder { ctor public TestMethod(java.lang.String, java.lang.Class); ctor public TestMethod(junit.framework.TestCase); method public junit.framework.TestCase createTest() throws java.lang.IllegalAccessException, java.lang.InstantiationException, java.lang.reflect.InvocationTargetException; - method public T getAnnotation(java.lang.Class); + method public T getAnnotation(java.lang.Class); method public java.lang.Class getEnclosingClass(); method public java.lang.String getEnclosingClassname(); method public java.lang.String getName(); @@ -41787,7 +41787,7 @@ package android.text { method public int getSpanEnd(java.lang.Object); method public int getSpanFlags(java.lang.Object); method public int getSpanStart(java.lang.Object); - method public T[] getSpans(int, int, java.lang.Class); + method public T[] getSpans(int, int, java.lang.Class); method public deprecated int getTextRunCursor(int, int, int, int, int, android.graphics.Paint); method public int getTextWatcherDepth(); method public android.text.SpannableStringBuilder insert(int, java.lang.CharSequence, int, int); @@ -41809,7 +41809,7 @@ package android.text { method public int getSpanEnd(java.lang.Object); method public int getSpanFlags(java.lang.Object); method public int getSpanStart(java.lang.Object); - method public T[] getSpans(int, int, java.lang.Class); + method public T[] getSpans(int, int, java.lang.Class); method public final int length(); method public int nextSpanTransition(int, int, java.lang.Class); method public final java.lang.String toString(); @@ -41819,7 +41819,7 @@ package android.text { method public abstract int getSpanEnd(java.lang.Object); method public abstract int getSpanFlags(java.lang.Object); method public abstract int getSpanStart(java.lang.Object); - method public abstract T[] getSpans(int, int, java.lang.Class); + method public abstract T[] getSpans(int, int, java.lang.Class); method public abstract int nextSpanTransition(int, int, java.lang.Class); field public static final int SPAN_COMPOSING = 256; // 0x100 field public static final int SPAN_EXCLUSIVE_EXCLUSIVE = 33; // 0x21 @@ -42796,7 +42796,7 @@ package android.text.style { field public static final int WEEKDAY_WEDNESDAY = 4; // 0x4 } - public static class TtsSpan.Builder { + public static class TtsSpan.Builder> { ctor public TtsSpan.Builder(java.lang.String); method public android.text.style.TtsSpan build(); method public C setIntArgument(java.lang.String, int); @@ -42892,7 +42892,7 @@ package android.text.style { method public android.text.style.TtsSpan.OrdinalBuilder setNumber(java.lang.String); } - public static class TtsSpan.SemioticClassBuilder extends android.text.style.TtsSpan.Builder { + public static class TtsSpan.SemioticClassBuilder> extends android.text.style.TtsSpan.Builder { ctor public TtsSpan.SemioticClassBuilder(java.lang.String); method public C setAnimacy(java.lang.String); method public C setCase(java.lang.String); @@ -43299,7 +43299,7 @@ package android.util { ctor public AndroidRuntimeException(java.lang.Exception); } - public final class ArrayMap implements java.util.Map { + public final class ArrayMap implements java.util.Map { ctor public ArrayMap(); ctor public ArrayMap(int); ctor public ArrayMap(android.util.ArrayMap); @@ -43327,7 +43327,7 @@ package android.util { method public java.util.Collection values(); } - public final class ArraySet implements java.util.Collection java.util.Set { + public final class ArraySet implements java.util.Collection java.util.Set { ctor public ArraySet(); ctor public ArraySet(int); ctor public ArraySet(android.util.ArraySet); @@ -43348,7 +43348,7 @@ package android.util { method public boolean retainAll(java.util.Collection); method public int size(); method public java.lang.Object[] toArray(); - method public T[] toArray(T[]); + method public T[] toArray(T[]); method public E valueAt(int); } @@ -43493,13 +43493,13 @@ package android.util { public deprecated class FloatMath { } - public abstract class FloatProperty extends android.util.Property { + public abstract class FloatProperty extends android.util.Property { ctor public FloatProperty(java.lang.String); method public final void set(T, java.lang.Float); method public abstract void setValue(T, float); } - public abstract class IntProperty extends android.util.Property { + public abstract class IntProperty extends android.util.Property { ctor public IntProperty(java.lang.String); method public final void set(T, java.lang.Integer); method public abstract void setValue(T, int); @@ -43599,7 +43599,7 @@ package android.util { method public void println(java.lang.String); } - public class LongSparseArray implements java.lang.Cloneable { + public class LongSparseArray implements java.lang.Cloneable { ctor public LongSparseArray(); ctor public LongSparseArray(int); method public void append(long, E); @@ -43619,7 +43619,7 @@ package android.util { method public E valueAt(int); } - public class LruCache { + public class LruCache { ctor public LruCache(int); method protected V create(K); method public final synchronized int createCount(); @@ -43707,9 +43707,9 @@ package android.util { ctor public NoSuchPropertyException(java.lang.String); } - public class Pair { + public class Pair { ctor public Pair(F, S); - method public static android.util.Pair create(A, B); + method public static android.util.Pair create(A, B); field public final F first; field public final S second; } @@ -43742,22 +43742,22 @@ package android.util { method public abstract void println(java.lang.String); } - public abstract class Property { + public abstract class Property { ctor public Property(java.lang.Class, java.lang.String); method public abstract V get(T); method public java.lang.String getName(); method public java.lang.Class getType(); method public boolean isReadOnly(); - method public static android.util.Property of(java.lang.Class, java.lang.Class, java.lang.String); + method public static android.util.Property of(java.lang.Class, java.lang.Class, java.lang.String); method public void set(T, V); } - public final class Range { + public final class Range> { ctor public Range(T, T); method public T clamp(T); method public boolean contains(T); method public boolean contains(android.util.Range); - method public static android.util.Range create(T, T); + method public static > android.util.Range create(T, T); method public android.util.Range extend(android.util.Range); method public android.util.Range extend(T, T); method public android.util.Range extend(T); @@ -43801,7 +43801,7 @@ package android.util { method public static android.util.SizeF parseSizeF(java.lang.String) throws java.lang.NumberFormatException; } - public class SparseArray implements java.lang.Cloneable { + public class SparseArray implements java.lang.Cloneable { ctor public SparseArray(); ctor public SparseArray(int); method public void append(int, E); @@ -48606,7 +48606,7 @@ package android.webkit { method public static java.lang.String stripAnchor(java.lang.String); } - public abstract interface ValueCallback { + public abstract interface ValueCallback { method public abstract void onReceiveValue(T); } @@ -49621,7 +49621,7 @@ package android.widget { field public static final int NO_SELECTION = -2147483648; // 0x80000000 } - public abstract class AdapterView extends android.view.ViewGroup { + public abstract class AdapterView extends android.view.ViewGroup { ctor public AdapterView(android.content.Context); ctor public AdapterView(android.content.Context, android.util.AttributeSet); ctor public AdapterView(android.content.Context, android.util.AttributeSet, int); @@ -49744,7 +49744,7 @@ package android.widget { ctor public AnalogClock(android.content.Context, android.util.AttributeSet, int, int); } - public class ArrayAdapter extends android.widget.BaseAdapter implements android.widget.Filterable android.widget.ThemedSpinnerAdapter { + public class ArrayAdapter extends android.widget.BaseAdapter implements android.widget.Filterable android.widget.ThemedSpinnerAdapter { ctor public ArrayAdapter(android.content.Context, int); ctor public ArrayAdapter(android.content.Context, int, int); ctor public ArrayAdapter(android.content.Context, int, T[]); @@ -49805,7 +49805,7 @@ package android.widget { method protected void performFiltering(java.lang.CharSequence, int); method public void performValidation(); method protected void replaceText(java.lang.CharSequence); - method public void setAdapter(T); + method public void setAdapter(T); method public void setCompletionHint(java.lang.CharSequence); method public void setDropDownAnchor(int); method public void setDropDownBackgroundDrawable(android.graphics.drawable.Drawable); @@ -52090,7 +52090,7 @@ package android.widget { package com.android.internal.util { - public abstract interface Predicate { + public abstract interface Predicate { method public abstract boolean apply(T); } @@ -54137,13 +54137,13 @@ package java.lang { enum_constant public static final java.lang.Character.UnicodeScript YI; } - public final class Class implements java.lang.reflect.AnnotatedElement java.lang.reflect.GenericDeclaration java.io.Serializable java.lang.reflect.Type { - method public java.lang.Class asSubclass(java.lang.Class); + public final class Class implements java.lang.reflect.AnnotatedElement java.lang.reflect.GenericDeclaration java.io.Serializable java.lang.reflect.Type { + method public java.lang.Class asSubclass(java.lang.Class); method public T cast(java.lang.Object); method public boolean desiredAssertionStatus(); method public static java.lang.Class forName(java.lang.String) throws java.lang.ClassNotFoundException; method public static java.lang.Class forName(java.lang.String, boolean, java.lang.ClassLoader) throws java.lang.ClassNotFoundException; - method public A getAnnotation(java.lang.Class); + method public A getAnnotation(java.lang.Class); method public java.lang.annotation.Annotation[] getAnnotations(); method public java.lang.String getCanonicalName(); method public java.lang.ClassLoader getClassLoader(); @@ -54260,7 +54260,7 @@ package java.lang { public abstract interface Cloneable { } - public abstract interface Comparable { + public abstract interface Comparable { method public abstract int compareTo(T); } @@ -54314,7 +54314,7 @@ package java.lang { field public static final java.lang.Class TYPE; } - public abstract class Enum implements java.lang.Comparable java.io.Serializable { + public abstract class Enum> implements java.lang.Comparable java.io.Serializable { ctor protected Enum(java.lang.String, int); method protected final java.lang.Object clone() throws java.lang.CloneNotSupportedException; method public final int compareTo(E); @@ -54324,7 +54324,7 @@ package java.lang { method public final int hashCode(); method public final java.lang.String name(); method public final int ordinal(); - method public static T valueOf(java.lang.Class, java.lang.String); + method public static > T valueOf(java.lang.Class, java.lang.String); } public class EnumConstantNotPresentException extends java.lang.RuntimeException { @@ -54443,7 +54443,7 @@ package java.lang { ctor public IndexOutOfBoundsException(java.lang.String); } - public class InheritableThreadLocal extends java.lang.ThreadLocal { + public class InheritableThreadLocal extends java.lang.ThreadLocal { ctor public InheritableThreadLocal(); method protected T childValue(T); } @@ -54514,7 +54514,7 @@ package java.lang { ctor public InterruptedException(java.lang.String); } - public abstract interface Iterable { + public abstract interface Iterable { method public default void forEach(java.util.function.Consumer); method public abstract java.util.Iterator iterator(); method public default java.util.Spliterator spliterator(); @@ -54722,12 +54722,12 @@ package java.lang { } public class Package implements java.lang.reflect.AnnotatedElement { - method public A getAnnotation(java.lang.Class); + method public A getAnnotation(java.lang.Class); method public java.lang.annotation.Annotation[] getAnnotations(); - method public A[] getAnnotationsByType(java.lang.Class); - method public A getDeclaredAnnotation(java.lang.Class); + method public A[] getAnnotationsByType(java.lang.Class); + method public A getDeclaredAnnotation(java.lang.Class); method public java.lang.annotation.Annotation[] getDeclaredAnnotations(); - method public A[] getDeclaredAnnotationsByType(java.lang.Class); + method public A[] getDeclaredAnnotationsByType(java.lang.Class); method public java.lang.String getImplementationTitle(); method public java.lang.String getImplementationVendor(); method public java.lang.String getImplementationVersion(); @@ -55287,7 +55287,7 @@ package java.lang { method public void uncaughtException(java.lang.Thread, java.lang.Throwable); } - public class ThreadLocal { + public class ThreadLocal { ctor public ThreadLocal(); method public T get(); method protected T initialValue(); @@ -55427,30 +55427,30 @@ package java.lang.annotation { package java.lang.ref { - public class PhantomReference extends java.lang.ref.Reference { + public class PhantomReference extends java.lang.ref.Reference { ctor public PhantomReference(T, java.lang.ref.ReferenceQueue); } - public abstract class Reference { + public abstract class Reference { method public void clear(); method public boolean enqueue(); method public T get(); method public boolean isEnqueued(); } - public class ReferenceQueue { + public class ReferenceQueue { ctor public ReferenceQueue(); method public java.lang.ref.Reference poll(); method public java.lang.ref.Reference remove(long) throws java.lang.IllegalArgumentException, java.lang.InterruptedException; method public java.lang.ref.Reference remove() throws java.lang.InterruptedException; } - public class SoftReference extends java.lang.ref.Reference { + public class SoftReference extends java.lang.ref.Reference { ctor public SoftReference(T); ctor public SoftReference(T, java.lang.ref.ReferenceQueue); } - public class WeakReference extends java.lang.ref.Reference { + public class WeakReference extends java.lang.ref.Reference { ctor public WeakReference(T); ctor public WeakReference(T, java.lang.ref.ReferenceQueue); } @@ -55461,7 +55461,7 @@ package java.lang.reflect { public class AccessibleObject implements java.lang.reflect.AnnotatedElement { ctor protected AccessibleObject(); - method public T getAnnotation(java.lang.Class); + method public T getAnnotation(java.lang.Class); method public java.lang.annotation.Annotation[] getAnnotations(); method public java.lang.annotation.Annotation[] getDeclaredAnnotations(); method public boolean isAccessible(); @@ -55470,12 +55470,12 @@ package java.lang.reflect { } public abstract interface AnnotatedElement { - method public abstract T getAnnotation(java.lang.Class); + method public abstract T getAnnotation(java.lang.Class); method public abstract java.lang.annotation.Annotation[] getAnnotations(); - method public default T[] getAnnotationsByType(java.lang.Class); - method public default java.lang.annotation.Annotation getDeclaredAnnotation(java.lang.Class); + method public default T[] getAnnotationsByType(java.lang.Class); + method public default java.lang.annotation.Annotation getDeclaredAnnotation(java.lang.Class); method public abstract java.lang.annotation.Annotation[] getDeclaredAnnotations(); - method public default T[] getDeclaredAnnotationsByType(java.lang.Class); + method public default T[] getDeclaredAnnotationsByType(java.lang.Class); method public default boolean isAnnotationPresent(java.lang.Class); } @@ -55503,8 +55503,8 @@ package java.lang.reflect { method public static void setShort(java.lang.Object, int, short) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException; } - public final class Constructor extends java.lang.reflect.AccessibleObject implements java.lang.reflect.GenericDeclaration java.lang.reflect.Member { - method public A getAnnotation(java.lang.Class); + public final class Constructor extends java.lang.reflect.AccessibleObject implements java.lang.reflect.GenericDeclaration java.lang.reflect.Member { + method public A getAnnotation(java.lang.Class); method public java.lang.Class getDeclaringClass(); method public java.lang.Class[] getExceptionTypes(); method public java.lang.reflect.Type[] getGenericExceptionTypes(); @@ -55523,7 +55523,7 @@ package java.lang.reflect { public final class Field extends java.lang.reflect.AccessibleObject implements java.lang.reflect.Member { method public java.lang.Object get(java.lang.Object) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException; - method public A getAnnotation(java.lang.Class); + method public A getAnnotation(java.lang.Class); method public boolean getBoolean(java.lang.Object) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException; method public byte getByte(java.lang.Object) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException; method public char getChar(java.lang.Object) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException; @@ -55589,7 +55589,7 @@ package java.lang.reflect { } public final class Method extends java.lang.reflect.AccessibleObject implements java.lang.reflect.GenericDeclaration java.lang.reflect.Member { - method public A getAnnotation(java.lang.Class); + method public A getAnnotation(java.lang.Class); method public java.lang.Class getDeclaringClass(); method public java.lang.Object getDefaultValue(); method public java.lang.Class[] getExceptionTypes(); @@ -55667,7 +55667,7 @@ package java.lang.reflect { public abstract interface Type { } - public abstract interface TypeVariable implements java.lang.reflect.Type { + public abstract interface TypeVariable implements java.lang.reflect.Type { method public abstract java.lang.reflect.Type[] getBounds(); method public abstract D getGenericDeclaration(); method public abstract java.lang.String getName(); @@ -56456,7 +56456,7 @@ package java.net { method public abstract java.net.SocketImpl createSocketImpl(); } - public abstract interface SocketOption { + public abstract interface SocketOption { method public abstract java.lang.String name(); method public abstract java.lang.Class type(); } @@ -57040,7 +57040,7 @@ package java.nio.channels { method public final long read(java.nio.ByteBuffer[]) throws java.io.IOException; method public abstract java.net.SocketAddress receive(java.nio.ByteBuffer) throws java.io.IOException; method public abstract int send(java.nio.ByteBuffer, java.net.SocketAddress) throws java.io.IOException; - method public abstract java.nio.channels.DatagramChannel setOption(java.net.SocketOption, T) throws java.io.IOException; + method public abstract java.nio.channels.DatagramChannel setOption(java.net.SocketOption, T) throws java.io.IOException; method public abstract java.net.DatagramSocket socket(); method public final int validOps(); method public abstract int write(java.nio.ByteBuffer) throws java.io.IOException; @@ -57116,8 +57116,8 @@ package java.nio.channels { public abstract interface NetworkChannel implements java.nio.channels.Channel { method public abstract java.nio.channels.NetworkChannel bind(java.net.SocketAddress) throws java.io.IOException; method public abstract java.net.SocketAddress getLocalAddress() throws java.io.IOException; - method public abstract T getOption(java.net.SocketOption) throws java.io.IOException; - method public abstract java.nio.channels.NetworkChannel setOption(java.net.SocketOption, T) throws java.io.IOException; + method public abstract T getOption(java.net.SocketOption) throws java.io.IOException; + method public abstract java.nio.channels.NetworkChannel setOption(java.net.SocketOption, T) throws java.io.IOException; method public abstract java.util.Set> supportedOptions(); } @@ -57234,7 +57234,7 @@ package java.nio.channels { method public final java.nio.channels.ServerSocketChannel bind(java.net.SocketAddress) throws java.io.IOException; method public abstract java.nio.channels.ServerSocketChannel bind(java.net.SocketAddress, int) throws java.io.IOException; method public static java.nio.channels.ServerSocketChannel open() throws java.io.IOException; - method public abstract java.nio.channels.ServerSocketChannel setOption(java.net.SocketOption, T) throws java.io.IOException; + method public abstract java.nio.channels.ServerSocketChannel setOption(java.net.SocketOption, T) throws java.io.IOException; method public abstract java.net.ServerSocket socket(); method public final int validOps(); } @@ -57252,7 +57252,7 @@ package java.nio.channels { method public abstract int read(java.nio.ByteBuffer) throws java.io.IOException; method public abstract long read(java.nio.ByteBuffer[], int, int) throws java.io.IOException; method public final long read(java.nio.ByteBuffer[]) throws java.io.IOException; - method public abstract java.nio.channels.SocketChannel setOption(java.net.SocketOption, T) throws java.io.IOException; + method public abstract java.nio.channels.SocketChannel setOption(java.net.SocketOption, T) throws java.io.IOException; method public abstract java.nio.channels.SocketChannel shutdownInput() throws java.io.IOException; method public abstract java.nio.channels.SocketChannel shutdownOutput() throws java.io.IOException; method public abstract java.net.Socket socket(); @@ -57499,12 +57499,12 @@ package java.security { public final class AccessController { method public static void checkPermission(java.security.Permission) throws java.security.AccessControlException; - method public static T doPrivileged(java.security.PrivilegedAction); - method public static T doPrivileged(java.security.PrivilegedAction, java.security.AccessControlContext); - method public static T doPrivileged(java.security.PrivilegedExceptionAction) throws java.security.PrivilegedActionException; - method public static T doPrivileged(java.security.PrivilegedExceptionAction, java.security.AccessControlContext) throws java.security.PrivilegedActionException; - method public static T doPrivilegedWithCombiner(java.security.PrivilegedAction); - method public static T doPrivilegedWithCombiner(java.security.PrivilegedExceptionAction) throws java.security.PrivilegedActionException; + method public static T doPrivileged(java.security.PrivilegedAction); + method public static T doPrivileged(java.security.PrivilegedAction, java.security.AccessControlContext); + method public static T doPrivileged(java.security.PrivilegedExceptionAction) throws java.security.PrivilegedActionException; + method public static T doPrivileged(java.security.PrivilegedExceptionAction, java.security.AccessControlContext) throws java.security.PrivilegedActionException; + method public static T doPrivilegedWithCombiner(java.security.PrivilegedAction); + method public static T doPrivilegedWithCombiner(java.security.PrivilegedExceptionAction) throws java.security.PrivilegedActionException; method public static java.security.AccessControlContext getContext(); } @@ -57543,7 +57543,7 @@ package java.security { method public static java.security.AlgorithmParameters getInstance(java.lang.String) throws java.security.NoSuchAlgorithmException; method public static java.security.AlgorithmParameters getInstance(java.lang.String, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException; method public static java.security.AlgorithmParameters getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException; - method public final T getParameterSpec(java.lang.Class) throws java.security.spec.InvalidParameterSpecException; + method public final T getParameterSpec(java.lang.Class) throws java.security.spec.InvalidParameterSpecException; method public final java.security.Provider getProvider(); method public final void init(java.security.spec.AlgorithmParameterSpec) throws java.security.spec.InvalidParameterSpecException; method public final void init(byte[]) throws java.io.IOException; @@ -57555,7 +57555,7 @@ package java.security { ctor public AlgorithmParametersSpi(); method protected abstract byte[] engineGetEncoded() throws java.io.IOException; method protected abstract byte[] engineGetEncoded(java.lang.String) throws java.io.IOException; - method protected abstract T engineGetParameterSpec(java.lang.Class) throws java.security.spec.InvalidParameterSpecException; + method protected abstract T engineGetParameterSpec(java.lang.Class) throws java.security.spec.InvalidParameterSpecException; method protected abstract void engineInit(java.security.spec.AlgorithmParameterSpec) throws java.security.spec.InvalidParameterSpecException; method protected abstract void engineInit(byte[]) throws java.io.IOException; method protected abstract void engineInit(byte[], java.lang.String) throws java.io.IOException; @@ -57740,7 +57740,7 @@ package java.security { method public static java.security.KeyFactory getInstance(java.lang.String) throws java.security.NoSuchAlgorithmException; method public static java.security.KeyFactory getInstance(java.lang.String, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException; method public static java.security.KeyFactory getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException; - method public final T getKeySpec(java.security.Key, java.lang.Class) throws java.security.spec.InvalidKeySpecException; + method public final T getKeySpec(java.security.Key, java.lang.Class) throws java.security.spec.InvalidKeySpecException; method public final java.security.Provider getProvider(); method public final java.security.Key translateKey(java.security.Key) throws java.security.InvalidKeyException; } @@ -57749,7 +57749,7 @@ package java.security { ctor public KeyFactorySpi(); method protected abstract java.security.PrivateKey engineGeneratePrivate(java.security.spec.KeySpec) throws java.security.spec.InvalidKeySpecException; method protected abstract java.security.PublicKey engineGeneratePublic(java.security.spec.KeySpec) throws java.security.spec.InvalidKeySpecException; - method protected abstract T engineGetKeySpec(java.security.Key, java.lang.Class) throws java.security.spec.InvalidKeySpecException; + method protected abstract T engineGetKeySpec(java.security.Key, java.lang.Class) throws java.security.spec.InvalidKeySpecException; method protected abstract java.security.Key engineTranslateKey(java.security.Key) throws java.security.InvalidKeyException; } @@ -58018,7 +58018,7 @@ package java.security { field public static final long serialVersionUID = 6034044314589513430L; // 0x53bd3b559a12c6d6L } - public abstract interface PrivilegedAction { + public abstract interface PrivilegedAction { method public abstract T run(); } @@ -58027,7 +58027,7 @@ package java.security { method public java.lang.Exception getException(); } - public abstract interface PrivilegedExceptionAction { + public abstract interface PrivilegedExceptionAction { method public abstract T run() throws java.lang.Exception; } @@ -60209,11 +60209,11 @@ package java.sql { method public abstract void free() throws java.sql.SQLException; method public abstract java.io.InputStream getBinaryStream() throws java.sql.SQLException; method public abstract java.io.Reader getCharacterStream() throws java.sql.SQLException; - method public abstract T getSource(java.lang.Class) throws java.sql.SQLException; + method public abstract T getSource(java.lang.Class) throws java.sql.SQLException; method public abstract java.lang.String getString() throws java.sql.SQLException; method public abstract java.io.OutputStream setBinaryStream() throws java.sql.SQLException; method public abstract java.io.Writer setCharacterStream() throws java.sql.SQLException; - method public abstract T setResult(java.lang.Class) throws java.sql.SQLException; + method public abstract T setResult(java.lang.Class) throws java.sql.SQLException; method public abstract void setString(java.lang.String) throws java.sql.SQLException; } @@ -60337,7 +60337,7 @@ package java.sql { public abstract interface Wrapper { method public abstract boolean isWrapperFor(java.lang.Class) throws java.sql.SQLException; - method public abstract T unwrap(java.lang.Class) throws java.sql.SQLException; + method public abstract T unwrap(java.lang.Class) throws java.sql.SQLException; } } @@ -60870,7 +60870,7 @@ package java.text { package java.util { - public abstract class AbstractCollection implements java.util.Collection { + public abstract class AbstractCollection implements java.util.Collection { ctor protected AbstractCollection(); method public boolean add(E); method public boolean addAll(java.util.Collection); @@ -60884,10 +60884,10 @@ package java.util { method public boolean retainAll(java.util.Collection); method public abstract int size(); method public java.lang.Object[] toArray(); - method public T[] toArray(T[]); + method public T[] toArray(T[]); } - public abstract class AbstractList extends java.util.AbstractCollection implements java.util.List { + public abstract class AbstractList extends java.util.AbstractCollection implements java.util.List { ctor protected AbstractList(); method public void add(int, E); method public boolean addAll(int, java.util.Collection); @@ -60904,7 +60904,7 @@ package java.util { field protected transient int modCount; } - public abstract class AbstractMap implements java.util.Map { + public abstract class AbstractMap implements java.util.Map { ctor protected AbstractMap(); method public void clear(); method public boolean containsKey(java.lang.Object); @@ -60920,7 +60920,7 @@ package java.util { method public java.util.Collection values(); } - public static class AbstractMap.SimpleEntry implements java.util.Map.Entry java.io.Serializable { + public static class AbstractMap.SimpleEntry implements java.util.Map.Entry java.io.Serializable { ctor public AbstractMap.SimpleEntry(K, V); ctor public AbstractMap.SimpleEntry(java.util.Map.Entry); method public K getKey(); @@ -60928,7 +60928,7 @@ package java.util { method public V setValue(V); } - public static class AbstractMap.SimpleImmutableEntry implements java.util.Map.Entry java.io.Serializable { + public static class AbstractMap.SimpleImmutableEntry implements java.util.Map.Entry java.io.Serializable { ctor public AbstractMap.SimpleImmutableEntry(K, V); ctor public AbstractMap.SimpleImmutableEntry(java.util.Map.Entry); method public K getKey(); @@ -60936,23 +60936,23 @@ package java.util { method public V setValue(V); } - public abstract class AbstractQueue extends java.util.AbstractCollection implements java.util.Queue { + public abstract class AbstractQueue extends java.util.AbstractCollection implements java.util.Queue { ctor protected AbstractQueue(); method public E element(); method public E remove(); } - public abstract class AbstractSequentialList extends java.util.AbstractList { + public abstract class AbstractSequentialList extends java.util.AbstractList { ctor protected AbstractSequentialList(); method public E get(int); method public abstract java.util.ListIterator listIterator(int); } - public abstract class AbstractSet extends java.util.AbstractCollection implements java.util.Set { + public abstract class AbstractSet extends java.util.AbstractCollection implements java.util.Set { ctor protected AbstractSet(); } - public class ArrayDeque extends java.util.AbstractCollection implements java.lang.Cloneable java.util.Deque java.io.Serializable { + public class ArrayDeque extends java.util.AbstractCollection implements java.lang.Cloneable java.util.Deque java.io.Serializable { ctor public ArrayDeque(); ctor public ArrayDeque(int); ctor public ArrayDeque(java.util.Collection); @@ -60984,7 +60984,7 @@ package java.util { method public java.util.Spliterator spliterator(); } - public class ArrayList extends java.util.AbstractList implements java.lang.Cloneable java.util.List java.util.RandomAccess java.io.Serializable { + public class ArrayList extends java.util.AbstractList implements java.lang.Cloneable java.util.List java.util.RandomAccess java.io.Serializable { ctor public ArrayList(int); ctor public ArrayList(); ctor public ArrayList(java.util.Collection); @@ -61001,7 +61001,7 @@ package java.util { } public class Arrays { - method public static java.util.List asList(T...); + method public static java.util.List asList(T...); method public static int binarySearch(long[], long); method public static int binarySearch(long[], int, int, long); method public static int binarySearch(int[], int); @@ -61018,10 +61018,10 @@ package java.util { method public static int binarySearch(float[], int, int, float); method public static int binarySearch(java.lang.Object[], java.lang.Object); method public static int binarySearch(java.lang.Object[], int, int, java.lang.Object); - method public static int binarySearch(T[], T, java.util.Comparator); - method public static int binarySearch(T[], int, int, T, java.util.Comparator); - method public static T[] copyOf(T[], int); - method public static T[] copyOf(U[], int, java.lang.Class); + method public static int binarySearch(T[], T, java.util.Comparator); + method public static int binarySearch(T[], int, int, T, java.util.Comparator); + method public static T[] copyOf(T[], int); + method public static T[] copyOf(U[], int, java.lang.Class); method public static byte[] copyOf(byte[], int); method public static short[] copyOf(short[], int); method public static int[] copyOf(int[], int); @@ -61030,8 +61030,8 @@ package java.util { method public static float[] copyOf(float[], int); method public static double[] copyOf(double[], int); method public static boolean[] copyOf(boolean[], int); - method public static T[] copyOfRange(T[], int, int); - method public static T[] copyOfRange(U[], int, int, java.lang.Class); + method public static T[] copyOfRange(T[], int, int); + method public static T[] copyOfRange(U[], int, int, java.lang.Class); method public static byte[] copyOfRange(byte[], int, int); method public static short[] copyOfRange(short[], int, int); method public static int[] copyOfRange(int[], int, int); @@ -61079,15 +61079,15 @@ package java.util { method public static int hashCode(float[]); method public static int hashCode(double[]); method public static int hashCode(java.lang.Object[]); - method public static void parallelPrefix(T[], java.util.function.BinaryOperator); - method public static void parallelPrefix(T[], int, int, java.util.function.BinaryOperator); + method public static void parallelPrefix(T[], java.util.function.BinaryOperator); + method public static void parallelPrefix(T[], int, int, java.util.function.BinaryOperator); method public static void parallelPrefix(long[], java.util.function.LongBinaryOperator); method public static void parallelPrefix(long[], int, int, java.util.function.LongBinaryOperator); method public static void parallelPrefix(double[], java.util.function.DoubleBinaryOperator); method public static void parallelPrefix(double[], int, int, java.util.function.DoubleBinaryOperator); method public static void parallelPrefix(int[], java.util.function.IntBinaryOperator); method public static void parallelPrefix(int[], int, int, java.util.function.IntBinaryOperator); - method public static void parallelSetAll(T[], java.util.function.IntFunction); + method public static void parallelSetAll(T[], java.util.function.IntFunction); method public static void parallelSetAll(int[], java.util.function.IntUnaryOperator); method public static void parallelSetAll(long[], java.util.function.IntToLongFunction); method public static void parallelSetAll(double[], java.util.function.IntToDoubleFunction); @@ -61105,11 +61105,11 @@ package java.util { method public static void parallelSort(float[], int, int); method public static void parallelSort(double[]); method public static void parallelSort(double[], int, int); - method public static void parallelSort(T[]); - method public static void parallelSort(T[], int, int); - method public static void parallelSort(T[], java.util.Comparator); - method public static void parallelSort(T[], int, int, java.util.Comparator); - method public static void setAll(T[], java.util.function.IntFunction); + method public static > void parallelSort(T[]); + method public static > void parallelSort(T[], int, int); + method public static void parallelSort(T[], java.util.Comparator); + method public static void parallelSort(T[], int, int, java.util.Comparator); + method public static void setAll(T[], java.util.function.IntFunction); method public static void setAll(int[], java.util.function.IntUnaryOperator); method public static void setAll(long[], java.util.function.IntToLongFunction); method public static void setAll(double[], java.util.function.IntToDoubleFunction); @@ -61129,18 +61129,18 @@ package java.util { method public static void sort(double[], int, int); method public static void sort(java.lang.Object[]); method public static void sort(java.lang.Object[], int, int); - method public static void sort(T[], java.util.Comparator); - method public static void sort(T[], int, int, java.util.Comparator); - method public static java.util.Spliterator spliterator(T[]); - method public static java.util.Spliterator spliterator(T[], int, int); + method public static void sort(T[], java.util.Comparator); + method public static void sort(T[], int, int, java.util.Comparator); + method public static java.util.Spliterator spliterator(T[]); + method public static java.util.Spliterator spliterator(T[], int, int); method public static java.util.Spliterator.OfInt spliterator(int[]); method public static java.util.Spliterator.OfInt spliterator(int[], int, int); method public static java.util.Spliterator.OfLong spliterator(long[]); method public static java.util.Spliterator.OfLong spliterator(long[], int, int); method public static java.util.Spliterator.OfDouble spliterator(double[]); method public static java.util.Spliterator.OfDouble spliterator(double[], int, int); - method public static java.util.stream.Stream stream(T[]); - method public static java.util.stream.Stream stream(T[], int, int); + method public static java.util.stream.Stream stream(T[]); + method public static java.util.stream.Stream stream(T[], int, int); method public static java.util.stream.IntStream stream(int[]); method public static java.util.stream.IntStream stream(int[], int, int); method public static java.util.stream.LongStream stream(long[]); @@ -61297,7 +61297,7 @@ package java.util { field protected long time; } - public abstract interface Collection implements java.lang.Iterable { + public abstract interface Collection implements java.lang.Iterable { method public abstract boolean add(E); method public abstract boolean addAll(java.util.Collection); method public abstract void clear(); @@ -61315,86 +61315,86 @@ package java.util { method public abstract int size(); method public default java.util.stream.Stream stream(); method public abstract java.lang.Object[] toArray(); - method public abstract T[] toArray(T[]); + method public abstract T[] toArray(T[]); } public class Collections { - method public static boolean addAll(java.util.Collection, T...); - method public static java.util.Queue asLifoQueue(java.util.Deque); - method public static int binarySearch(java.util.List>, T); - method public static int binarySearch(java.util.List, T, java.util.Comparator); - method public static java.util.Collection checkedCollection(java.util.Collection, java.lang.Class); - method public static java.util.List checkedList(java.util.List, java.lang.Class); - method public static java.util.Map checkedMap(java.util.Map, java.lang.Class, java.lang.Class); - method public static java.util.Set checkedSet(java.util.Set, java.lang.Class); - method public static java.util.SortedMap checkedSortedMap(java.util.SortedMap, java.lang.Class, java.lang.Class); - method public static java.util.SortedSet checkedSortedSet(java.util.SortedSet, java.lang.Class); - method public static void copy(java.util.List, java.util.List); + method public static boolean addAll(java.util.Collection, T...); + method public static java.util.Queue asLifoQueue(java.util.Deque); + method public static int binarySearch(java.util.List>, T); + method public static int binarySearch(java.util.List, T, java.util.Comparator); + method public static java.util.Collection checkedCollection(java.util.Collection, java.lang.Class); + method public static java.util.List checkedList(java.util.List, java.lang.Class); + method public static java.util.Map checkedMap(java.util.Map, java.lang.Class, java.lang.Class); + method public static java.util.Set checkedSet(java.util.Set, java.lang.Class); + method public static java.util.SortedMap checkedSortedMap(java.util.SortedMap, java.lang.Class, java.lang.Class); + method public static java.util.SortedSet checkedSortedSet(java.util.SortedSet, java.lang.Class); + method public static void copy(java.util.List, java.util.List); method public static boolean disjoint(java.util.Collection, java.util.Collection); - method public static java.util.Enumeration emptyEnumeration(); - method public static java.util.Iterator emptyIterator(); - method public static final java.util.List emptyList(); - method public static java.util.ListIterator emptyListIterator(); - method public static final java.util.Map emptyMap(); - method public static final java.util.Set emptySet(); - method public static java.util.Enumeration enumeration(java.util.Collection); - method public static void fill(java.util.List, T); + method public static java.util.Enumeration emptyEnumeration(); + method public static java.util.Iterator emptyIterator(); + method public static final java.util.List emptyList(); + method public static java.util.ListIterator emptyListIterator(); + method public static final java.util.Map emptyMap(); + method public static final java.util.Set emptySet(); + method public static java.util.Enumeration enumeration(java.util.Collection); + method public static void fill(java.util.List, T); method public static int frequency(java.util.Collection, java.lang.Object); method public static int indexOfSubList(java.util.List, java.util.List); method public static int lastIndexOfSubList(java.util.List, java.util.List); - method public static java.util.ArrayList list(java.util.Enumeration); - method public static T max(java.util.Collection); - method public static T max(java.util.Collection, java.util.Comparator); - method public static T min(java.util.Collection); - method public static T min(java.util.Collection, java.util.Comparator); - method public static java.util.List nCopies(int, T); - method public static java.util.Set newSetFromMap(java.util.Map); - method public static boolean replaceAll(java.util.List, T, T); + method public static java.util.ArrayList list(java.util.Enumeration); + method public static > T max(java.util.Collection); + method public static T max(java.util.Collection, java.util.Comparator); + method public static > T min(java.util.Collection); + method public static T min(java.util.Collection, java.util.Comparator); + method public static java.util.List nCopies(int, T); + method public static java.util.Set newSetFromMap(java.util.Map); + method public static boolean replaceAll(java.util.List, T, T); method public static void reverse(java.util.List); - method public static java.util.Comparator reverseOrder(); - method public static java.util.Comparator reverseOrder(java.util.Comparator); + method public static java.util.Comparator reverseOrder(); + method public static java.util.Comparator reverseOrder(java.util.Comparator); method public static void rotate(java.util.List, int); method public static void shuffle(java.util.List); method public static void shuffle(java.util.List, java.util.Random); - method public static java.util.Set singleton(E); - method public static java.util.List singletonList(E); - method public static java.util.Map singletonMap(K, V); - method public static void sort(java.util.List); - method public static void sort(java.util.List, java.util.Comparator); + method public static java.util.Set singleton(E); + method public static java.util.List singletonList(E); + method public static java.util.Map singletonMap(K, V); + method public static > void sort(java.util.List); + method public static void sort(java.util.List, java.util.Comparator); method public static void swap(java.util.List, int, int); - method public static java.util.Collection synchronizedCollection(java.util.Collection); - method public static java.util.List synchronizedList(java.util.List); - method public static java.util.Map synchronizedMap(java.util.Map); - method public static java.util.Set synchronizedSet(java.util.Set); - method public static java.util.SortedMap synchronizedSortedMap(java.util.SortedMap); - method public static java.util.SortedSet synchronizedSortedSet(java.util.SortedSet); - method public static java.util.Collection unmodifiableCollection(java.util.Collection); - method public static java.util.List unmodifiableList(java.util.List); - method public static java.util.Map unmodifiableMap(java.util.Map); - method public static java.util.Set unmodifiableSet(java.util.Set); - method public static java.util.SortedMap unmodifiableSortedMap(java.util.SortedMap); - method public static java.util.SortedSet unmodifiableSortedSet(java.util.SortedSet); + method public static java.util.Collection synchronizedCollection(java.util.Collection); + method public static java.util.List synchronizedList(java.util.List); + method public static java.util.Map synchronizedMap(java.util.Map); + method public static java.util.Set synchronizedSet(java.util.Set); + method public static java.util.SortedMap synchronizedSortedMap(java.util.SortedMap); + method public static java.util.SortedSet synchronizedSortedSet(java.util.SortedSet); + method public static java.util.Collection unmodifiableCollection(java.util.Collection); + method public static java.util.List unmodifiableList(java.util.List); + method public static java.util.Map unmodifiableMap(java.util.Map); + method public static java.util.Set unmodifiableSet(java.util.Set); + method public static java.util.SortedMap unmodifiableSortedMap(java.util.SortedMap); + method public static java.util.SortedSet unmodifiableSortedSet(java.util.SortedSet); field public static final java.util.List EMPTY_LIST; field public static final java.util.Map EMPTY_MAP; field public static final java.util.Set EMPTY_SET; } - public abstract interface Comparator { + public abstract interface Comparator { method public abstract int compare(T, T); - method public static java.util.Comparator comparing(java.util.function.Function, java.util.Comparator); - method public static java.util.Comparator comparing(java.util.function.Function); - method public static java.util.Comparator comparingDouble(java.util.function.ToDoubleFunction); - method public static java.util.Comparator comparingInt(java.util.function.ToIntFunction); - method public static java.util.Comparator comparingLong(java.util.function.ToLongFunction); + method public static java.util.Comparator comparing(java.util.function.Function, java.util.Comparator); + method public static > java.util.Comparator comparing(java.util.function.Function); + method public static java.util.Comparator comparingDouble(java.util.function.ToDoubleFunction); + method public static java.util.Comparator comparingInt(java.util.function.ToIntFunction); + method public static java.util.Comparator comparingLong(java.util.function.ToLongFunction); method public abstract boolean equals(java.lang.Object); - method public static java.util.Comparator naturalOrder(); - method public static java.util.Comparator nullsFirst(java.util.Comparator); - method public static java.util.Comparator nullsLast(java.util.Comparator); - method public static java.util.Comparator reverseOrder(); + method public static > java.util.Comparator naturalOrder(); + method public static java.util.Comparator nullsFirst(java.util.Comparator); + method public static java.util.Comparator nullsLast(java.util.Comparator); + method public static > java.util.Comparator reverseOrder(); method public default java.util.Comparator reversed(); method public default java.util.Comparator thenComparing(java.util.Comparator); - method public default java.util.Comparator thenComparing(java.util.function.Function, java.util.Comparator); - method public default java.util.Comparator thenComparing(java.util.function.Function); + method public default java.util.Comparator thenComparing(java.util.function.Function, java.util.Comparator); + method public default > java.util.Comparator thenComparing(java.util.function.Function); method public default java.util.Comparator thenComparingDouble(java.util.function.ToDoubleFunction); method public default java.util.Comparator thenComparingInt(java.util.function.ToIntFunction); method public default java.util.Comparator thenComparingLong(java.util.function.ToLongFunction); @@ -61453,7 +61453,7 @@ package java.util { method public deprecated java.lang.String toLocaleString(); } - public abstract interface Deque implements java.util.Queue { + public abstract interface Deque implements java.util.Queue { method public abstract boolean add(E); method public abstract void addFirst(E); method public abstract void addLast(E); @@ -61483,7 +61483,7 @@ package java.util { method public abstract int size(); } - public abstract class Dictionary { + public abstract class Dictionary { ctor public Dictionary(); method public abstract java.util.Enumeration elements(); method public abstract V get(java.lang.Object); @@ -61514,7 +61514,7 @@ package java.util { ctor public EmptyStackException(); } - public class EnumMap extends java.util.AbstractMap implements java.lang.Cloneable java.io.Serializable { + public class EnumMap, V> extends java.util.AbstractMap implements java.lang.Cloneable java.io.Serializable { ctor public EnumMap(java.lang.Class); ctor public EnumMap(java.util.EnumMap); ctor public EnumMap(java.util.Map); @@ -61522,23 +61522,23 @@ package java.util { method public java.util.Set> entrySet(); } - public abstract class EnumSet extends java.util.AbstractSet implements java.lang.Cloneable java.io.Serializable { - method public static java.util.EnumSet allOf(java.lang.Class); + public abstract class EnumSet> extends java.util.AbstractSet implements java.lang.Cloneable java.io.Serializable { + method public static > java.util.EnumSet allOf(java.lang.Class); method public java.util.EnumSet clone(); - method public static java.util.EnumSet complementOf(java.util.EnumSet); - method public static java.util.EnumSet copyOf(java.util.EnumSet); - method public static java.util.EnumSet copyOf(java.util.Collection); - method public static java.util.EnumSet noneOf(java.lang.Class); - method public static java.util.EnumSet of(E); - method public static java.util.EnumSet of(E, E); - method public static java.util.EnumSet of(E, E, E); - method public static java.util.EnumSet of(E, E, E, E); - method public static java.util.EnumSet of(E, E, E, E, E); - method public static java.util.EnumSet of(E, E...); - method public static java.util.EnumSet range(E, E); - } - - public abstract interface Enumeration { + method public static > java.util.EnumSet complementOf(java.util.EnumSet); + method public static > java.util.EnumSet copyOf(java.util.EnumSet); + method public static > java.util.EnumSet copyOf(java.util.Collection); + method public static > java.util.EnumSet noneOf(java.lang.Class); + method public static > java.util.EnumSet of(E); + method public static > java.util.EnumSet of(E, E); + method public static > java.util.EnumSet of(E, E, E); + method public static > java.util.EnumSet of(E, E, E, E); + method public static > java.util.EnumSet of(E, E, E, E, E); + method public static > java.util.EnumSet of(E, E...); + method public static > java.util.EnumSet range(E, E); + } + + public abstract interface Enumeration { method public abstract boolean hasMoreElements(); method public abstract E nextElement(); } @@ -61546,7 +61546,7 @@ package java.util { public abstract interface EventListener { } - public abstract class EventListenerProxy implements java.util.EventListener { + public abstract class EventListenerProxy implements java.util.EventListener { ctor public EventListenerProxy(T); method public T getListener(); } @@ -61632,7 +61632,7 @@ package java.util { field public static final int BC = 0; // 0x0 } - public class HashMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.Map java.io.Serializable { + public class HashMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.Map java.io.Serializable { ctor public HashMap(int, float); ctor public HashMap(int); ctor public HashMap(); @@ -61644,7 +61644,7 @@ package java.util { method public void replaceAll(java.util.function.BiFunction); } - public class HashSet extends java.util.AbstractSet implements java.lang.Cloneable java.io.Serializable java.util.Set { + public class HashSet extends java.util.AbstractSet implements java.lang.Cloneable java.io.Serializable java.util.Set { ctor public HashSet(); ctor public HashSet(java.util.Collection); ctor public HashSet(int, float); @@ -61655,7 +61655,7 @@ package java.util { method public java.util.Spliterator spliterator(); } - public class Hashtable extends java.util.Dictionary implements java.lang.Cloneable java.util.Map java.io.Serializable { + public class Hashtable extends java.util.Dictionary implements java.lang.Cloneable java.util.Map java.io.Serializable { ctor public Hashtable(int, float); ctor public Hashtable(int); ctor public Hashtable(); @@ -61690,7 +61690,7 @@ package java.util { method public java.util.Collection values(); } - public class IdentityHashMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.Map java.io.Serializable { + public class IdentityHashMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.Map java.io.Serializable { ctor public IdentityHashMap(); ctor public IdentityHashMap(int); ctor public IdentityHashMap(java.util.Map); @@ -61757,14 +61757,14 @@ package java.util { ctor public InvalidPropertiesFormatException(java.lang.String); } - public abstract interface Iterator { + public abstract interface Iterator { method public default void forEachRemaining(java.util.function.Consumer); method public abstract boolean hasNext(); method public abstract E next(); method public default void remove(); } - public class LinkedHashMap extends java.util.HashMap implements java.util.Map { + public class LinkedHashMap extends java.util.HashMap implements java.util.Map { ctor public LinkedHashMap(int, float); ctor public LinkedHashMap(int); ctor public LinkedHashMap(); @@ -61773,14 +61773,14 @@ package java.util { method protected boolean removeEldestEntry(java.util.Map.Entry); } - public class LinkedHashSet extends java.util.HashSet implements java.lang.Cloneable java.io.Serializable java.util.Set { + public class LinkedHashSet extends java.util.HashSet implements java.lang.Cloneable java.io.Serializable java.util.Set { ctor public LinkedHashSet(int, float); ctor public LinkedHashSet(int); ctor public LinkedHashSet(); ctor public LinkedHashSet(java.util.Collection); } - public class LinkedList extends java.util.AbstractSequentialList implements java.lang.Cloneable java.util.Deque java.util.List java.io.Serializable { + public class LinkedList extends java.util.AbstractSequentialList implements java.lang.Cloneable java.util.Deque java.util.List java.io.Serializable { ctor public LinkedList(); ctor public LinkedList(java.util.Collection); method public void addFirst(E); @@ -61811,7 +61811,7 @@ package java.util { method public java.util.Spliterator spliterator(); } - public abstract interface List implements java.util.Collection { + public abstract interface List implements java.util.Collection { method public abstract boolean add(E); method public abstract void add(int, E); method public abstract boolean addAll(java.util.Collection); @@ -61838,10 +61838,10 @@ package java.util { method public default void sort(java.util.Comparator); method public abstract java.util.List subList(int, int); method public abstract java.lang.Object[] toArray(); - method public abstract T[] toArray(T[]); + method public abstract T[] toArray(T[]); } - public abstract interface ListIterator implements java.util.Iterator { + public abstract interface ListIterator implements java.util.Iterator { method public abstract void add(E); method public abstract boolean hasNext(); method public abstract boolean hasPrevious(); @@ -61958,7 +61958,7 @@ package java.util { method public final long getSum(); } - public abstract interface Map { + public abstract interface Map { method public abstract void clear(); method public default V compute(K, java.util.function.BiFunction); method public default V computeIfAbsent(K, java.util.function.Function); @@ -61986,11 +61986,11 @@ package java.util { method public abstract java.util.Collection values(); } - public static abstract interface Map.Entry { - method public static java.util.Comparator> comparingByKey(); - method public static java.util.Comparator> comparingByKey(java.util.Comparator); - method public static java.util.Comparator> comparingByValue(); - method public static java.util.Comparator> comparingByValue(java.util.Comparator); + public static abstract interface Map.Entry { + method public static , V> java.util.Comparator> comparingByKey(); + method public static java.util.Comparator> comparingByKey(java.util.Comparator); + method public static > java.util.Comparator> comparingByValue(); + method public static java.util.Comparator> comparingByValue(java.util.Comparator); method public abstract boolean equals(java.lang.Object); method public abstract K getKey(); method public abstract V getValue(); @@ -62014,7 +62014,7 @@ package java.util { method public java.lang.String getKey(); } - public abstract interface NavigableMap implements java.util.SortedMap { + public abstract interface NavigableMap implements java.util.SortedMap { method public abstract java.util.Map.Entry ceilingEntry(K); method public abstract K ceilingKey(K); method public abstract java.util.NavigableSet descendingKeySet(); @@ -62038,7 +62038,7 @@ package java.util { method public abstract java.util.SortedMap tailMap(K); } - public abstract interface NavigableSet implements java.util.SortedSet { + public abstract interface NavigableSet implements java.util.SortedSet { method public abstract E ceiling(E); method public abstract java.util.Iterator descendingIterator(); method public abstract java.util.NavigableSet descendingSet(); @@ -62062,16 +62062,16 @@ package java.util { } public final class Objects { - method public static int compare(T, T, java.util.Comparator); + method public static int compare(T, T, java.util.Comparator); method public static boolean deepEquals(java.lang.Object, java.lang.Object); method public static boolean equals(java.lang.Object, java.lang.Object); method public static int hash(java.lang.Object...); method public static int hashCode(java.lang.Object); method public static boolean isNull(java.lang.Object); method public static boolean nonNull(java.lang.Object); - method public static T requireNonNull(T); - method public static T requireNonNull(T, java.lang.String); - method public static T requireNonNull(T, java.util.function.Supplier); + method public static T requireNonNull(T); + method public static T requireNonNull(T, java.lang.String); + method public static T requireNonNull(T, java.util.function.Supplier); method public static java.lang.String toString(java.lang.Object); method public static java.lang.String toString(java.lang.Object, java.lang.String); } @@ -62093,19 +62093,19 @@ package java.util { method public abstract void update(java.util.Observable, java.lang.Object); } - public final class Optional { - method public static java.util.Optional empty(); + public final class Optional { + method public static java.util.Optional empty(); method public java.util.Optional filter(java.util.function.Predicate); - method public java.util.Optional flatMap(java.util.function.Function>); + method public java.util.Optional flatMap(java.util.function.Function>); method public T get(); method public void ifPresent(java.util.function.Consumer); method public boolean isPresent(); - method public java.util.Optional map(java.util.function.Function); - method public static java.util.Optional of(T); - method public static java.util.Optional ofNullable(T); + method public java.util.Optional map(java.util.function.Function); + method public static java.util.Optional of(T); + method public static java.util.Optional ofNullable(T); method public T orElse(T); method public T orElseGet(java.util.function.Supplier); - method public T orElseThrow(java.util.function.Supplier) throws java.lang.Throwable; + method public T orElseThrow(java.util.function.Supplier) throws java.lang.Throwable; } public final class OptionalDouble { @@ -62116,7 +62116,7 @@ package java.util { method public static java.util.OptionalDouble of(double); method public double orElse(double); method public double orElseGet(java.util.function.DoubleSupplier); - method public double orElseThrow(java.util.function.Supplier) throws java.lang.Throwable; + method public double orElseThrow(java.util.function.Supplier) throws java.lang.Throwable; } public final class OptionalInt { @@ -62127,7 +62127,7 @@ package java.util { method public static java.util.OptionalInt of(int); method public int orElse(int); method public int orElseGet(java.util.function.IntSupplier); - method public int orElseThrow(java.util.function.Supplier) throws java.lang.Throwable; + method public int orElseThrow(java.util.function.Supplier) throws java.lang.Throwable; } public final class OptionalLong { @@ -62138,10 +62138,10 @@ package java.util { method public static java.util.OptionalLong of(long); method public long orElse(long); method public long orElseGet(java.util.function.LongSupplier); - method public long orElseThrow(java.util.function.Supplier) throws java.lang.Throwable; + method public long orElseThrow(java.util.function.Supplier) throws java.lang.Throwable; } - public abstract interface PrimitiveIterator implements java.util.Iterator { + public abstract interface PrimitiveIterator implements java.util.Iterator { method public abstract void forEachRemaining(T_CONS); } @@ -62166,7 +62166,7 @@ package java.util { method public abstract long nextLong(); } - public class PriorityQueue extends java.util.AbstractQueue implements java.io.Serializable { + public class PriorityQueue extends java.util.AbstractQueue implements java.io.Serializable { ctor public PriorityQueue(); ctor public PriorityQueue(int); ctor public PriorityQueue(java.util.Comparator); @@ -62215,7 +62215,7 @@ package java.util { method public java.lang.Object handleGetObject(java.lang.String); } - public abstract interface Queue implements java.util.Collection { + public abstract interface Queue implements java.util.Collection { method public abstract boolean add(E); method public abstract E element(); method public abstract boolean offer(E); @@ -62365,15 +62365,15 @@ package java.util { ctor public ServiceConfigurationError(java.lang.String, java.lang.Throwable); } - public final class ServiceLoader implements java.lang.Iterable { + public final class ServiceLoader implements java.lang.Iterable { method public java.util.Iterator iterator(); - method public static java.util.ServiceLoader load(java.lang.Class, java.lang.ClassLoader); - method public static java.util.ServiceLoader load(java.lang.Class); - method public static java.util.ServiceLoader loadInstalled(java.lang.Class); + method public static java.util.ServiceLoader load(java.lang.Class, java.lang.ClassLoader); + method public static java.util.ServiceLoader load(java.lang.Class); + method public static java.util.ServiceLoader loadInstalled(java.lang.Class); method public void reload(); } - public abstract interface Set implements java.util.Collection { + public abstract interface Set implements java.util.Collection { method public abstract boolean add(E); method public abstract boolean addAll(java.util.Collection); method public abstract void clear(); @@ -62388,7 +62388,7 @@ package java.util { method public abstract boolean retainAll(java.util.Collection); method public abstract int size(); method public abstract java.lang.Object[] toArray(); - method public abstract T[] toArray(T[]); + method public abstract T[] toArray(T[]); } public class SimpleTimeZone extends java.util.TimeZone { @@ -62414,7 +62414,7 @@ package java.util { field public static final int WALL_TIME = 0; // 0x0 } - public abstract interface SortedMap implements java.util.Map { + public abstract interface SortedMap implements java.util.Map { method public abstract java.util.Comparator comparator(); method public abstract java.util.Set> entrySet(); method public abstract K firstKey(); @@ -62426,7 +62426,7 @@ package java.util { method public abstract java.util.Collection values(); } - public abstract interface SortedSet implements java.util.Set { + public abstract interface SortedSet implements java.util.Set { method public abstract java.util.Comparator comparator(); method public abstract E first(); method public abstract java.util.SortedSet headSet(E); @@ -62435,7 +62435,7 @@ package java.util { method public abstract java.util.SortedSet tailSet(E); } - public abstract interface Spliterator { + public abstract interface Spliterator { method public abstract int characteristics(); method public abstract long estimateSize(); method public default void forEachRemaining(java.util.function.Consumer); @@ -62478,7 +62478,7 @@ package java.util { method public abstract java.util.Spliterator.OfLong trySplit(); } - public static abstract interface Spliterator.OfPrimitive implements java.util.Spliterator { + public static abstract interface Spliterator.OfPrimitive> implements java.util.Spliterator { method public default void forEachRemaining(T_CONS); method public abstract boolean tryAdvance(T_CONS); method public abstract T_SPLITR trySplit(); @@ -62488,25 +62488,25 @@ package java.util { method public static java.util.Spliterator.OfDouble emptyDoubleSpliterator(); method public static java.util.Spliterator.OfInt emptyIntSpliterator(); method public static java.util.Spliterator.OfLong emptyLongSpliterator(); - method public static java.util.Spliterator emptySpliterator(); - method public static java.util.Iterator iterator(java.util.Spliterator); + method public static java.util.Spliterator emptySpliterator(); + method public static java.util.Iterator iterator(java.util.Spliterator); method public static java.util.PrimitiveIterator.OfInt iterator(java.util.Spliterator.OfInt); method public static java.util.PrimitiveIterator.OfLong iterator(java.util.Spliterator.OfLong); method public static java.util.PrimitiveIterator.OfDouble iterator(java.util.Spliterator.OfDouble); - method public static java.util.Spliterator spliterator(java.lang.Object[], int); - method public static java.util.Spliterator spliterator(java.lang.Object[], int, int, int); + method public static java.util.Spliterator spliterator(java.lang.Object[], int); + method public static java.util.Spliterator spliterator(java.lang.Object[], int, int, int); method public static java.util.Spliterator.OfInt spliterator(int[], int); method public static java.util.Spliterator.OfInt spliterator(int[], int, int, int); method public static java.util.Spliterator.OfLong spliterator(long[], int); method public static java.util.Spliterator.OfLong spliterator(long[], int, int, int); method public static java.util.Spliterator.OfDouble spliterator(double[], int); method public static java.util.Spliterator.OfDouble spliterator(double[], int, int, int); - method public static java.util.Spliterator spliterator(java.util.Collection, int); - method public static java.util.Spliterator spliterator(java.util.Iterator, long, int); + method public static java.util.Spliterator spliterator(java.util.Collection, int); + method public static java.util.Spliterator spliterator(java.util.Iterator, long, int); method public static java.util.Spliterator.OfInt spliterator(java.util.PrimitiveIterator.OfInt, long, int); method public static java.util.Spliterator.OfLong spliterator(java.util.PrimitiveIterator.OfLong, long, int); method public static java.util.Spliterator.OfDouble spliterator(java.util.PrimitiveIterator.OfDouble, long, int); - method public static java.util.Spliterator spliteratorUnknownSize(java.util.Iterator, int); + method public static java.util.Spliterator spliteratorUnknownSize(java.util.Iterator, int); method public static java.util.Spliterator.OfInt spliteratorUnknownSize(java.util.PrimitiveIterator.OfInt, int); method public static java.util.Spliterator.OfLong spliteratorUnknownSize(java.util.PrimitiveIterator.OfLong, int); method public static java.util.Spliterator.OfDouble spliteratorUnknownSize(java.util.PrimitiveIterator.OfDouble, int); @@ -62533,7 +62533,7 @@ package java.util { method public java.util.Spliterator.OfLong trySplit(); } - public static abstract class Spliterators.AbstractSpliterator implements java.util.Spliterator { + public static abstract class Spliterators.AbstractSpliterator implements java.util.Spliterator { ctor protected Spliterators.AbstractSpliterator(long, int); method public int characteristics(); method public long estimateSize(); @@ -62568,7 +62568,7 @@ package java.util { method public java.util.SplittableRandom split(); } - public class Stack extends java.util.Vector { + public class Stack extends java.util.Vector { ctor public Stack(); method public boolean empty(); method public synchronized E peek(); @@ -62652,7 +62652,7 @@ package java.util { ctor public TooManyListenersException(java.lang.String); } - public class TreeMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.NavigableMap java.io.Serializable { + public class TreeMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.NavigableMap java.io.Serializable { ctor public TreeMap(); ctor public TreeMap(java.util.Comparator); ctor public TreeMap(java.util.Map); @@ -62689,7 +62689,7 @@ package java.util { method public java.util.SortedMap tailMap(K); } - public class TreeSet extends java.util.AbstractSet implements java.lang.Cloneable java.util.NavigableSet java.io.Serializable { + public class TreeSet extends java.util.AbstractSet implements java.lang.Cloneable java.util.NavigableSet java.io.Serializable { ctor public TreeSet(); ctor public TreeSet(java.util.Comparator); ctor public TreeSet(java.util.Collection); @@ -62742,7 +62742,7 @@ package java.util { method public java.lang.String getFlags(); } - public class Vector extends java.util.AbstractList implements java.lang.Cloneable java.util.List java.util.RandomAccess java.io.Serializable { + public class Vector extends java.util.AbstractList implements java.lang.Cloneable java.util.List java.util.RandomAccess java.io.Serializable { ctor public Vector(int, int); ctor public Vector(int); ctor public Vector(); @@ -62777,7 +62777,7 @@ package java.util { field protected java.lang.Object[] elementData; } - public class WeakHashMap extends java.util.AbstractMap implements java.util.Map { + public class WeakHashMap extends java.util.AbstractMap implements java.util.Map { ctor public WeakHashMap(int, float); ctor public WeakHashMap(int); ctor public WeakHashMap(); @@ -62793,18 +62793,18 @@ package java.util.concurrent { public abstract class AbstractExecutorService implements java.util.concurrent.ExecutorService { ctor public AbstractExecutorService(); - method public java.util.List> invokeAll(java.util.Collection>) throws java.lang.InterruptedException; - method public java.util.List> invokeAll(java.util.Collection>, long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException; - method public T invokeAny(java.util.Collection>) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException; - method public T invokeAny(java.util.Collection>, long, java.util.concurrent.TimeUnit) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException, java.util.concurrent.TimeoutException; - method protected java.util.concurrent.RunnableFuture newTaskFor(java.lang.Runnable, T); - method protected java.util.concurrent.RunnableFuture newTaskFor(java.util.concurrent.Callable); + method public java.util.List> invokeAll(java.util.Collection>) throws java.lang.InterruptedException; + method public java.util.List> invokeAll(java.util.Collection>, long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException; + method public T invokeAny(java.util.Collection>) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException; + method public T invokeAny(java.util.Collection>, long, java.util.concurrent.TimeUnit) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException, java.util.concurrent.TimeoutException; + method protected java.util.concurrent.RunnableFuture newTaskFor(java.lang.Runnable, T); + method protected java.util.concurrent.RunnableFuture newTaskFor(java.util.concurrent.Callable); method public java.util.concurrent.Future submit(java.lang.Runnable); - method public java.util.concurrent.Future submit(java.lang.Runnable, T); - method public java.util.concurrent.Future submit(java.util.concurrent.Callable); + method public java.util.concurrent.Future submit(java.lang.Runnable, T); + method public java.util.concurrent.Future submit(java.util.concurrent.Callable); } - public class ArrayBlockingQueue extends java.util.AbstractQueue implements java.util.concurrent.BlockingQueue java.io.Serializable { + public class ArrayBlockingQueue extends java.util.AbstractQueue implements java.util.concurrent.BlockingQueue java.io.Serializable { ctor public ArrayBlockingQueue(int); ctor public ArrayBlockingQueue(int, boolean); ctor public ArrayBlockingQueue(int, boolean, java.util.Collection); @@ -62823,7 +62823,7 @@ package java.util.concurrent { method public E take() throws java.lang.InterruptedException; } - public abstract interface BlockingDeque implements java.util.concurrent.BlockingQueue java.util.Deque { + public abstract interface BlockingDeque implements java.util.concurrent.BlockingQueue java.util.Deque { method public abstract boolean add(E); method public abstract void addFirst(E); method public abstract void addLast(E); @@ -62855,7 +62855,7 @@ package java.util.concurrent { method public abstract E takeLast() throws java.lang.InterruptedException; } - public abstract interface BlockingQueue implements java.util.Queue { + public abstract interface BlockingQueue implements java.util.Queue { method public abstract boolean add(E); method public abstract boolean contains(java.lang.Object); method public abstract int drainTo(java.util.Collection); @@ -62874,7 +62874,7 @@ package java.util.concurrent { ctor public BrokenBarrierException(java.lang.String); } - public abstract interface Callable { + public abstract interface Callable { method public abstract V call() throws java.lang.Exception; } @@ -62883,28 +62883,28 @@ package java.util.concurrent { ctor public CancellationException(java.lang.String); } - public class CompletableFuture implements java.util.concurrent.CompletionStage java.util.concurrent.Future { + public class CompletableFuture implements java.util.concurrent.CompletionStage java.util.concurrent.Future { ctor public CompletableFuture(); method public java.util.concurrent.CompletableFuture acceptEither(java.util.concurrent.CompletionStage, java.util.function.Consumer); method public java.util.concurrent.CompletableFuture acceptEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Consumer); method public java.util.concurrent.CompletableFuture acceptEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Consumer, java.util.concurrent.Executor); method public static java.util.concurrent.CompletableFuture allOf(java.util.concurrent.CompletableFuture...); method public static java.util.concurrent.CompletableFuture anyOf(java.util.concurrent.CompletableFuture...); - method public java.util.concurrent.CompletableFuture applyToEither(java.util.concurrent.CompletionStage, java.util.function.Function); - method public java.util.concurrent.CompletableFuture applyToEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Function); - method public java.util.concurrent.CompletableFuture applyToEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Function, java.util.concurrent.Executor); + method public java.util.concurrent.CompletableFuture applyToEither(java.util.concurrent.CompletionStage, java.util.function.Function); + method public java.util.concurrent.CompletableFuture applyToEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Function); + method public java.util.concurrent.CompletableFuture applyToEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Function, java.util.concurrent.Executor); method public boolean cancel(boolean); method public boolean complete(T); method public boolean completeExceptionally(java.lang.Throwable); - method public static java.util.concurrent.CompletableFuture completedFuture(U); + method public static java.util.concurrent.CompletableFuture completedFuture(U); method public java.util.concurrent.CompletableFuture exceptionally(java.util.function.Function); method public T get() throws java.util.concurrent.ExecutionException, java.lang.InterruptedException; method public T get(long, java.util.concurrent.TimeUnit) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException, java.util.concurrent.TimeoutException; method public T getNow(T); method public int getNumberOfDependents(); - method public java.util.concurrent.CompletableFuture handle(java.util.function.BiFunction); - method public java.util.concurrent.CompletableFuture handleAsync(java.util.function.BiFunction); - method public java.util.concurrent.CompletableFuture handleAsync(java.util.function.BiFunction, java.util.concurrent.Executor); + method public java.util.concurrent.CompletableFuture handle(java.util.function.BiFunction); + method public java.util.concurrent.CompletableFuture handleAsync(java.util.function.BiFunction); + method public java.util.concurrent.CompletableFuture handleAsync(java.util.function.BiFunction, java.util.concurrent.Executor); method public boolean isCancelled(); method public boolean isCompletedExceptionally(); method public boolean isDone(); @@ -62919,23 +62919,23 @@ package java.util.concurrent { method public java.util.concurrent.CompletableFuture runAfterEitherAsync(java.util.concurrent.CompletionStage, java.lang.Runnable, java.util.concurrent.Executor); method public static java.util.concurrent.CompletableFuture runAsync(java.lang.Runnable); method public static java.util.concurrent.CompletableFuture runAsync(java.lang.Runnable, java.util.concurrent.Executor); - method public static java.util.concurrent.CompletableFuture supplyAsync(java.util.function.Supplier); - method public static java.util.concurrent.CompletableFuture supplyAsync(java.util.function.Supplier, java.util.concurrent.Executor); + method public static java.util.concurrent.CompletableFuture supplyAsync(java.util.function.Supplier); + method public static java.util.concurrent.CompletableFuture supplyAsync(java.util.function.Supplier, java.util.concurrent.Executor); method public java.util.concurrent.CompletableFuture thenAccept(java.util.function.Consumer); method public java.util.concurrent.CompletableFuture thenAcceptAsync(java.util.function.Consumer); method public java.util.concurrent.CompletableFuture thenAcceptAsync(java.util.function.Consumer, java.util.concurrent.Executor); - method public java.util.concurrent.CompletableFuture thenAcceptBoth(java.util.concurrent.CompletionStage, java.util.function.BiConsumer); - method public java.util.concurrent.CompletableFuture thenAcceptBothAsync(java.util.concurrent.CompletionStage, java.util.function.BiConsumer); - method public java.util.concurrent.CompletableFuture thenAcceptBothAsync(java.util.concurrent.CompletionStage, java.util.function.BiConsumer, java.util.concurrent.Executor); - method public java.util.concurrent.CompletableFuture thenApply(java.util.function.Function); - method public java.util.concurrent.CompletableFuture thenApplyAsync(java.util.function.Function); - method public java.util.concurrent.CompletableFuture thenApplyAsync(java.util.function.Function, java.util.concurrent.Executor); - method public java.util.concurrent.CompletableFuture thenCombine(java.util.concurrent.CompletionStage, java.util.function.BiFunction); - method public java.util.concurrent.CompletableFuture thenCombineAsync(java.util.concurrent.CompletionStage, java.util.function.BiFunction); - method public java.util.concurrent.CompletableFuture thenCombineAsync(java.util.concurrent.CompletionStage, java.util.function.BiFunction, java.util.concurrent.Executor); - method public java.util.concurrent.CompletableFuture thenCompose(java.util.function.Function>); - method public java.util.concurrent.CompletableFuture thenComposeAsync(java.util.function.Function>); - method public java.util.concurrent.CompletableFuture thenComposeAsync(java.util.function.Function>, java.util.concurrent.Executor); + method public java.util.concurrent.CompletableFuture thenAcceptBoth(java.util.concurrent.CompletionStage, java.util.function.BiConsumer); + method public java.util.concurrent.CompletableFuture thenAcceptBothAsync(java.util.concurrent.CompletionStage, java.util.function.BiConsumer); + method public java.util.concurrent.CompletableFuture thenAcceptBothAsync(java.util.concurrent.CompletionStage, java.util.function.BiConsumer, java.util.concurrent.Executor); + method public java.util.concurrent.CompletableFuture thenApply(java.util.function.Function); + method public java.util.concurrent.CompletableFuture thenApplyAsync(java.util.function.Function); + method public java.util.concurrent.CompletableFuture thenApplyAsync(java.util.function.Function, java.util.concurrent.Executor); + method public java.util.concurrent.CompletableFuture thenCombine(java.util.concurrent.CompletionStage, java.util.function.BiFunction); + method public java.util.concurrent.CompletableFuture thenCombineAsync(java.util.concurrent.CompletionStage, java.util.function.BiFunction); + method public java.util.concurrent.CompletableFuture thenCombineAsync(java.util.concurrent.CompletionStage, java.util.function.BiFunction, java.util.concurrent.Executor); + method public java.util.concurrent.CompletableFuture thenCompose(java.util.function.Function>); + method public java.util.concurrent.CompletableFuture thenComposeAsync(java.util.function.Function>); + method public java.util.concurrent.CompletableFuture thenComposeAsync(java.util.function.Function>, java.util.concurrent.Executor); method public java.util.concurrent.CompletableFuture thenRun(java.lang.Runnable); method public java.util.concurrent.CompletableFuture thenRunAsync(java.lang.Runnable); method public java.util.concurrent.CompletableFuture thenRunAsync(java.lang.Runnable, java.util.concurrent.Executor); @@ -62955,7 +62955,7 @@ package java.util.concurrent { ctor public CompletionException(java.lang.Throwable); } - public abstract interface CompletionService { + public abstract interface CompletionService { method public abstract java.util.concurrent.Future poll(); method public abstract java.util.concurrent.Future poll(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException; method public abstract java.util.concurrent.Future submit(java.util.concurrent.Callable); @@ -62963,17 +62963,17 @@ package java.util.concurrent { method public abstract java.util.concurrent.Future take() throws java.lang.InterruptedException; } - public abstract interface CompletionStage { + public abstract interface CompletionStage { method public abstract java.util.concurrent.CompletionStage acceptEither(java.util.concurrent.CompletionStage, java.util.function.Consumer); method public abstract java.util.concurrent.CompletionStage acceptEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Consumer); method public abstract java.util.concurrent.CompletionStage acceptEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Consumer, java.util.concurrent.Executor); - method public abstract java.util.concurrent.CompletionStage applyToEither(java.util.concurrent.CompletionStage, java.util.function.Function); - method public abstract java.util.concurrent.CompletionStage applyToEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Function); - method public abstract java.util.concurrent.CompletionStage applyToEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Function, java.util.concurrent.Executor); + method public abstract java.util.concurrent.CompletionStage applyToEither(java.util.concurrent.CompletionStage, java.util.function.Function); + method public abstract java.util.concurrent.CompletionStage applyToEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Function); + method public abstract java.util.concurrent.CompletionStage applyToEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Function, java.util.concurrent.Executor); method public abstract java.util.concurrent.CompletionStage exceptionally(java.util.function.Function); - method public abstract java.util.concurrent.CompletionStage handle(java.util.function.BiFunction); - method public abstract java.util.concurrent.CompletionStage handleAsync(java.util.function.BiFunction); - method public abstract java.util.concurrent.CompletionStage handleAsync(java.util.function.BiFunction, java.util.concurrent.Executor); + method public abstract java.util.concurrent.CompletionStage handle(java.util.function.BiFunction); + method public abstract java.util.concurrent.CompletionStage handleAsync(java.util.function.BiFunction); + method public abstract java.util.concurrent.CompletionStage handleAsync(java.util.function.BiFunction, java.util.concurrent.Executor); method public abstract java.util.concurrent.CompletionStage runAfterBoth(java.util.concurrent.CompletionStage, java.lang.Runnable); method public abstract java.util.concurrent.CompletionStage runAfterBothAsync(java.util.concurrent.CompletionStage, java.lang.Runnable); method public abstract java.util.concurrent.CompletionStage runAfterBothAsync(java.util.concurrent.CompletionStage, java.lang.Runnable, java.util.concurrent.Executor); @@ -62983,18 +62983,18 @@ package java.util.concurrent { method public abstract java.util.concurrent.CompletionStage thenAccept(java.util.function.Consumer); method public abstract java.util.concurrent.CompletionStage thenAcceptAsync(java.util.function.Consumer); method public abstract java.util.concurrent.CompletionStage thenAcceptAsync(java.util.function.Consumer, java.util.concurrent.Executor); - method public abstract java.util.concurrent.CompletionStage thenAcceptBoth(java.util.concurrent.CompletionStage, java.util.function.BiConsumer); - method public abstract java.util.concurrent.CompletionStage thenAcceptBothAsync(java.util.concurrent.CompletionStage, java.util.function.BiConsumer); - method public abstract java.util.concurrent.CompletionStage thenAcceptBothAsync(java.util.concurrent.CompletionStage, java.util.function.BiConsumer, java.util.concurrent.Executor); - method public abstract java.util.concurrent.CompletionStage thenApply(java.util.function.Function); - method public abstract java.util.concurrent.CompletionStage thenApplyAsync(java.util.function.Function); - method public abstract java.util.concurrent.CompletionStage thenApplyAsync(java.util.function.Function, java.util.concurrent.Executor); - method public abstract java.util.concurrent.CompletionStage thenCombine(java.util.concurrent.CompletionStage, java.util.function.BiFunction); - method public abstract java.util.concurrent.CompletionStage thenCombineAsync(java.util.concurrent.CompletionStage, java.util.function.BiFunction); - method public abstract java.util.concurrent.CompletionStage thenCombineAsync(java.util.concurrent.CompletionStage, java.util.function.BiFunction, java.util.concurrent.Executor); - method public abstract java.util.concurrent.CompletionStage thenCompose(java.util.function.Function>); - method public abstract java.util.concurrent.CompletionStage thenComposeAsync(java.util.function.Function>); - method public abstract java.util.concurrent.CompletionStage thenComposeAsync(java.util.function.Function>, java.util.concurrent.Executor); + method public abstract java.util.concurrent.CompletionStage thenAcceptBoth(java.util.concurrent.CompletionStage, java.util.function.BiConsumer); + method public abstract java.util.concurrent.CompletionStage thenAcceptBothAsync(java.util.concurrent.CompletionStage, java.util.function.BiConsumer); + method public abstract java.util.concurrent.CompletionStage thenAcceptBothAsync(java.util.concurrent.CompletionStage, java.util.function.BiConsumer, java.util.concurrent.Executor); + method public abstract java.util.concurrent.CompletionStage thenApply(java.util.function.Function); + method public abstract java.util.concurrent.CompletionStage thenApplyAsync(java.util.function.Function); + method public abstract java.util.concurrent.CompletionStage thenApplyAsync(java.util.function.Function, java.util.concurrent.Executor); + method public abstract java.util.concurrent.CompletionStage thenCombine(java.util.concurrent.CompletionStage, java.util.function.BiFunction); + method public abstract java.util.concurrent.CompletionStage thenCombineAsync(java.util.concurrent.CompletionStage, java.util.function.BiFunction); + method public abstract java.util.concurrent.CompletionStage thenCombineAsync(java.util.concurrent.CompletionStage, java.util.function.BiFunction, java.util.concurrent.Executor); + method public abstract java.util.concurrent.CompletionStage thenCompose(java.util.function.Function>); + method public abstract java.util.concurrent.CompletionStage thenComposeAsync(java.util.function.Function>); + method public abstract java.util.concurrent.CompletionStage thenComposeAsync(java.util.function.Function>, java.util.concurrent.Executor); method public abstract java.util.concurrent.CompletionStage thenRun(java.lang.Runnable); method public abstract java.util.concurrent.CompletionStage thenRunAsync(java.lang.Runnable); method public abstract java.util.concurrent.CompletionStage thenRunAsync(java.lang.Runnable, java.util.concurrent.Executor); @@ -63004,7 +63004,7 @@ package java.util.concurrent { method public abstract java.util.concurrent.CompletionStage whenCompleteAsync(java.util.function.BiConsumer, java.util.concurrent.Executor); } - public class ConcurrentHashMap extends java.util.AbstractMap implements java.util.concurrent.ConcurrentMap java.io.Serializable { + public class ConcurrentHashMap extends java.util.AbstractMap implements java.util.concurrent.ConcurrentMap java.io.Serializable { ctor public ConcurrentHashMap(); ctor public ConcurrentHashMap(int); ctor public ConcurrentHashMap(java.util.Map); @@ -63018,29 +63018,29 @@ package java.util.concurrent { method public java.util.Set> entrySet(); method public void forEach(java.util.function.BiConsumer); method public void forEach(long, java.util.function.BiConsumer); - method public void forEach(long, java.util.function.BiFunction, java.util.function.Consumer); + method public void forEach(long, java.util.function.BiFunction, java.util.function.Consumer); method public void forEachEntry(long, java.util.function.Consumer>); - method public void forEachEntry(long, java.util.function.Function, ? extends U>, java.util.function.Consumer); + method public void forEachEntry(long, java.util.function.Function, ? extends U>, java.util.function.Consumer); method public void forEachKey(long, java.util.function.Consumer); - method public void forEachKey(long, java.util.function.Function, java.util.function.Consumer); + method public void forEachKey(long, java.util.function.Function, java.util.function.Consumer); method public void forEachValue(long, java.util.function.Consumer); - method public void forEachValue(long, java.util.function.Function, java.util.function.Consumer); + method public void forEachValue(long, java.util.function.Function, java.util.function.Consumer); method public V getOrDefault(java.lang.Object, V); method public java.util.concurrent.ConcurrentHashMap.KeySetView keySet(V); method public java.util.Enumeration keys(); method public long mappingCount(); method public V merge(K, V, java.util.function.BiFunction); - method public static java.util.concurrent.ConcurrentHashMap.KeySetView newKeySet(); - method public static java.util.concurrent.ConcurrentHashMap.KeySetView newKeySet(int); + method public static java.util.concurrent.ConcurrentHashMap.KeySetView newKeySet(); + method public static java.util.concurrent.ConcurrentHashMap.KeySetView newKeySet(int); method public V putIfAbsent(K, V); - method public U reduce(long, java.util.function.BiFunction, java.util.function.BiFunction); + method public U reduce(long, java.util.function.BiFunction, java.util.function.BiFunction); method public java.util.Map.Entry reduceEntries(long, java.util.function.BiFunction, java.util.Map.Entry, ? extends java.util.Map.Entry>); - method public U reduceEntries(long, java.util.function.Function, ? extends U>, java.util.function.BiFunction); + method public U reduceEntries(long, java.util.function.Function, ? extends U>, java.util.function.BiFunction); method public double reduceEntriesToDouble(long, java.util.function.ToDoubleFunction>, double, java.util.function.DoubleBinaryOperator); method public int reduceEntriesToInt(long, java.util.function.ToIntFunction>, int, java.util.function.IntBinaryOperator); method public long reduceEntriesToLong(long, java.util.function.ToLongFunction>, long, java.util.function.LongBinaryOperator); method public K reduceKeys(long, java.util.function.BiFunction); - method public U reduceKeys(long, java.util.function.Function, java.util.function.BiFunction); + method public U reduceKeys(long, java.util.function.Function, java.util.function.BiFunction); method public double reduceKeysToDouble(long, java.util.function.ToDoubleFunction, double, java.util.function.DoubleBinaryOperator); method public int reduceKeysToInt(long, java.util.function.ToIntFunction, int, java.util.function.IntBinaryOperator); method public long reduceKeysToLong(long, java.util.function.ToLongFunction, long, java.util.function.LongBinaryOperator); @@ -63048,7 +63048,7 @@ package java.util.concurrent { method public int reduceToInt(long, java.util.function.ToIntBiFunction, int, java.util.function.IntBinaryOperator); method public long reduceToLong(long, java.util.function.ToLongBiFunction, long, java.util.function.LongBinaryOperator); method public V reduceValues(long, java.util.function.BiFunction); - method public U reduceValues(long, java.util.function.Function, java.util.function.BiFunction); + method public U reduceValues(long, java.util.function.Function, java.util.function.BiFunction); method public double reduceValuesToDouble(long, java.util.function.ToDoubleFunction, double, java.util.function.DoubleBinaryOperator); method public int reduceValuesToInt(long, java.util.function.ToIntFunction, int, java.util.function.IntBinaryOperator); method public long reduceValuesToLong(long, java.util.function.ToLongFunction, long, java.util.function.LongBinaryOperator); @@ -63056,13 +63056,13 @@ package java.util.concurrent { method public boolean replace(K, V, V); method public V replace(K, V); method public void replaceAll(java.util.function.BiFunction); - method public U search(long, java.util.function.BiFunction); - method public U searchEntries(long, java.util.function.Function, ? extends U>); - method public U searchKeys(long, java.util.function.Function); - method public U searchValues(long, java.util.function.Function); + method public U search(long, java.util.function.BiFunction); + method public U searchEntries(long, java.util.function.Function, ? extends U>); + method public U searchKeys(long, java.util.function.Function); + method public U searchValues(long, java.util.function.Function); } - static abstract class ConcurrentHashMap.CollectionView implements java.util.Collection java.io.Serializable { + static abstract class ConcurrentHashMap.CollectionView implements java.util.Collection java.io.Serializable { method public final void clear(); method public abstract boolean contains(java.lang.Object); method public final boolean containsAll(java.util.Collection); @@ -63074,11 +63074,11 @@ package java.util.concurrent { method public final boolean retainAll(java.util.Collection); method public final int size(); method public final java.lang.Object[] toArray(); - method public final T[] toArray(T[]); + method public final T[] toArray(T[]); method public final java.lang.String toString(); } - public static class ConcurrentHashMap.KeySetView extends java.util.concurrent.ConcurrentHashMap.CollectionView implements java.io.Serializable java.util.Set { + public static class ConcurrentHashMap.KeySetView extends java.util.concurrent.ConcurrentHashMap.CollectionView implements java.io.Serializable java.util.Set { method public boolean add(K); method public boolean addAll(java.util.Collection); method public boolean contains(java.lang.Object); @@ -63089,7 +63089,7 @@ package java.util.concurrent { method public java.util.Spliterator spliterator(); } - public class ConcurrentLinkedDeque extends java.util.AbstractCollection implements java.util.Deque java.io.Serializable { + public class ConcurrentLinkedDeque extends java.util.AbstractCollection implements java.util.Deque java.io.Serializable { ctor public ConcurrentLinkedDeque(); ctor public ConcurrentLinkedDeque(java.util.Collection); method public void addFirst(E); @@ -63119,7 +63119,7 @@ package java.util.concurrent { method public java.util.Spliterator spliterator(); } - public class ConcurrentLinkedQueue extends java.util.AbstractQueue implements java.util.Queue java.io.Serializable { + public class ConcurrentLinkedQueue extends java.util.AbstractQueue implements java.util.Queue java.io.Serializable { ctor public ConcurrentLinkedQueue(); ctor public ConcurrentLinkedQueue(java.util.Collection); method public java.util.Iterator iterator(); @@ -63130,14 +63130,14 @@ package java.util.concurrent { method public java.util.Spliterator spliterator(); } - public abstract interface ConcurrentMap implements java.util.Map { + public abstract interface ConcurrentMap implements java.util.Map { method public abstract V putIfAbsent(K, V); method public abstract boolean remove(java.lang.Object, java.lang.Object); method public abstract boolean replace(K, V, V); method public abstract V replace(K, V); } - public abstract interface ConcurrentNavigableMap implements java.util.concurrent.ConcurrentMap java.util.NavigableMap { + public abstract interface ConcurrentNavigableMap implements java.util.concurrent.ConcurrentMap java.util.NavigableMap { method public abstract java.util.NavigableSet descendingKeySet(); method public abstract java.util.concurrent.ConcurrentNavigableMap descendingMap(); method public abstract java.util.concurrent.ConcurrentNavigableMap headMap(K, boolean); @@ -63150,7 +63150,7 @@ package java.util.concurrent { method public abstract java.util.concurrent.ConcurrentNavigableMap tailMap(K); } - public class ConcurrentSkipListMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.concurrent.ConcurrentNavigableMap java.io.Serializable { + public class ConcurrentSkipListMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.concurrent.ConcurrentNavigableMap java.io.Serializable { ctor public ConcurrentSkipListMap(); ctor public ConcurrentSkipListMap(java.util.Comparator); ctor public ConcurrentSkipListMap(java.util.Map); @@ -63194,7 +63194,7 @@ package java.util.concurrent { method public java.util.concurrent.ConcurrentNavigableMap tailMap(K); } - public class ConcurrentSkipListSet extends java.util.AbstractSet implements java.lang.Cloneable java.util.NavigableSet java.io.Serializable { + public class ConcurrentSkipListSet extends java.util.AbstractSet implements java.lang.Cloneable java.util.NavigableSet java.io.Serializable { ctor public ConcurrentSkipListSet(); ctor public ConcurrentSkipListSet(java.util.Comparator); ctor public ConcurrentSkipListSet(java.util.Collection); @@ -63222,7 +63222,7 @@ package java.util.concurrent { method public java.util.NavigableSet tailSet(E); } - public class CopyOnWriteArrayList implements java.lang.Cloneable java.util.List java.util.RandomAccess java.io.Serializable { + public class CopyOnWriteArrayList implements java.lang.Cloneable java.util.List java.util.RandomAccess java.io.Serializable { ctor public CopyOnWriteArrayList(); ctor public CopyOnWriteArrayList(java.util.Collection); ctor public CopyOnWriteArrayList(E[]); @@ -63254,10 +63254,10 @@ package java.util.concurrent { method public int size(); method public java.util.List subList(int, int); method public java.lang.Object[] toArray(); - method public T[] toArray(T[]); + method public T[] toArray(T[]); } - public class CopyOnWriteArraySet extends java.util.AbstractSet implements java.io.Serializable { + public class CopyOnWriteArraySet extends java.util.AbstractSet implements java.io.Serializable { ctor public CopyOnWriteArraySet(); ctor public CopyOnWriteArraySet(java.util.Collection); method public void forEach(java.util.function.Consumer); @@ -63275,7 +63275,7 @@ package java.util.concurrent { method public long getCount(); } - public abstract class CountedCompleter extends java.util.concurrent.ForkJoinTask { + public abstract class CountedCompleter extends java.util.concurrent.ForkJoinTask { ctor protected CountedCompleter(java.util.concurrent.CountedCompleter, int); ctor protected CountedCompleter(java.util.concurrent.CountedCompleter); ctor protected CountedCompleter(); @@ -63312,7 +63312,7 @@ package java.util.concurrent { method public void reset(); } - public class DelayQueue extends java.util.AbstractQueue implements java.util.concurrent.BlockingQueue { + public class DelayQueue extends java.util.AbstractQueue implements java.util.concurrent.BlockingQueue { ctor public DelayQueue(); ctor public DelayQueue(java.util.Collection); method public int drainTo(java.util.Collection); @@ -63333,7 +63333,7 @@ package java.util.concurrent { method public abstract long getDelay(java.util.concurrent.TimeUnit); } - public class Exchanger { + public class Exchanger { ctor public Exchanger(); method public V exchange(V) throws java.lang.InterruptedException; method public V exchange(V, long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException, java.util.concurrent.TimeoutException; @@ -63350,7 +63350,7 @@ package java.util.concurrent { method public abstract void execute(java.lang.Runnable); } - public class ExecutorCompletionService implements java.util.concurrent.CompletionService { + public class ExecutorCompletionService implements java.util.concurrent.CompletionService { ctor public ExecutorCompletionService(java.util.concurrent.Executor); ctor public ExecutorCompletionService(java.util.concurrent.Executor, java.util.concurrent.BlockingQueue>); method public java.util.concurrent.Future poll(); @@ -63362,21 +63362,21 @@ package java.util.concurrent { public abstract interface ExecutorService implements java.util.concurrent.Executor { method public abstract boolean awaitTermination(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException; - method public abstract java.util.List> invokeAll(java.util.Collection>) throws java.lang.InterruptedException; - method public abstract java.util.List> invokeAll(java.util.Collection>, long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException; - method public abstract T invokeAny(java.util.Collection>) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException; - method public abstract T invokeAny(java.util.Collection>, long, java.util.concurrent.TimeUnit) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException, java.util.concurrent.TimeoutException; + method public abstract java.util.List> invokeAll(java.util.Collection>) throws java.lang.InterruptedException; + method public abstract java.util.List> invokeAll(java.util.Collection>, long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException; + method public abstract T invokeAny(java.util.Collection>) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException; + method public abstract T invokeAny(java.util.Collection>, long, java.util.concurrent.TimeUnit) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException, java.util.concurrent.TimeoutException; method public abstract boolean isShutdown(); method public abstract boolean isTerminated(); method public abstract void shutdown(); method public abstract java.util.List shutdownNow(); - method public abstract java.util.concurrent.Future submit(java.util.concurrent.Callable); - method public abstract java.util.concurrent.Future submit(java.lang.Runnable, T); + method public abstract java.util.concurrent.Future submit(java.util.concurrent.Callable); + method public abstract java.util.concurrent.Future submit(java.lang.Runnable, T); method public abstract java.util.concurrent.Future submit(java.lang.Runnable); } public class Executors { - method public static java.util.concurrent.Callable callable(java.lang.Runnable, T); + method public static java.util.concurrent.Callable callable(java.lang.Runnable, T); method public static java.util.concurrent.Callable callable(java.lang.Runnable); method public static java.util.concurrent.Callable callable(java.security.PrivilegedAction); method public static java.util.concurrent.Callable callable(java.security.PrivilegedExceptionAction); @@ -63393,8 +63393,8 @@ package java.util.concurrent { method public static java.util.concurrent.ScheduledExecutorService newSingleThreadScheduledExecutor(java.util.concurrent.ThreadFactory); method public static java.util.concurrent.ExecutorService newWorkStealingPool(int); method public static java.util.concurrent.ExecutorService newWorkStealingPool(); - method public static java.util.concurrent.Callable privilegedCallable(java.util.concurrent.Callable); - method public static java.util.concurrent.Callable privilegedCallableUsingCurrentClassLoader(java.util.concurrent.Callable); + method public static java.util.concurrent.Callable privilegedCallable(java.util.concurrent.Callable); + method public static java.util.concurrent.Callable privilegedCallableUsingCurrentClassLoader(java.util.concurrent.Callable); method public static java.util.concurrent.ThreadFactory privilegedThreadFactory(); method public static java.util.concurrent.ExecutorService unconfigurableExecutorService(java.util.concurrent.ExecutorService); method public static java.util.concurrent.ScheduledExecutorService unconfigurableScheduledExecutorService(java.util.concurrent.ScheduledExecutorService); @@ -63422,7 +63422,7 @@ package java.util.concurrent { method public long getStealCount(); method public java.lang.Thread.UncaughtExceptionHandler getUncaughtExceptionHandler(); method public boolean hasQueuedSubmissions(); - method public T invoke(java.util.concurrent.ForkJoinTask); + method public T invoke(java.util.concurrent.ForkJoinTask); method public boolean isQuiescent(); method public boolean isShutdown(); method public boolean isTerminated(); @@ -63431,7 +63431,7 @@ package java.util.concurrent { method protected java.util.concurrent.ForkJoinTask pollSubmission(); method public void shutdown(); method public java.util.List shutdownNow(); - method public java.util.concurrent.ForkJoinTask submit(java.util.concurrent.ForkJoinTask); + method public java.util.concurrent.ForkJoinTask submit(java.util.concurrent.ForkJoinTask); field public static final java.util.concurrent.ForkJoinPool.ForkJoinWorkerThreadFactory defaultForkJoinWorkerThreadFactory; } @@ -63444,11 +63444,11 @@ package java.util.concurrent { method public abstract boolean isReleasable(); } - public abstract class ForkJoinTask implements java.util.concurrent.Future java.io.Serializable { + public abstract class ForkJoinTask implements java.util.concurrent.Future java.io.Serializable { ctor public ForkJoinTask(); method public static java.util.concurrent.ForkJoinTask adapt(java.lang.Runnable); - method public static java.util.concurrent.ForkJoinTask adapt(java.lang.Runnable, T); - method public static java.util.concurrent.ForkJoinTask adapt(java.util.concurrent.Callable); + method public static java.util.concurrent.ForkJoinTask adapt(java.lang.Runnable, T); + method public static java.util.concurrent.ForkJoinTask adapt(java.util.concurrent.Callable); method public boolean cancel(boolean); method public final boolean compareAndSetForkJoinTaskTag(short, short); method public void complete(V); @@ -63468,7 +63468,7 @@ package java.util.concurrent { method public final V invoke(); method public static void invokeAll(java.util.concurrent.ForkJoinTask, java.util.concurrent.ForkJoinTask); method public static void invokeAll(java.util.concurrent.ForkJoinTask...); - method public static java.util.Collection invokeAll(java.util.Collection); + method public static > java.util.Collection invokeAll(java.util.Collection); method public final boolean isCancelled(); method public final boolean isCompletedAbnormally(); method public final boolean isCompletedNormally(); @@ -63494,7 +63494,7 @@ package java.util.concurrent { method protected void onTermination(java.lang.Throwable); } - public abstract interface Future { + public abstract interface Future { method public abstract boolean cancel(boolean); method public abstract V get() throws java.util.concurrent.ExecutionException, java.lang.InterruptedException; method public abstract V get(long, java.util.concurrent.TimeUnit) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException, java.util.concurrent.TimeoutException; @@ -63502,7 +63502,7 @@ package java.util.concurrent { method public abstract boolean isDone(); } - public class FutureTask implements java.util.concurrent.RunnableFuture { + public class FutureTask implements java.util.concurrent.RunnableFuture { ctor public FutureTask(java.util.concurrent.Callable); ctor public FutureTask(java.lang.Runnable, V); method public boolean cancel(boolean); @@ -63517,7 +63517,7 @@ package java.util.concurrent { method protected void setException(java.lang.Throwable); } - public class LinkedBlockingDeque extends java.util.AbstractQueue implements java.util.concurrent.BlockingDeque java.io.Serializable { + public class LinkedBlockingDeque extends java.util.AbstractQueue implements java.util.concurrent.BlockingDeque java.io.Serializable { ctor public LinkedBlockingDeque(); ctor public LinkedBlockingDeque(int); ctor public LinkedBlockingDeque(java.util.Collection); @@ -63561,7 +63561,7 @@ package java.util.concurrent { method public E takeLast() throws java.lang.InterruptedException; } - public class LinkedBlockingQueue extends java.util.AbstractQueue implements java.util.concurrent.BlockingQueue java.io.Serializable { + public class LinkedBlockingQueue extends java.util.AbstractQueue implements java.util.concurrent.BlockingQueue java.io.Serializable { ctor public LinkedBlockingQueue(); ctor public LinkedBlockingQueue(int); ctor public LinkedBlockingQueue(java.util.Collection); @@ -63580,7 +63580,7 @@ package java.util.concurrent { method public E take() throws java.lang.InterruptedException; } - public class LinkedTransferQueue extends java.util.AbstractQueue implements java.io.Serializable java.util.concurrent.TransferQueue { + public class LinkedTransferQueue extends java.util.AbstractQueue implements java.io.Serializable java.util.concurrent.TransferQueue { ctor public LinkedTransferQueue(); ctor public LinkedTransferQueue(java.util.Collection); method public int drainTo(java.util.Collection); @@ -63627,7 +63627,7 @@ package java.util.concurrent { method public int register(); } - public class PriorityBlockingQueue extends java.util.AbstractQueue implements java.util.concurrent.BlockingQueue java.io.Serializable { + public class PriorityBlockingQueue extends java.util.AbstractQueue implements java.util.concurrent.BlockingQueue java.io.Serializable { ctor public PriorityBlockingQueue(); ctor public PriorityBlockingQueue(int); ctor public PriorityBlockingQueue(int, java.util.Comparator); @@ -63656,7 +63656,7 @@ package java.util.concurrent { method protected final void setRawResult(java.lang.Void); } - public abstract class RecursiveTask extends java.util.concurrent.ForkJoinTask { + public abstract class RecursiveTask extends java.util.concurrent.ForkJoinTask { ctor public RecursiveTask(); method protected abstract V compute(); method protected final boolean exec(); @@ -63675,22 +63675,22 @@ package java.util.concurrent { method public abstract void rejectedExecution(java.lang.Runnable, java.util.concurrent.ThreadPoolExecutor); } - public abstract interface RunnableFuture implements java.util.concurrent.Future java.lang.Runnable { + public abstract interface RunnableFuture implements java.util.concurrent.Future java.lang.Runnable { method public abstract void run(); } - public abstract interface RunnableScheduledFuture implements java.util.concurrent.RunnableFuture java.util.concurrent.ScheduledFuture { + public abstract interface RunnableScheduledFuture implements java.util.concurrent.RunnableFuture java.util.concurrent.ScheduledFuture { method public abstract boolean isPeriodic(); } public abstract interface ScheduledExecutorService implements java.util.concurrent.ExecutorService { method public abstract java.util.concurrent.ScheduledFuture schedule(java.lang.Runnable, long, java.util.concurrent.TimeUnit); - method public abstract java.util.concurrent.ScheduledFuture schedule(java.util.concurrent.Callable, long, java.util.concurrent.TimeUnit); + method public abstract java.util.concurrent.ScheduledFuture schedule(java.util.concurrent.Callable, long, java.util.concurrent.TimeUnit); method public abstract java.util.concurrent.ScheduledFuture scheduleAtFixedRate(java.lang.Runnable, long, long, java.util.concurrent.TimeUnit); method public abstract java.util.concurrent.ScheduledFuture scheduleWithFixedDelay(java.lang.Runnable, long, long, java.util.concurrent.TimeUnit); } - public abstract interface ScheduledFuture implements java.util.concurrent.Delayed java.util.concurrent.Future { + public abstract interface ScheduledFuture implements java.util.concurrent.Delayed java.util.concurrent.Future { } public class ScheduledThreadPoolExecutor extends java.util.concurrent.ThreadPoolExecutor implements java.util.concurrent.ScheduledExecutorService { @@ -63698,13 +63698,13 @@ package java.util.concurrent { ctor public ScheduledThreadPoolExecutor(int, java.util.concurrent.ThreadFactory); ctor public ScheduledThreadPoolExecutor(int, java.util.concurrent.RejectedExecutionHandler); ctor public ScheduledThreadPoolExecutor(int, java.util.concurrent.ThreadFactory, java.util.concurrent.RejectedExecutionHandler); - method protected java.util.concurrent.RunnableScheduledFuture decorateTask(java.lang.Runnable, java.util.concurrent.RunnableScheduledFuture); - method protected java.util.concurrent.RunnableScheduledFuture decorateTask(java.util.concurrent.Callable, java.util.concurrent.RunnableScheduledFuture); + method protected java.util.concurrent.RunnableScheduledFuture decorateTask(java.lang.Runnable, java.util.concurrent.RunnableScheduledFuture); + method protected java.util.concurrent.RunnableScheduledFuture decorateTask(java.util.concurrent.Callable, java.util.concurrent.RunnableScheduledFuture); method public boolean getContinueExistingPeriodicTasksAfterShutdownPolicy(); method public boolean getExecuteExistingDelayedTasksAfterShutdownPolicy(); method public boolean getRemoveOnCancelPolicy(); method public java.util.concurrent.ScheduledFuture schedule(java.lang.Runnable, long, java.util.concurrent.TimeUnit); - method public java.util.concurrent.ScheduledFuture schedule(java.util.concurrent.Callable, long, java.util.concurrent.TimeUnit); + method public java.util.concurrent.ScheduledFuture schedule(java.util.concurrent.Callable, long, java.util.concurrent.TimeUnit); method public java.util.concurrent.ScheduledFuture scheduleAtFixedRate(java.lang.Runnable, long, long, java.util.concurrent.TimeUnit); method public java.util.concurrent.ScheduledFuture scheduleWithFixedDelay(java.lang.Runnable, long, long, java.util.concurrent.TimeUnit); method public void setContinueExistingPeriodicTasksAfterShutdownPolicy(boolean); @@ -63734,7 +63734,7 @@ package java.util.concurrent { method public boolean tryAcquire(int, long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException; } - public class SynchronousQueue extends java.util.AbstractQueue implements java.util.concurrent.BlockingQueue java.io.Serializable { + public class SynchronousQueue extends java.util.AbstractQueue implements java.util.concurrent.BlockingQueue java.io.Serializable { ctor public SynchronousQueue(); ctor public SynchronousQueue(boolean); method public int drainTo(java.util.Collection); @@ -63852,7 +63852,7 @@ package java.util.concurrent { ctor public TimeoutException(java.lang.String); } - public abstract interface TransferQueue implements java.util.concurrent.BlockingQueue { + public abstract interface TransferQueue implements java.util.concurrent.BlockingQueue { method public abstract int getWaitingConsumerCount(); method public abstract boolean hasWaitingConsumer(); method public abstract void transfer(E) throws java.lang.InterruptedException; @@ -63922,7 +63922,7 @@ package java.util.concurrent.atomic { method public final boolean weakCompareAndSet(int, int, int); } - public abstract class AtomicIntegerFieldUpdater { + public abstract class AtomicIntegerFieldUpdater { ctor protected AtomicIntegerFieldUpdater(); method public final int accumulateAndGet(T, int, java.util.function.IntBinaryOperator); method public int addAndGet(T, int); @@ -63937,7 +63937,7 @@ package java.util.concurrent.atomic { method public final int getAndUpdate(T, java.util.function.IntUnaryOperator); method public int incrementAndGet(T); method public abstract void lazySet(T, int); - method public static java.util.concurrent.atomic.AtomicIntegerFieldUpdater newUpdater(java.lang.Class, java.lang.String); + method public static java.util.concurrent.atomic.AtomicIntegerFieldUpdater newUpdater(java.lang.Class, java.lang.String); method public abstract void set(T, int); method public final int updateAndGet(T, java.util.function.IntUnaryOperator); method public abstract boolean weakCompareAndSet(T, int, int); @@ -63990,7 +63990,7 @@ package java.util.concurrent.atomic { method public final boolean weakCompareAndSet(int, long, long); } - public abstract class AtomicLongFieldUpdater { + public abstract class AtomicLongFieldUpdater { ctor protected AtomicLongFieldUpdater(); method public final long accumulateAndGet(T, long, java.util.function.LongBinaryOperator); method public long addAndGet(T, long); @@ -64005,13 +64005,13 @@ package java.util.concurrent.atomic { method public final long getAndUpdate(T, java.util.function.LongUnaryOperator); method public long incrementAndGet(T); method public abstract void lazySet(T, long); - method public static java.util.concurrent.atomic.AtomicLongFieldUpdater newUpdater(java.lang.Class, java.lang.String); + method public static java.util.concurrent.atomic.AtomicLongFieldUpdater newUpdater(java.lang.Class, java.lang.String); method public abstract void set(T, long); method public final long updateAndGet(T, java.util.function.LongUnaryOperator); method public abstract boolean weakCompareAndSet(T, long, long); } - public class AtomicMarkableReference { + public class AtomicMarkableReference { ctor public AtomicMarkableReference(V, boolean); method public boolean attemptMark(V, boolean); method public boolean compareAndSet(V, V, boolean, boolean); @@ -64022,7 +64022,7 @@ package java.util.concurrent.atomic { method public boolean weakCompareAndSet(V, V, boolean, boolean); } - public class AtomicReference implements java.io.Serializable { + public class AtomicReference implements java.io.Serializable { ctor public AtomicReference(V); ctor public AtomicReference(); method public final V accumulateAndGet(V, java.util.function.BinaryOperator); @@ -64037,7 +64037,7 @@ package java.util.concurrent.atomic { method public final boolean weakCompareAndSet(V, V); } - public class AtomicReferenceArray implements java.io.Serializable { + public class AtomicReferenceArray implements java.io.Serializable { ctor public AtomicReferenceArray(int); ctor public AtomicReferenceArray(E[]); method public final E accumulateAndGet(int, E, java.util.function.BinaryOperator); @@ -64053,7 +64053,7 @@ package java.util.concurrent.atomic { method public final boolean weakCompareAndSet(int, E, E); } - public abstract class AtomicReferenceFieldUpdater { + public abstract class AtomicReferenceFieldUpdater { ctor protected AtomicReferenceFieldUpdater(); method public final V accumulateAndGet(T, V, java.util.function.BinaryOperator); method public abstract boolean compareAndSet(T, V, V); @@ -64062,13 +64062,13 @@ package java.util.concurrent.atomic { method public V getAndSet(T, V); method public final V getAndUpdate(T, java.util.function.UnaryOperator); method public abstract void lazySet(T, V); - method public static java.util.concurrent.atomic.AtomicReferenceFieldUpdater newUpdater(java.lang.Class, java.lang.Class, java.lang.String); + method public static java.util.concurrent.atomic.AtomicReferenceFieldUpdater newUpdater(java.lang.Class, java.lang.Class, java.lang.String); method public abstract void set(T, V); method public final V updateAndGet(T, java.util.function.UnaryOperator); method public abstract boolean weakCompareAndSet(T, V, V); } - public class AtomicStampedReference { + public class AtomicStampedReference { ctor public AtomicStampedReference(V, int); method public boolean attemptStamp(V, int); method public boolean compareAndSet(V, V, int, int); @@ -64371,33 +64371,33 @@ package java.util.concurrent.locks { package java.util.function { - public abstract interface BiConsumer { + public abstract interface BiConsumer { method public abstract void accept(T, U); method public default java.util.function.BiConsumer andThen(java.util.function.BiConsumer); } - public abstract interface BiFunction { - method public default java.util.function.BiFunction andThen(java.util.function.Function); + public abstract interface BiFunction { + method public default java.util.function.BiFunction andThen(java.util.function.Function); method public abstract R apply(T, U); } - public abstract interface BiPredicate { + public abstract interface BiPredicate { method public default java.util.function.BiPredicate and(java.util.function.BiPredicate); method public default java.util.function.BiPredicate negate(); method public default java.util.function.BiPredicate or(java.util.function.BiPredicate); method public abstract boolean test(T, U); } - public abstract interface BinaryOperator implements java.util.function.BiFunction { - method public static java.util.function.BinaryOperator maxBy(java.util.Comparator); - method public static java.util.function.BinaryOperator minBy(java.util.Comparator); + public abstract interface BinaryOperator implements java.util.function.BiFunction { + method public static java.util.function.BinaryOperator maxBy(java.util.Comparator); + method public static java.util.function.BinaryOperator minBy(java.util.Comparator); } public abstract interface BooleanSupplier { method public abstract boolean getAsBoolean(); } - public abstract interface Consumer { + public abstract interface Consumer { method public abstract void accept(T); method public default java.util.function.Consumer andThen(java.util.function.Consumer); } @@ -64411,7 +64411,7 @@ package java.util.function { method public default java.util.function.DoubleConsumer andThen(java.util.function.DoubleConsumer); } - public abstract interface DoubleFunction { + public abstract interface DoubleFunction { method public abstract R apply(double); } @@ -64441,11 +64441,11 @@ package java.util.function { method public static java.util.function.DoubleUnaryOperator identity(); } - public abstract interface Function { - method public default java.util.function.Function andThen(java.util.function.Function); + public abstract interface Function { + method public default java.util.function.Function andThen(java.util.function.Function); method public abstract R apply(T); - method public default java.util.function.Function compose(java.util.function.Function); - method public static java.util.function.Function identity(); + method public default java.util.function.Function compose(java.util.function.Function); + method public static java.util.function.Function identity(); } public abstract interface IntBinaryOperator { @@ -64457,7 +64457,7 @@ package java.util.function { method public default java.util.function.IntConsumer andThen(java.util.function.IntConsumer); } - public abstract interface IntFunction { + public abstract interface IntFunction { method public abstract R apply(int); } @@ -64496,7 +64496,7 @@ package java.util.function { method public default java.util.function.LongConsumer andThen(java.util.function.LongConsumer); } - public abstract interface LongFunction { + public abstract interface LongFunction { method public abstract R apply(long); } @@ -64526,56 +64526,56 @@ package java.util.function { method public static java.util.function.LongUnaryOperator identity(); } - public abstract interface ObjDoubleConsumer { + public abstract interface ObjDoubleConsumer { method public abstract void accept(T, double); } - public abstract interface ObjIntConsumer { + public abstract interface ObjIntConsumer { method public abstract void accept(T, int); } - public abstract interface ObjLongConsumer { + public abstract interface ObjLongConsumer { method public abstract void accept(T, long); } - public abstract interface Predicate { + public abstract interface Predicate { method public default java.util.function.Predicate and(java.util.function.Predicate); - method public static java.util.function.Predicate isEqual(java.lang.Object); + method public static java.util.function.Predicate isEqual(java.lang.Object); method public default java.util.function.Predicate negate(); method public default java.util.function.Predicate or(java.util.function.Predicate); method public abstract boolean test(T); } - public abstract interface Supplier { + public abstract interface Supplier { method public abstract T get(); } - public abstract interface ToDoubleBiFunction { + public abstract interface ToDoubleBiFunction { method public abstract double applyAsDouble(T, U); } - public abstract interface ToDoubleFunction { + public abstract interface ToDoubleFunction { method public abstract double applyAsDouble(T); } - public abstract interface ToIntBiFunction { + public abstract interface ToIntBiFunction { method public abstract int applyAsInt(T, U); } - public abstract interface ToIntFunction { + public abstract interface ToIntFunction { method public abstract int applyAsInt(T); } - public abstract interface ToLongBiFunction { + public abstract interface ToLongBiFunction { method public abstract long applyAsLong(T, U); } - public abstract interface ToLongFunction { + public abstract interface ToLongFunction { method public abstract long applyAsLong(T); } - public abstract interface UnaryOperator implements java.util.function.Function { - method public static java.util.function.UnaryOperator identity(); + public abstract interface UnaryOperator implements java.util.function.Function { + method public static java.util.function.UnaryOperator identity(); } } @@ -65163,7 +65163,7 @@ package java.util.regex { package java.util.stream { - public abstract interface BaseStream implements java.lang.AutoCloseable { + public abstract interface BaseStream> implements java.lang.AutoCloseable { method public abstract void close(); method public abstract boolean isParallel(); method public abstract java.util.Iterator iterator(); @@ -65174,13 +65174,13 @@ package java.util.stream { method public abstract S unordered(); } - public abstract interface Collector { + public abstract interface Collector { method public abstract java.util.function.BiConsumer accumulator(); method public abstract java.util.Set characteristics(); method public abstract java.util.function.BinaryOperator combiner(); method public abstract java.util.function.Function finisher(); - method public static java.util.stream.Collector of(java.util.function.Supplier, java.util.function.BiConsumer, java.util.function.BinaryOperator, java.util.stream.Collector.Characteristics...); - method public static java.util.stream.Collector of(java.util.function.Supplier, java.util.function.BiConsumer, java.util.function.BinaryOperator, java.util.function.Function, java.util.stream.Collector.Characteristics...); + method public static java.util.stream.Collector of(java.util.function.Supplier, java.util.function.BiConsumer, java.util.function.BinaryOperator, java.util.stream.Collector.Characteristics...); + method public static java.util.stream.Collector of(java.util.function.Supplier, java.util.function.BiConsumer, java.util.function.BinaryOperator, java.util.function.Function, java.util.stream.Collector.Characteristics...); method public abstract java.util.function.Supplier supplier(); } @@ -65193,43 +65193,43 @@ package java.util.stream { } public final class Collectors { - method public static java.util.stream.Collector averagingDouble(java.util.function.ToDoubleFunction); - method public static java.util.stream.Collector averagingInt(java.util.function.ToIntFunction); - method public static java.util.stream.Collector averagingLong(java.util.function.ToLongFunction); - method public static java.util.stream.Collector collectingAndThen(java.util.stream.Collector, java.util.function.Function); - method public static java.util.stream.Collector counting(); - method public static java.util.stream.Collector>> groupingBy(java.util.function.Function); - method public static java.util.stream.Collector> groupingBy(java.util.function.Function, java.util.stream.Collector); - method public static java.util.stream.Collector groupingBy(java.util.function.Function, java.util.function.Supplier, java.util.stream.Collector); - method public static java.util.stream.Collector>> groupingByConcurrent(java.util.function.Function); - method public static java.util.stream.Collector> groupingByConcurrent(java.util.function.Function, java.util.stream.Collector); - method public static java.util.stream.Collector groupingByConcurrent(java.util.function.Function, java.util.function.Supplier, java.util.stream.Collector); + method public static java.util.stream.Collector averagingDouble(java.util.function.ToDoubleFunction); + method public static java.util.stream.Collector averagingInt(java.util.function.ToIntFunction); + method public static java.util.stream.Collector averagingLong(java.util.function.ToLongFunction); + method public static java.util.stream.Collector collectingAndThen(java.util.stream.Collector, java.util.function.Function); + method public static java.util.stream.Collector counting(); + method public static java.util.stream.Collector>> groupingBy(java.util.function.Function); + method public static java.util.stream.Collector> groupingBy(java.util.function.Function, java.util.stream.Collector); + method public static > java.util.stream.Collector groupingBy(java.util.function.Function, java.util.function.Supplier, java.util.stream.Collector); + method public static java.util.stream.Collector>> groupingByConcurrent(java.util.function.Function); + method public static java.util.stream.Collector> groupingByConcurrent(java.util.function.Function, java.util.stream.Collector); + method public static > java.util.stream.Collector groupingByConcurrent(java.util.function.Function, java.util.function.Supplier, java.util.stream.Collector); method public static java.util.stream.Collector joining(); method public static java.util.stream.Collector joining(java.lang.CharSequence); method public static java.util.stream.Collector joining(java.lang.CharSequence, java.lang.CharSequence, java.lang.CharSequence); - method public static java.util.stream.Collector mapping(java.util.function.Function, java.util.stream.Collector); - method public static java.util.stream.Collector> maxBy(java.util.Comparator); - method public static java.util.stream.Collector> minBy(java.util.Comparator); - method public static java.util.stream.Collector>> partitioningBy(java.util.function.Predicate); - method public static java.util.stream.Collector> partitioningBy(java.util.function.Predicate, java.util.stream.Collector); - method public static java.util.stream.Collector reducing(T, java.util.function.BinaryOperator); - method public static java.util.stream.Collector> reducing(java.util.function.BinaryOperator); - method public static java.util.stream.Collector reducing(U, java.util.function.Function, java.util.function.BinaryOperator); - method public static java.util.stream.Collector summarizingDouble(java.util.function.ToDoubleFunction); - method public static java.util.stream.Collector summarizingInt(java.util.function.ToIntFunction); - method public static java.util.stream.Collector summarizingLong(java.util.function.ToLongFunction); - method public static java.util.stream.Collector summingDouble(java.util.function.ToDoubleFunction); - method public static java.util.stream.Collector summingInt(java.util.function.ToIntFunction); - method public static java.util.stream.Collector summingLong(java.util.function.ToLongFunction); - method public static java.util.stream.Collector toCollection(java.util.function.Supplier); - method public static java.util.stream.Collector> toConcurrentMap(java.util.function.Function, java.util.function.Function); - method public static java.util.stream.Collector> toConcurrentMap(java.util.function.Function, java.util.function.Function, java.util.function.BinaryOperator); - method public static java.util.stream.Collector toConcurrentMap(java.util.function.Function, java.util.function.Function, java.util.function.BinaryOperator, java.util.function.Supplier); - method public static java.util.stream.Collector> toList(); - method public static java.util.stream.Collector> toMap(java.util.function.Function, java.util.function.Function); - method public static java.util.stream.Collector> toMap(java.util.function.Function, java.util.function.Function, java.util.function.BinaryOperator); - method public static java.util.stream.Collector toMap(java.util.function.Function, java.util.function.Function, java.util.function.BinaryOperator, java.util.function.Supplier); - method public static java.util.stream.Collector> toSet(); + method public static java.util.stream.Collector mapping(java.util.function.Function, java.util.stream.Collector); + method public static java.util.stream.Collector> maxBy(java.util.Comparator); + method public static java.util.stream.Collector> minBy(java.util.Comparator); + method public static java.util.stream.Collector>> partitioningBy(java.util.function.Predicate); + method public static java.util.stream.Collector> partitioningBy(java.util.function.Predicate, java.util.stream.Collector); + method public static java.util.stream.Collector reducing(T, java.util.function.BinaryOperator); + method public static java.util.stream.Collector> reducing(java.util.function.BinaryOperator); + method public static java.util.stream.Collector reducing(U, java.util.function.Function, java.util.function.BinaryOperator); + method public static java.util.stream.Collector summarizingDouble(java.util.function.ToDoubleFunction); + method public static java.util.stream.Collector summarizingInt(java.util.function.ToIntFunction); + method public static java.util.stream.Collector summarizingLong(java.util.function.ToLongFunction); + method public static java.util.stream.Collector summingDouble(java.util.function.ToDoubleFunction); + method public static java.util.stream.Collector summingInt(java.util.function.ToIntFunction); + method public static java.util.stream.Collector summingLong(java.util.function.ToLongFunction); + method public static > java.util.stream.Collector toCollection(java.util.function.Supplier); + method public static java.util.stream.Collector> toConcurrentMap(java.util.function.Function, java.util.function.Function); + method public static java.util.stream.Collector> toConcurrentMap(java.util.function.Function, java.util.function.Function, java.util.function.BinaryOperator); + method public static > java.util.stream.Collector toConcurrentMap(java.util.function.Function, java.util.function.Function, java.util.function.BinaryOperator, java.util.function.Supplier); + method public static java.util.stream.Collector> toList(); + method public static java.util.stream.Collector> toMap(java.util.function.Function, java.util.function.Function); + method public static java.util.stream.Collector> toMap(java.util.function.Function, java.util.function.Function, java.util.function.BinaryOperator); + method public static > java.util.stream.Collector toMap(java.util.function.Function, java.util.function.Function, java.util.function.BinaryOperator, java.util.function.Supplier); + method public static java.util.stream.Collector> toSet(); } public abstract interface DoubleStream implements java.util.stream.BaseStream { @@ -65238,7 +65238,7 @@ package java.util.stream { method public abstract java.util.OptionalDouble average(); method public abstract java.util.stream.Stream boxed(); method public static java.util.stream.DoubleStream.Builder builder(); - method public abstract R collect(java.util.function.Supplier, java.util.function.ObjDoubleConsumer, java.util.function.BiConsumer); + method public abstract R collect(java.util.function.Supplier, java.util.function.ObjDoubleConsumer, java.util.function.BiConsumer); method public static java.util.stream.DoubleStream concat(java.util.stream.DoubleStream, java.util.stream.DoubleStream); method public abstract long count(); method public abstract java.util.stream.DoubleStream distinct(); @@ -65256,7 +65256,7 @@ package java.util.stream { method public abstract java.util.stream.DoubleStream map(java.util.function.DoubleUnaryOperator); method public abstract java.util.stream.IntStream mapToInt(java.util.function.DoubleToIntFunction); method public abstract java.util.stream.LongStream mapToLong(java.util.function.DoubleToLongFunction); - method public abstract java.util.stream.Stream mapToObj(java.util.function.DoubleFunction); + method public abstract java.util.stream.Stream mapToObj(java.util.function.DoubleFunction); method public abstract java.util.OptionalDouble max(); method public abstract java.util.OptionalDouble min(); method public abstract boolean noneMatch(java.util.function.DoublePredicate); @@ -65289,7 +65289,7 @@ package java.util.stream { method public abstract java.util.OptionalDouble average(); method public abstract java.util.stream.Stream boxed(); method public static java.util.stream.IntStream.Builder builder(); - method public abstract R collect(java.util.function.Supplier, java.util.function.ObjIntConsumer, java.util.function.BiConsumer); + method public abstract R collect(java.util.function.Supplier, java.util.function.ObjIntConsumer, java.util.function.BiConsumer); method public static java.util.stream.IntStream concat(java.util.stream.IntStream, java.util.stream.IntStream); method public abstract long count(); method public abstract java.util.stream.IntStream distinct(); @@ -65307,7 +65307,7 @@ package java.util.stream { method public abstract java.util.stream.IntStream map(java.util.function.IntUnaryOperator); method public abstract java.util.stream.DoubleStream mapToDouble(java.util.function.IntToDoubleFunction); method public abstract java.util.stream.LongStream mapToLong(java.util.function.IntToLongFunction); - method public abstract java.util.stream.Stream mapToObj(java.util.function.IntFunction); + method public abstract java.util.stream.Stream mapToObj(java.util.function.IntFunction); method public abstract java.util.OptionalInt max(); method public abstract java.util.OptionalInt min(); method public abstract boolean noneMatch(java.util.function.IntPredicate); @@ -65341,7 +65341,7 @@ package java.util.stream { method public abstract java.util.OptionalDouble average(); method public abstract java.util.stream.Stream boxed(); method public static java.util.stream.LongStream.Builder builder(); - method public abstract R collect(java.util.function.Supplier, java.util.function.ObjLongConsumer, java.util.function.BiConsumer); + method public abstract R collect(java.util.function.Supplier, java.util.function.ObjLongConsumer, java.util.function.BiConsumer); method public static java.util.stream.LongStream concat(java.util.stream.LongStream, java.util.stream.LongStream); method public abstract long count(); method public abstract java.util.stream.LongStream distinct(); @@ -65359,7 +65359,7 @@ package java.util.stream { method public abstract java.util.stream.LongStream map(java.util.function.LongUnaryOperator); method public abstract java.util.stream.DoubleStream mapToDouble(java.util.function.LongToDoubleFunction); method public abstract java.util.stream.IntStream mapToInt(java.util.function.LongToIntFunction); - method public abstract java.util.stream.Stream mapToObj(java.util.function.LongFunction); + method public abstract java.util.stream.Stream mapToObj(java.util.function.LongFunction); method public abstract java.util.OptionalLong max(); method public abstract java.util.OptionalLong min(); method public abstract boolean noneMatch(java.util.function.LongPredicate); @@ -65386,49 +65386,49 @@ package java.util.stream { method public abstract java.util.stream.LongStream build(); } - public abstract interface Stream implements java.util.stream.BaseStream { + public abstract interface Stream implements java.util.stream.BaseStream { method public abstract boolean allMatch(java.util.function.Predicate); method public abstract boolean anyMatch(java.util.function.Predicate); - method public static java.util.stream.Stream.Builder builder(); - method public abstract R collect(java.util.function.Supplier, java.util.function.BiConsumer, java.util.function.BiConsumer); - method public abstract R collect(java.util.stream.Collector); - method public static java.util.stream.Stream concat(java.util.stream.Stream, java.util.stream.Stream); + method public static java.util.stream.Stream.Builder builder(); + method public abstract R collect(java.util.function.Supplier, java.util.function.BiConsumer, java.util.function.BiConsumer); + method public abstract R collect(java.util.stream.Collector); + method public static java.util.stream.Stream concat(java.util.stream.Stream, java.util.stream.Stream); method public abstract long count(); method public abstract java.util.stream.Stream distinct(); - method public static java.util.stream.Stream empty(); + method public static java.util.stream.Stream empty(); method public abstract java.util.stream.Stream filter(java.util.function.Predicate); method public abstract java.util.Optional findAny(); method public abstract java.util.Optional findFirst(); - method public abstract java.util.stream.Stream flatMap(java.util.function.Function>); + method public abstract java.util.stream.Stream flatMap(java.util.function.Function>); method public abstract java.util.stream.DoubleStream flatMapToDouble(java.util.function.Function); method public abstract java.util.stream.IntStream flatMapToInt(java.util.function.Function); method public abstract java.util.stream.LongStream flatMapToLong(java.util.function.Function); method public abstract void forEach(java.util.function.Consumer); method public abstract void forEachOrdered(java.util.function.Consumer); - method public static java.util.stream.Stream generate(java.util.function.Supplier); - method public static java.util.stream.Stream iterate(T, java.util.function.UnaryOperator); + method public static java.util.stream.Stream generate(java.util.function.Supplier); + method public static java.util.stream.Stream iterate(T, java.util.function.UnaryOperator); method public abstract java.util.stream.Stream limit(long); - method public abstract java.util.stream.Stream map(java.util.function.Function); + method public abstract java.util.stream.Stream map(java.util.function.Function); method public abstract java.util.stream.DoubleStream mapToDouble(java.util.function.ToDoubleFunction); method public abstract java.util.stream.IntStream mapToInt(java.util.function.ToIntFunction); method public abstract java.util.stream.LongStream mapToLong(java.util.function.ToLongFunction); method public abstract java.util.Optional max(java.util.Comparator); method public abstract java.util.Optional min(java.util.Comparator); method public abstract boolean noneMatch(java.util.function.Predicate); - method public static java.util.stream.Stream of(T); - method public static java.util.stream.Stream of(T...); + method public static java.util.stream.Stream of(T); + method public static java.util.stream.Stream of(T...); method public abstract java.util.stream.Stream peek(java.util.function.Consumer); method public abstract T reduce(T, java.util.function.BinaryOperator); method public abstract java.util.Optional reduce(java.util.function.BinaryOperator); - method public abstract U reduce(U, java.util.function.BiFunction, java.util.function.BinaryOperator); + method public abstract U reduce(U, java.util.function.BiFunction, java.util.function.BinaryOperator); method public abstract java.util.stream.Stream skip(long); method public abstract java.util.stream.Stream sorted(); method public abstract java.util.stream.Stream sorted(java.util.Comparator); method public abstract java.lang.Object[] toArray(); - method public abstract A[] toArray(java.util.function.IntFunction); + method public abstract A[] toArray(java.util.function.IntFunction); } - public static abstract interface Stream.Builder implements java.util.function.Consumer { + public static abstract interface Stream.Builder implements java.util.function.Consumer { method public abstract void accept(T); method public default java.util.stream.Stream.Builder add(T); method public abstract java.util.stream.Stream build(); @@ -65441,8 +65441,8 @@ package java.util.stream { method public static java.util.stream.IntStream intStream(java.util.function.Supplier, int, boolean); method public static java.util.stream.LongStream longStream(java.util.Spliterator.OfLong, boolean); method public static java.util.stream.LongStream longStream(java.util.function.Supplier, int, boolean); - method public static java.util.stream.Stream stream(java.util.Spliterator, boolean); - method public static java.util.stream.Stream stream(java.util.function.Supplier>, int, boolean); + method public static java.util.stream.Stream stream(java.util.Spliterator, boolean); + method public static java.util.stream.Stream stream(java.util.function.Supplier>, int, boolean); } } @@ -67613,16 +67613,16 @@ package javax.security.auth { public final class Subject implements java.io.Serializable { ctor public Subject(); ctor public Subject(boolean, java.util.Set, java.util.Set, java.util.Set); - method public static T doAs(javax.security.auth.Subject, java.security.PrivilegedAction); - method public static T doAs(javax.security.auth.Subject, java.security.PrivilegedExceptionAction) throws java.security.PrivilegedActionException; - method public static T doAsPrivileged(javax.security.auth.Subject, java.security.PrivilegedAction, java.security.AccessControlContext); - method public static T doAsPrivileged(javax.security.auth.Subject, java.security.PrivilegedExceptionAction, java.security.AccessControlContext) throws java.security.PrivilegedActionException; + method public static T doAs(javax.security.auth.Subject, java.security.PrivilegedAction); + method public static T doAs(javax.security.auth.Subject, java.security.PrivilegedExceptionAction) throws java.security.PrivilegedActionException; + method public static T doAsPrivileged(javax.security.auth.Subject, java.security.PrivilegedAction, java.security.AccessControlContext); + method public static T doAsPrivileged(javax.security.auth.Subject, java.security.PrivilegedExceptionAction, java.security.AccessControlContext) throws java.security.PrivilegedActionException; method public java.util.Set getPrincipals(); - method public java.util.Set getPrincipals(java.lang.Class); + method public java.util.Set getPrincipals(java.lang.Class); method public java.util.Set getPrivateCredentials(); - method public java.util.Set getPrivateCredentials(java.lang.Class); + method public java.util.Set getPrivateCredentials(java.lang.Class); method public java.util.Set getPublicCredentials(); - method public java.util.Set getPublicCredentials(java.lang.Class); + method public java.util.Set getPublicCredentials(java.lang.Class); method public static javax.security.auth.Subject getSubject(java.security.AccessControlContext); method public boolean isReadOnly(); method public void setReadOnly(); diff --git a/api/test-current.txt b/api/test-current.txt index 74e65d9a3ee9..b4f62364084b 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -2906,11 +2906,11 @@ package android.accounts { field public static final java.lang.String LOGIN_ACCOUNTS_CHANGED_ACTION = "android.accounts.LOGIN_ACCOUNTS_CHANGED"; } - public abstract interface AccountManagerCallback { + public abstract interface AccountManagerCallback { method public abstract void run(android.accounts.AccountManagerFuture); } - public abstract interface AccountManagerFuture { + public abstract interface AccountManagerFuture { method public abstract boolean cancel(boolean); method public abstract V getResult() throws android.accounts.AuthenticatorException, java.io.IOException, android.accounts.OperationCanceledException; method public abstract V getResult(long, java.util.concurrent.TimeUnit) throws android.accounts.AuthenticatorException, java.io.IOException, android.accounts.OperationCanceledException; @@ -3056,7 +3056,7 @@ package android.animation { method public java.lang.Object evaluate(float, java.lang.Object, java.lang.Object); } - public abstract class BidirectionalTypeConverter extends android.animation.TypeConverter { + public abstract class BidirectionalTypeConverter extends android.animation.TypeConverter { ctor public BidirectionalTypeConverter(java.lang.Class, java.lang.Class); method public abstract T convertBack(V); method public android.animation.BidirectionalTypeConverter invert(); @@ -3148,26 +3148,26 @@ package android.animation { method public java.lang.String getPropertyName(); method public java.lang.Object getTarget(); method public static android.animation.ObjectAnimator ofArgb(java.lang.Object, java.lang.String, int...); - method public static android.animation.ObjectAnimator ofArgb(T, android.util.Property, int...); + method public static android.animation.ObjectAnimator ofArgb(T, android.util.Property, int...); method public static android.animation.ObjectAnimator ofFloat(java.lang.Object, java.lang.String, float...); method public static android.animation.ObjectAnimator ofFloat(java.lang.Object, java.lang.String, java.lang.String, android.graphics.Path); - method public static android.animation.ObjectAnimator ofFloat(T, android.util.Property, float...); - method public static android.animation.ObjectAnimator ofFloat(T, android.util.Property, android.util.Property, android.graphics.Path); + method public static android.animation.ObjectAnimator ofFloat(T, android.util.Property, float...); + method public static android.animation.ObjectAnimator ofFloat(T, android.util.Property, android.util.Property, android.graphics.Path); method public static android.animation.ObjectAnimator ofInt(java.lang.Object, java.lang.String, int...); method public static android.animation.ObjectAnimator ofInt(java.lang.Object, java.lang.String, java.lang.String, android.graphics.Path); - method public static android.animation.ObjectAnimator ofInt(T, android.util.Property, int...); - method public static android.animation.ObjectAnimator ofInt(T, android.util.Property, android.util.Property, android.graphics.Path); + method public static android.animation.ObjectAnimator ofInt(T, android.util.Property, int...); + method public static android.animation.ObjectAnimator ofInt(T, android.util.Property, android.util.Property, android.graphics.Path); method public static android.animation.ObjectAnimator ofMultiFloat(java.lang.Object, java.lang.String, float[][]); method public static android.animation.ObjectAnimator ofMultiFloat(java.lang.Object, java.lang.String, android.graphics.Path); - method public static android.animation.ObjectAnimator ofMultiFloat(java.lang.Object, java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, T...); + method public static android.animation.ObjectAnimator ofMultiFloat(java.lang.Object, java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, T...); method public static android.animation.ObjectAnimator ofMultiInt(java.lang.Object, java.lang.String, int[][]); method public static android.animation.ObjectAnimator ofMultiInt(java.lang.Object, java.lang.String, android.graphics.Path); - method public static android.animation.ObjectAnimator ofMultiInt(java.lang.Object, java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, T...); + method public static android.animation.ObjectAnimator ofMultiInt(java.lang.Object, java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, T...); method public static android.animation.ObjectAnimator ofObject(java.lang.Object, java.lang.String, android.animation.TypeEvaluator, java.lang.Object...); method public static android.animation.ObjectAnimator ofObject(java.lang.Object, java.lang.String, android.animation.TypeConverter, android.graphics.Path); - method public static android.animation.ObjectAnimator ofObject(T, android.util.Property, android.animation.TypeEvaluator, V...); - method public static android.animation.ObjectAnimator ofObject(T, android.util.Property, android.animation.TypeConverter, android.animation.TypeEvaluator, V...); - method public static android.animation.ObjectAnimator ofObject(T, android.util.Property, android.animation.TypeConverter, android.graphics.Path); + method public static android.animation.ObjectAnimator ofObject(T, android.util.Property, android.animation.TypeEvaluator, V...); + method public static android.animation.ObjectAnimator ofObject(T, android.util.Property, android.animation.TypeConverter, android.animation.TypeEvaluator, V...); + method public static android.animation.ObjectAnimator ofObject(T, android.util.Property, android.animation.TypeConverter, android.graphics.Path); method public static android.animation.ObjectAnimator ofPropertyValuesHolder(java.lang.Object, android.animation.PropertyValuesHolder...); method public void setAutoCancel(boolean); method public void setProperty(android.util.Property); @@ -3191,17 +3191,17 @@ package android.animation { method public static android.animation.PropertyValuesHolder ofKeyframe(android.util.Property, android.animation.Keyframe...); method public static android.animation.PropertyValuesHolder ofMultiFloat(java.lang.String, float[][]); method public static android.animation.PropertyValuesHolder ofMultiFloat(java.lang.String, android.graphics.Path); - method public static android.animation.PropertyValuesHolder ofMultiFloat(java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, V...); - method public static android.animation.PropertyValuesHolder ofMultiFloat(java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, android.animation.Keyframe...); + method public static android.animation.PropertyValuesHolder ofMultiFloat(java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, V...); + method public static android.animation.PropertyValuesHolder ofMultiFloat(java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, android.animation.Keyframe...); method public static android.animation.PropertyValuesHolder ofMultiInt(java.lang.String, int[][]); method public static android.animation.PropertyValuesHolder ofMultiInt(java.lang.String, android.graphics.Path); - method public static android.animation.PropertyValuesHolder ofMultiInt(java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, V...); - method public static android.animation.PropertyValuesHolder ofMultiInt(java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, android.animation.Keyframe...); + method public static android.animation.PropertyValuesHolder ofMultiInt(java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, V...); + method public static android.animation.PropertyValuesHolder ofMultiInt(java.lang.String, android.animation.TypeConverter, android.animation.TypeEvaluator, android.animation.Keyframe...); method public static android.animation.PropertyValuesHolder ofObject(java.lang.String, android.animation.TypeEvaluator, java.lang.Object...); method public static android.animation.PropertyValuesHolder ofObject(java.lang.String, android.animation.TypeConverter, android.graphics.Path); - method public static android.animation.PropertyValuesHolder ofObject(android.util.Property, android.animation.TypeEvaluator, V...); - method public static android.animation.PropertyValuesHolder ofObject(android.util.Property, android.animation.TypeConverter, android.animation.TypeEvaluator, T...); - method public static android.animation.PropertyValuesHolder ofObject(android.util.Property, android.animation.TypeConverter, android.graphics.Path); + method public static android.animation.PropertyValuesHolder ofObject(android.util.Property, android.animation.TypeEvaluator, V...); + method public static android.animation.PropertyValuesHolder ofObject(android.util.Property, android.animation.TypeConverter, android.animation.TypeEvaluator, T...); + method public static android.animation.PropertyValuesHolder ofObject(android.util.Property, android.animation.TypeConverter, android.graphics.Path); method public void setConverter(android.animation.TypeConverter); method public void setEvaluator(android.animation.TypeEvaluator); method public void setFloatValues(float...); @@ -3238,12 +3238,12 @@ package android.animation { method public abstract float getInterpolation(float); } - public abstract class TypeConverter { + public abstract class TypeConverter { ctor public TypeConverter(java.lang.Class, java.lang.Class); method public abstract V convert(T); } - public abstract interface TypeEvaluator { + public abstract interface TypeEvaluator { method public abstract T evaluate(float, T, T); } @@ -4574,7 +4574,7 @@ package android.app { method public android.os.Parcelable saveAllState(); } - public abstract class FragmentHostCallback extends android.app.FragmentContainer { + public abstract class FragmentHostCallback extends android.app.FragmentContainer { ctor public FragmentHostCallback(android.content.Context, android.os.Handler, int); method public void onAttachFragment(android.app.Fragment); method public void onDump(java.lang.String, java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]); @@ -4841,12 +4841,12 @@ package android.app { method public abstract void destroyLoader(int); method public abstract void dump(java.lang.String, java.io.FileDescriptor, java.io.PrintWriter, java.lang.String[]); method public static void enableDebugLogging(boolean); - method public abstract android.content.Loader getLoader(int); - method public abstract android.content.Loader initLoader(int, android.os.Bundle, android.app.LoaderManager.LoaderCallbacks); - method public abstract android.content.Loader restartLoader(int, android.os.Bundle, android.app.LoaderManager.LoaderCallbacks); + method public abstract android.content.Loader getLoader(int); + method public abstract android.content.Loader initLoader(int, android.os.Bundle, android.app.LoaderManager.LoaderCallbacks); + method public abstract android.content.Loader restartLoader(int, android.os.Bundle, android.app.LoaderManager.LoaderCallbacks); } - public static abstract interface LoaderManager.LoaderCallbacks { + public static abstract interface LoaderManager.LoaderCallbacks { method public abstract android.content.Loader onCreateLoader(int, android.os.Bundle); method public abstract void onLoadFinished(android.content.Loader, D); method public abstract void onLoaderReset(android.content.Loader); @@ -7637,7 +7637,7 @@ package android.content { ctor public AsyncQueryHandler.WorkerHandler(android.os.Looper); } - public abstract class AsyncTaskLoader extends android.content.Loader { + public abstract class AsyncTaskLoader extends android.content.Loader { ctor public AsyncTaskLoader(android.content.Context); method public void cancelLoadInBackground(); method public boolean isLoadInBackgroundCanceled(); @@ -7819,7 +7819,7 @@ package android.content { method public android.os.ParcelFileDescriptor openFile(android.net.Uri, java.lang.String) throws java.io.FileNotFoundException; method public android.os.ParcelFileDescriptor openFile(android.net.Uri, java.lang.String, android.os.CancellationSignal) throws java.io.FileNotFoundException; method protected final android.os.ParcelFileDescriptor openFileHelper(android.net.Uri, java.lang.String) throws java.io.FileNotFoundException; - method public android.os.ParcelFileDescriptor openPipeHelper(android.net.Uri, java.lang.String, android.os.Bundle, T, android.content.ContentProvider.PipeDataWriter) throws java.io.FileNotFoundException; + method public android.os.ParcelFileDescriptor openPipeHelper(android.net.Uri, java.lang.String, android.os.Bundle, T, android.content.ContentProvider.PipeDataWriter) throws java.io.FileNotFoundException; method public android.content.res.AssetFileDescriptor openTypedAssetFile(android.net.Uri, java.lang.String, android.os.Bundle) throws java.io.FileNotFoundException; method public android.content.res.AssetFileDescriptor openTypedAssetFile(android.net.Uri, java.lang.String, android.os.Bundle, android.os.CancellationSignal) throws java.io.FileNotFoundException; method public abstract android.database.Cursor query(android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String); @@ -7832,7 +7832,7 @@ package android.content { method public abstract int update(android.net.Uri, android.content.ContentValues, java.lang.String, java.lang.String[]); } - public static abstract interface ContentProvider.PipeDataWriter { + public static abstract interface ContentProvider.PipeDataWriter { method public abstract void writeDataToPipe(android.os.ParcelFileDescriptor, android.net.Uri, java.lang.String, android.os.Bundle, T); } @@ -8104,7 +8104,7 @@ package android.content { method public final java.lang.String getString(int); method public final java.lang.String getString(int, java.lang.Object...); method public abstract java.lang.Object getSystemService(java.lang.String); - method public final T getSystemService(java.lang.Class); + method public final T getSystemService(java.lang.Class); method public abstract java.lang.String getSystemServiceName(java.lang.Class); method public final java.lang.CharSequence getText(int); method public abstract android.content.res.Resources.Theme getTheme(); @@ -8461,8 +8461,8 @@ package android.content { method public long getLongExtra(java.lang.String, long); method public java.lang.String getPackage(); method public android.os.Parcelable[] getParcelableArrayExtra(java.lang.String); - method public java.util.ArrayList getParcelableArrayListExtra(java.lang.String); - method public T getParcelableExtra(java.lang.String); + method public java.util.ArrayList getParcelableArrayListExtra(java.lang.String); + method public T getParcelableExtra(java.lang.String); method public java.lang.String getScheme(); method public android.content.Intent getSelector(); method public java.io.Serializable getSerializableExtra(java.lang.String); @@ -8937,7 +8937,7 @@ package android.content { ctor public IntentSender.SendIntentException(java.lang.Exception); } - public class Loader { + public class Loader { ctor public Loader(android.content.Context); method public void abandon(); method public boolean cancelLoad(); @@ -8974,11 +8974,11 @@ package android.content { ctor public Loader.ForceLoadContentObserver(); } - public static abstract interface Loader.OnLoadCanceledListener { + public static abstract interface Loader.OnLoadCanceledListener { method public abstract void onLoadCanceled(android.content.Loader); } - public static abstract interface Loader.OnLoadCompleteListener { + public static abstract interface Loader.OnLoadCompleteListener { method public abstract void onLoadComplete(android.content.Loader, D); } @@ -10855,7 +10855,7 @@ package android.database { method public boolean isNull(int); } - public abstract class Observable { + public abstract class Observable { ctor public Observable(); method public void registerObserver(T); method public void unregisterAll(); @@ -12745,7 +12745,7 @@ package android.graphics.drawable { public class AnimatedStateListDrawable extends android.graphics.drawable.StateListDrawable { ctor public AnimatedStateListDrawable(); method public void addState(int[], android.graphics.drawable.Drawable, int); - method public void addTransition(int, int, T, boolean); + method public void addTransition(int, int, T, boolean); } public class AnimatedVectorDrawable extends android.graphics.drawable.Drawable implements android.graphics.drawable.Animatable2 { @@ -13869,7 +13869,7 @@ package android.hardware.camera2 { } public final class CameraCharacteristics extends android.hardware.camera2.CameraMetadata { - method public T get(android.hardware.camera2.CameraCharacteristics.Key); + method public T get(android.hardware.camera2.CameraCharacteristics.Key); method public java.util.List> getAvailableCaptureRequestKeys(); method public java.util.List> getAvailableCaptureResultKeys(); field public static final android.hardware.camera2.CameraCharacteristics.Key COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES; @@ -13954,7 +13954,7 @@ package android.hardware.camera2 { field public static final android.hardware.camera2.CameraCharacteristics.Key TONEMAP_MAX_CURVE_POINTS; } - public static final class CameraCharacteristics.Key { + public static final class CameraCharacteristics.Key { method public final boolean equals(java.lang.Object); method public java.lang.String getName(); method public final int hashCode(); @@ -14019,7 +14019,7 @@ package android.hardware.camera2 { method public void onTorchModeUnavailable(java.lang.String); } - public abstract class CameraMetadata { + public abstract class CameraMetadata { method public java.util.List getKeys(); field public static final int COLOR_CORRECTION_ABERRATION_MODE_FAST = 1; // 0x1 field public static final int COLOR_CORRECTION_ABERRATION_MODE_HIGH_QUALITY = 2; // 0x2 @@ -14227,7 +14227,7 @@ package android.hardware.camera2 { public final class CaptureRequest extends android.hardware.camera2.CameraMetadata implements android.os.Parcelable { method public int describeContents(); - method public T get(android.hardware.camera2.CaptureRequest.Key); + method public T get(android.hardware.camera2.CaptureRequest.Key); method public java.lang.Object getTag(); method public boolean isReprocess(); method public void writeToParcel(android.os.Parcel, int); @@ -14290,20 +14290,20 @@ package android.hardware.camera2 { public static final class CaptureRequest.Builder { method public void addTarget(android.view.Surface); method public android.hardware.camera2.CaptureRequest build(); - method public T get(android.hardware.camera2.CaptureRequest.Key); + method public T get(android.hardware.camera2.CaptureRequest.Key); method public void removeTarget(android.view.Surface); - method public void set(android.hardware.camera2.CaptureRequest.Key, T); + method public void set(android.hardware.camera2.CaptureRequest.Key, T); method public void setTag(java.lang.Object); } - public static final class CaptureRequest.Key { + public static final class CaptureRequest.Key { method public final boolean equals(java.lang.Object); method public java.lang.String getName(); method public final int hashCode(); } public class CaptureResult extends android.hardware.camera2.CameraMetadata { - method public T get(android.hardware.camera2.CaptureResult.Key); + method public T get(android.hardware.camera2.CaptureResult.Key); method public long getFrameNumber(); method public android.hardware.camera2.CaptureRequest getRequest(); method public int getSequenceId(); @@ -14384,7 +14384,7 @@ package android.hardware.camera2 { field public static final android.hardware.camera2.CaptureResult.Key TONEMAP_PRESET_CURVE; } - public static final class CaptureResult.Key { + public static final class CaptureResult.Key { method public final boolean equals(java.lang.Object); method public java.lang.String getName(); method public final int hashCode(); @@ -14509,14 +14509,14 @@ package android.hardware.camera2.params { method public android.util.Size[] getInputSizes(int); method public final int[] getOutputFormats(); method public long getOutputMinFrameDuration(int, android.util.Size); - method public long getOutputMinFrameDuration(java.lang.Class, android.util.Size); - method public android.util.Size[] getOutputSizes(java.lang.Class); + method public long getOutputMinFrameDuration(java.lang.Class, android.util.Size); + method public android.util.Size[] getOutputSizes(java.lang.Class); method public android.util.Size[] getOutputSizes(int); method public long getOutputStallDuration(int, android.util.Size); - method public long getOutputStallDuration(java.lang.Class, android.util.Size); + method public long getOutputStallDuration(java.lang.Class, android.util.Size); method public final int[] getValidOutputFormatsForInput(int); method public boolean isOutputSupportedFor(int); - method public static boolean isOutputSupportedFor(java.lang.Class); + method public static boolean isOutputSupportedFor(java.lang.Class); method public boolean isOutputSupportedFor(android.view.Surface); } @@ -16217,7 +16217,7 @@ package android.icu.math { package android.icu.text { - public final class AlphabeticIndex implements java.lang.Iterable { + public final class AlphabeticIndex implements java.lang.Iterable { ctor public AlphabeticIndex(android.icu.util.ULocale); ctor public AlphabeticIndex(java.util.Locale); ctor public AlphabeticIndex(android.icu.text.RuleBasedCollator); @@ -16243,7 +16243,7 @@ package android.icu.text { method public android.icu.text.AlphabeticIndex setUnderflowLabel(java.lang.String); } - public static class AlphabeticIndex.Bucket implements java.lang.Iterable { + public static class AlphabeticIndex.Bucket implements java.lang.Iterable { method public java.lang.String getLabel(); method public android.icu.text.AlphabeticIndex.Bucket.LabelType getLabelType(); method public java.util.Iterator> iterator(); @@ -16259,14 +16259,14 @@ package android.icu.text { enum_constant public static final android.icu.text.AlphabeticIndex.Bucket.LabelType UNDERFLOW; } - public static final class AlphabeticIndex.ImmutableIndex implements java.lang.Iterable { + public static final class AlphabeticIndex.ImmutableIndex implements java.lang.Iterable { method public android.icu.text.AlphabeticIndex.Bucket getBucket(int); method public int getBucketCount(); method public int getBucketIndex(java.lang.CharSequence); method public java.util.Iterator> iterator(); } - public static class AlphabeticIndex.Record { + public static class AlphabeticIndex.Record { method public V getData(); method public java.lang.CharSequence getName(); } @@ -17779,8 +17779,8 @@ package android.icu.text { method public final android.icu.text.UnicodeSet addAll(java.lang.CharSequence); method public android.icu.text.UnicodeSet addAll(android.icu.text.UnicodeSet); method public android.icu.text.UnicodeSet addAll(java.lang.Iterable); - method public android.icu.text.UnicodeSet addAll(T...); - method public T addAllTo(T); + method public android.icu.text.UnicodeSet addAll(T...); + method public > T addAllTo(T); method public void addMatchSetTo(android.icu.text.UnicodeSet); method public android.icu.text.UnicodeSet applyIntPropertyValue(int, int); method public final android.icu.text.UnicodeSet applyPattern(java.lang.String); @@ -17808,15 +17808,15 @@ package android.icu.text { method public final boolean contains(java.lang.CharSequence); method public boolean containsAll(android.icu.text.UnicodeSet); method public boolean containsAll(java.lang.String); - method public boolean containsAll(java.lang.Iterable); + method public boolean containsAll(java.lang.Iterable); method public boolean containsNone(int, int); method public boolean containsNone(android.icu.text.UnicodeSet); method public boolean containsNone(java.lang.CharSequence); - method public boolean containsNone(java.lang.Iterable); + method public boolean containsNone(java.lang.Iterable); method public final boolean containsSome(int, int); method public final boolean containsSome(android.icu.text.UnicodeSet); method public final boolean containsSome(java.lang.CharSequence); - method public final boolean containsSome(java.lang.Iterable); + method public final boolean containsSome(java.lang.Iterable); method public android.icu.text.UnicodeSet freeze(); method public static android.icu.text.UnicodeSet from(java.lang.CharSequence); method public static android.icu.text.UnicodeSet fromAll(java.lang.CharSequence); @@ -17834,14 +17834,14 @@ package android.icu.text { method public final android.icu.text.UnicodeSet remove(java.lang.CharSequence); method public final android.icu.text.UnicodeSet removeAll(java.lang.CharSequence); method public android.icu.text.UnicodeSet removeAll(android.icu.text.UnicodeSet); - method public android.icu.text.UnicodeSet removeAll(java.lang.Iterable); + method public android.icu.text.UnicodeSet removeAll(java.lang.Iterable); method public final android.icu.text.UnicodeSet removeAllStrings(); method public android.icu.text.UnicodeSet retain(int, int); method public final android.icu.text.UnicodeSet retain(int); method public final android.icu.text.UnicodeSet retain(java.lang.CharSequence); method public final android.icu.text.UnicodeSet retainAll(java.lang.CharSequence); method public android.icu.text.UnicodeSet retainAll(android.icu.text.UnicodeSet); - method public android.icu.text.UnicodeSet retainAll(java.lang.Iterable); + method public android.icu.text.UnicodeSet retainAll(java.lang.Iterable); method public android.icu.text.UnicodeSet set(int, int); method public android.icu.text.UnicodeSet set(android.icu.text.UnicodeSet); method public int size(); @@ -18251,7 +18251,7 @@ package android.icu.util { method public long getToDate(); } - public abstract interface Freezable implements java.lang.Cloneable { + public abstract interface Freezable implements java.lang.Cloneable { method public abstract T cloneAsThawed(); method public abstract T freeze(); method public abstract boolean isFrozen(); @@ -18533,7 +18533,7 @@ package android.icu.util { field public static final android.icu.util.TimeUnit YEAR; } - public class Output { + public class Output { ctor public Output(); ctor public Output(T); field public T value; @@ -28241,7 +28241,7 @@ package android.opengl { package android.os { - public abstract class AsyncTask { + public abstract class AsyncTask { ctor public AsyncTask(); method public final boolean cancel(boolean); method protected abstract Result doInBackground(Params...); @@ -28468,16 +28468,16 @@ package android.os { method public float getFloat(java.lang.String, float); method public float[] getFloatArray(java.lang.String); method public java.util.ArrayList getIntegerArrayList(java.lang.String); - method public T getParcelable(java.lang.String); + method public T getParcelable(java.lang.String); method public android.os.Parcelable[] getParcelableArray(java.lang.String); - method public java.util.ArrayList getParcelableArrayList(java.lang.String); + method public java.util.ArrayList getParcelableArrayList(java.lang.String); method public java.io.Serializable getSerializable(java.lang.String); method public short getShort(java.lang.String); method public short getShort(java.lang.String, short); method public short[] getShortArray(java.lang.String); method public android.util.Size getSize(java.lang.String); method public android.util.SizeF getSizeF(java.lang.String); - method public android.util.SparseArray getSparseParcelableArray(java.lang.String); + method public android.util.SparseArray getSparseParcelableArray(java.lang.String); method public java.util.ArrayList getStringArrayList(java.lang.String); method public boolean hasFileDescriptors(); method public void putAll(android.os.Bundle); @@ -28982,8 +28982,8 @@ package android.os { method public final long[] createLongArray(); method public final java.lang.String[] createStringArray(); method public final java.util.ArrayList createStringArrayList(); - method public final T[] createTypedArray(android.os.Parcelable.Creator); - method public final java.util.ArrayList createTypedArrayList(android.os.Parcelable.Creator); + method public final T[] createTypedArray(android.os.Parcelable.Creator); + method public final java.util.ArrayList createTypedArrayList(android.os.Parcelable.Creator); method public final int dataAvail(); method public final int dataCapacity(); method public final int dataPosition(); @@ -29016,7 +29016,7 @@ package android.os { method public final long readLong(); method public final void readLongArray(long[]); method public final void readMap(java.util.Map, java.lang.ClassLoader); - method public final T readParcelable(java.lang.ClassLoader); + method public final T readParcelable(java.lang.ClassLoader); method public final android.os.Parcelable[] readParcelableArray(java.lang.ClassLoader); method public final android.os.PersistableBundle readPersistableBundle(); method public final android.os.PersistableBundle readPersistableBundle(java.lang.ClassLoader); @@ -29029,9 +29029,9 @@ package android.os { method public final void readStringArray(java.lang.String[]); method public final void readStringList(java.util.List); method public final android.os.IBinder readStrongBinder(); - method public final void readTypedArray(T[], android.os.Parcelable.Creator); - method public final void readTypedList(java.util.List, android.os.Parcelable.Creator); - method public final T readTypedObject(android.os.Parcelable.Creator); + method public final void readTypedArray(T[], android.os.Parcelable.Creator); + method public final void readTypedList(java.util.List, android.os.Parcelable.Creator); + method public final T readTypedObject(android.os.Parcelable.Creator); method public final java.lang.Object readValue(java.lang.ClassLoader); method public final void recycle(); method public final void setDataCapacity(int); @@ -29062,7 +29062,7 @@ package android.os { method public final void writeMap(java.util.Map); method public final void writeNoException(); method public final void writeParcelable(android.os.Parcelable, int); - method public final void writeParcelableArray(T[], int); + method public final void writeParcelableArray(T[], int); method public final void writePersistableBundle(android.os.PersistableBundle); method public final void writeSerializable(java.io.Serializable); method public final void writeSize(android.util.Size); @@ -29074,9 +29074,9 @@ package android.os { method public final void writeStringList(java.util.List); method public final void writeStrongBinder(android.os.IBinder); method public final void writeStrongInterface(android.os.IInterface); - method public final void writeTypedArray(T[], int); - method public final void writeTypedList(java.util.List); - method public final void writeTypedObject(T, int); + method public final void writeTypedArray(T[], int); + method public final void writeTypedList(java.util.List); + method public final void writeTypedObject(T, int); method public final void writeValue(java.lang.Object); field public static final android.os.Parcelable.Creator STRING_CREATOR; } @@ -29154,11 +29154,11 @@ package android.os { field public static final int PARCELABLE_WRITE_RETURN_VALUE = 1; // 0x1 } - public static abstract interface Parcelable.ClassLoaderCreator implements android.os.Parcelable.Creator { + public static abstract interface Parcelable.ClassLoaderCreator implements android.os.Parcelable.Creator { method public abstract T createFromParcel(android.os.Parcel, java.lang.ClassLoader); } - public static abstract interface Parcelable.Creator { + public static abstract interface Parcelable.Creator { method public abstract T createFromParcel(android.os.Parcel); method public abstract T[] newArray(int); } @@ -29273,7 +29273,7 @@ package android.os { method public abstract void onProgress(int); } - public class RemoteCallbackList { + public class RemoteCallbackList { ctor public RemoteCallbackList(); method public int beginBroadcast(); method public void finishBroadcast(); @@ -34601,7 +34601,7 @@ package android.service.carrier { field public static final java.lang.String SERVICE_INTERFACE = "android.service.carrier.CarrierMessagingService"; } - public static abstract interface CarrierMessagingService.ResultCallback { + public static abstract interface CarrierMessagingService.ResultCallback { method public abstract void onReceiveResult(T) throws android.os.RemoteException; } @@ -34752,7 +34752,7 @@ package android.service.media { field public static final java.lang.String EXTRA_SUGGESTED = "android.service.media.extra.SUGGESTED"; } - public class MediaBrowserService.Result { + public class MediaBrowserService.Result { method public void detach(); method public void sendResult(T); } @@ -37665,14 +37665,14 @@ package android.telephony.gsm { package android.test { - public abstract deprecated class ActivityInstrumentationTestCase extends android.test.ActivityTestCase { + public abstract deprecated class ActivityInstrumentationTestCase extends android.test.ActivityTestCase { ctor public ActivityInstrumentationTestCase(java.lang.String, java.lang.Class); ctor public ActivityInstrumentationTestCase(java.lang.String, java.lang.Class, boolean); method public T getActivity(); method public void testActivityTestCaseSetUpProperly() throws java.lang.Exception; } - public abstract deprecated class ActivityInstrumentationTestCase2 extends android.test.ActivityTestCase { + public abstract deprecated class ActivityInstrumentationTestCase2 extends android.test.ActivityTestCase { ctor public deprecated ActivityInstrumentationTestCase2(java.lang.String, java.lang.Class); ctor public ActivityInstrumentationTestCase2(java.lang.Class); method public T getActivity(); @@ -37687,7 +37687,7 @@ package android.test { method protected void setActivity(android.app.Activity); } - public abstract deprecated class ActivityUnitTestCase extends android.test.ActivityTestCase { + public abstract deprecated class ActivityUnitTestCase extends android.test.ActivityTestCase { ctor public ActivityUnitTestCase(java.lang.Class); method public T getActivity(); method public int getFinishedActivityRequest(); @@ -37733,7 +37733,7 @@ package android.test { method public void testStarted(java.lang.String); } - public abstract deprecated class ApplicationTestCase extends android.test.AndroidTestCase { + public abstract deprecated class ApplicationTestCase extends android.test.AndroidTestCase { ctor public ApplicationTestCase(java.lang.Class); method protected final void createApplication(); method public T getApplication(); @@ -37759,8 +37759,8 @@ package android.test { method public android.app.Instrumentation getInstrumentation(); method public deprecated void injectInsrumentation(android.app.Instrumentation); method public void injectInstrumentation(android.app.Instrumentation); - method public final T launchActivity(java.lang.String, java.lang.Class, android.os.Bundle); - method public final T launchActivityWithIntent(java.lang.String, java.lang.Class, android.content.Intent); + method public final T launchActivity(java.lang.String, java.lang.Class, android.os.Bundle); + method public final T launchActivityWithIntent(java.lang.String, java.lang.Class, android.content.Intent); method public void runTestOnUiThread(java.lang.Runnable) throws java.lang.Throwable; method public void sendKeys(java.lang.String); method public void sendKeys(int...); @@ -37800,7 +37800,7 @@ package android.test { public class LoaderTestCase extends android.test.AndroidTestCase { ctor public LoaderTestCase(); - method public T getLoaderResultSynchronously(android.content.Loader); + method public T getLoaderResultSynchronously(android.content.Loader); } public final deprecated class MoreAsserts { @@ -37855,20 +37855,20 @@ package android.test { method public abstract void startTiming(boolean); } - public abstract deprecated class ProviderTestCase extends android.test.InstrumentationTestCase { + public abstract deprecated class ProviderTestCase extends android.test.InstrumentationTestCase { ctor public ProviderTestCase(java.lang.Class, java.lang.String); method public android.test.mock.MockContentResolver getMockContentResolver(); method public android.test.IsolatedContext getMockContext(); method public T getProvider(); - method public static android.content.ContentResolver newResolverWithContentProviderFromSql(android.content.Context, java.lang.Class, java.lang.String, java.lang.String, int, java.lang.String) throws java.lang.IllegalAccessException, java.lang.InstantiationException; + method public static android.content.ContentResolver newResolverWithContentProviderFromSql(android.content.Context, java.lang.Class, java.lang.String, java.lang.String, int, java.lang.String) throws java.lang.IllegalAccessException, java.lang.InstantiationException; } - public abstract class ProviderTestCase2 extends android.test.AndroidTestCase { + public abstract class ProviderTestCase2 extends android.test.AndroidTestCase { ctor public ProviderTestCase2(java.lang.Class, java.lang.String); method public android.test.mock.MockContentResolver getMockContentResolver(); method public android.test.IsolatedContext getMockContext(); method public T getProvider(); - method public static android.content.ContentResolver newResolverWithContentProviderFromSql(android.content.Context, java.lang.String, java.lang.Class, java.lang.String, java.lang.String, int, java.lang.String) throws java.lang.IllegalAccessException, java.lang.InstantiationException; + method public static android.content.ContentResolver newResolverWithContentProviderFromSql(android.content.Context, java.lang.String, java.lang.Class, java.lang.String, java.lang.String, int, java.lang.String) throws java.lang.IllegalAccessException, java.lang.InstantiationException; } public deprecated class RenamingDelegatingContext extends android.content.ContextWrapper { @@ -37876,11 +37876,11 @@ package android.test { ctor public RenamingDelegatingContext(android.content.Context, android.content.Context, java.lang.String); method public java.lang.String getDatabasePrefix(); method public void makeExistingFilesAndDbsAccessible(); - method public static T providerWithRenamedContext(java.lang.Class, android.content.Context, java.lang.String) throws java.lang.IllegalAccessException, java.lang.InstantiationException; - method public static T providerWithRenamedContext(java.lang.Class, android.content.Context, java.lang.String, boolean) throws java.lang.IllegalAccessException, java.lang.InstantiationException; + method public static T providerWithRenamedContext(java.lang.Class, android.content.Context, java.lang.String) throws java.lang.IllegalAccessException, java.lang.InstantiationException; + method public static T providerWithRenamedContext(java.lang.Class, android.content.Context, java.lang.String, boolean) throws java.lang.IllegalAccessException, java.lang.InstantiationException; } - public abstract deprecated class ServiceTestCase extends android.test.AndroidTestCase { + public abstract deprecated class ServiceTestCase extends android.test.AndroidTestCase { ctor public ServiceTestCase(java.lang.Class); method protected android.os.IBinder bindService(android.content.Intent); method public android.app.Application getApplication(); @@ -37893,7 +37893,7 @@ package android.test { method public void testServiceTestCaseSetUpProperly() throws java.lang.Exception; } - public abstract deprecated class SingleLaunchActivityTestCase extends android.test.InstrumentationTestCase { + public abstract deprecated class SingleLaunchActivityTestCase extends android.test.InstrumentationTestCase { ctor public SingleLaunchActivityTestCase(java.lang.String, java.lang.Class); method public T getActivity(); method public void testActivityTestCaseSetUpProperly() throws java.lang.Exception; @@ -38250,7 +38250,7 @@ package android.test.suitebuilder { ctor public TestMethod(java.lang.String, java.lang.Class); ctor public TestMethod(junit.framework.TestCase); method public junit.framework.TestCase createTest() throws java.lang.IllegalAccessException, java.lang.InstantiationException, java.lang.reflect.InvocationTargetException; - method public T getAnnotation(java.lang.Class); + method public T getAnnotation(java.lang.Class); method public java.lang.Class getEnclosingClass(); method public java.lang.String getEnclosingClassname(); method public java.lang.String getName(); @@ -38693,7 +38693,7 @@ package android.text { method public int getSpanEnd(java.lang.Object); method public int getSpanFlags(java.lang.Object); method public int getSpanStart(java.lang.Object); - method public T[] getSpans(int, int, java.lang.Class); + method public T[] getSpans(int, int, java.lang.Class); method public deprecated int getTextRunCursor(int, int, int, int, int, android.graphics.Paint); method public int getTextWatcherDepth(); method public android.text.SpannableStringBuilder insert(int, java.lang.CharSequence, int, int); @@ -38715,7 +38715,7 @@ package android.text { method public int getSpanEnd(java.lang.Object); method public int getSpanFlags(java.lang.Object); method public int getSpanStart(java.lang.Object); - method public T[] getSpans(int, int, java.lang.Class); + method public T[] getSpans(int, int, java.lang.Class); method public final int length(); method public int nextSpanTransition(int, int, java.lang.Class); method public final java.lang.String toString(); @@ -38725,7 +38725,7 @@ package android.text { method public abstract int getSpanEnd(java.lang.Object); method public abstract int getSpanFlags(java.lang.Object); method public abstract int getSpanStart(java.lang.Object); - method public abstract T[] getSpans(int, int, java.lang.Class); + method public abstract T[] getSpans(int, int, java.lang.Class); method public abstract int nextSpanTransition(int, int, java.lang.Class); field public static final int SPAN_COMPOSING = 256; // 0x100 field public static final int SPAN_EXCLUSIVE_EXCLUSIVE = 33; // 0x21 @@ -39702,7 +39702,7 @@ package android.text.style { field public static final int WEEKDAY_WEDNESDAY = 4; // 0x4 } - public static class TtsSpan.Builder { + public static class TtsSpan.Builder> { ctor public TtsSpan.Builder(java.lang.String); method public android.text.style.TtsSpan build(); method public C setIntArgument(java.lang.String, int); @@ -39798,7 +39798,7 @@ package android.text.style { method public android.text.style.TtsSpan.OrdinalBuilder setNumber(java.lang.String); } - public static class TtsSpan.SemioticClassBuilder extends android.text.style.TtsSpan.Builder { + public static class TtsSpan.SemioticClassBuilder> extends android.text.style.TtsSpan.Builder { ctor public TtsSpan.SemioticClassBuilder(java.lang.String); method public C setAnimacy(java.lang.String); method public C setCase(java.lang.String); @@ -40205,7 +40205,7 @@ package android.util { ctor public AndroidRuntimeException(java.lang.Exception); } - public final class ArrayMap implements java.util.Map { + public final class ArrayMap implements java.util.Map { ctor public ArrayMap(); ctor public ArrayMap(int); ctor public ArrayMap(android.util.ArrayMap); @@ -40233,7 +40233,7 @@ package android.util { method public java.util.Collection values(); } - public final class ArraySet implements java.util.Collection java.util.Set { + public final class ArraySet implements java.util.Collection java.util.Set { ctor public ArraySet(); ctor public ArraySet(int); ctor public ArraySet(android.util.ArraySet); @@ -40254,7 +40254,7 @@ package android.util { method public boolean retainAll(java.util.Collection); method public int size(); method public java.lang.Object[] toArray(); - method public T[] toArray(T[]); + method public T[] toArray(T[]); method public E valueAt(int); } @@ -40399,13 +40399,13 @@ package android.util { public deprecated class FloatMath { } - public abstract class FloatProperty extends android.util.Property { + public abstract class FloatProperty extends android.util.Property { ctor public FloatProperty(java.lang.String); method public final void set(T, java.lang.Float); method public abstract void setValue(T, float); } - public abstract class IntProperty extends android.util.Property { + public abstract class IntProperty extends android.util.Property { ctor public IntProperty(java.lang.String); method public final void set(T, java.lang.Integer); method public abstract void setValue(T, int); @@ -40505,7 +40505,7 @@ package android.util { method public void println(java.lang.String); } - public class LongSparseArray implements java.lang.Cloneable { + public class LongSparseArray implements java.lang.Cloneable { ctor public LongSparseArray(); ctor public LongSparseArray(int); method public void append(long, E); @@ -40525,7 +40525,7 @@ package android.util { method public E valueAt(int); } - public class LruCache { + public class LruCache { ctor public LruCache(int); method protected V create(K); method public final synchronized int createCount(); @@ -40613,9 +40613,9 @@ package android.util { ctor public NoSuchPropertyException(java.lang.String); } - public class Pair { + public class Pair { ctor public Pair(F, S); - method public static android.util.Pair create(A, B); + method public static android.util.Pair create(A, B); field public final F first; field public final S second; } @@ -40648,22 +40648,22 @@ package android.util { method public abstract void println(java.lang.String); } - public abstract class Property { + public abstract class Property { ctor public Property(java.lang.Class, java.lang.String); method public abstract V get(T); method public java.lang.String getName(); method public java.lang.Class getType(); method public boolean isReadOnly(); - method public static android.util.Property of(java.lang.Class, java.lang.Class, java.lang.String); + method public static android.util.Property of(java.lang.Class, java.lang.Class, java.lang.String); method public void set(T, V); } - public final class Range { + public final class Range> { ctor public Range(T, T); method public T clamp(T); method public boolean contains(T); method public boolean contains(android.util.Range); - method public static android.util.Range create(T, T); + method public static > android.util.Range create(T, T); method public android.util.Range extend(android.util.Range); method public android.util.Range extend(T, T); method public android.util.Range extend(T); @@ -40707,7 +40707,7 @@ package android.util { method public static android.util.SizeF parseSizeF(java.lang.String) throws java.lang.NumberFormatException; } - public class SparseArray implements java.lang.Cloneable { + public class SparseArray implements java.lang.Cloneable { ctor public SparseArray(); ctor public SparseArray(int); method public void append(int, E); @@ -45436,7 +45436,7 @@ package android.webkit { method public static java.lang.String stripAnchor(java.lang.String); } - public abstract interface ValueCallback { + public abstract interface ValueCallback { method public abstract void onReceiveValue(T); } @@ -46170,7 +46170,7 @@ package android.widget { field public static final int NO_SELECTION = -2147483648; // 0x80000000 } - public abstract class AdapterView extends android.view.ViewGroup { + public abstract class AdapterView extends android.view.ViewGroup { ctor public AdapterView(android.content.Context); ctor public AdapterView(android.content.Context, android.util.AttributeSet); ctor public AdapterView(android.content.Context, android.util.AttributeSet, int); @@ -46293,7 +46293,7 @@ package android.widget { ctor public AnalogClock(android.content.Context, android.util.AttributeSet, int, int); } - public class ArrayAdapter extends android.widget.BaseAdapter implements android.widget.Filterable android.widget.ThemedSpinnerAdapter { + public class ArrayAdapter extends android.widget.BaseAdapter implements android.widget.Filterable android.widget.ThemedSpinnerAdapter { ctor public ArrayAdapter(android.content.Context, int); ctor public ArrayAdapter(android.content.Context, int, int); ctor public ArrayAdapter(android.content.Context, int, T[]); @@ -46354,7 +46354,7 @@ package android.widget { method protected void performFiltering(java.lang.CharSequence, int); method public void performValidation(); method protected void replaceText(java.lang.CharSequence); - method public void setAdapter(T); + method public void setAdapter(T); method public void setCompletionHint(java.lang.CharSequence); method public void setDropDownAnchor(int); method public void setDropDownBackgroundDrawable(android.graphics.drawable.Drawable); @@ -48640,7 +48640,7 @@ package android.widget { package com.android.internal.util { - public abstract interface Predicate { + public abstract interface Predicate { method public abstract boolean apply(T); } @@ -50687,13 +50687,13 @@ package java.lang { enum_constant public static final java.lang.Character.UnicodeScript YI; } - public final class Class implements java.lang.reflect.AnnotatedElement java.lang.reflect.GenericDeclaration java.io.Serializable java.lang.reflect.Type { - method public java.lang.Class asSubclass(java.lang.Class); + public final class Class implements java.lang.reflect.AnnotatedElement java.lang.reflect.GenericDeclaration java.io.Serializable java.lang.reflect.Type { + method public java.lang.Class asSubclass(java.lang.Class); method public T cast(java.lang.Object); method public boolean desiredAssertionStatus(); method public static java.lang.Class forName(java.lang.String) throws java.lang.ClassNotFoundException; method public static java.lang.Class forName(java.lang.String, boolean, java.lang.ClassLoader) throws java.lang.ClassNotFoundException; - method public A getAnnotation(java.lang.Class); + method public A getAnnotation(java.lang.Class); method public java.lang.annotation.Annotation[] getAnnotations(); method public java.lang.String getCanonicalName(); method public java.lang.ClassLoader getClassLoader(); @@ -50810,7 +50810,7 @@ package java.lang { public abstract interface Cloneable { } - public abstract interface Comparable { + public abstract interface Comparable { method public abstract int compareTo(T); } @@ -50864,7 +50864,7 @@ package java.lang { field public static final java.lang.Class TYPE; } - public abstract class Enum implements java.lang.Comparable java.io.Serializable { + public abstract class Enum> implements java.lang.Comparable java.io.Serializable { ctor protected Enum(java.lang.String, int); method protected final java.lang.Object clone() throws java.lang.CloneNotSupportedException; method public final int compareTo(E); @@ -50874,7 +50874,7 @@ package java.lang { method public final int hashCode(); method public final java.lang.String name(); method public final int ordinal(); - method public static T valueOf(java.lang.Class, java.lang.String); + method public static > T valueOf(java.lang.Class, java.lang.String); } public class EnumConstantNotPresentException extends java.lang.RuntimeException { @@ -50993,7 +50993,7 @@ package java.lang { ctor public IndexOutOfBoundsException(java.lang.String); } - public class InheritableThreadLocal extends java.lang.ThreadLocal { + public class InheritableThreadLocal extends java.lang.ThreadLocal { ctor public InheritableThreadLocal(); method protected T childValue(T); } @@ -51064,7 +51064,7 @@ package java.lang { ctor public InterruptedException(java.lang.String); } - public abstract interface Iterable { + public abstract interface Iterable { method public default void forEach(java.util.function.Consumer); method public abstract java.util.Iterator iterator(); method public default java.util.Spliterator spliterator(); @@ -51272,12 +51272,12 @@ package java.lang { } public class Package implements java.lang.reflect.AnnotatedElement { - method public A getAnnotation(java.lang.Class); + method public A getAnnotation(java.lang.Class); method public java.lang.annotation.Annotation[] getAnnotations(); - method public A[] getAnnotationsByType(java.lang.Class); - method public A getDeclaredAnnotation(java.lang.Class); + method public A[] getAnnotationsByType(java.lang.Class); + method public A getDeclaredAnnotation(java.lang.Class); method public java.lang.annotation.Annotation[] getDeclaredAnnotations(); - method public A[] getDeclaredAnnotationsByType(java.lang.Class); + method public A[] getDeclaredAnnotationsByType(java.lang.Class); method public java.lang.String getImplementationTitle(); method public java.lang.String getImplementationVendor(); method public java.lang.String getImplementationVersion(); @@ -51837,7 +51837,7 @@ package java.lang { method public void uncaughtException(java.lang.Thread, java.lang.Throwable); } - public class ThreadLocal { + public class ThreadLocal { ctor public ThreadLocal(); method public T get(); method protected T initialValue(); @@ -51977,30 +51977,30 @@ package java.lang.annotation { package java.lang.ref { - public class PhantomReference extends java.lang.ref.Reference { + public class PhantomReference extends java.lang.ref.Reference { ctor public PhantomReference(T, java.lang.ref.ReferenceQueue); } - public abstract class Reference { + public abstract class Reference { method public void clear(); method public boolean enqueue(); method public T get(); method public boolean isEnqueued(); } - public class ReferenceQueue { + public class ReferenceQueue { ctor public ReferenceQueue(); method public java.lang.ref.Reference poll(); method public java.lang.ref.Reference remove(long) throws java.lang.IllegalArgumentException, java.lang.InterruptedException; method public java.lang.ref.Reference remove() throws java.lang.InterruptedException; } - public class SoftReference extends java.lang.ref.Reference { + public class SoftReference extends java.lang.ref.Reference { ctor public SoftReference(T); ctor public SoftReference(T, java.lang.ref.ReferenceQueue); } - public class WeakReference extends java.lang.ref.Reference { + public class WeakReference extends java.lang.ref.Reference { ctor public WeakReference(T); ctor public WeakReference(T, java.lang.ref.ReferenceQueue); } @@ -52011,7 +52011,7 @@ package java.lang.reflect { public class AccessibleObject implements java.lang.reflect.AnnotatedElement { ctor protected AccessibleObject(); - method public T getAnnotation(java.lang.Class); + method public T getAnnotation(java.lang.Class); method public java.lang.annotation.Annotation[] getAnnotations(); method public java.lang.annotation.Annotation[] getDeclaredAnnotations(); method public boolean isAccessible(); @@ -52020,12 +52020,12 @@ package java.lang.reflect { } public abstract interface AnnotatedElement { - method public abstract T getAnnotation(java.lang.Class); + method public abstract T getAnnotation(java.lang.Class); method public abstract java.lang.annotation.Annotation[] getAnnotations(); - method public default T[] getAnnotationsByType(java.lang.Class); - method public default java.lang.annotation.Annotation getDeclaredAnnotation(java.lang.Class); + method public default T[] getAnnotationsByType(java.lang.Class); + method public default java.lang.annotation.Annotation getDeclaredAnnotation(java.lang.Class); method public abstract java.lang.annotation.Annotation[] getDeclaredAnnotations(); - method public default T[] getDeclaredAnnotationsByType(java.lang.Class); + method public default T[] getDeclaredAnnotationsByType(java.lang.Class); method public default boolean isAnnotationPresent(java.lang.Class); } @@ -52053,8 +52053,8 @@ package java.lang.reflect { method public static void setShort(java.lang.Object, int, short) throws java.lang.ArrayIndexOutOfBoundsException, java.lang.IllegalArgumentException; } - public final class Constructor extends java.lang.reflect.AccessibleObject implements java.lang.reflect.GenericDeclaration java.lang.reflect.Member { - method public A getAnnotation(java.lang.Class); + public final class Constructor extends java.lang.reflect.AccessibleObject implements java.lang.reflect.GenericDeclaration java.lang.reflect.Member { + method public A getAnnotation(java.lang.Class); method public java.lang.Class getDeclaringClass(); method public java.lang.Class[] getExceptionTypes(); method public java.lang.reflect.Type[] getGenericExceptionTypes(); @@ -52073,7 +52073,7 @@ package java.lang.reflect { public final class Field extends java.lang.reflect.AccessibleObject implements java.lang.reflect.Member { method public java.lang.Object get(java.lang.Object) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException; - method public A getAnnotation(java.lang.Class); + method public A getAnnotation(java.lang.Class); method public boolean getBoolean(java.lang.Object) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException; method public byte getByte(java.lang.Object) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException; method public char getChar(java.lang.Object) throws java.lang.IllegalAccessException, java.lang.IllegalArgumentException; @@ -52139,7 +52139,7 @@ package java.lang.reflect { } public final class Method extends java.lang.reflect.AccessibleObject implements java.lang.reflect.GenericDeclaration java.lang.reflect.Member { - method public A getAnnotation(java.lang.Class); + method public A getAnnotation(java.lang.Class); method public java.lang.Class getDeclaringClass(); method public java.lang.Object getDefaultValue(); method public java.lang.Class[] getExceptionTypes(); @@ -52217,7 +52217,7 @@ package java.lang.reflect { public abstract interface Type { } - public abstract interface TypeVariable implements java.lang.reflect.Type { + public abstract interface TypeVariable implements java.lang.reflect.Type { method public abstract java.lang.reflect.Type[] getBounds(); method public abstract D getGenericDeclaration(); method public abstract java.lang.String getName(); @@ -53006,7 +53006,7 @@ package java.net { method public abstract java.net.SocketImpl createSocketImpl(); } - public abstract interface SocketOption { + public abstract interface SocketOption { method public abstract java.lang.String name(); method public abstract java.lang.Class type(); } @@ -53590,7 +53590,7 @@ package java.nio.channels { method public final long read(java.nio.ByteBuffer[]) throws java.io.IOException; method public abstract java.net.SocketAddress receive(java.nio.ByteBuffer) throws java.io.IOException; method public abstract int send(java.nio.ByteBuffer, java.net.SocketAddress) throws java.io.IOException; - method public abstract java.nio.channels.DatagramChannel setOption(java.net.SocketOption, T) throws java.io.IOException; + method public abstract java.nio.channels.DatagramChannel setOption(java.net.SocketOption, T) throws java.io.IOException; method public abstract java.net.DatagramSocket socket(); method public final int validOps(); method public abstract int write(java.nio.ByteBuffer) throws java.io.IOException; @@ -53666,8 +53666,8 @@ package java.nio.channels { public abstract interface NetworkChannel implements java.nio.channels.Channel { method public abstract java.nio.channels.NetworkChannel bind(java.net.SocketAddress) throws java.io.IOException; method public abstract java.net.SocketAddress getLocalAddress() throws java.io.IOException; - method public abstract T getOption(java.net.SocketOption) throws java.io.IOException; - method public abstract java.nio.channels.NetworkChannel setOption(java.net.SocketOption, T) throws java.io.IOException; + method public abstract T getOption(java.net.SocketOption) throws java.io.IOException; + method public abstract java.nio.channels.NetworkChannel setOption(java.net.SocketOption, T) throws java.io.IOException; method public abstract java.util.Set> supportedOptions(); } @@ -53784,7 +53784,7 @@ package java.nio.channels { method public final java.nio.channels.ServerSocketChannel bind(java.net.SocketAddress) throws java.io.IOException; method public abstract java.nio.channels.ServerSocketChannel bind(java.net.SocketAddress, int) throws java.io.IOException; method public static java.nio.channels.ServerSocketChannel open() throws java.io.IOException; - method public abstract java.nio.channels.ServerSocketChannel setOption(java.net.SocketOption, T) throws java.io.IOException; + method public abstract java.nio.channels.ServerSocketChannel setOption(java.net.SocketOption, T) throws java.io.IOException; method public abstract java.net.ServerSocket socket(); method public final int validOps(); } @@ -53802,7 +53802,7 @@ package java.nio.channels { method public abstract int read(java.nio.ByteBuffer) throws java.io.IOException; method public abstract long read(java.nio.ByteBuffer[], int, int) throws java.io.IOException; method public final long read(java.nio.ByteBuffer[]) throws java.io.IOException; - method public abstract java.nio.channels.SocketChannel setOption(java.net.SocketOption, T) throws java.io.IOException; + method public abstract java.nio.channels.SocketChannel setOption(java.net.SocketOption, T) throws java.io.IOException; method public abstract java.nio.channels.SocketChannel shutdownInput() throws java.io.IOException; method public abstract java.nio.channels.SocketChannel shutdownOutput() throws java.io.IOException; method public abstract java.net.Socket socket(); @@ -54049,12 +54049,12 @@ package java.security { public final class AccessController { method public static void checkPermission(java.security.Permission) throws java.security.AccessControlException; - method public static T doPrivileged(java.security.PrivilegedAction); - method public static T doPrivileged(java.security.PrivilegedAction, java.security.AccessControlContext); - method public static T doPrivileged(java.security.PrivilegedExceptionAction) throws java.security.PrivilegedActionException; - method public static T doPrivileged(java.security.PrivilegedExceptionAction, java.security.AccessControlContext) throws java.security.PrivilegedActionException; - method public static T doPrivilegedWithCombiner(java.security.PrivilegedAction); - method public static T doPrivilegedWithCombiner(java.security.PrivilegedExceptionAction) throws java.security.PrivilegedActionException; + method public static T doPrivileged(java.security.PrivilegedAction); + method public static T doPrivileged(java.security.PrivilegedAction, java.security.AccessControlContext); + method public static T doPrivileged(java.security.PrivilegedExceptionAction) throws java.security.PrivilegedActionException; + method public static T doPrivileged(java.security.PrivilegedExceptionAction, java.security.AccessControlContext) throws java.security.PrivilegedActionException; + method public static T doPrivilegedWithCombiner(java.security.PrivilegedAction); + method public static T doPrivilegedWithCombiner(java.security.PrivilegedExceptionAction) throws java.security.PrivilegedActionException; method public static java.security.AccessControlContext getContext(); } @@ -54093,7 +54093,7 @@ package java.security { method public static java.security.AlgorithmParameters getInstance(java.lang.String) throws java.security.NoSuchAlgorithmException; method public static java.security.AlgorithmParameters getInstance(java.lang.String, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException; method public static java.security.AlgorithmParameters getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException; - method public final T getParameterSpec(java.lang.Class) throws java.security.spec.InvalidParameterSpecException; + method public final T getParameterSpec(java.lang.Class) throws java.security.spec.InvalidParameterSpecException; method public final java.security.Provider getProvider(); method public final void init(java.security.spec.AlgorithmParameterSpec) throws java.security.spec.InvalidParameterSpecException; method public final void init(byte[]) throws java.io.IOException; @@ -54105,7 +54105,7 @@ package java.security { ctor public AlgorithmParametersSpi(); method protected abstract byte[] engineGetEncoded() throws java.io.IOException; method protected abstract byte[] engineGetEncoded(java.lang.String) throws java.io.IOException; - method protected abstract T engineGetParameterSpec(java.lang.Class) throws java.security.spec.InvalidParameterSpecException; + method protected abstract T engineGetParameterSpec(java.lang.Class) throws java.security.spec.InvalidParameterSpecException; method protected abstract void engineInit(java.security.spec.AlgorithmParameterSpec) throws java.security.spec.InvalidParameterSpecException; method protected abstract void engineInit(byte[]) throws java.io.IOException; method protected abstract void engineInit(byte[], java.lang.String) throws java.io.IOException; @@ -54290,7 +54290,7 @@ package java.security { method public static java.security.KeyFactory getInstance(java.lang.String) throws java.security.NoSuchAlgorithmException; method public static java.security.KeyFactory getInstance(java.lang.String, java.lang.String) throws java.security.NoSuchAlgorithmException, java.security.NoSuchProviderException; method public static java.security.KeyFactory getInstance(java.lang.String, java.security.Provider) throws java.security.NoSuchAlgorithmException; - method public final T getKeySpec(java.security.Key, java.lang.Class) throws java.security.spec.InvalidKeySpecException; + method public final T getKeySpec(java.security.Key, java.lang.Class) throws java.security.spec.InvalidKeySpecException; method public final java.security.Provider getProvider(); method public final java.security.Key translateKey(java.security.Key) throws java.security.InvalidKeyException; } @@ -54299,7 +54299,7 @@ package java.security { ctor public KeyFactorySpi(); method protected abstract java.security.PrivateKey engineGeneratePrivate(java.security.spec.KeySpec) throws java.security.spec.InvalidKeySpecException; method protected abstract java.security.PublicKey engineGeneratePublic(java.security.spec.KeySpec) throws java.security.spec.InvalidKeySpecException; - method protected abstract T engineGetKeySpec(java.security.Key, java.lang.Class) throws java.security.spec.InvalidKeySpecException; + method protected abstract T engineGetKeySpec(java.security.Key, java.lang.Class) throws java.security.spec.InvalidKeySpecException; method protected abstract java.security.Key engineTranslateKey(java.security.Key) throws java.security.InvalidKeyException; } @@ -54568,7 +54568,7 @@ package java.security { field public static final long serialVersionUID = 6034044314589513430L; // 0x53bd3b559a12c6d6L } - public abstract interface PrivilegedAction { + public abstract interface PrivilegedAction { method public abstract T run(); } @@ -54577,7 +54577,7 @@ package java.security { method public java.lang.Exception getException(); } - public abstract interface PrivilegedExceptionAction { + public abstract interface PrivilegedExceptionAction { method public abstract T run() throws java.lang.Exception; } @@ -56759,11 +56759,11 @@ package java.sql { method public abstract void free() throws java.sql.SQLException; method public abstract java.io.InputStream getBinaryStream() throws java.sql.SQLException; method public abstract java.io.Reader getCharacterStream() throws java.sql.SQLException; - method public abstract T getSource(java.lang.Class) throws java.sql.SQLException; + method public abstract T getSource(java.lang.Class) throws java.sql.SQLException; method public abstract java.lang.String getString() throws java.sql.SQLException; method public abstract java.io.OutputStream setBinaryStream() throws java.sql.SQLException; method public abstract java.io.Writer setCharacterStream() throws java.sql.SQLException; - method public abstract T setResult(java.lang.Class) throws java.sql.SQLException; + method public abstract T setResult(java.lang.Class) throws java.sql.SQLException; method public abstract void setString(java.lang.String) throws java.sql.SQLException; } @@ -56887,7 +56887,7 @@ package java.sql { public abstract interface Wrapper { method public abstract boolean isWrapperFor(java.lang.Class) throws java.sql.SQLException; - method public abstract T unwrap(java.lang.Class) throws java.sql.SQLException; + method public abstract T unwrap(java.lang.Class) throws java.sql.SQLException; } } @@ -57420,7 +57420,7 @@ package java.text { package java.util { - public abstract class AbstractCollection implements java.util.Collection { + public abstract class AbstractCollection implements java.util.Collection { ctor protected AbstractCollection(); method public boolean add(E); method public boolean addAll(java.util.Collection); @@ -57434,10 +57434,10 @@ package java.util { method public boolean retainAll(java.util.Collection); method public abstract int size(); method public java.lang.Object[] toArray(); - method public T[] toArray(T[]); + method public T[] toArray(T[]); } - public abstract class AbstractList extends java.util.AbstractCollection implements java.util.List { + public abstract class AbstractList extends java.util.AbstractCollection implements java.util.List { ctor protected AbstractList(); method public void add(int, E); method public boolean addAll(int, java.util.Collection); @@ -57454,7 +57454,7 @@ package java.util { field protected transient int modCount; } - public abstract class AbstractMap implements java.util.Map { + public abstract class AbstractMap implements java.util.Map { ctor protected AbstractMap(); method public void clear(); method public boolean containsKey(java.lang.Object); @@ -57470,7 +57470,7 @@ package java.util { method public java.util.Collection values(); } - public static class AbstractMap.SimpleEntry implements java.util.Map.Entry java.io.Serializable { + public static class AbstractMap.SimpleEntry implements java.util.Map.Entry java.io.Serializable { ctor public AbstractMap.SimpleEntry(K, V); ctor public AbstractMap.SimpleEntry(java.util.Map.Entry); method public K getKey(); @@ -57478,7 +57478,7 @@ package java.util { method public V setValue(V); } - public static class AbstractMap.SimpleImmutableEntry implements java.util.Map.Entry java.io.Serializable { + public static class AbstractMap.SimpleImmutableEntry implements java.util.Map.Entry java.io.Serializable { ctor public AbstractMap.SimpleImmutableEntry(K, V); ctor public AbstractMap.SimpleImmutableEntry(java.util.Map.Entry); method public K getKey(); @@ -57486,23 +57486,23 @@ package java.util { method public V setValue(V); } - public abstract class AbstractQueue extends java.util.AbstractCollection implements java.util.Queue { + public abstract class AbstractQueue extends java.util.AbstractCollection implements java.util.Queue { ctor protected AbstractQueue(); method public E element(); method public E remove(); } - public abstract class AbstractSequentialList extends java.util.AbstractList { + public abstract class AbstractSequentialList extends java.util.AbstractList { ctor protected AbstractSequentialList(); method public E get(int); method public abstract java.util.ListIterator listIterator(int); } - public abstract class AbstractSet extends java.util.AbstractCollection implements java.util.Set { + public abstract class AbstractSet extends java.util.AbstractCollection implements java.util.Set { ctor protected AbstractSet(); } - public class ArrayDeque extends java.util.AbstractCollection implements java.lang.Cloneable java.util.Deque java.io.Serializable { + public class ArrayDeque extends java.util.AbstractCollection implements java.lang.Cloneable java.util.Deque java.io.Serializable { ctor public ArrayDeque(); ctor public ArrayDeque(int); ctor public ArrayDeque(java.util.Collection); @@ -57534,7 +57534,7 @@ package java.util { method public java.util.Spliterator spliterator(); } - public class ArrayList extends java.util.AbstractList implements java.lang.Cloneable java.util.List java.util.RandomAccess java.io.Serializable { + public class ArrayList extends java.util.AbstractList implements java.lang.Cloneable java.util.List java.util.RandomAccess java.io.Serializable { ctor public ArrayList(int); ctor public ArrayList(); ctor public ArrayList(java.util.Collection); @@ -57551,7 +57551,7 @@ package java.util { } public class Arrays { - method public static java.util.List asList(T...); + method public static java.util.List asList(T...); method public static int binarySearch(long[], long); method public static int binarySearch(long[], int, int, long); method public static int binarySearch(int[], int); @@ -57568,10 +57568,10 @@ package java.util { method public static int binarySearch(float[], int, int, float); method public static int binarySearch(java.lang.Object[], java.lang.Object); method public static int binarySearch(java.lang.Object[], int, int, java.lang.Object); - method public static int binarySearch(T[], T, java.util.Comparator); - method public static int binarySearch(T[], int, int, T, java.util.Comparator); - method public static T[] copyOf(T[], int); - method public static T[] copyOf(U[], int, java.lang.Class); + method public static int binarySearch(T[], T, java.util.Comparator); + method public static int binarySearch(T[], int, int, T, java.util.Comparator); + method public static T[] copyOf(T[], int); + method public static T[] copyOf(U[], int, java.lang.Class); method public static byte[] copyOf(byte[], int); method public static short[] copyOf(short[], int); method public static int[] copyOf(int[], int); @@ -57580,8 +57580,8 @@ package java.util { method public static float[] copyOf(float[], int); method public static double[] copyOf(double[], int); method public static boolean[] copyOf(boolean[], int); - method public static T[] copyOfRange(T[], int, int); - method public static T[] copyOfRange(U[], int, int, java.lang.Class); + method public static T[] copyOfRange(T[], int, int); + method public static T[] copyOfRange(U[], int, int, java.lang.Class); method public static byte[] copyOfRange(byte[], int, int); method public static short[] copyOfRange(short[], int, int); method public static int[] copyOfRange(int[], int, int); @@ -57629,15 +57629,15 @@ package java.util { method public static int hashCode(float[]); method public static int hashCode(double[]); method public static int hashCode(java.lang.Object[]); - method public static void parallelPrefix(T[], java.util.function.BinaryOperator); - method public static void parallelPrefix(T[], int, int, java.util.function.BinaryOperator); + method public static void parallelPrefix(T[], java.util.function.BinaryOperator); + method public static void parallelPrefix(T[], int, int, java.util.function.BinaryOperator); method public static void parallelPrefix(long[], java.util.function.LongBinaryOperator); method public static void parallelPrefix(long[], int, int, java.util.function.LongBinaryOperator); method public static void parallelPrefix(double[], java.util.function.DoubleBinaryOperator); method public static void parallelPrefix(double[], int, int, java.util.function.DoubleBinaryOperator); method public static void parallelPrefix(int[], java.util.function.IntBinaryOperator); method public static void parallelPrefix(int[], int, int, java.util.function.IntBinaryOperator); - method public static void parallelSetAll(T[], java.util.function.IntFunction); + method public static void parallelSetAll(T[], java.util.function.IntFunction); method public static void parallelSetAll(int[], java.util.function.IntUnaryOperator); method public static void parallelSetAll(long[], java.util.function.IntToLongFunction); method public static void parallelSetAll(double[], java.util.function.IntToDoubleFunction); @@ -57655,11 +57655,11 @@ package java.util { method public static void parallelSort(float[], int, int); method public static void parallelSort(double[]); method public static void parallelSort(double[], int, int); - method public static void parallelSort(T[]); - method public static void parallelSort(T[], int, int); - method public static void parallelSort(T[], java.util.Comparator); - method public static void parallelSort(T[], int, int, java.util.Comparator); - method public static void setAll(T[], java.util.function.IntFunction); + method public static > void parallelSort(T[]); + method public static > void parallelSort(T[], int, int); + method public static void parallelSort(T[], java.util.Comparator); + method public static void parallelSort(T[], int, int, java.util.Comparator); + method public static void setAll(T[], java.util.function.IntFunction); method public static void setAll(int[], java.util.function.IntUnaryOperator); method public static void setAll(long[], java.util.function.IntToLongFunction); method public static void setAll(double[], java.util.function.IntToDoubleFunction); @@ -57679,18 +57679,18 @@ package java.util { method public static void sort(double[], int, int); method public static void sort(java.lang.Object[]); method public static void sort(java.lang.Object[], int, int); - method public static void sort(T[], java.util.Comparator); - method public static void sort(T[], int, int, java.util.Comparator); - method public static java.util.Spliterator spliterator(T[]); - method public static java.util.Spliterator spliterator(T[], int, int); + method public static void sort(T[], java.util.Comparator); + method public static void sort(T[], int, int, java.util.Comparator); + method public static java.util.Spliterator spliterator(T[]); + method public static java.util.Spliterator spliterator(T[], int, int); method public static java.util.Spliterator.OfInt spliterator(int[]); method public static java.util.Spliterator.OfInt spliterator(int[], int, int); method public static java.util.Spliterator.OfLong spliterator(long[]); method public static java.util.Spliterator.OfLong spliterator(long[], int, int); method public static java.util.Spliterator.OfDouble spliterator(double[]); method public static java.util.Spliterator.OfDouble spliterator(double[], int, int); - method public static java.util.stream.Stream stream(T[]); - method public static java.util.stream.Stream stream(T[], int, int); + method public static java.util.stream.Stream stream(T[]); + method public static java.util.stream.Stream stream(T[], int, int); method public static java.util.stream.IntStream stream(int[]); method public static java.util.stream.IntStream stream(int[], int, int); method public static java.util.stream.LongStream stream(long[]); @@ -57847,7 +57847,7 @@ package java.util { field protected long time; } - public abstract interface Collection implements java.lang.Iterable { + public abstract interface Collection implements java.lang.Iterable { method public abstract boolean add(E); method public abstract boolean addAll(java.util.Collection); method public abstract void clear(); @@ -57865,86 +57865,86 @@ package java.util { method public abstract int size(); method public default java.util.stream.Stream stream(); method public abstract java.lang.Object[] toArray(); - method public abstract T[] toArray(T[]); + method public abstract T[] toArray(T[]); } public class Collections { - method public static boolean addAll(java.util.Collection, T...); - method public static java.util.Queue asLifoQueue(java.util.Deque); - method public static int binarySearch(java.util.List>, T); - method public static int binarySearch(java.util.List, T, java.util.Comparator); - method public static java.util.Collection checkedCollection(java.util.Collection, java.lang.Class); - method public static java.util.List checkedList(java.util.List, java.lang.Class); - method public static java.util.Map checkedMap(java.util.Map, java.lang.Class, java.lang.Class); - method public static java.util.Set checkedSet(java.util.Set, java.lang.Class); - method public static java.util.SortedMap checkedSortedMap(java.util.SortedMap, java.lang.Class, java.lang.Class); - method public static java.util.SortedSet checkedSortedSet(java.util.SortedSet, java.lang.Class); - method public static void copy(java.util.List, java.util.List); + method public static boolean addAll(java.util.Collection, T...); + method public static java.util.Queue asLifoQueue(java.util.Deque); + method public static int binarySearch(java.util.List>, T); + method public static int binarySearch(java.util.List, T, java.util.Comparator); + method public static java.util.Collection checkedCollection(java.util.Collection, java.lang.Class); + method public static java.util.List checkedList(java.util.List, java.lang.Class); + method public static java.util.Map checkedMap(java.util.Map, java.lang.Class, java.lang.Class); + method public static java.util.Set checkedSet(java.util.Set, java.lang.Class); + method public static java.util.SortedMap checkedSortedMap(java.util.SortedMap, java.lang.Class, java.lang.Class); + method public static java.util.SortedSet checkedSortedSet(java.util.SortedSet, java.lang.Class); + method public static void copy(java.util.List, java.util.List); method public static boolean disjoint(java.util.Collection, java.util.Collection); - method public static java.util.Enumeration emptyEnumeration(); - method public static java.util.Iterator emptyIterator(); - method public static final java.util.List emptyList(); - method public static java.util.ListIterator emptyListIterator(); - method public static final java.util.Map emptyMap(); - method public static final java.util.Set emptySet(); - method public static java.util.Enumeration enumeration(java.util.Collection); - method public static void fill(java.util.List, T); + method public static java.util.Enumeration emptyEnumeration(); + method public static java.util.Iterator emptyIterator(); + method public static final java.util.List emptyList(); + method public static java.util.ListIterator emptyListIterator(); + method public static final java.util.Map emptyMap(); + method public static final java.util.Set emptySet(); + method public static java.util.Enumeration enumeration(java.util.Collection); + method public static void fill(java.util.List, T); method public static int frequency(java.util.Collection, java.lang.Object); method public static int indexOfSubList(java.util.List, java.util.List); method public static int lastIndexOfSubList(java.util.List, java.util.List); - method public static java.util.ArrayList list(java.util.Enumeration); - method public static T max(java.util.Collection); - method public static T max(java.util.Collection, java.util.Comparator); - method public static T min(java.util.Collection); - method public static T min(java.util.Collection, java.util.Comparator); - method public static java.util.List nCopies(int, T); - method public static java.util.Set newSetFromMap(java.util.Map); - method public static boolean replaceAll(java.util.List, T, T); + method public static java.util.ArrayList list(java.util.Enumeration); + method public static > T max(java.util.Collection); + method public static T max(java.util.Collection, java.util.Comparator); + method public static > T min(java.util.Collection); + method public static T min(java.util.Collection, java.util.Comparator); + method public static java.util.List nCopies(int, T); + method public static java.util.Set newSetFromMap(java.util.Map); + method public static boolean replaceAll(java.util.List, T, T); method public static void reverse(java.util.List); - method public static java.util.Comparator reverseOrder(); - method public static java.util.Comparator reverseOrder(java.util.Comparator); + method public static java.util.Comparator reverseOrder(); + method public static java.util.Comparator reverseOrder(java.util.Comparator); method public static void rotate(java.util.List, int); method public static void shuffle(java.util.List); method public static void shuffle(java.util.List, java.util.Random); - method public static java.util.Set singleton(E); - method public static java.util.List singletonList(E); - method public static java.util.Map singletonMap(K, V); - method public static void sort(java.util.List); - method public static void sort(java.util.List, java.util.Comparator); + method public static java.util.Set singleton(E); + method public static java.util.List singletonList(E); + method public static java.util.Map singletonMap(K, V); + method public static > void sort(java.util.List); + method public static void sort(java.util.List, java.util.Comparator); method public static void swap(java.util.List, int, int); - method public static java.util.Collection synchronizedCollection(java.util.Collection); - method public static java.util.List synchronizedList(java.util.List); - method public static java.util.Map synchronizedMap(java.util.Map); - method public static java.util.Set synchronizedSet(java.util.Set); - method public static java.util.SortedMap synchronizedSortedMap(java.util.SortedMap); - method public static java.util.SortedSet synchronizedSortedSet(java.util.SortedSet); - method public static java.util.Collection unmodifiableCollection(java.util.Collection); - method public static java.util.List unmodifiableList(java.util.List); - method public static java.util.Map unmodifiableMap(java.util.Map); - method public static java.util.Set unmodifiableSet(java.util.Set); - method public static java.util.SortedMap unmodifiableSortedMap(java.util.SortedMap); - method public static java.util.SortedSet unmodifiableSortedSet(java.util.SortedSet); + method public static java.util.Collection synchronizedCollection(java.util.Collection); + method public static java.util.List synchronizedList(java.util.List); + method public static java.util.Map synchronizedMap(java.util.Map); + method public static java.util.Set synchronizedSet(java.util.Set); + method public static java.util.SortedMap synchronizedSortedMap(java.util.SortedMap); + method public static java.util.SortedSet synchronizedSortedSet(java.util.SortedSet); + method public static java.util.Collection unmodifiableCollection(java.util.Collection); + method public static java.util.List unmodifiableList(java.util.List); + method public static java.util.Map unmodifiableMap(java.util.Map); + method public static java.util.Set unmodifiableSet(java.util.Set); + method public static java.util.SortedMap unmodifiableSortedMap(java.util.SortedMap); + method public static java.util.SortedSet unmodifiableSortedSet(java.util.SortedSet); field public static final java.util.List EMPTY_LIST; field public static final java.util.Map EMPTY_MAP; field public static final java.util.Set EMPTY_SET; } - public abstract interface Comparator { + public abstract interface Comparator { method public abstract int compare(T, T); - method public static java.util.Comparator comparing(java.util.function.Function, java.util.Comparator); - method public static java.util.Comparator comparing(java.util.function.Function); - method public static java.util.Comparator comparingDouble(java.util.function.ToDoubleFunction); - method public static java.util.Comparator comparingInt(java.util.function.ToIntFunction); - method public static java.util.Comparator comparingLong(java.util.function.ToLongFunction); + method public static java.util.Comparator comparing(java.util.function.Function, java.util.Comparator); + method public static > java.util.Comparator comparing(java.util.function.Function); + method public static java.util.Comparator comparingDouble(java.util.function.ToDoubleFunction); + method public static java.util.Comparator comparingInt(java.util.function.ToIntFunction); + method public static java.util.Comparator comparingLong(java.util.function.ToLongFunction); method public abstract boolean equals(java.lang.Object); - method public static java.util.Comparator naturalOrder(); - method public static java.util.Comparator nullsFirst(java.util.Comparator); - method public static java.util.Comparator nullsLast(java.util.Comparator); - method public static java.util.Comparator reverseOrder(); + method public static > java.util.Comparator naturalOrder(); + method public static java.util.Comparator nullsFirst(java.util.Comparator); + method public static java.util.Comparator nullsLast(java.util.Comparator); + method public static > java.util.Comparator reverseOrder(); method public default java.util.Comparator reversed(); method public default java.util.Comparator thenComparing(java.util.Comparator); - method public default java.util.Comparator thenComparing(java.util.function.Function, java.util.Comparator); - method public default java.util.Comparator thenComparing(java.util.function.Function); + method public default java.util.Comparator thenComparing(java.util.function.Function, java.util.Comparator); + method public default > java.util.Comparator thenComparing(java.util.function.Function); method public default java.util.Comparator thenComparingDouble(java.util.function.ToDoubleFunction); method public default java.util.Comparator thenComparingInt(java.util.function.ToIntFunction); method public default java.util.Comparator thenComparingLong(java.util.function.ToLongFunction); @@ -58003,7 +58003,7 @@ package java.util { method public deprecated java.lang.String toLocaleString(); } - public abstract interface Deque implements java.util.Queue { + public abstract interface Deque implements java.util.Queue { method public abstract boolean add(E); method public abstract void addFirst(E); method public abstract void addLast(E); @@ -58033,7 +58033,7 @@ package java.util { method public abstract int size(); } - public abstract class Dictionary { + public abstract class Dictionary { ctor public Dictionary(); method public abstract java.util.Enumeration elements(); method public abstract V get(java.lang.Object); @@ -58064,7 +58064,7 @@ package java.util { ctor public EmptyStackException(); } - public class EnumMap extends java.util.AbstractMap implements java.lang.Cloneable java.io.Serializable { + public class EnumMap, V> extends java.util.AbstractMap implements java.lang.Cloneable java.io.Serializable { ctor public EnumMap(java.lang.Class); ctor public EnumMap(java.util.EnumMap); ctor public EnumMap(java.util.Map); @@ -58072,23 +58072,23 @@ package java.util { method public java.util.Set> entrySet(); } - public abstract class EnumSet extends java.util.AbstractSet implements java.lang.Cloneable java.io.Serializable { - method public static java.util.EnumSet allOf(java.lang.Class); + public abstract class EnumSet> extends java.util.AbstractSet implements java.lang.Cloneable java.io.Serializable { + method public static > java.util.EnumSet allOf(java.lang.Class); method public java.util.EnumSet clone(); - method public static java.util.EnumSet complementOf(java.util.EnumSet); - method public static java.util.EnumSet copyOf(java.util.EnumSet); - method public static java.util.EnumSet copyOf(java.util.Collection); - method public static java.util.EnumSet noneOf(java.lang.Class); - method public static java.util.EnumSet of(E); - method public static java.util.EnumSet of(E, E); - method public static java.util.EnumSet of(E, E, E); - method public static java.util.EnumSet of(E, E, E, E); - method public static java.util.EnumSet of(E, E, E, E, E); - method public static java.util.EnumSet of(E, E...); - method public static java.util.EnumSet range(E, E); - } - - public abstract interface Enumeration { + method public static > java.util.EnumSet complementOf(java.util.EnumSet); + method public static > java.util.EnumSet copyOf(java.util.EnumSet); + method public static > java.util.EnumSet copyOf(java.util.Collection); + method public static > java.util.EnumSet noneOf(java.lang.Class); + method public static > java.util.EnumSet of(E); + method public static > java.util.EnumSet of(E, E); + method public static > java.util.EnumSet of(E, E, E); + method public static > java.util.EnumSet of(E, E, E, E); + method public static > java.util.EnumSet of(E, E, E, E, E); + method public static > java.util.EnumSet of(E, E...); + method public static > java.util.EnumSet range(E, E); + } + + public abstract interface Enumeration { method public abstract boolean hasMoreElements(); method public abstract E nextElement(); } @@ -58096,7 +58096,7 @@ package java.util { public abstract interface EventListener { } - public abstract class EventListenerProxy implements java.util.EventListener { + public abstract class EventListenerProxy implements java.util.EventListener { ctor public EventListenerProxy(T); method public T getListener(); } @@ -58182,7 +58182,7 @@ package java.util { field public static final int BC = 0; // 0x0 } - public class HashMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.Map java.io.Serializable { + public class HashMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.Map java.io.Serializable { ctor public HashMap(int, float); ctor public HashMap(int); ctor public HashMap(); @@ -58194,7 +58194,7 @@ package java.util { method public void replaceAll(java.util.function.BiFunction); } - public class HashSet extends java.util.AbstractSet implements java.lang.Cloneable java.io.Serializable java.util.Set { + public class HashSet extends java.util.AbstractSet implements java.lang.Cloneable java.io.Serializable java.util.Set { ctor public HashSet(); ctor public HashSet(java.util.Collection); ctor public HashSet(int, float); @@ -58205,7 +58205,7 @@ package java.util { method public java.util.Spliterator spliterator(); } - public class Hashtable extends java.util.Dictionary implements java.lang.Cloneable java.util.Map java.io.Serializable { + public class Hashtable extends java.util.Dictionary implements java.lang.Cloneable java.util.Map java.io.Serializable { ctor public Hashtable(int, float); ctor public Hashtable(int); ctor public Hashtable(); @@ -58240,7 +58240,7 @@ package java.util { method public java.util.Collection values(); } - public class IdentityHashMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.Map java.io.Serializable { + public class IdentityHashMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.Map java.io.Serializable { ctor public IdentityHashMap(); ctor public IdentityHashMap(int); ctor public IdentityHashMap(java.util.Map); @@ -58307,14 +58307,14 @@ package java.util { ctor public InvalidPropertiesFormatException(java.lang.String); } - public abstract interface Iterator { + public abstract interface Iterator { method public default void forEachRemaining(java.util.function.Consumer); method public abstract boolean hasNext(); method public abstract E next(); method public default void remove(); } - public class LinkedHashMap extends java.util.HashMap implements java.util.Map { + public class LinkedHashMap extends java.util.HashMap implements java.util.Map { ctor public LinkedHashMap(int, float); ctor public LinkedHashMap(int); ctor public LinkedHashMap(); @@ -58323,14 +58323,14 @@ package java.util { method protected boolean removeEldestEntry(java.util.Map.Entry); } - public class LinkedHashSet extends java.util.HashSet implements java.lang.Cloneable java.io.Serializable java.util.Set { + public class LinkedHashSet extends java.util.HashSet implements java.lang.Cloneable java.io.Serializable java.util.Set { ctor public LinkedHashSet(int, float); ctor public LinkedHashSet(int); ctor public LinkedHashSet(); ctor public LinkedHashSet(java.util.Collection); } - public class LinkedList extends java.util.AbstractSequentialList implements java.lang.Cloneable java.util.Deque java.util.List java.io.Serializable { + public class LinkedList extends java.util.AbstractSequentialList implements java.lang.Cloneable java.util.Deque java.util.List java.io.Serializable { ctor public LinkedList(); ctor public LinkedList(java.util.Collection); method public void addFirst(E); @@ -58361,7 +58361,7 @@ package java.util { method public java.util.Spliterator spliterator(); } - public abstract interface List implements java.util.Collection { + public abstract interface List implements java.util.Collection { method public abstract boolean add(E); method public abstract void add(int, E); method public abstract boolean addAll(java.util.Collection); @@ -58388,10 +58388,10 @@ package java.util { method public default void sort(java.util.Comparator); method public abstract java.util.List subList(int, int); method public abstract java.lang.Object[] toArray(); - method public abstract T[] toArray(T[]); + method public abstract T[] toArray(T[]); } - public abstract interface ListIterator implements java.util.Iterator { + public abstract interface ListIterator implements java.util.Iterator { method public abstract void add(E); method public abstract boolean hasNext(); method public abstract boolean hasPrevious(); @@ -58508,7 +58508,7 @@ package java.util { method public final long getSum(); } - public abstract interface Map { + public abstract interface Map { method public abstract void clear(); method public default V compute(K, java.util.function.BiFunction); method public default V computeIfAbsent(K, java.util.function.Function); @@ -58536,11 +58536,11 @@ package java.util { method public abstract java.util.Collection values(); } - public static abstract interface Map.Entry { - method public static java.util.Comparator> comparingByKey(); - method public static java.util.Comparator> comparingByKey(java.util.Comparator); - method public static java.util.Comparator> comparingByValue(); - method public static java.util.Comparator> comparingByValue(java.util.Comparator); + public static abstract interface Map.Entry { + method public static , V> java.util.Comparator> comparingByKey(); + method public static java.util.Comparator> comparingByKey(java.util.Comparator); + method public static > java.util.Comparator> comparingByValue(); + method public static java.util.Comparator> comparingByValue(java.util.Comparator); method public abstract boolean equals(java.lang.Object); method public abstract K getKey(); method public abstract V getValue(); @@ -58564,7 +58564,7 @@ package java.util { method public java.lang.String getKey(); } - public abstract interface NavigableMap implements java.util.SortedMap { + public abstract interface NavigableMap implements java.util.SortedMap { method public abstract java.util.Map.Entry ceilingEntry(K); method public abstract K ceilingKey(K); method public abstract java.util.NavigableSet descendingKeySet(); @@ -58588,7 +58588,7 @@ package java.util { method public abstract java.util.SortedMap tailMap(K); } - public abstract interface NavigableSet implements java.util.SortedSet { + public abstract interface NavigableSet implements java.util.SortedSet { method public abstract E ceiling(E); method public abstract java.util.Iterator descendingIterator(); method public abstract java.util.NavigableSet descendingSet(); @@ -58612,16 +58612,16 @@ package java.util { } public final class Objects { - method public static int compare(T, T, java.util.Comparator); + method public static int compare(T, T, java.util.Comparator); method public static boolean deepEquals(java.lang.Object, java.lang.Object); method public static boolean equals(java.lang.Object, java.lang.Object); method public static int hash(java.lang.Object...); method public static int hashCode(java.lang.Object); method public static boolean isNull(java.lang.Object); method public static boolean nonNull(java.lang.Object); - method public static T requireNonNull(T); - method public static T requireNonNull(T, java.lang.String); - method public static T requireNonNull(T, java.util.function.Supplier); + method public static T requireNonNull(T); + method public static T requireNonNull(T, java.lang.String); + method public static T requireNonNull(T, java.util.function.Supplier); method public static java.lang.String toString(java.lang.Object); method public static java.lang.String toString(java.lang.Object, java.lang.String); } @@ -58643,19 +58643,19 @@ package java.util { method public abstract void update(java.util.Observable, java.lang.Object); } - public final class Optional { - method public static java.util.Optional empty(); + public final class Optional { + method public static java.util.Optional empty(); method public java.util.Optional filter(java.util.function.Predicate); - method public java.util.Optional flatMap(java.util.function.Function>); + method public java.util.Optional flatMap(java.util.function.Function>); method public T get(); method public void ifPresent(java.util.function.Consumer); method public boolean isPresent(); - method public java.util.Optional map(java.util.function.Function); - method public static java.util.Optional of(T); - method public static java.util.Optional ofNullable(T); + method public java.util.Optional map(java.util.function.Function); + method public static java.util.Optional of(T); + method public static java.util.Optional ofNullable(T); method public T orElse(T); method public T orElseGet(java.util.function.Supplier); - method public T orElseThrow(java.util.function.Supplier) throws java.lang.Throwable; + method public T orElseThrow(java.util.function.Supplier) throws java.lang.Throwable; } public final class OptionalDouble { @@ -58666,7 +58666,7 @@ package java.util { method public static java.util.OptionalDouble of(double); method public double orElse(double); method public double orElseGet(java.util.function.DoubleSupplier); - method public double orElseThrow(java.util.function.Supplier) throws java.lang.Throwable; + method public double orElseThrow(java.util.function.Supplier) throws java.lang.Throwable; } public final class OptionalInt { @@ -58677,7 +58677,7 @@ package java.util { method public static java.util.OptionalInt of(int); method public int orElse(int); method public int orElseGet(java.util.function.IntSupplier); - method public int orElseThrow(java.util.function.Supplier) throws java.lang.Throwable; + method public int orElseThrow(java.util.function.Supplier) throws java.lang.Throwable; } public final class OptionalLong { @@ -58688,10 +58688,10 @@ package java.util { method public static java.util.OptionalLong of(long); method public long orElse(long); method public long orElseGet(java.util.function.LongSupplier); - method public long orElseThrow(java.util.function.Supplier) throws java.lang.Throwable; + method public long orElseThrow(java.util.function.Supplier) throws java.lang.Throwable; } - public abstract interface PrimitiveIterator implements java.util.Iterator { + public abstract interface PrimitiveIterator implements java.util.Iterator { method public abstract void forEachRemaining(T_CONS); } @@ -58716,7 +58716,7 @@ package java.util { method public abstract long nextLong(); } - public class PriorityQueue extends java.util.AbstractQueue implements java.io.Serializable { + public class PriorityQueue extends java.util.AbstractQueue implements java.io.Serializable { ctor public PriorityQueue(); ctor public PriorityQueue(int); ctor public PriorityQueue(java.util.Comparator); @@ -58765,7 +58765,7 @@ package java.util { method public java.lang.Object handleGetObject(java.lang.String); } - public abstract interface Queue implements java.util.Collection { + public abstract interface Queue implements java.util.Collection { method public abstract boolean add(E); method public abstract E element(); method public abstract boolean offer(E); @@ -58915,15 +58915,15 @@ package java.util { ctor public ServiceConfigurationError(java.lang.String, java.lang.Throwable); } - public final class ServiceLoader implements java.lang.Iterable { + public final class ServiceLoader implements java.lang.Iterable { method public java.util.Iterator iterator(); - method public static java.util.ServiceLoader load(java.lang.Class, java.lang.ClassLoader); - method public static java.util.ServiceLoader load(java.lang.Class); - method public static java.util.ServiceLoader loadInstalled(java.lang.Class); + method public static java.util.ServiceLoader load(java.lang.Class, java.lang.ClassLoader); + method public static java.util.ServiceLoader load(java.lang.Class); + method public static java.util.ServiceLoader loadInstalled(java.lang.Class); method public void reload(); } - public abstract interface Set implements java.util.Collection { + public abstract interface Set implements java.util.Collection { method public abstract boolean add(E); method public abstract boolean addAll(java.util.Collection); method public abstract void clear(); @@ -58938,7 +58938,7 @@ package java.util { method public abstract boolean retainAll(java.util.Collection); method public abstract int size(); method public abstract java.lang.Object[] toArray(); - method public abstract T[] toArray(T[]); + method public abstract T[] toArray(T[]); } public class SimpleTimeZone extends java.util.TimeZone { @@ -58964,7 +58964,7 @@ package java.util { field public static final int WALL_TIME = 0; // 0x0 } - public abstract interface SortedMap implements java.util.Map { + public abstract interface SortedMap implements java.util.Map { method public abstract java.util.Comparator comparator(); method public abstract java.util.Set> entrySet(); method public abstract K firstKey(); @@ -58976,7 +58976,7 @@ package java.util { method public abstract java.util.Collection values(); } - public abstract interface SortedSet implements java.util.Set { + public abstract interface SortedSet implements java.util.Set { method public abstract java.util.Comparator comparator(); method public abstract E first(); method public abstract java.util.SortedSet headSet(E); @@ -58985,7 +58985,7 @@ package java.util { method public abstract java.util.SortedSet tailSet(E); } - public abstract interface Spliterator { + public abstract interface Spliterator { method public abstract int characteristics(); method public abstract long estimateSize(); method public default void forEachRemaining(java.util.function.Consumer); @@ -59028,7 +59028,7 @@ package java.util { method public abstract java.util.Spliterator.OfLong trySplit(); } - public static abstract interface Spliterator.OfPrimitive implements java.util.Spliterator { + public static abstract interface Spliterator.OfPrimitive> implements java.util.Spliterator { method public default void forEachRemaining(T_CONS); method public abstract boolean tryAdvance(T_CONS); method public abstract T_SPLITR trySplit(); @@ -59038,25 +59038,25 @@ package java.util { method public static java.util.Spliterator.OfDouble emptyDoubleSpliterator(); method public static java.util.Spliterator.OfInt emptyIntSpliterator(); method public static java.util.Spliterator.OfLong emptyLongSpliterator(); - method public static java.util.Spliterator emptySpliterator(); - method public static java.util.Iterator iterator(java.util.Spliterator); + method public static java.util.Spliterator emptySpliterator(); + method public static java.util.Iterator iterator(java.util.Spliterator); method public static java.util.PrimitiveIterator.OfInt iterator(java.util.Spliterator.OfInt); method public static java.util.PrimitiveIterator.OfLong iterator(java.util.Spliterator.OfLong); method public static java.util.PrimitiveIterator.OfDouble iterator(java.util.Spliterator.OfDouble); - method public static java.util.Spliterator spliterator(java.lang.Object[], int); - method public static java.util.Spliterator spliterator(java.lang.Object[], int, int, int); + method public static java.util.Spliterator spliterator(java.lang.Object[], int); + method public static java.util.Spliterator spliterator(java.lang.Object[], int, int, int); method public static java.util.Spliterator.OfInt spliterator(int[], int); method public static java.util.Spliterator.OfInt spliterator(int[], int, int, int); method public static java.util.Spliterator.OfLong spliterator(long[], int); method public static java.util.Spliterator.OfLong spliterator(long[], int, int, int); method public static java.util.Spliterator.OfDouble spliterator(double[], int); method public static java.util.Spliterator.OfDouble spliterator(double[], int, int, int); - method public static java.util.Spliterator spliterator(java.util.Collection, int); - method public static java.util.Spliterator spliterator(java.util.Iterator, long, int); + method public static java.util.Spliterator spliterator(java.util.Collection, int); + method public static java.util.Spliterator spliterator(java.util.Iterator, long, int); method public static java.util.Spliterator.OfInt spliterator(java.util.PrimitiveIterator.OfInt, long, int); method public static java.util.Spliterator.OfLong spliterator(java.util.PrimitiveIterator.OfLong, long, int); method public static java.util.Spliterator.OfDouble spliterator(java.util.PrimitiveIterator.OfDouble, long, int); - method public static java.util.Spliterator spliteratorUnknownSize(java.util.Iterator, int); + method public static java.util.Spliterator spliteratorUnknownSize(java.util.Iterator, int); method public static java.util.Spliterator.OfInt spliteratorUnknownSize(java.util.PrimitiveIterator.OfInt, int); method public static java.util.Spliterator.OfLong spliteratorUnknownSize(java.util.PrimitiveIterator.OfLong, int); method public static java.util.Spliterator.OfDouble spliteratorUnknownSize(java.util.PrimitiveIterator.OfDouble, int); @@ -59083,7 +59083,7 @@ package java.util { method public java.util.Spliterator.OfLong trySplit(); } - public static abstract class Spliterators.AbstractSpliterator implements java.util.Spliterator { + public static abstract class Spliterators.AbstractSpliterator implements java.util.Spliterator { ctor protected Spliterators.AbstractSpliterator(long, int); method public int characteristics(); method public long estimateSize(); @@ -59118,7 +59118,7 @@ package java.util { method public java.util.SplittableRandom split(); } - public class Stack extends java.util.Vector { + public class Stack extends java.util.Vector { ctor public Stack(); method public boolean empty(); method public synchronized E peek(); @@ -59202,7 +59202,7 @@ package java.util { ctor public TooManyListenersException(java.lang.String); } - public class TreeMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.NavigableMap java.io.Serializable { + public class TreeMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.NavigableMap java.io.Serializable { ctor public TreeMap(); ctor public TreeMap(java.util.Comparator); ctor public TreeMap(java.util.Map); @@ -59239,7 +59239,7 @@ package java.util { method public java.util.SortedMap tailMap(K); } - public class TreeSet extends java.util.AbstractSet implements java.lang.Cloneable java.util.NavigableSet java.io.Serializable { + public class TreeSet extends java.util.AbstractSet implements java.lang.Cloneable java.util.NavigableSet java.io.Serializable { ctor public TreeSet(); ctor public TreeSet(java.util.Comparator); ctor public TreeSet(java.util.Collection); @@ -59292,7 +59292,7 @@ package java.util { method public java.lang.String getFlags(); } - public class Vector extends java.util.AbstractList implements java.lang.Cloneable java.util.List java.util.RandomAccess java.io.Serializable { + public class Vector extends java.util.AbstractList implements java.lang.Cloneable java.util.List java.util.RandomAccess java.io.Serializable { ctor public Vector(int, int); ctor public Vector(int); ctor public Vector(); @@ -59327,7 +59327,7 @@ package java.util { field protected java.lang.Object[] elementData; } - public class WeakHashMap extends java.util.AbstractMap implements java.util.Map { + public class WeakHashMap extends java.util.AbstractMap implements java.util.Map { ctor public WeakHashMap(int, float); ctor public WeakHashMap(int); ctor public WeakHashMap(); @@ -59343,18 +59343,18 @@ package java.util.concurrent { public abstract class AbstractExecutorService implements java.util.concurrent.ExecutorService { ctor public AbstractExecutorService(); - method public java.util.List> invokeAll(java.util.Collection>) throws java.lang.InterruptedException; - method public java.util.List> invokeAll(java.util.Collection>, long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException; - method public T invokeAny(java.util.Collection>) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException; - method public T invokeAny(java.util.Collection>, long, java.util.concurrent.TimeUnit) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException, java.util.concurrent.TimeoutException; - method protected java.util.concurrent.RunnableFuture newTaskFor(java.lang.Runnable, T); - method protected java.util.concurrent.RunnableFuture newTaskFor(java.util.concurrent.Callable); + method public java.util.List> invokeAll(java.util.Collection>) throws java.lang.InterruptedException; + method public java.util.List> invokeAll(java.util.Collection>, long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException; + method public T invokeAny(java.util.Collection>) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException; + method public T invokeAny(java.util.Collection>, long, java.util.concurrent.TimeUnit) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException, java.util.concurrent.TimeoutException; + method protected java.util.concurrent.RunnableFuture newTaskFor(java.lang.Runnable, T); + method protected java.util.concurrent.RunnableFuture newTaskFor(java.util.concurrent.Callable); method public java.util.concurrent.Future submit(java.lang.Runnable); - method public java.util.concurrent.Future submit(java.lang.Runnable, T); - method public java.util.concurrent.Future submit(java.util.concurrent.Callable); + method public java.util.concurrent.Future submit(java.lang.Runnable, T); + method public java.util.concurrent.Future submit(java.util.concurrent.Callable); } - public class ArrayBlockingQueue extends java.util.AbstractQueue implements java.util.concurrent.BlockingQueue java.io.Serializable { + public class ArrayBlockingQueue extends java.util.AbstractQueue implements java.util.concurrent.BlockingQueue java.io.Serializable { ctor public ArrayBlockingQueue(int); ctor public ArrayBlockingQueue(int, boolean); ctor public ArrayBlockingQueue(int, boolean, java.util.Collection); @@ -59373,7 +59373,7 @@ package java.util.concurrent { method public E take() throws java.lang.InterruptedException; } - public abstract interface BlockingDeque implements java.util.concurrent.BlockingQueue java.util.Deque { + public abstract interface BlockingDeque implements java.util.concurrent.BlockingQueue java.util.Deque { method public abstract boolean add(E); method public abstract void addFirst(E); method public abstract void addLast(E); @@ -59405,7 +59405,7 @@ package java.util.concurrent { method public abstract E takeLast() throws java.lang.InterruptedException; } - public abstract interface BlockingQueue implements java.util.Queue { + public abstract interface BlockingQueue implements java.util.Queue { method public abstract boolean add(E); method public abstract boolean contains(java.lang.Object); method public abstract int drainTo(java.util.Collection); @@ -59424,7 +59424,7 @@ package java.util.concurrent { ctor public BrokenBarrierException(java.lang.String); } - public abstract interface Callable { + public abstract interface Callable { method public abstract V call() throws java.lang.Exception; } @@ -59433,28 +59433,28 @@ package java.util.concurrent { ctor public CancellationException(java.lang.String); } - public class CompletableFuture implements java.util.concurrent.CompletionStage java.util.concurrent.Future { + public class CompletableFuture implements java.util.concurrent.CompletionStage java.util.concurrent.Future { ctor public CompletableFuture(); method public java.util.concurrent.CompletableFuture acceptEither(java.util.concurrent.CompletionStage, java.util.function.Consumer); method public java.util.concurrent.CompletableFuture acceptEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Consumer); method public java.util.concurrent.CompletableFuture acceptEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Consumer, java.util.concurrent.Executor); method public static java.util.concurrent.CompletableFuture allOf(java.util.concurrent.CompletableFuture...); method public static java.util.concurrent.CompletableFuture anyOf(java.util.concurrent.CompletableFuture...); - method public java.util.concurrent.CompletableFuture applyToEither(java.util.concurrent.CompletionStage, java.util.function.Function); - method public java.util.concurrent.CompletableFuture applyToEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Function); - method public java.util.concurrent.CompletableFuture applyToEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Function, java.util.concurrent.Executor); + method public java.util.concurrent.CompletableFuture applyToEither(java.util.concurrent.CompletionStage, java.util.function.Function); + method public java.util.concurrent.CompletableFuture applyToEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Function); + method public java.util.concurrent.CompletableFuture applyToEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Function, java.util.concurrent.Executor); method public boolean cancel(boolean); method public boolean complete(T); method public boolean completeExceptionally(java.lang.Throwable); - method public static java.util.concurrent.CompletableFuture completedFuture(U); + method public static java.util.concurrent.CompletableFuture completedFuture(U); method public java.util.concurrent.CompletableFuture exceptionally(java.util.function.Function); method public T get() throws java.util.concurrent.ExecutionException, java.lang.InterruptedException; method public T get(long, java.util.concurrent.TimeUnit) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException, java.util.concurrent.TimeoutException; method public T getNow(T); method public int getNumberOfDependents(); - method public java.util.concurrent.CompletableFuture handle(java.util.function.BiFunction); - method public java.util.concurrent.CompletableFuture handleAsync(java.util.function.BiFunction); - method public java.util.concurrent.CompletableFuture handleAsync(java.util.function.BiFunction, java.util.concurrent.Executor); + method public java.util.concurrent.CompletableFuture handle(java.util.function.BiFunction); + method public java.util.concurrent.CompletableFuture handleAsync(java.util.function.BiFunction); + method public java.util.concurrent.CompletableFuture handleAsync(java.util.function.BiFunction, java.util.concurrent.Executor); method public boolean isCancelled(); method public boolean isCompletedExceptionally(); method public boolean isDone(); @@ -59469,23 +59469,23 @@ package java.util.concurrent { method public java.util.concurrent.CompletableFuture runAfterEitherAsync(java.util.concurrent.CompletionStage, java.lang.Runnable, java.util.concurrent.Executor); method public static java.util.concurrent.CompletableFuture runAsync(java.lang.Runnable); method public static java.util.concurrent.CompletableFuture runAsync(java.lang.Runnable, java.util.concurrent.Executor); - method public static java.util.concurrent.CompletableFuture supplyAsync(java.util.function.Supplier); - method public static java.util.concurrent.CompletableFuture supplyAsync(java.util.function.Supplier, java.util.concurrent.Executor); + method public static java.util.concurrent.CompletableFuture supplyAsync(java.util.function.Supplier); + method public static java.util.concurrent.CompletableFuture supplyAsync(java.util.function.Supplier, java.util.concurrent.Executor); method public java.util.concurrent.CompletableFuture thenAccept(java.util.function.Consumer); method public java.util.concurrent.CompletableFuture thenAcceptAsync(java.util.function.Consumer); method public java.util.concurrent.CompletableFuture thenAcceptAsync(java.util.function.Consumer, java.util.concurrent.Executor); - method public java.util.concurrent.CompletableFuture thenAcceptBoth(java.util.concurrent.CompletionStage, java.util.function.BiConsumer); - method public java.util.concurrent.CompletableFuture thenAcceptBothAsync(java.util.concurrent.CompletionStage, java.util.function.BiConsumer); - method public java.util.concurrent.CompletableFuture thenAcceptBothAsync(java.util.concurrent.CompletionStage, java.util.function.BiConsumer, java.util.concurrent.Executor); - method public java.util.concurrent.CompletableFuture thenApply(java.util.function.Function); - method public java.util.concurrent.CompletableFuture thenApplyAsync(java.util.function.Function); - method public java.util.concurrent.CompletableFuture thenApplyAsync(java.util.function.Function, java.util.concurrent.Executor); - method public java.util.concurrent.CompletableFuture thenCombine(java.util.concurrent.CompletionStage, java.util.function.BiFunction); - method public java.util.concurrent.CompletableFuture thenCombineAsync(java.util.concurrent.CompletionStage, java.util.function.BiFunction); - method public java.util.concurrent.CompletableFuture thenCombineAsync(java.util.concurrent.CompletionStage, java.util.function.BiFunction, java.util.concurrent.Executor); - method public java.util.concurrent.CompletableFuture thenCompose(java.util.function.Function>); - method public java.util.concurrent.CompletableFuture thenComposeAsync(java.util.function.Function>); - method public java.util.concurrent.CompletableFuture thenComposeAsync(java.util.function.Function>, java.util.concurrent.Executor); + method public java.util.concurrent.CompletableFuture thenAcceptBoth(java.util.concurrent.CompletionStage, java.util.function.BiConsumer); + method public java.util.concurrent.CompletableFuture thenAcceptBothAsync(java.util.concurrent.CompletionStage, java.util.function.BiConsumer); + method public java.util.concurrent.CompletableFuture thenAcceptBothAsync(java.util.concurrent.CompletionStage, java.util.function.BiConsumer, java.util.concurrent.Executor); + method public java.util.concurrent.CompletableFuture thenApply(java.util.function.Function); + method public java.util.concurrent.CompletableFuture thenApplyAsync(java.util.function.Function); + method public java.util.concurrent.CompletableFuture thenApplyAsync(java.util.function.Function, java.util.concurrent.Executor); + method public java.util.concurrent.CompletableFuture thenCombine(java.util.concurrent.CompletionStage, java.util.function.BiFunction); + method public java.util.concurrent.CompletableFuture thenCombineAsync(java.util.concurrent.CompletionStage, java.util.function.BiFunction); + method public java.util.concurrent.CompletableFuture thenCombineAsync(java.util.concurrent.CompletionStage, java.util.function.BiFunction, java.util.concurrent.Executor); + method public java.util.concurrent.CompletableFuture thenCompose(java.util.function.Function>); + method public java.util.concurrent.CompletableFuture thenComposeAsync(java.util.function.Function>); + method public java.util.concurrent.CompletableFuture thenComposeAsync(java.util.function.Function>, java.util.concurrent.Executor); method public java.util.concurrent.CompletableFuture thenRun(java.lang.Runnable); method public java.util.concurrent.CompletableFuture thenRunAsync(java.lang.Runnable); method public java.util.concurrent.CompletableFuture thenRunAsync(java.lang.Runnable, java.util.concurrent.Executor); @@ -59505,7 +59505,7 @@ package java.util.concurrent { ctor public CompletionException(java.lang.Throwable); } - public abstract interface CompletionService { + public abstract interface CompletionService { method public abstract java.util.concurrent.Future poll(); method public abstract java.util.concurrent.Future poll(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException; method public abstract java.util.concurrent.Future submit(java.util.concurrent.Callable); @@ -59513,17 +59513,17 @@ package java.util.concurrent { method public abstract java.util.concurrent.Future take() throws java.lang.InterruptedException; } - public abstract interface CompletionStage { + public abstract interface CompletionStage { method public abstract java.util.concurrent.CompletionStage acceptEither(java.util.concurrent.CompletionStage, java.util.function.Consumer); method public abstract java.util.concurrent.CompletionStage acceptEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Consumer); method public abstract java.util.concurrent.CompletionStage acceptEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Consumer, java.util.concurrent.Executor); - method public abstract java.util.concurrent.CompletionStage applyToEither(java.util.concurrent.CompletionStage, java.util.function.Function); - method public abstract java.util.concurrent.CompletionStage applyToEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Function); - method public abstract java.util.concurrent.CompletionStage applyToEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Function, java.util.concurrent.Executor); + method public abstract java.util.concurrent.CompletionStage applyToEither(java.util.concurrent.CompletionStage, java.util.function.Function); + method public abstract java.util.concurrent.CompletionStage applyToEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Function); + method public abstract java.util.concurrent.CompletionStage applyToEitherAsync(java.util.concurrent.CompletionStage, java.util.function.Function, java.util.concurrent.Executor); method public abstract java.util.concurrent.CompletionStage exceptionally(java.util.function.Function); - method public abstract java.util.concurrent.CompletionStage handle(java.util.function.BiFunction); - method public abstract java.util.concurrent.CompletionStage handleAsync(java.util.function.BiFunction); - method public abstract java.util.concurrent.CompletionStage handleAsync(java.util.function.BiFunction, java.util.concurrent.Executor); + method public abstract java.util.concurrent.CompletionStage handle(java.util.function.BiFunction); + method public abstract java.util.concurrent.CompletionStage handleAsync(java.util.function.BiFunction); + method public abstract java.util.concurrent.CompletionStage handleAsync(java.util.function.BiFunction, java.util.concurrent.Executor); method public abstract java.util.concurrent.CompletionStage runAfterBoth(java.util.concurrent.CompletionStage, java.lang.Runnable); method public abstract java.util.concurrent.CompletionStage runAfterBothAsync(java.util.concurrent.CompletionStage, java.lang.Runnable); method public abstract java.util.concurrent.CompletionStage runAfterBothAsync(java.util.concurrent.CompletionStage, java.lang.Runnable, java.util.concurrent.Executor); @@ -59533,18 +59533,18 @@ package java.util.concurrent { method public abstract java.util.concurrent.CompletionStage thenAccept(java.util.function.Consumer); method public abstract java.util.concurrent.CompletionStage thenAcceptAsync(java.util.function.Consumer); method public abstract java.util.concurrent.CompletionStage thenAcceptAsync(java.util.function.Consumer, java.util.concurrent.Executor); - method public abstract java.util.concurrent.CompletionStage thenAcceptBoth(java.util.concurrent.CompletionStage, java.util.function.BiConsumer); - method public abstract java.util.concurrent.CompletionStage thenAcceptBothAsync(java.util.concurrent.CompletionStage, java.util.function.BiConsumer); - method public abstract java.util.concurrent.CompletionStage thenAcceptBothAsync(java.util.concurrent.CompletionStage, java.util.function.BiConsumer, java.util.concurrent.Executor); - method public abstract java.util.concurrent.CompletionStage thenApply(java.util.function.Function); - method public abstract java.util.concurrent.CompletionStage thenApplyAsync(java.util.function.Function); - method public abstract java.util.concurrent.CompletionStage thenApplyAsync(java.util.function.Function, java.util.concurrent.Executor); - method public abstract java.util.concurrent.CompletionStage thenCombine(java.util.concurrent.CompletionStage, java.util.function.BiFunction); - method public abstract java.util.concurrent.CompletionStage thenCombineAsync(java.util.concurrent.CompletionStage, java.util.function.BiFunction); - method public abstract java.util.concurrent.CompletionStage thenCombineAsync(java.util.concurrent.CompletionStage, java.util.function.BiFunction, java.util.concurrent.Executor); - method public abstract java.util.concurrent.CompletionStage thenCompose(java.util.function.Function>); - method public abstract java.util.concurrent.CompletionStage thenComposeAsync(java.util.function.Function>); - method public abstract java.util.concurrent.CompletionStage thenComposeAsync(java.util.function.Function>, java.util.concurrent.Executor); + method public abstract java.util.concurrent.CompletionStage thenAcceptBoth(java.util.concurrent.CompletionStage, java.util.function.BiConsumer); + method public abstract java.util.concurrent.CompletionStage thenAcceptBothAsync(java.util.concurrent.CompletionStage, java.util.function.BiConsumer); + method public abstract java.util.concurrent.CompletionStage thenAcceptBothAsync(java.util.concurrent.CompletionStage, java.util.function.BiConsumer, java.util.concurrent.Executor); + method public abstract java.util.concurrent.CompletionStage thenApply(java.util.function.Function); + method public abstract java.util.concurrent.CompletionStage thenApplyAsync(java.util.function.Function); + method public abstract java.util.concurrent.CompletionStage thenApplyAsync(java.util.function.Function, java.util.concurrent.Executor); + method public abstract java.util.concurrent.CompletionStage thenCombine(java.util.concurrent.CompletionStage, java.util.function.BiFunction); + method public abstract java.util.concurrent.CompletionStage thenCombineAsync(java.util.concurrent.CompletionStage, java.util.function.BiFunction); + method public abstract java.util.concurrent.CompletionStage thenCombineAsync(java.util.concurrent.CompletionStage, java.util.function.BiFunction, java.util.concurrent.Executor); + method public abstract java.util.concurrent.CompletionStage thenCompose(java.util.function.Function>); + method public abstract java.util.concurrent.CompletionStage thenComposeAsync(java.util.function.Function>); + method public abstract java.util.concurrent.CompletionStage thenComposeAsync(java.util.function.Function>, java.util.concurrent.Executor); method public abstract java.util.concurrent.CompletionStage thenRun(java.lang.Runnable); method public abstract java.util.concurrent.CompletionStage thenRunAsync(java.lang.Runnable); method public abstract java.util.concurrent.CompletionStage thenRunAsync(java.lang.Runnable, java.util.concurrent.Executor); @@ -59554,7 +59554,7 @@ package java.util.concurrent { method public abstract java.util.concurrent.CompletionStage whenCompleteAsync(java.util.function.BiConsumer, java.util.concurrent.Executor); } - public class ConcurrentHashMap extends java.util.AbstractMap implements java.util.concurrent.ConcurrentMap java.io.Serializable { + public class ConcurrentHashMap extends java.util.AbstractMap implements java.util.concurrent.ConcurrentMap java.io.Serializable { ctor public ConcurrentHashMap(); ctor public ConcurrentHashMap(int); ctor public ConcurrentHashMap(java.util.Map); @@ -59568,29 +59568,29 @@ package java.util.concurrent { method public java.util.Set> entrySet(); method public void forEach(java.util.function.BiConsumer); method public void forEach(long, java.util.function.BiConsumer); - method public void forEach(long, java.util.function.BiFunction, java.util.function.Consumer); + method public void forEach(long, java.util.function.BiFunction, java.util.function.Consumer); method public void forEachEntry(long, java.util.function.Consumer>); - method public void forEachEntry(long, java.util.function.Function, ? extends U>, java.util.function.Consumer); + method public void forEachEntry(long, java.util.function.Function, ? extends U>, java.util.function.Consumer); method public void forEachKey(long, java.util.function.Consumer); - method public void forEachKey(long, java.util.function.Function, java.util.function.Consumer); + method public void forEachKey(long, java.util.function.Function, java.util.function.Consumer); method public void forEachValue(long, java.util.function.Consumer); - method public void forEachValue(long, java.util.function.Function, java.util.function.Consumer); + method public void forEachValue(long, java.util.function.Function, java.util.function.Consumer); method public V getOrDefault(java.lang.Object, V); method public java.util.concurrent.ConcurrentHashMap.KeySetView keySet(V); method public java.util.Enumeration keys(); method public long mappingCount(); method public V merge(K, V, java.util.function.BiFunction); - method public static java.util.concurrent.ConcurrentHashMap.KeySetView newKeySet(); - method public static java.util.concurrent.ConcurrentHashMap.KeySetView newKeySet(int); + method public static java.util.concurrent.ConcurrentHashMap.KeySetView newKeySet(); + method public static java.util.concurrent.ConcurrentHashMap.KeySetView newKeySet(int); method public V putIfAbsent(K, V); - method public U reduce(long, java.util.function.BiFunction, java.util.function.BiFunction); + method public U reduce(long, java.util.function.BiFunction, java.util.function.BiFunction); method public java.util.Map.Entry reduceEntries(long, java.util.function.BiFunction, java.util.Map.Entry, ? extends java.util.Map.Entry>); - method public U reduceEntries(long, java.util.function.Function, ? extends U>, java.util.function.BiFunction); + method public U reduceEntries(long, java.util.function.Function, ? extends U>, java.util.function.BiFunction); method public double reduceEntriesToDouble(long, java.util.function.ToDoubleFunction>, double, java.util.function.DoubleBinaryOperator); method public int reduceEntriesToInt(long, java.util.function.ToIntFunction>, int, java.util.function.IntBinaryOperator); method public long reduceEntriesToLong(long, java.util.function.ToLongFunction>, long, java.util.function.LongBinaryOperator); method public K reduceKeys(long, java.util.function.BiFunction); - method public U reduceKeys(long, java.util.function.Function, java.util.function.BiFunction); + method public U reduceKeys(long, java.util.function.Function, java.util.function.BiFunction); method public double reduceKeysToDouble(long, java.util.function.ToDoubleFunction, double, java.util.function.DoubleBinaryOperator); method public int reduceKeysToInt(long, java.util.function.ToIntFunction, int, java.util.function.IntBinaryOperator); method public long reduceKeysToLong(long, java.util.function.ToLongFunction, long, java.util.function.LongBinaryOperator); @@ -59598,7 +59598,7 @@ package java.util.concurrent { method public int reduceToInt(long, java.util.function.ToIntBiFunction, int, java.util.function.IntBinaryOperator); method public long reduceToLong(long, java.util.function.ToLongBiFunction, long, java.util.function.LongBinaryOperator); method public V reduceValues(long, java.util.function.BiFunction); - method public U reduceValues(long, java.util.function.Function, java.util.function.BiFunction); + method public U reduceValues(long, java.util.function.Function, java.util.function.BiFunction); method public double reduceValuesToDouble(long, java.util.function.ToDoubleFunction, double, java.util.function.DoubleBinaryOperator); method public int reduceValuesToInt(long, java.util.function.ToIntFunction, int, java.util.function.IntBinaryOperator); method public long reduceValuesToLong(long, java.util.function.ToLongFunction, long, java.util.function.LongBinaryOperator); @@ -59606,13 +59606,13 @@ package java.util.concurrent { method public boolean replace(K, V, V); method public V replace(K, V); method public void replaceAll(java.util.function.BiFunction); - method public U search(long, java.util.function.BiFunction); - method public U searchEntries(long, java.util.function.Function, ? extends U>); - method public U searchKeys(long, java.util.function.Function); - method public U searchValues(long, java.util.function.Function); + method public U search(long, java.util.function.BiFunction); + method public U searchEntries(long, java.util.function.Function, ? extends U>); + method public U searchKeys(long, java.util.function.Function); + method public U searchValues(long, java.util.function.Function); } - static abstract class ConcurrentHashMap.CollectionView implements java.util.Collection java.io.Serializable { + static abstract class ConcurrentHashMap.CollectionView implements java.util.Collection java.io.Serializable { method public final void clear(); method public abstract boolean contains(java.lang.Object); method public final boolean containsAll(java.util.Collection); @@ -59624,11 +59624,11 @@ package java.util.concurrent { method public final boolean retainAll(java.util.Collection); method public final int size(); method public final java.lang.Object[] toArray(); - method public final T[] toArray(T[]); + method public final T[] toArray(T[]); method public final java.lang.String toString(); } - public static class ConcurrentHashMap.KeySetView extends java.util.concurrent.ConcurrentHashMap.CollectionView implements java.io.Serializable java.util.Set { + public static class ConcurrentHashMap.KeySetView extends java.util.concurrent.ConcurrentHashMap.CollectionView implements java.io.Serializable java.util.Set { method public boolean add(K); method public boolean addAll(java.util.Collection); method public boolean contains(java.lang.Object); @@ -59639,7 +59639,7 @@ package java.util.concurrent { method public java.util.Spliterator spliterator(); } - public class ConcurrentLinkedDeque extends java.util.AbstractCollection implements java.util.Deque java.io.Serializable { + public class ConcurrentLinkedDeque extends java.util.AbstractCollection implements java.util.Deque java.io.Serializable { ctor public ConcurrentLinkedDeque(); ctor public ConcurrentLinkedDeque(java.util.Collection); method public void addFirst(E); @@ -59669,7 +59669,7 @@ package java.util.concurrent { method public java.util.Spliterator spliterator(); } - public class ConcurrentLinkedQueue extends java.util.AbstractQueue implements java.util.Queue java.io.Serializable { + public class ConcurrentLinkedQueue extends java.util.AbstractQueue implements java.util.Queue java.io.Serializable { ctor public ConcurrentLinkedQueue(); ctor public ConcurrentLinkedQueue(java.util.Collection); method public java.util.Iterator iterator(); @@ -59680,14 +59680,14 @@ package java.util.concurrent { method public java.util.Spliterator spliterator(); } - public abstract interface ConcurrentMap implements java.util.Map { + public abstract interface ConcurrentMap implements java.util.Map { method public abstract V putIfAbsent(K, V); method public abstract boolean remove(java.lang.Object, java.lang.Object); method public abstract boolean replace(K, V, V); method public abstract V replace(K, V); } - public abstract interface ConcurrentNavigableMap implements java.util.concurrent.ConcurrentMap java.util.NavigableMap { + public abstract interface ConcurrentNavigableMap implements java.util.concurrent.ConcurrentMap java.util.NavigableMap { method public abstract java.util.NavigableSet descendingKeySet(); method public abstract java.util.concurrent.ConcurrentNavigableMap descendingMap(); method public abstract java.util.concurrent.ConcurrentNavigableMap headMap(K, boolean); @@ -59700,7 +59700,7 @@ package java.util.concurrent { method public abstract java.util.concurrent.ConcurrentNavigableMap tailMap(K); } - public class ConcurrentSkipListMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.concurrent.ConcurrentNavigableMap java.io.Serializable { + public class ConcurrentSkipListMap extends java.util.AbstractMap implements java.lang.Cloneable java.util.concurrent.ConcurrentNavigableMap java.io.Serializable { ctor public ConcurrentSkipListMap(); ctor public ConcurrentSkipListMap(java.util.Comparator); ctor public ConcurrentSkipListMap(java.util.Map); @@ -59744,7 +59744,7 @@ package java.util.concurrent { method public java.util.concurrent.ConcurrentNavigableMap tailMap(K); } - public class ConcurrentSkipListSet extends java.util.AbstractSet implements java.lang.Cloneable java.util.NavigableSet java.io.Serializable { + public class ConcurrentSkipListSet extends java.util.AbstractSet implements java.lang.Cloneable java.util.NavigableSet java.io.Serializable { ctor public ConcurrentSkipListSet(); ctor public ConcurrentSkipListSet(java.util.Comparator); ctor public ConcurrentSkipListSet(java.util.Collection); @@ -59772,7 +59772,7 @@ package java.util.concurrent { method public java.util.NavigableSet tailSet(E); } - public class CopyOnWriteArrayList implements java.lang.Cloneable java.util.List java.util.RandomAccess java.io.Serializable { + public class CopyOnWriteArrayList implements java.lang.Cloneable java.util.List java.util.RandomAccess java.io.Serializable { ctor public CopyOnWriteArrayList(); ctor public CopyOnWriteArrayList(java.util.Collection); ctor public CopyOnWriteArrayList(E[]); @@ -59804,10 +59804,10 @@ package java.util.concurrent { method public int size(); method public java.util.List subList(int, int); method public java.lang.Object[] toArray(); - method public T[] toArray(T[]); + method public T[] toArray(T[]); } - public class CopyOnWriteArraySet extends java.util.AbstractSet implements java.io.Serializable { + public class CopyOnWriteArraySet extends java.util.AbstractSet implements java.io.Serializable { ctor public CopyOnWriteArraySet(); ctor public CopyOnWriteArraySet(java.util.Collection); method public void forEach(java.util.function.Consumer); @@ -59825,7 +59825,7 @@ package java.util.concurrent { method public long getCount(); } - public abstract class CountedCompleter extends java.util.concurrent.ForkJoinTask { + public abstract class CountedCompleter extends java.util.concurrent.ForkJoinTask { ctor protected CountedCompleter(java.util.concurrent.CountedCompleter, int); ctor protected CountedCompleter(java.util.concurrent.CountedCompleter); ctor protected CountedCompleter(); @@ -59862,7 +59862,7 @@ package java.util.concurrent { method public void reset(); } - public class DelayQueue extends java.util.AbstractQueue implements java.util.concurrent.BlockingQueue { + public class DelayQueue extends java.util.AbstractQueue implements java.util.concurrent.BlockingQueue { ctor public DelayQueue(); ctor public DelayQueue(java.util.Collection); method public int drainTo(java.util.Collection); @@ -59883,7 +59883,7 @@ package java.util.concurrent { method public abstract long getDelay(java.util.concurrent.TimeUnit); } - public class Exchanger { + public class Exchanger { ctor public Exchanger(); method public V exchange(V) throws java.lang.InterruptedException; method public V exchange(V, long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException, java.util.concurrent.TimeoutException; @@ -59900,7 +59900,7 @@ package java.util.concurrent { method public abstract void execute(java.lang.Runnable); } - public class ExecutorCompletionService implements java.util.concurrent.CompletionService { + public class ExecutorCompletionService implements java.util.concurrent.CompletionService { ctor public ExecutorCompletionService(java.util.concurrent.Executor); ctor public ExecutorCompletionService(java.util.concurrent.Executor, java.util.concurrent.BlockingQueue>); method public java.util.concurrent.Future poll(); @@ -59912,21 +59912,21 @@ package java.util.concurrent { public abstract interface ExecutorService implements java.util.concurrent.Executor { method public abstract boolean awaitTermination(long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException; - method public abstract java.util.List> invokeAll(java.util.Collection>) throws java.lang.InterruptedException; - method public abstract java.util.List> invokeAll(java.util.Collection>, long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException; - method public abstract T invokeAny(java.util.Collection>) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException; - method public abstract T invokeAny(java.util.Collection>, long, java.util.concurrent.TimeUnit) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException, java.util.concurrent.TimeoutException; + method public abstract java.util.List> invokeAll(java.util.Collection>) throws java.lang.InterruptedException; + method public abstract java.util.List> invokeAll(java.util.Collection>, long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException; + method public abstract T invokeAny(java.util.Collection>) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException; + method public abstract T invokeAny(java.util.Collection>, long, java.util.concurrent.TimeUnit) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException, java.util.concurrent.TimeoutException; method public abstract boolean isShutdown(); method public abstract boolean isTerminated(); method public abstract void shutdown(); method public abstract java.util.List shutdownNow(); - method public abstract java.util.concurrent.Future submit(java.util.concurrent.Callable); - method public abstract java.util.concurrent.Future submit(java.lang.Runnable, T); + method public abstract java.util.concurrent.Future submit(java.util.concurrent.Callable); + method public abstract java.util.concurrent.Future submit(java.lang.Runnable, T); method public abstract java.util.concurrent.Future submit(java.lang.Runnable); } public class Executors { - method public static java.util.concurrent.Callable callable(java.lang.Runnable, T); + method public static java.util.concurrent.Callable callable(java.lang.Runnable, T); method public static java.util.concurrent.Callable callable(java.lang.Runnable); method public static java.util.concurrent.Callable callable(java.security.PrivilegedAction); method public static java.util.concurrent.Callable callable(java.security.PrivilegedExceptionAction); @@ -59943,8 +59943,8 @@ package java.util.concurrent { method public static java.util.concurrent.ScheduledExecutorService newSingleThreadScheduledExecutor(java.util.concurrent.ThreadFactory); method public static java.util.concurrent.ExecutorService newWorkStealingPool(int); method public static java.util.concurrent.ExecutorService newWorkStealingPool(); - method public static java.util.concurrent.Callable privilegedCallable(java.util.concurrent.Callable); - method public static java.util.concurrent.Callable privilegedCallableUsingCurrentClassLoader(java.util.concurrent.Callable); + method public static java.util.concurrent.Callable privilegedCallable(java.util.concurrent.Callable); + method public static java.util.concurrent.Callable privilegedCallableUsingCurrentClassLoader(java.util.concurrent.Callable); method public static java.util.concurrent.ThreadFactory privilegedThreadFactory(); method public static java.util.concurrent.ExecutorService unconfigurableExecutorService(java.util.concurrent.ExecutorService); method public static java.util.concurrent.ScheduledExecutorService unconfigurableScheduledExecutorService(java.util.concurrent.ScheduledExecutorService); @@ -59972,7 +59972,7 @@ package java.util.concurrent { method public long getStealCount(); method public java.lang.Thread.UncaughtExceptionHandler getUncaughtExceptionHandler(); method public boolean hasQueuedSubmissions(); - method public T invoke(java.util.concurrent.ForkJoinTask); + method public T invoke(java.util.concurrent.ForkJoinTask); method public boolean isQuiescent(); method public boolean isShutdown(); method public boolean isTerminated(); @@ -59981,7 +59981,7 @@ package java.util.concurrent { method protected java.util.concurrent.ForkJoinTask pollSubmission(); method public void shutdown(); method public java.util.List shutdownNow(); - method public java.util.concurrent.ForkJoinTask submit(java.util.concurrent.ForkJoinTask); + method public java.util.concurrent.ForkJoinTask submit(java.util.concurrent.ForkJoinTask); field public static final java.util.concurrent.ForkJoinPool.ForkJoinWorkerThreadFactory defaultForkJoinWorkerThreadFactory; } @@ -59994,11 +59994,11 @@ package java.util.concurrent { method public abstract boolean isReleasable(); } - public abstract class ForkJoinTask implements java.util.concurrent.Future java.io.Serializable { + public abstract class ForkJoinTask implements java.util.concurrent.Future java.io.Serializable { ctor public ForkJoinTask(); method public static java.util.concurrent.ForkJoinTask adapt(java.lang.Runnable); - method public static java.util.concurrent.ForkJoinTask adapt(java.lang.Runnable, T); - method public static java.util.concurrent.ForkJoinTask adapt(java.util.concurrent.Callable); + method public static java.util.concurrent.ForkJoinTask adapt(java.lang.Runnable, T); + method public static java.util.concurrent.ForkJoinTask adapt(java.util.concurrent.Callable); method public boolean cancel(boolean); method public final boolean compareAndSetForkJoinTaskTag(short, short); method public void complete(V); @@ -60018,7 +60018,7 @@ package java.util.concurrent { method public final V invoke(); method public static void invokeAll(java.util.concurrent.ForkJoinTask, java.util.concurrent.ForkJoinTask); method public static void invokeAll(java.util.concurrent.ForkJoinTask...); - method public static java.util.Collection invokeAll(java.util.Collection); + method public static > java.util.Collection invokeAll(java.util.Collection); method public final boolean isCancelled(); method public final boolean isCompletedAbnormally(); method public final boolean isCompletedNormally(); @@ -60044,7 +60044,7 @@ package java.util.concurrent { method protected void onTermination(java.lang.Throwable); } - public abstract interface Future { + public abstract interface Future { method public abstract boolean cancel(boolean); method public abstract V get() throws java.util.concurrent.ExecutionException, java.lang.InterruptedException; method public abstract V get(long, java.util.concurrent.TimeUnit) throws java.util.concurrent.ExecutionException, java.lang.InterruptedException, java.util.concurrent.TimeoutException; @@ -60052,7 +60052,7 @@ package java.util.concurrent { method public abstract boolean isDone(); } - public class FutureTask implements java.util.concurrent.RunnableFuture { + public class FutureTask implements java.util.concurrent.RunnableFuture { ctor public FutureTask(java.util.concurrent.Callable); ctor public FutureTask(java.lang.Runnable, V); method public boolean cancel(boolean); @@ -60067,7 +60067,7 @@ package java.util.concurrent { method protected void setException(java.lang.Throwable); } - public class LinkedBlockingDeque extends java.util.AbstractQueue implements java.util.concurrent.BlockingDeque java.io.Serializable { + public class LinkedBlockingDeque extends java.util.AbstractQueue implements java.util.concurrent.BlockingDeque java.io.Serializable { ctor public LinkedBlockingDeque(); ctor public LinkedBlockingDeque(int); ctor public LinkedBlockingDeque(java.util.Collection); @@ -60111,7 +60111,7 @@ package java.util.concurrent { method public E takeLast() throws java.lang.InterruptedException; } - public class LinkedBlockingQueue extends java.util.AbstractQueue implements java.util.concurrent.BlockingQueue java.io.Serializable { + public class LinkedBlockingQueue extends java.util.AbstractQueue implements java.util.concurrent.BlockingQueue java.io.Serializable { ctor public LinkedBlockingQueue(); ctor public LinkedBlockingQueue(int); ctor public LinkedBlockingQueue(java.util.Collection); @@ -60130,7 +60130,7 @@ package java.util.concurrent { method public E take() throws java.lang.InterruptedException; } - public class LinkedTransferQueue extends java.util.AbstractQueue implements java.io.Serializable java.util.concurrent.TransferQueue { + public class LinkedTransferQueue extends java.util.AbstractQueue implements java.io.Serializable java.util.concurrent.TransferQueue { ctor public LinkedTransferQueue(); ctor public LinkedTransferQueue(java.util.Collection); method public int drainTo(java.util.Collection); @@ -60177,7 +60177,7 @@ package java.util.concurrent { method public int register(); } - public class PriorityBlockingQueue extends java.util.AbstractQueue implements java.util.concurrent.BlockingQueue java.io.Serializable { + public class PriorityBlockingQueue extends java.util.AbstractQueue implements java.util.concurrent.BlockingQueue java.io.Serializable { ctor public PriorityBlockingQueue(); ctor public PriorityBlockingQueue(int); ctor public PriorityBlockingQueue(int, java.util.Comparator); @@ -60206,7 +60206,7 @@ package java.util.concurrent { method protected final void setRawResult(java.lang.Void); } - public abstract class RecursiveTask extends java.util.concurrent.ForkJoinTask { + public abstract class RecursiveTask extends java.util.concurrent.ForkJoinTask { ctor public RecursiveTask(); method protected abstract V compute(); method protected final boolean exec(); @@ -60225,22 +60225,22 @@ package java.util.concurrent { method public abstract void rejectedExecution(java.lang.Runnable, java.util.concurrent.ThreadPoolExecutor); } - public abstract interface RunnableFuture implements java.util.concurrent.Future java.lang.Runnable { + public abstract interface RunnableFuture implements java.util.concurrent.Future java.lang.Runnable { method public abstract void run(); } - public abstract interface RunnableScheduledFuture implements java.util.concurrent.RunnableFuture java.util.concurrent.ScheduledFuture { + public abstract interface RunnableScheduledFuture implements java.util.concurrent.RunnableFuture java.util.concurrent.ScheduledFuture { method public abstract boolean isPeriodic(); } public abstract interface ScheduledExecutorService implements java.util.concurrent.ExecutorService { method public abstract java.util.concurrent.ScheduledFuture schedule(java.lang.Runnable, long, java.util.concurrent.TimeUnit); - method public abstract java.util.concurrent.ScheduledFuture schedule(java.util.concurrent.Callable, long, java.util.concurrent.TimeUnit); + method public abstract java.util.concurrent.ScheduledFuture schedule(java.util.concurrent.Callable, long, java.util.concurrent.TimeUnit); method public abstract java.util.concurrent.ScheduledFuture scheduleAtFixedRate(java.lang.Runnable, long, long, java.util.concurrent.TimeUnit); method public abstract java.util.concurrent.ScheduledFuture scheduleWithFixedDelay(java.lang.Runnable, long, long, java.util.concurrent.TimeUnit); } - public abstract interface ScheduledFuture implements java.util.concurrent.Delayed java.util.concurrent.Future { + public abstract interface ScheduledFuture implements java.util.concurrent.Delayed java.util.concurrent.Future { } public class ScheduledThreadPoolExecutor extends java.util.concurrent.ThreadPoolExecutor implements java.util.concurrent.ScheduledExecutorService { @@ -60248,13 +60248,13 @@ package java.util.concurrent { ctor public ScheduledThreadPoolExecutor(int, java.util.concurrent.ThreadFactory); ctor public ScheduledThreadPoolExecutor(int, java.util.concurrent.RejectedExecutionHandler); ctor public ScheduledThreadPoolExecutor(int, java.util.concurrent.ThreadFactory, java.util.concurrent.RejectedExecutionHandler); - method protected java.util.concurrent.RunnableScheduledFuture decorateTask(java.lang.Runnable, java.util.concurrent.RunnableScheduledFuture); - method protected java.util.concurrent.RunnableScheduledFuture decorateTask(java.util.concurrent.Callable, java.util.concurrent.RunnableScheduledFuture); + method protected java.util.concurrent.RunnableScheduledFuture decorateTask(java.lang.Runnable, java.util.concurrent.RunnableScheduledFuture); + method protected java.util.concurrent.RunnableScheduledFuture decorateTask(java.util.concurrent.Callable, java.util.concurrent.RunnableScheduledFuture); method public boolean getContinueExistingPeriodicTasksAfterShutdownPolicy(); method public boolean getExecuteExistingDelayedTasksAfterShutdownPolicy(); method public boolean getRemoveOnCancelPolicy(); method public java.util.concurrent.ScheduledFuture schedule(java.lang.Runnable, long, java.util.concurrent.TimeUnit); - method public java.util.concurrent.ScheduledFuture schedule(java.util.concurrent.Callable, long, java.util.concurrent.TimeUnit); + method public java.util.concurrent.ScheduledFuture schedule(java.util.concurrent.Callable, long, java.util.concurrent.TimeUnit); method public java.util.concurrent.ScheduledFuture scheduleAtFixedRate(java.lang.Runnable, long, long, java.util.concurrent.TimeUnit); method public java.util.concurrent.ScheduledFuture scheduleWithFixedDelay(java.lang.Runnable, long, long, java.util.concurrent.TimeUnit); method public void setContinueExistingPeriodicTasksAfterShutdownPolicy(boolean); @@ -60284,7 +60284,7 @@ package java.util.concurrent { method public boolean tryAcquire(int, long, java.util.concurrent.TimeUnit) throws java.lang.InterruptedException; } - public class SynchronousQueue extends java.util.AbstractQueue implements java.util.concurrent.BlockingQueue java.io.Serializable { + public class SynchronousQueue extends java.util.AbstractQueue implements java.util.concurrent.BlockingQueue java.io.Serializable { ctor public SynchronousQueue(); ctor public SynchronousQueue(boolean); method public int drainTo(java.util.Collection); @@ -60402,7 +60402,7 @@ package java.util.concurrent { ctor public TimeoutException(java.lang.String); } - public abstract interface TransferQueue implements java.util.concurrent.BlockingQueue { + public abstract interface TransferQueue implements java.util.concurrent.BlockingQueue { method public abstract int getWaitingConsumerCount(); method public abstract boolean hasWaitingConsumer(); method public abstract void transfer(E) throws java.lang.InterruptedException; @@ -60472,7 +60472,7 @@ package java.util.concurrent.atomic { method public final boolean weakCompareAndSet(int, int, int); } - public abstract class AtomicIntegerFieldUpdater { + public abstract class AtomicIntegerFieldUpdater { ctor protected AtomicIntegerFieldUpdater(); method public final int accumulateAndGet(T, int, java.util.function.IntBinaryOperator); method public int addAndGet(T, int); @@ -60487,7 +60487,7 @@ package java.util.concurrent.atomic { method public final int getAndUpdate(T, java.util.function.IntUnaryOperator); method public int incrementAndGet(T); method public abstract void lazySet(T, int); - method public static java.util.concurrent.atomic.AtomicIntegerFieldUpdater newUpdater(java.lang.Class, java.lang.String); + method public static java.util.concurrent.atomic.AtomicIntegerFieldUpdater newUpdater(java.lang.Class, java.lang.String); method public abstract void set(T, int); method public final int updateAndGet(T, java.util.function.IntUnaryOperator); method public abstract boolean weakCompareAndSet(T, int, int); @@ -60540,7 +60540,7 @@ package java.util.concurrent.atomic { method public final boolean weakCompareAndSet(int, long, long); } - public abstract class AtomicLongFieldUpdater { + public abstract class AtomicLongFieldUpdater { ctor protected AtomicLongFieldUpdater(); method public final long accumulateAndGet(T, long, java.util.function.LongBinaryOperator); method public long addAndGet(T, long); @@ -60555,13 +60555,13 @@ package java.util.concurrent.atomic { method public final long getAndUpdate(T, java.util.function.LongUnaryOperator); method public long incrementAndGet(T); method public abstract void lazySet(T, long); - method public static java.util.concurrent.atomic.AtomicLongFieldUpdater newUpdater(java.lang.Class, java.lang.String); + method public static java.util.concurrent.atomic.AtomicLongFieldUpdater newUpdater(java.lang.Class, java.lang.String); method public abstract void set(T, long); method public final long updateAndGet(T, java.util.function.LongUnaryOperator); method public abstract boolean weakCompareAndSet(T, long, long); } - public class AtomicMarkableReference { + public class AtomicMarkableReference { ctor public AtomicMarkableReference(V, boolean); method public boolean attemptMark(V, boolean); method public boolean compareAndSet(V, V, boolean, boolean); @@ -60572,7 +60572,7 @@ package java.util.concurrent.atomic { method public boolean weakCompareAndSet(V, V, boolean, boolean); } - public class AtomicReference implements java.io.Serializable { + public class AtomicReference implements java.io.Serializable { ctor public AtomicReference(V); ctor public AtomicReference(); method public final V accumulateAndGet(V, java.util.function.BinaryOperator); @@ -60587,7 +60587,7 @@ package java.util.concurrent.atomic { method public final boolean weakCompareAndSet(V, V); } - public class AtomicReferenceArray implements java.io.Serializable { + public class AtomicReferenceArray implements java.io.Serializable { ctor public AtomicReferenceArray(int); ctor public AtomicReferenceArray(E[]); method public final E accumulateAndGet(int, E, java.util.function.BinaryOperator); @@ -60603,7 +60603,7 @@ package java.util.concurrent.atomic { method public final boolean weakCompareAndSet(int, E, E); } - public abstract class AtomicReferenceFieldUpdater { + public abstract class AtomicReferenceFieldUpdater { ctor protected AtomicReferenceFieldUpdater(); method public final V accumulateAndGet(T, V, java.util.function.BinaryOperator); method public abstract boolean compareAndSet(T, V, V); @@ -60612,13 +60612,13 @@ package java.util.concurrent.atomic { method public V getAndSet(T, V); method public final V getAndUpdate(T, java.util.function.UnaryOperator); method public abstract void lazySet(T, V); - method public static java.util.concurrent.atomic.AtomicReferenceFieldUpdater newUpdater(java.lang.Class, java.lang.Class, java.lang.String); + method public static java.util.concurrent.atomic.AtomicReferenceFieldUpdater newUpdater(java.lang.Class, java.lang.Class, java.lang.String); method public abstract void set(T, V); method public final V updateAndGet(T, java.util.function.UnaryOperator); method public abstract boolean weakCompareAndSet(T, V, V); } - public class AtomicStampedReference { + public class AtomicStampedReference { ctor public AtomicStampedReference(V, int); method public boolean attemptStamp(V, int); method public boolean compareAndSet(V, V, int, int); @@ -60921,33 +60921,33 @@ package java.util.concurrent.locks { package java.util.function { - public abstract interface BiConsumer { + public abstract interface BiConsumer { method public abstract void accept(T, U); method public default java.util.function.BiConsumer andThen(java.util.function.BiConsumer); } - public abstract interface BiFunction { - method public default java.util.function.BiFunction andThen(java.util.function.Function); + public abstract interface BiFunction { + method public default java.util.function.BiFunction andThen(java.util.function.Function); method public abstract R apply(T, U); } - public abstract interface BiPredicate { + public abstract interface BiPredicate { method public default java.util.function.BiPredicate and(java.util.function.BiPredicate); method public default java.util.function.BiPredicate negate(); method public default java.util.function.BiPredicate or(java.util.function.BiPredicate); method public abstract boolean test(T, U); } - public abstract interface BinaryOperator implements java.util.function.BiFunction { - method public static java.util.function.BinaryOperator maxBy(java.util.Comparator); - method public static java.util.function.BinaryOperator minBy(java.util.Comparator); + public abstract interface BinaryOperator implements java.util.function.BiFunction { + method public static java.util.function.BinaryOperator maxBy(java.util.Comparator); + method public static java.util.function.BinaryOperator minBy(java.util.Comparator); } public abstract interface BooleanSupplier { method public abstract boolean getAsBoolean(); } - public abstract interface Consumer { + public abstract interface Consumer { method public abstract void accept(T); method public default java.util.function.Consumer andThen(java.util.function.Consumer); } @@ -60961,7 +60961,7 @@ package java.util.function { method public default java.util.function.DoubleConsumer andThen(java.util.function.DoubleConsumer); } - public abstract interface DoubleFunction { + public abstract interface DoubleFunction { method public abstract R apply(double); } @@ -60991,11 +60991,11 @@ package java.util.function { method public static java.util.function.DoubleUnaryOperator identity(); } - public abstract interface Function { - method public default java.util.function.Function andThen(java.util.function.Function); + public abstract interface Function { + method public default java.util.function.Function andThen(java.util.function.Function); method public abstract R apply(T); - method public default java.util.function.Function compose(java.util.function.Function); - method public static java.util.function.Function identity(); + method public default java.util.function.Function compose(java.util.function.Function); + method public static java.util.function.Function identity(); } public abstract interface IntBinaryOperator { @@ -61007,7 +61007,7 @@ package java.util.function { method public default java.util.function.IntConsumer andThen(java.util.function.IntConsumer); } - public abstract interface IntFunction { + public abstract interface IntFunction { method public abstract R apply(int); } @@ -61046,7 +61046,7 @@ package java.util.function { method public default java.util.function.LongConsumer andThen(java.util.function.LongConsumer); } - public abstract interface LongFunction { + public abstract interface LongFunction { method public abstract R apply(long); } @@ -61076,56 +61076,56 @@ package java.util.function { method public static java.util.function.LongUnaryOperator identity(); } - public abstract interface ObjDoubleConsumer { + public abstract interface ObjDoubleConsumer { method public abstract void accept(T, double); } - public abstract interface ObjIntConsumer { + public abstract interface ObjIntConsumer { method public abstract void accept(T, int); } - public abstract interface ObjLongConsumer { + public abstract interface ObjLongConsumer { method public abstract void accept(T, long); } - public abstract interface Predicate { + public abstract interface Predicate { method public default java.util.function.Predicate and(java.util.function.Predicate); - method public static java.util.function.Predicate isEqual(java.lang.Object); + method public static java.util.function.Predicate isEqual(java.lang.Object); method public default java.util.function.Predicate negate(); method public default java.util.function.Predicate or(java.util.function.Predicate); method public abstract boolean test(T); } - public abstract interface Supplier { + public abstract interface Supplier { method public abstract T get(); } - public abstract interface ToDoubleBiFunction { + public abstract interface ToDoubleBiFunction { method public abstract double applyAsDouble(T, U); } - public abstract interface ToDoubleFunction { + public abstract interface ToDoubleFunction { method public abstract double applyAsDouble(T); } - public abstract interface ToIntBiFunction { + public abstract interface ToIntBiFunction { method public abstract int applyAsInt(T, U); } - public abstract interface ToIntFunction { + public abstract interface ToIntFunction { method public abstract int applyAsInt(T); } - public abstract interface ToLongBiFunction { + public abstract interface ToLongBiFunction { method public abstract long applyAsLong(T, U); } - public abstract interface ToLongFunction { + public abstract interface ToLongFunction { method public abstract long applyAsLong(T); } - public abstract interface UnaryOperator implements java.util.function.Function { - method public static java.util.function.UnaryOperator identity(); + public abstract interface UnaryOperator implements java.util.function.Function { + method public static java.util.function.UnaryOperator identity(); } } @@ -61713,7 +61713,7 @@ package java.util.regex { package java.util.stream { - public abstract interface BaseStream implements java.lang.AutoCloseable { + public abstract interface BaseStream> implements java.lang.AutoCloseable { method public abstract void close(); method public abstract boolean isParallel(); method public abstract java.util.Iterator iterator(); @@ -61724,13 +61724,13 @@ package java.util.stream { method public abstract S unordered(); } - public abstract interface Collector { + public abstract interface Collector { method public abstract java.util.function.BiConsumer accumulator(); method public abstract java.util.Set characteristics(); method public abstract java.util.function.BinaryOperator combiner(); method public abstract java.util.function.Function finisher(); - method public static java.util.stream.Collector of(java.util.function.Supplier, java.util.function.BiConsumer, java.util.function.BinaryOperator, java.util.stream.Collector.Characteristics...); - method public static java.util.stream.Collector of(java.util.function.Supplier, java.util.function.BiConsumer, java.util.function.BinaryOperator, java.util.function.Function, java.util.stream.Collector.Characteristics...); + method public static java.util.stream.Collector of(java.util.function.Supplier, java.util.function.BiConsumer, java.util.function.BinaryOperator, java.util.stream.Collector.Characteristics...); + method public static java.util.stream.Collector of(java.util.function.Supplier, java.util.function.BiConsumer, java.util.function.BinaryOperator, java.util.function.Function, java.util.stream.Collector.Characteristics...); method public abstract java.util.function.Supplier supplier(); } @@ -61743,43 +61743,43 @@ package java.util.stream { } public final class Collectors { - method public static java.util.stream.Collector averagingDouble(java.util.function.ToDoubleFunction); - method public static java.util.stream.Collector averagingInt(java.util.function.ToIntFunction); - method public static java.util.stream.Collector averagingLong(java.util.function.ToLongFunction); - method public static java.util.stream.Collector collectingAndThen(java.util.stream.Collector, java.util.function.Function); - method public static java.util.stream.Collector counting(); - method public static java.util.stream.Collector>> groupingBy(java.util.function.Function); - method public static java.util.stream.Collector> groupingBy(java.util.function.Function, java.util.stream.Collector); - method public static java.util.stream.Collector groupingBy(java.util.function.Function, java.util.function.Supplier, java.util.stream.Collector); - method public static java.util.stream.Collector>> groupingByConcurrent(java.util.function.Function); - method public static java.util.stream.Collector> groupingByConcurrent(java.util.function.Function, java.util.stream.Collector); - method public static java.util.stream.Collector groupingByConcurrent(java.util.function.Function, java.util.function.Supplier, java.util.stream.Collector); + method public static java.util.stream.Collector averagingDouble(java.util.function.ToDoubleFunction); + method public static java.util.stream.Collector averagingInt(java.util.function.ToIntFunction); + method public static java.util.stream.Collector averagingLong(java.util.function.ToLongFunction); + method public static java.util.stream.Collector collectingAndThen(java.util.stream.Collector, java.util.function.Function); + method public static java.util.stream.Collector counting(); + method public static java.util.stream.Collector>> groupingBy(java.util.function.Function); + method public static java.util.stream.Collector> groupingBy(java.util.function.Function, java.util.stream.Collector); + method public static > java.util.stream.Collector groupingBy(java.util.function.Function, java.util.function.Supplier, java.util.stream.Collector); + method public static java.util.stream.Collector>> groupingByConcurrent(java.util.function.Function); + method public static java.util.stream.Collector> groupingByConcurrent(java.util.function.Function, java.util.stream.Collector); + method public static > java.util.stream.Collector groupingByConcurrent(java.util.function.Function, java.util.function.Supplier, java.util.stream.Collector); method public static java.util.stream.Collector joining(); method public static java.util.stream.Collector joining(java.lang.CharSequence); method public static java.util.stream.Collector joining(java.lang.CharSequence, java.lang.CharSequence, java.lang.CharSequence); - method public static java.util.stream.Collector mapping(java.util.function.Function, java.util.stream.Collector); - method public static java.util.stream.Collector> maxBy(java.util.Comparator); - method public static java.util.stream.Collector> minBy(java.util.Comparator); - method public static java.util.stream.Collector>> partitioningBy(java.util.function.Predicate); - method public static java.util.stream.Collector> partitioningBy(java.util.function.Predicate, java.util.stream.Collector); - method public static java.util.stream.Collector reducing(T, java.util.function.BinaryOperator); - method public static java.util.stream.Collector> reducing(java.util.function.BinaryOperator); - method public static java.util.stream.Collector reducing(U, java.util.function.Function, java.util.function.BinaryOperator); - method public static java.util.stream.Collector summarizingDouble(java.util.function.ToDoubleFunction); - method public static java.util.stream.Collector summarizingInt(java.util.function.ToIntFunction); - method public static java.util.stream.Collector summarizingLong(java.util.function.ToLongFunction); - method public static java.util.stream.Collector summingDouble(java.util.function.ToDoubleFunction); - method public static java.util.stream.Collector summingInt(java.util.function.ToIntFunction); - method public static java.util.stream.Collector summingLong(java.util.function.ToLongFunction); - method public static java.util.stream.Collector toCollection(java.util.function.Supplier); - method public static java.util.stream.Collector> toConcurrentMap(java.util.function.Function, java.util.function.Function); - method public static java.util.stream.Collector> toConcurrentMap(java.util.function.Function, java.util.function.Function, java.util.function.BinaryOperator); - method public static java.util.stream.Collector toConcurrentMap(java.util.function.Function, java.util.function.Function, java.util.function.BinaryOperator, java.util.function.Supplier); - method public static java.util.stream.Collector> toList(); - method public static java.util.stream.Collector> toMap(java.util.function.Function, java.util.function.Function); - method public static java.util.stream.Collector> toMap(java.util.function.Function, java.util.function.Function, java.util.function.BinaryOperator); - method public static java.util.stream.Collector toMap(java.util.function.Function, java.util.function.Function, java.util.function.BinaryOperator, java.util.function.Supplier); - method public static java.util.stream.Collector> toSet(); + method public static java.util.stream.Collector mapping(java.util.function.Function, java.util.stream.Collector); + method public static java.util.stream.Collector> maxBy(java.util.Comparator); + method public static java.util.stream.Collector> minBy(java.util.Comparator); + method public static java.util.stream.Collector>> partitioningBy(java.util.function.Predicate); + method public static java.util.stream.Collector> partitioningBy(java.util.function.Predicate, java.util.stream.Collector); + method public static java.util.stream.Collector reducing(T, java.util.function.BinaryOperator); + method public static java.util.stream.Collector> reducing(java.util.function.BinaryOperator); + method public static java.util.stream.Collector reducing(U, java.util.function.Function, java.util.function.BinaryOperator); + method public static java.util.stream.Collector summarizingDouble(java.util.function.ToDoubleFunction); + method public static java.util.stream.Collector summarizingInt(java.util.function.ToIntFunction); + method public static java.util.stream.Collector summarizingLong(java.util.function.ToLongFunction); + method public static java.util.stream.Collector summingDouble(java.util.function.ToDoubleFunction); + method public static java.util.stream.Collector summingInt(java.util.function.ToIntFunction); + method public static java.util.stream.Collector summingLong(java.util.function.ToLongFunction); + method public static > java.util.stream.Collector toCollection(java.util.function.Supplier); + method public static java.util.stream.Collector> toConcurrentMap(java.util.function.Function, java.util.function.Function); + method public static java.util.stream.Collector> toConcurrentMap(java.util.function.Function, java.util.function.Function, java.util.function.BinaryOperator); + method public static > java.util.stream.Collector toConcurrentMap(java.util.function.Function, java.util.function.Function, java.util.function.BinaryOperator, java.util.function.Supplier); + method public static java.util.stream.Collector> toList(); + method public static java.util.stream.Collector> toMap(java.util.function.Function, java.util.function.Function); + method public static java.util.stream.Collector> toMap(java.util.function.Function, java.util.function.Function, java.util.function.BinaryOperator); + method public static > java.util.stream.Collector toMap(java.util.function.Function, java.util.function.Function, java.util.function.BinaryOperator, java.util.function.Supplier); + method public static java.util.stream.Collector> toSet(); } public abstract interface DoubleStream implements java.util.stream.BaseStream { @@ -61788,7 +61788,7 @@ package java.util.stream { method public abstract java.util.OptionalDouble average(); method public abstract java.util.stream.Stream boxed(); method public static java.util.stream.DoubleStream.Builder builder(); - method public abstract R collect(java.util.function.Supplier, java.util.function.ObjDoubleConsumer, java.util.function.BiConsumer); + method public abstract R collect(java.util.function.Supplier, java.util.function.ObjDoubleConsumer, java.util.function.BiConsumer); method public static java.util.stream.DoubleStream concat(java.util.stream.DoubleStream, java.util.stream.DoubleStream); method public abstract long count(); method public abstract java.util.stream.DoubleStream distinct(); @@ -61806,7 +61806,7 @@ package java.util.stream { method public abstract java.util.stream.DoubleStream map(java.util.function.DoubleUnaryOperator); method public abstract java.util.stream.IntStream mapToInt(java.util.function.DoubleToIntFunction); method public abstract java.util.stream.LongStream mapToLong(java.util.function.DoubleToLongFunction); - method public abstract java.util.stream.Stream mapToObj(java.util.function.DoubleFunction); + method public abstract java.util.stream.Stream mapToObj(java.util.function.DoubleFunction); method public abstract java.util.OptionalDouble max(); method public abstract java.util.OptionalDouble min(); method public abstract boolean noneMatch(java.util.function.DoublePredicate); @@ -61839,7 +61839,7 @@ package java.util.stream { method public abstract java.util.OptionalDouble average(); method public abstract java.util.stream.Stream boxed(); method public static java.util.stream.IntStream.Builder builder(); - method public abstract R collect(java.util.function.Supplier, java.util.function.ObjIntConsumer, java.util.function.BiConsumer); + method public abstract R collect(java.util.function.Supplier, java.util.function.ObjIntConsumer, java.util.function.BiConsumer); method public static java.util.stream.IntStream concat(java.util.stream.IntStream, java.util.stream.IntStream); method public abstract long count(); method public abstract java.util.stream.IntStream distinct(); @@ -61857,7 +61857,7 @@ package java.util.stream { method public abstract java.util.stream.IntStream map(java.util.function.IntUnaryOperator); method public abstract java.util.stream.DoubleStream mapToDouble(java.util.function.IntToDoubleFunction); method public abstract java.util.stream.LongStream mapToLong(java.util.function.IntToLongFunction); - method public abstract java.util.stream.Stream mapToObj(java.util.function.IntFunction); + method public abstract java.util.stream.Stream mapToObj(java.util.function.IntFunction); method public abstract java.util.OptionalInt max(); method public abstract java.util.OptionalInt min(); method public abstract boolean noneMatch(java.util.function.IntPredicate); @@ -61891,7 +61891,7 @@ package java.util.stream { method public abstract java.util.OptionalDouble average(); method public abstract java.util.stream.Stream boxed(); method public static java.util.stream.LongStream.Builder builder(); - method public abstract R collect(java.util.function.Supplier, java.util.function.ObjLongConsumer, java.util.function.BiConsumer); + method public abstract R collect(java.util.function.Supplier, java.util.function.ObjLongConsumer, java.util.function.BiConsumer); method public static java.util.stream.LongStream concat(java.util.stream.LongStream, java.util.stream.LongStream); method public abstract long count(); method public abstract java.util.stream.LongStream distinct(); @@ -61909,7 +61909,7 @@ package java.util.stream { method public abstract java.util.stream.LongStream map(java.util.function.LongUnaryOperator); method public abstract java.util.stream.DoubleStream mapToDouble(java.util.function.LongToDoubleFunction); method public abstract java.util.stream.IntStream mapToInt(java.util.function.LongToIntFunction); - method public abstract java.util.stream.Stream mapToObj(java.util.function.LongFunction); + method public abstract java.util.stream.Stream mapToObj(java.util.function.LongFunction); method public abstract java.util.OptionalLong max(); method public abstract java.util.OptionalLong min(); method public abstract boolean noneMatch(java.util.function.LongPredicate); @@ -61936,49 +61936,49 @@ package java.util.stream { method public abstract java.util.stream.LongStream build(); } - public abstract interface Stream implements java.util.stream.BaseStream { + public abstract interface Stream implements java.util.stream.BaseStream { method public abstract boolean allMatch(java.util.function.Predicate); method public abstract boolean anyMatch(java.util.function.Predicate); - method public static java.util.stream.Stream.Builder builder(); - method public abstract R collect(java.util.function.Supplier, java.util.function.BiConsumer, java.util.function.BiConsumer); - method public abstract R collect(java.util.stream.Collector); - method public static java.util.stream.Stream concat(java.util.stream.Stream, java.util.stream.Stream); + method public static java.util.stream.Stream.Builder builder(); + method public abstract R collect(java.util.function.Supplier, java.util.function.BiConsumer, java.util.function.BiConsumer); + method public abstract R collect(java.util.stream.Collector); + method public static java.util.stream.Stream concat(java.util.stream.Stream, java.util.stream.Stream); method public abstract long count(); method public abstract java.util.stream.Stream distinct(); - method public static java.util.stream.Stream empty(); + method public static java.util.stream.Stream empty(); method public abstract java.util.stream.Stream filter(java.util.function.Predicate); method public abstract java.util.Optional findAny(); method public abstract java.util.Optional findFirst(); - method public abstract java.util.stream.Stream flatMap(java.util.function.Function>); + method public abstract java.util.stream.Stream flatMap(java.util.function.Function>); method public abstract java.util.stream.DoubleStream flatMapToDouble(java.util.function.Function); method public abstract java.util.stream.IntStream flatMapToInt(java.util.function.Function); method public abstract java.util.stream.LongStream flatMapToLong(java.util.function.Function); method public abstract void forEach(java.util.function.Consumer); method public abstract void forEachOrdered(java.util.function.Consumer); - method public static java.util.stream.Stream generate(java.util.function.Supplier); - method public static java.util.stream.Stream iterate(T, java.util.function.UnaryOperator); + method public static java.util.stream.Stream generate(java.util.function.Supplier); + method public static java.util.stream.Stream iterate(T, java.util.function.UnaryOperator); method public abstract java.util.stream.Stream limit(long); - method public abstract java.util.stream.Stream map(java.util.function.Function); + method public abstract java.util.stream.Stream map(java.util.function.Function); method public abstract java.util.stream.DoubleStream mapToDouble(java.util.function.ToDoubleFunction); method public abstract java.util.stream.IntStream mapToInt(java.util.function.ToIntFunction); method public abstract java.util.stream.LongStream mapToLong(java.util.function.ToLongFunction); method public abstract java.util.Optional max(java.util.Comparator); method public abstract java.util.Optional min(java.util.Comparator); method public abstract boolean noneMatch(java.util.function.Predicate); - method public static java.util.stream.Stream of(T); - method public static java.util.stream.Stream of(T...); + method public static java.util.stream.Stream of(T); + method public static java.util.stream.Stream of(T...); method public abstract java.util.stream.Stream peek(java.util.function.Consumer); method public abstract T reduce(T, java.util.function.BinaryOperator); method public abstract java.util.Optional reduce(java.util.function.BinaryOperator); - method public abstract U reduce(U, java.util.function.BiFunction, java.util.function.BinaryOperator); + method public abstract U reduce(U, java.util.function.BiFunction, java.util.function.BinaryOperator); method public abstract java.util.stream.Stream skip(long); method public abstract java.util.stream.Stream sorted(); method public abstract java.util.stream.Stream sorted(java.util.Comparator); method public abstract java.lang.Object[] toArray(); - method public abstract A[] toArray(java.util.function.IntFunction); + method public abstract A[] toArray(java.util.function.IntFunction); } - public static abstract interface Stream.Builder implements java.util.function.Consumer { + public static abstract interface Stream.Builder implements java.util.function.Consumer { method public abstract void accept(T); method public default java.util.stream.Stream.Builder add(T); method public abstract java.util.stream.Stream build(); @@ -61991,8 +61991,8 @@ package java.util.stream { method public static java.util.stream.IntStream intStream(java.util.function.Supplier, int, boolean); method public static java.util.stream.LongStream longStream(java.util.Spliterator.OfLong, boolean); method public static java.util.stream.LongStream longStream(java.util.function.Supplier, int, boolean); - method public static java.util.stream.Stream stream(java.util.Spliterator, boolean); - method public static java.util.stream.Stream stream(java.util.function.Supplier>, int, boolean); + method public static java.util.stream.Stream stream(java.util.Spliterator, boolean); + method public static java.util.stream.Stream stream(java.util.function.Supplier>, int, boolean); } } @@ -64163,16 +64163,16 @@ package javax.security.auth { public final class Subject implements java.io.Serializable { ctor public Subject(); ctor public Subject(boolean, java.util.Set, java.util.Set, java.util.Set); - method public static T doAs(javax.security.auth.Subject, java.security.PrivilegedAction); - method public static T doAs(javax.security.auth.Subject, java.security.PrivilegedExceptionAction) throws java.security.PrivilegedActionException; - method public static T doAsPrivileged(javax.security.auth.Subject, java.security.PrivilegedAction, java.security.AccessControlContext); - method public static T doAsPrivileged(javax.security.auth.Subject, java.security.PrivilegedExceptionAction, java.security.AccessControlContext) throws java.security.PrivilegedActionException; + method public static T doAs(javax.security.auth.Subject, java.security.PrivilegedAction); + method public static T doAs(javax.security.auth.Subject, java.security.PrivilegedExceptionAction) throws java.security.PrivilegedActionException; + method public static T doAsPrivileged(javax.security.auth.Subject, java.security.PrivilegedAction, java.security.AccessControlContext); + method public static T doAsPrivileged(javax.security.auth.Subject, java.security.PrivilegedExceptionAction, java.security.AccessControlContext) throws java.security.PrivilegedActionException; method public java.util.Set getPrincipals(); - method public java.util.Set getPrincipals(java.lang.Class); + method public java.util.Set getPrincipals(java.lang.Class); method public java.util.Set getPrivateCredentials(); - method public java.util.Set getPrivateCredentials(java.lang.Class); + method public java.util.Set getPrivateCredentials(java.lang.Class); method public java.util.Set getPublicCredentials(); - method public java.util.Set getPublicCredentials(java.lang.Class); + method public java.util.Set getPublicCredentials(java.lang.Class); method public static javax.security.auth.Subject getSubject(java.security.AccessControlContext); method public boolean isReadOnly(); method public void setReadOnly(); -- GitLab From 3d5a4c9eda42605121b4384bd67533d23313a89b Mon Sep 17 00:00:00 2001 From: "smain@google.com" Date: Mon, 12 Sep 2016 12:07:26 -0700 Subject: [PATCH 322/809] add link for how to update the gradle plugin. bug: 23725775 Change-Id: I5338cec2fed09b4b91e063d989b311d027b169ed --- docs/html/topic/libraries/data-binding/index.jd | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/html/topic/libraries/data-binding/index.jd b/docs/html/topic/libraries/data-binding/index.jd index ddcc9f2e7ea8..0faa1db1bf60 100644 --- a/docs/html/topic/libraries/data-binding/index.jd +++ b/docs/html/topic/libraries/data-binding/index.jd @@ -162,7 +162,9 @@ page.tags="databinding", "layouts"

      To use data binding, Android Plugin for Gradle 1.5.0-alpha1 - or higher is required. + or higher is required. See how to update the Android +Plugin for Gradle.

      -- GitLab From a8037fffd3d95822a186b3008825f71eb8b00344 Mon Sep 17 00:00:00 2001 From: Wyatt Riley Date: Thu, 4 Aug 2016 16:10:06 -0700 Subject: [PATCH 323/809] LocationManager - Handle Shutdown for right User Only process a shutdown when it is for all users (whole system), not a single user Change-Id: Id51b7fb4606460462c2f6749e5ac3984bdd8319f Bug: 30646142 (cherry picked from commit 1b24fb17b8613894d6066dcf408e60caf2a56192) --- .../com/android/server/LocationManagerService.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/services/core/java/com/android/server/LocationManagerService.java b/services/core/java/com/android/server/LocationManagerService.java index 36ec2eb9a192..64ca2e3eb3de 100644 --- a/services/core/java/com/android/server/LocationManagerService.java +++ b/services/core/java/com/android/server/LocationManagerService.java @@ -150,7 +150,7 @@ public class LocationManagerService extends ILocationManager.Stub { // used internally for synchronization private final Object mLock = new Object(); - // --- fields below are final after systemReady() --- + // --- fields below are final after systemRunning() --- private LocationFudger mLocationFudger; private GeofenceManager mGeofenceManager; private PackageManager mPackageManager; @@ -168,6 +168,7 @@ public class LocationManagerService extends ILocationManager.Stub { // --- fields below are protected by mLock --- // Set of providers that are explicitly enabled + // Only used by passive, fused & test. Network & GPS are controlled separately, and not listed. private final Set mEnabledProviders = new HashSet(); // Set of providers that are explicitly disabled @@ -236,12 +237,12 @@ public class LocationManagerService extends ILocationManager.Stub { if (D) Log.d(TAG, "Constructed"); - // most startup is deferred until systemReady() + // most startup is deferred until systemRunning() } public void systemRunning() { synchronized (mLock) { - if (D) Log.d(TAG, "systemReady()"); + if (D) Log.d(TAG, "systemRunning()"); // fetch package manager mPackageManager = mContext.getPackageManager(); @@ -321,7 +322,11 @@ public class LocationManagerService extends ILocationManager.Stub { || Intent.ACTION_MANAGED_PROFILE_REMOVED.equals(action)) { updateUserProfiles(mCurrentUserId); } else if (Intent.ACTION_SHUTDOWN.equals(action)) { - shutdownComponents(); + // shutdown only if UserId indicates whole system, not just one user + if(D) Log.d(TAG, "Shutdown received with UserId: " + getSendingUserId()); + if (getSendingUserId() == UserHandle.USER_ALL) { + shutdownComponents(); + } } } }, UserHandle.ALL, intentFilter, null, mLocationHandler); -- GitLab From 9645b0ffda8d328fd563ae9ad611c18a44102930 Mon Sep 17 00:00:00 2001 From: Wale Ogunwale Date: Mon, 12 Sep 2016 10:49:35 -0700 Subject: [PATCH 324/809] Don't try to show crash dialog if lock screen is showing. The crash dialog doesn't show on top of the lock screen so don't try to display the crash dialog in this case so that the process can be killed right way instead of waiting for the user to interact with the crash dialog that isn't visible. Bug: 31395870 Change-Id: Ic1ce9a133ea12cee8a27690004ac3b56cf75808b --- .../java/com/android/server/am/ActivityManagerService.java | 3 ++- services/core/java/com/android/server/am/AppErrors.java | 7 +------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index ab33dbf9f80b..aef4cd87cbde 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -641,7 +641,8 @@ public final class ActivityManagerService extends ActivityManagerNative boolean mDoingSetFocusedActivity; public boolean canShowErrorDialogs() { - return mShowDialogs && !mSleeping && !mShuttingDown; + return mShowDialogs && !mSleeping && !mShuttingDown + && mLockScreenShown != LOCK_SCREEN_SHOWN; } private static final class PriorityState { diff --git a/services/core/java/com/android/server/am/AppErrors.java b/services/core/java/com/android/server/am/AppErrors.java index 576f2b27f111..0c67c75dc3e8 100644 --- a/services/core/java/com/android/server/am/AppErrors.java +++ b/services/core/java/com/android/server/am/AppErrors.java @@ -22,7 +22,6 @@ import com.android.internal.logging.MetricsProto; import com.android.internal.os.ProcessCpuTracker; import com.android.server.Watchdog; -import android.app.Activity; import android.app.ActivityManager; import android.app.ActivityOptions; import android.app.ActivityThread; @@ -33,10 +32,7 @@ import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; import android.content.pm.ApplicationInfo; -import android.content.pm.IPackageDataObserver; -import android.content.pm.PackageManager; import android.os.Binder; -import android.os.Bundle; import android.os.Message; import android.os.Process; import android.os.RemoteException; @@ -59,7 +55,6 @@ import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.Set; -import java.util.concurrent.Semaphore; import static com.android.server.Watchdog.NATIVE_STACKS_OF_INTEREST; import static com.android.server.am.ActivityManagerDebugConfig.DEBUG_ANR; @@ -359,7 +354,7 @@ class AppErrors { return; } - Message msg = Message.obtain(); + final Message msg = Message.obtain(); msg.what = ActivityManagerService.SHOW_ERROR_UI_MSG; task = data.task; -- GitLab From dab38e000436bf8234955b0333eaecf389e65b6f Mon Sep 17 00:00:00 2001 From: Andreas Gampe Date: Fri, 9 Sep 2016 17:50:20 -0700 Subject: [PATCH 325/809] OtaDexopt: Downgrade apps when low on space When running low on space, attempt to "downgrade" apps to lower states in the optimization flow to free up space before starting the OTA. Bug: 31347757 Change-Id: I3a44b106b83d86d7290f4c557267b319f28de12a --- .../android/server/pm/OtaDexoptService.java | 65 ++++++++++++++++--- .../server/pm/PackageManagerServiceUtils.java | 30 ++++----- 2 files changed, 70 insertions(+), 25 deletions(-) diff --git a/services/core/java/com/android/server/pm/OtaDexoptService.java b/services/core/java/com/android/server/pm/OtaDexoptService.java index bff6d2d4786e..756ba5e88c0f 100644 --- a/services/core/java/com/android/server/pm/OtaDexoptService.java +++ b/services/core/java/com/android/server/pm/OtaDexoptService.java @@ -53,6 +53,10 @@ public class OtaDexoptService extends IOtaDexopt.Stub { // The synthetic library dependencies denoting "no checks." private final static String[] NO_LIBRARIES = new String[] { "&" }; + // The amount of "available" (free - low threshold) space necessary at the start of an OTA to + // not bulk-delete unused apps' odex files. + private final static long BULK_DELETE_THRESHOLD = 1024 * 1024 * 1024; // 1GB. + private final Context mContext; private final PackageManagerService mPackageManagerService; @@ -128,6 +132,14 @@ public class OtaDexoptService extends IOtaDexopt.Stub { generatePackageDexopts(p, PackageManagerService.REASON_FIRST_BOOT)); } completeSize = mDexoptCommands.size(); + + if (getAvailableSpace() < BULK_DELETE_THRESHOLD) { + Log.i(TAG, "Low on space, deleting oat files in an attempt to free up space: " + + PackageManagerServiceUtils.packagesToString(others)); + for (PackageParser.Package pkg : others) { + deleteOatArtifactsOfPackage(pkg); + } + } } @Override @@ -169,28 +181,65 @@ public class OtaDexoptService extends IOtaDexopt.Stub { String next = mDexoptCommands.remove(0); - if (IsFreeSpaceAvailable()) { + if (getAvailableSpace() > 0) { return next; } else { + if (DEBUG_DEXOPT) { + Log.w(TAG, "Not enough space for OTA dexopt, stopping with " + + (mDexoptCommands.size() + 1) + " commands left."); + } mDexoptCommands.clear(); return "(no free space)"; } } - /** - * Check for low space. Returns true if there's space left. - */ - private boolean IsFreeSpaceAvailable() { - // TODO: If apps are not installed in the internal /data partition, we should compare - // against that storage's free capacity. + private long getMainLowSpaceThreshold() { File dataDir = Environment.getDataDirectory(); @SuppressWarnings("deprecation") long lowThreshold = StorageManager.from(mContext).getStorageLowBytes(dataDir); if (lowThreshold == 0) { throw new IllegalStateException("Invalid low memory threshold"); } + return lowThreshold; + } + + /** + * Returns the difference of free space to the low-storage-space threshold. Positive values + * indicate free bytes. + */ + private long getAvailableSpace() { + // TODO: If apps are not installed in the internal /data partition, we should compare + // against that storage's free capacity. + long lowThreshold = getMainLowSpaceThreshold(); + + File dataDir = Environment.getDataDirectory(); long usableSpace = dataDir.getUsableSpace(); - return (usableSpace >= lowThreshold); + + return usableSpace - lowThreshold; + } + + private static String getOatDir(PackageParser.Package pkg) { + if (!pkg.canHaveOatDir()) { + return null; + } + File codePath = new File(pkg.codePath); + if (codePath.isDirectory()) { + return PackageDexOptimizer.getOatDir(codePath).getAbsolutePath(); + } + return null; + } + + private void deleteOatArtifactsOfPackage(PackageParser.Package pkg) { + String[] instructionSets = getAppDexInstructionSets(pkg.applicationInfo); + for (String codePath : pkg.getAllCodePaths()) { + for (String isa : instructionSets) { + try { + mPackageManagerService.mInstaller.deleteOdex(codePath, isa, getOatDir(pkg)); + } catch (InstallerException e) { + Log.e(TAG, "Failed deleting oat files for " + codePath, e); + } + } + } } /** diff --git a/services/core/java/com/android/server/pm/PackageManagerServiceUtils.java b/services/core/java/com/android/server/pm/PackageManagerServiceUtils.java index 9a8ebedf105e..cfd0af7635e8 100644 --- a/services/core/java/com/android/server/pm/PackageManagerServiceUtils.java +++ b/services/core/java/com/android/server/pm/PackageManagerServiceUtils.java @@ -168,23 +168,8 @@ public class PackageManagerServiceUtils { packageManagerService); if (DEBUG_DEXOPT) { - StringBuilder sb = new StringBuilder(); - for (PackageParser.Package pkg : result) { - if (sb.length() > 0) { - sb.append(", "); - } - sb.append(pkg.packageName); - } - Log.i(TAG, "Packages to be dexopted: " + sb.toString()); - - sb.setLength(0); - for (PackageParser.Package pkg : remainingPkgs) { - if (sb.length() > 0) { - sb.append(", "); - } - sb.append(pkg.packageName); - } - Log.i(TAG, "Packages skipped from dexopt: " + sb.toString()); + Log.i(TAG, "Packages to be dexopted: " + packagesToString(result)); + Log.i(TAG, "Packages skipped from dexopt: " + packagesToString(remainingPkgs)); } return result; @@ -201,4 +186,15 @@ public class PackageManagerServiceUtils { throw ee.rethrowAsIOException(); } } + + public static String packagesToString(Collection c) { + StringBuilder sb = new StringBuilder(); + for (PackageParser.Package pkg : c) { + if (sb.length() > 0) { + sb.append(", "); + } + sb.append(pkg.packageName); + } + return sb.toString(); + } } -- GitLab From 7ef97b6624054fff0d712d85336a45eee70bcc3f Mon Sep 17 00:00:00 2001 From: Todd Kennedy Date: Fri, 9 Sep 2016 13:58:49 -0700 Subject: [PATCH 326/809] enable instant apps Change-Id: I91aca48efe3d2b0a5035ffdcff0d6a893ee515e1 Fixes: 30256615 --- .../android/server/pm/PackageManagerService.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index d3207cda000f..ded8f38afeb7 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -366,8 +366,8 @@ public class PackageManagerService extends IPackageManager.Stub { static final boolean CLEAR_RUNTIME_PERMISSIONS_ON_UPGRADE = false; - // STOPSHIP; b/30256615 - private static final boolean DISABLE_EPHEMERAL_APPS = !Build.IS_DEBUGGABLE; + private static final boolean DISABLE_EPHEMERAL_APPS = false; + private static final boolean HIDE_EPHEMERAL_APIS = true; private static final int RADIO_UID = Process.PHONE_UID; private static final int LOG_UID = Process.LOG_UID; @@ -6283,7 +6283,7 @@ public class PackageManagerService extends IPackageManager.Stub { @Override public ParceledListSlice getEphemeralApplications(int userId) { - if (isEphemeralDisabled()) { + if (HIDE_EPHEMERAL_APIS || isEphemeralDisabled()) { return null; } @@ -6307,7 +6307,7 @@ public class PackageManagerService extends IPackageManager.Stub { enforceCrossUserPermission(Binder.getCallingUid(), userId, true /* requireFullPermission */, false /* checkShell */, "isEphemeral"); - if (isEphemeralDisabled()) { + if (HIDE_EPHEMERAL_APIS || isEphemeralDisabled()) { return false; } @@ -6325,7 +6325,7 @@ public class PackageManagerService extends IPackageManager.Stub { @Override public byte[] getEphemeralApplicationCookie(String packageName, int userId) { - if (isEphemeralDisabled()) { + if (HIDE_EPHEMERAL_APIS || isEphemeralDisabled()) { return null; } @@ -6343,7 +6343,7 @@ public class PackageManagerService extends IPackageManager.Stub { @Override public boolean setEphemeralApplicationCookie(String packageName, byte[] cookie, int userId) { - if (isEphemeralDisabled()) { + if (HIDE_EPHEMERAL_APIS || isEphemeralDisabled()) { return true; } @@ -6361,7 +6361,7 @@ public class PackageManagerService extends IPackageManager.Stub { @Override public Bitmap getEphemeralApplicationIcon(String packageName, int userId) { - if (isEphemeralDisabled()) { + if (HIDE_EPHEMERAL_APIS || isEphemeralDisabled()) { return null; } -- GitLab From af102bee518191f1e6ad843f06dcd7a64611462d Mon Sep 17 00:00:00 2001 From: sergeyv Date: Fri, 9 Sep 2016 18:02:07 -0700 Subject: [PATCH 327/809] HWUI: track upload & recent usage in font cache FontCacheHistoryTracker should be turned off before shipping: b/31438876 bug:30427106 Change-Id: Ic26b25e790d4ee69e484ca0cb23dc9cc522b2ed3 --- libs/hwui/Android.mk | 8 ++ libs/hwui/Caches.cpp | 7 ++ libs/hwui/FontRenderer.cpp | 14 +++ libs/hwui/FontRenderer.h | 11 +++ libs/hwui/font/Font.cpp | 8 +- libs/hwui/font/FontCacheHistoryTracker.cpp | 100 +++++++++++++++++++++ libs/hwui/font/FontCacheHistoryTracker.h | 64 +++++++++++++ libs/hwui/renderthread/CanvasContext.cpp | 4 + 8 files changed, 215 insertions(+), 1 deletion(-) create mode 100644 libs/hwui/font/FontCacheHistoryTracker.cpp create mode 100644 libs/hwui/font/FontCacheHistoryTracker.h diff --git a/libs/hwui/Android.mk b/libs/hwui/Android.mk index 366ef716c109..74b474eef371 100644 --- a/libs/hwui/Android.mk +++ b/libs/hwui/Android.mk @@ -3,6 +3,7 @@ include $(CLEAR_VARS) LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk HWUI_NEW_OPS := true +BUGREPORT_FONT_CACHE_USAGE := true # Enables fine-grained GLES error checking # If set to true, every GLES call is wrapped & error checked @@ -135,6 +136,13 @@ ifeq (true, $(HWUI_NEW_OPS)) endif +ifeq (true, $(BUGREPORT_FONT_CACHE_USAGE)) + hwui_src_files += \ + font/FontCacheHistoryTracker.cpp + hwui_cflags += -DBUGREPORT_FONT_CACHE_USAGE +endif + + ifndef HWUI_COMPILE_SYMBOLS hwui_cflags += -fvisibility=hidden endif diff --git a/libs/hwui/Caches.cpp b/libs/hwui/Caches.cpp index 6d28c5294911..a8ced9b2597b 100644 --- a/libs/hwui/Caches.cpp +++ b/libs/hwui/Caches.cpp @@ -21,6 +21,9 @@ #include "Properties.h" #include "renderstate/RenderState.h" #include "ShadowTessellator.h" +#ifdef BUGREPORT_FONT_CACHE_USAGE +#include "font/FontCacheHistoryTracker.h" +#endif #include "utils/GLUtils.h" #include @@ -212,6 +215,10 @@ void Caches::dumpMemoryUsage(String8 &log) { log.appendFormat("Total memory usage:\n"); log.appendFormat(" %d bytes, %.2f MB\n", total, total / 1024.0f / 1024.0f); + +#ifdef BUGREPORT_FONT_CACHE_USAGE + fontRenderer.getFontRenderer().historyTracker().dump(log); +#endif } /////////////////////////////////////////////////////////////////////////////// diff --git a/libs/hwui/FontRenderer.cpp b/libs/hwui/FontRenderer.cpp index 1cd708f3ce46..681cf55066b4 100644 --- a/libs/hwui/FontRenderer.cpp +++ b/libs/hwui/FontRenderer.cpp @@ -168,10 +168,17 @@ void FontRenderer::flushAllAndInvalidate() { for (uint32_t i = 0; i < mACacheTextures.size(); i++) { mACacheTextures[i]->init(); + +#ifdef BUGREPORT_FONT_CACHE_USAGE + mHistoryTracker.glyphsCleared(mACacheTextures[i]); +#endif } for (uint32_t i = 0; i < mRGBACacheTextures.size(); i++) { mRGBACacheTextures[i]->init(); +#ifdef BUGREPORT_FONT_CACHE_USAGE + mHistoryTracker.glyphsCleared(mRGBACacheTextures[i]); +#endif } mDrawn = false; @@ -183,6 +190,9 @@ void FontRenderer::flushLargeCaches(std::vector& cacheTextures) { CacheTexture* cacheTexture = cacheTextures[i]; if (cacheTexture->getPixelBuffer()) { cacheTexture->init(); +#ifdef BUGREPORT_FONT_CACHE_USAGE + mHistoryTracker.glyphsCleared(cacheTexture); +#endif LruCache::Iterator it(mActiveFonts); while (it.next()) { it.value()->invalidateTextureCache(cacheTexture); @@ -385,6 +395,10 @@ void FontRenderer::cacheBitmap(const SkGlyph& glyph, CachedGlyphInfo* cachedGlyp } cachedGlyph->mIsValid = true; + +#ifdef BUGREPORT_FONT_CACHE_USAGE + mHistoryTracker.glyphUploaded(cacheTexture, startX, startY, glyph.fWidth, glyph.fHeight); +#endif } CacheTexture* FontRenderer::createCacheTexture(int width, int height, GLenum format, diff --git a/libs/hwui/FontRenderer.h b/libs/hwui/FontRenderer.h index e102a2f04aef..504dce862f71 100644 --- a/libs/hwui/FontRenderer.h +++ b/libs/hwui/FontRenderer.h @@ -21,6 +21,9 @@ #include "font/CacheTexture.h" #include "font/CachedGlyphInfo.h" #include "font/Font.h" +#ifdef BUGREPORT_FONT_CACHE_USAGE +#include "font/FontCacheHistoryTracker.h" +#endif #include #include @@ -136,6 +139,10 @@ public: uint32_t getSize() const; void dumpMemoryUsage(String8& log) const; +#ifdef BUGREPORT_FONT_CACHE_USAGE + FontCacheHistoryTracker& historyTracker() { return mHistoryTracker; } +#endif + private: friend class Font; @@ -205,6 +212,10 @@ private: bool mLinearFiltering; +#ifdef BUGREPORT_FONT_CACHE_USAGE + FontCacheHistoryTracker mHistoryTracker; +#endif + #ifdef ANDROID_ENABLE_RENDERSCRIPT // RS constructs RSC::sp mRs; diff --git a/libs/hwui/font/Font.cpp b/libs/hwui/font/Font.cpp index 8e04c8715f62..a95454a4c010 100644 --- a/libs/hwui/font/Font.cpp +++ b/libs/hwui/font/Font.cpp @@ -408,9 +408,15 @@ void Font::render(const SkPaint* paint, const glyph_t* glyphs, if (cachedGlyph->mIsValid && cachedGlyph->mCacheTexture) { int penX = x + (int) roundf(positions[(glyphsCount << 1)]); int penY = y + (int) roundf(positions[(glyphsCount << 1) + 1]); - +#ifdef BUGREPORT_FONT_CACHE_USAGE + mState->historyTracker().glyphRendered(cachedGlyph, penX, penY); +#endif (*this.*render)(cachedGlyph, penX, penY, bitmap, bitmapW, bitmapH, bounds, positions); + } else { +#ifdef BUGREPORT_FONT_CACHE_USAGE + mState->historyTracker().glyphRendered(cachedGlyph, -1, -1); +#endif } glyphsCount++; diff --git a/libs/hwui/font/FontCacheHistoryTracker.cpp b/libs/hwui/font/FontCacheHistoryTracker.cpp new file mode 100644 index 000000000000..a2bfb27535e5 --- /dev/null +++ b/libs/hwui/font/FontCacheHistoryTracker.cpp @@ -0,0 +1,100 @@ +/* + * Copyright (C) 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. + */ + +#include "FontCacheHistoryTracker.h" + +#include "CachedGlyphInfo.h" +#include "CacheTexture.h" + +namespace android { +namespace uirenderer { + +void FontCacheHistoryTracker::dumpCachedGlyph(String8& log, const CachedGlyph& glyph) { + log.appendFormat("glyph (texture %p, position: (%d, %d), size: %dx%d, gen: %d)", glyph.texture, + glyph.startX, glyph.startY, glyph.bitmapW, glyph.bitmapH, glyph.generation); +} + +void FontCacheHistoryTracker::dumpRenderEntry(String8& log, const RenderEntry& entry) { + if (entry.penX == -1 && entry.penY == -1) { + log.appendFormat(" glyph skipped in gen: %d\n", entry.glyph.generation); + } else { + log.appendFormat(" rendered "); + dumpCachedGlyph(log, entry.glyph); + log.appendFormat(" at (%d, %d)\n", entry.penX, entry.penY); + } +} + +void FontCacheHistoryTracker::dumpUploadEntry(String8& log, const CachedGlyph& glyph) { + if (glyph.bitmapW == 0 && glyph.bitmapH == 0) { + log.appendFormat(" cleared cachetexture %p in gen %d\n", glyph.texture, + glyph.generation); + } else { + log.appendFormat(" uploaded "); + dumpCachedGlyph(log, glyph); + log.appendFormat("\n"); + } +} + +void FontCacheHistoryTracker::dump(String8& log) const { + log.appendFormat("FontCacheHistory: \n"); + log.appendFormat(" Upload history: \n"); + for (size_t i = 0; i < mUploadHistory.size(); i++) { + dumpUploadEntry(log, mUploadHistory[i]); + } + log.appendFormat(" Render history: \n"); + for (size_t i = 0; i < mRenderHistory.size(); i++) { + dumpRenderEntry(log, mRenderHistory[i]); + } +} + +void FontCacheHistoryTracker::glyphRendered(CachedGlyphInfo* glyphInfo, int penX, int penY) { + RenderEntry& entry = mRenderHistory.next(); + entry.glyph.generation = generation; + entry.glyph.texture = glyphInfo->mCacheTexture; + entry.glyph.startX = glyphInfo->mStartX; + entry.glyph.startY = glyphInfo->mStartY; + entry.glyph.bitmapW = glyphInfo->mBitmapWidth; + entry.glyph.bitmapH = glyphInfo->mBitmapHeight; + entry.penX = penX; + entry.penY = penY; +} + +void FontCacheHistoryTracker::glyphUploaded(CacheTexture* texture, uint32_t x, uint32_t y, + uint16_t glyphW, uint16_t glyphH) { + CachedGlyph& glyph = mUploadHistory.next(); + glyph.generation = generation; + glyph.texture = texture; + glyph.startX = x; + glyph.startY = y; + glyph.bitmapW = glyphW; + glyph.bitmapH = glyphH; +} + +void FontCacheHistoryTracker::glyphsCleared(CacheTexture* texture) { + CachedGlyph& glyph = mUploadHistory.next(); + glyph.generation = generation; + glyph.texture = texture; + glyph.startX = 0; + glyph.startY = 0; + glyph.bitmapW = 0; + glyph.bitmapH = 0; +} + +void FontCacheHistoryTracker::frameCompleted() { + generation++; +} +}; // namespace uirenderer +}; // namespace android diff --git a/libs/hwui/font/FontCacheHistoryTracker.h b/libs/hwui/font/FontCacheHistoryTracker.h new file mode 100644 index 000000000000..f1d9b9f10dc0 --- /dev/null +++ b/libs/hwui/font/FontCacheHistoryTracker.h @@ -0,0 +1,64 @@ +/* + * Copyright (C) 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. + */ + +#pragma once +#include "../utils/RingBuffer.h" + +#include + +namespace android { +namespace uirenderer { + +class CacheTexture; +struct CachedGlyphInfo; + +// Tracks glyph uploads and recent rendered/skipped glyphs, so it can give an idea +// what a missing character is: skipped glyph, wrong coordinates in cache texture etc. +class FontCacheHistoryTracker { +public: + void glyphRendered(CachedGlyphInfo*, int penX, int penY); + void glyphUploaded(CacheTexture*, uint32_t x, uint32_t y, uint16_t glyphW, uint16_t glyphH); + void glyphsCleared(CacheTexture*); + void frameCompleted(); + + void dump(String8& log) const; +private: + struct CachedGlyph { + void* texture; + uint16_t generation; + uint16_t startX; + uint16_t startY; + uint16_t bitmapW; + uint16_t bitmapH; + }; + + struct RenderEntry { + CachedGlyph glyph; + int penX; + int penY; + }; + + static void dumpCachedGlyph(String8& log, const CachedGlyph& glyph); + static void dumpRenderEntry(String8& log, const RenderEntry& entry); + static void dumpUploadEntry(String8& log, const CachedGlyph& glyph); + + RingBuffer mRenderHistory; + RingBuffer mUploadHistory; + uint16_t generation = 0; +}; + +}; // namespace uirenderer +}; // namespace android \ No newline at end of file diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp index 70b9a436dee2..975ac8368e3d 100644 --- a/libs/hwui/renderthread/CanvasContext.cpp +++ b/libs/hwui/renderthread/CanvasContext.cpp @@ -608,6 +608,10 @@ void CanvasContext::draw() { } GpuMemoryTracker::onFrameCompleted(); +#ifdef BUGREPORT_FONT_CACHE_USAGE + caches.fontRenderer.getFontRenderer().historyTracker().frameCompleted(); +#endif + } // Called by choreographer to do an RT-driven animation -- GitLab From 5b3cc1158b3f1327b4139b12fc28eba1a3a0ca63 Mon Sep 17 00:00:00 2001 From: Mady Mellor Date: Mon, 12 Sep 2016 15:53:35 -0700 Subject: [PATCH 328/809] Improve swiping to reveal gear for ongoing notifications with time check Swiping to show the gear for ongoing notifications can be difficult, this CL adds an additional check for the duration of the gesture, if the gesture takes long enough on an non dismissable notification then it considers it a gear reveal. Bug: 30908400 Change-Id: Iec769bae2a70ef79acb43c69063cc9e2b6b1f56f --- .../stack/NotificationStackScrollLayout.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java index c8c43101c90f..666f56d14371 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java @@ -3912,6 +3912,7 @@ public class NotificationStackScrollLayout extends ViewGroup private class NotificationSwipeHelper extends SwipeHelper { private static final long SHOW_GEAR_DELAY = 60; private static final long COVER_GEAR_DELAY = 4000; + private static final long SWIPE_GEAR_TIMING = 200; private CheckForDrag mCheckForDrag; private Runnable mFalsingCheck; private Handler mHandler; @@ -4028,6 +4029,9 @@ public class NotificationStackScrollLayout extends ViewGroup boolean gestureTowardsGear = isTowardsGear(velocity, mCurrIconRow.isIconOnLeft()); boolean gestureFastEnough = Math.abs(velocity) > getEscapeVelocity(); + final double timeForGesture = ev.getEventTime() - ev.getDownTime(); + final boolean showGearForSlowOnGoing = !canChildBeDismissed(animView) + && timeForGesture >= SWIPE_GEAR_TIMING; if (mGearSnappedTo && mCurrIconRow.isVisible()) { if (mGearSnappedOnLeft == mCurrIconRow.isIconOnLeft()) { @@ -4052,7 +4056,8 @@ public class NotificationStackScrollLayout extends ViewGroup } else { dismissOrSnapBack(animView, velocity, ev); } - } else if ((!gestureFastEnough && swipedEnoughToShowGear(animView)) + } else if (((!gestureFastEnough || showGearForSlowOnGoing) + && swipedEnoughToShowGear(animView)) || gestureTowardsGear) { // Gear has not been snapped to previously and this is gear revealing gesture snapToGear(animView, velocity); @@ -4104,13 +4109,9 @@ public class NotificationStackScrollLayout extends ViewGroup final float multiplier = canChildBeDismissed(animView) ? 0.4f : 0.2f; final float snapBackThreshold = getSpaceForGear(animView) * multiplier; final float translation = getTranslation(animView); - final boolean fromLeft = translation > 0; - final float absTrans = Math.abs(translation); - final float notiThreshold = getSize(mTranslatingParentView) * 0.4f; - - return mCurrIconRow.isVisible() && (mCurrIconRow.isIconOnLeft() - ? (translation > snapBackThreshold && translation <= notiThreshold) - : (translation < -snapBackThreshold && translation >= -notiThreshold)); + return !swipedFarEnough() && mCurrIconRow.isVisible() && (mCurrIconRow.isIconOnLeft() + ? translation > snapBackThreshold + : translation < -snapBackThreshold); } @Override -- GitLab From ed9fa424e9d2e31ac91712b7091c98719156f692 Mon Sep 17 00:00:00 2001 From: Andrew Sapperstein Date: Mon, 12 Sep 2016 16:17:21 -0700 Subject: [PATCH 329/809] Use DeviceDefault.Settings.Dark for systemui_theme It was using DeviceDefault which is black in AOSP. It should be using the blue grey primary color instead used by DeviceDefault.Settings. Bug: 30748928 Change-Id: I7e7ed87f74f654f412c106a44906d7fba4e992dc --- packages/SystemUI/res/values/styles.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml index 1e3b8419de99..c659acfaf14e 100644 --- a/packages/SystemUI/res/values/styles.xml +++ b/packages/SystemUI/res/values/styles.xml @@ -217,7 +217,7 @@ - + + + + +

      Layout Umum

      + +

      Tiap subkelas dari kelas {@link android.view.ViewGroup} menyediakan cara unik untuk menampilkan +tampilan yang Anda sarangkan di dalamnya. Di bawah ini adalah beberapa tipe layout lebih umum yang dibuat +ke dalam platform Android.

      + +

      Catatan: Walaupun Anda bisa menyarangkan satu atau beberapa layout dalam +layout lain untuk mendapatkan desain UI, Anda harus berusaha menjaga hierarki layout sedangkal +mungkin. Layout Anda akan digambar lebih cepat jika memiliki layout tersarang yang lebih sedikit (hierarki tampilan yang melebar +lebih baik daripada hierarki tampilan yang dalam).

      + + + + +
      +

      Layout Linier

      + +

      Layout yang mengatur anak-anaknya menjadi satu baris horizontal atau vertikal. Layout ini + akan membuat scrollbar jika panjang jendela melebihi panjang layar.

      +
      + +
      +

      Layout Relatif

      + +

      Memungkinkan Anda menentukan lokasi objek anak relatif terhadap satu sama lain (anak A di +kiri anak B) atau terhadap induk (disejajarkan dengan atas induknya).

      +
      + +
      +

      Tampilan Web

      + +

      Menampilkan halaman web.

      +
      + + + + +

      Membangun Layout dengan Adaptor

      + +

      Bila isi layout bersifat dinamis atau tidak dipastikan sebelumnya, Anda bisa menggunakan layout yang menjadi +subkelas {@link android.widget.AdapterView} untuk mengisi layout dengan tampilan saat runtime. +Subkelas dari kelas {@link android.widget.AdapterView} menggunakan {@link android.widget.Adapter} untuk +mengikat data ke layoutnya. {@link android.widget.Adapter} berfungsi sebagai penghubung antara sumber data +dan layout{@link android.widget.AdapterView}—{@link android.widget.Adapter} +menarik data (dari suatu sumber seperti larik (array) atau query database) dan mengubah setiap entri +menjadi tampilan yang bisa ditambahkan ke dalam layout {@link android.widget.AdapterView}.

      + +

      Layout umum yang didukung oleh adaptor meliputi:

      + +
      +

      Tampilan Daftar

      + +

      Menampilkan daftar kolom tunggal yang bergulir.

      +
      + +
      +

      Tampilan Petak

      + +

      Menampilkan petak bergulir yang terdiri atas kolom dan baris.

      +
      + + + +

      Mengisi tampilan adaptor dengan data

      + +

      Anda bisa mengisi {@link android.widget.AdapterView} seperti {@link android.widget.ListView} atau +{@link android.widget.GridView} dengan mengikat instance {@link android.widget.AdapterView} ke +{@link android.widget.Adapter}, yang akan mengambil data dari sumber eksternal dan membuat {@link +android.view.View} yang mewakili tiap entri data.

      + +

      Android menyediakan beberapa subkelas {@link android.widget.Adapter} yang berguna untuk +menarik berbagai jenis data dan membangun tampilan untuk {@link android.widget.AdapterView}. Dua + adaptor yang paling umum adalah:

      + +
      +
      {@link android.widget.ArrayAdapter}
      +
      Gunakan adaptor ini bila sumber data Anda berupa larik. Secara default, {@link +android.widget.ArrayAdapter} akan membuat tampilan untuk tiap elemen larik dengan memanggil {@link +java.lang.Object#toString()} pada tiap elemen dan menempatkan isinya dalam {@link +android.widget.TextView}. +

      Misalnya, jika Anda memiliki satu larik string yang ingin ditampilkan dalam {@link +android.widget.ListView}, buatlah {@link android.widget.ArrayAdapter} baru dengan konstruktor +untuk menentukan layout setiap string dan larik string:

      +
      +ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
      +        android.R.layout.simple_list_item_1, myStringArray);
      +
      +

      Argumen-argumen untuk konstruktor ini adalah:

      +
        +
      • {@link android.content.Context} aplikasi Anda
      • +
      • Layout yang berisi {@link android.widget.TextView} untuk tiap string dalam larik
      • +
      • Larik string
      • +
      +

      Kemudian tinggal panggil +{@link android.widget.ListView#setAdapter setAdapter()} pada {@link android.widget.ListView} Anda:

      +
      +ListView listView = (ListView) findViewById(R.id.listview);
      +listView.setAdapter(adapter);
      +
      + +

      Untuk menyesuaikan penampilan setiap item, Anda bisa mengesampingkan metode {@link +java.lang.Object#toString()} bagi objek dalam larik Anda. Atau, untuk membuat tampilan tiap +elemen selain {@link android.widget.TextView} (misalnya, jika Anda menginginkan +{@link android.widget.ImageView} bagi setiap item larik), perluas kelas {@link +android.widget.ArrayAdapter} dan kesampingkan {@link android.widget.ArrayAdapter#getView +getView()} agar memberikan tipe tampilan yang Anda inginkan bagi tiap item.

      + +
      + +
      {@link android.widget.SimpleCursorAdapter}
      +
      Gunakan adaptor ini bila data Anda berasal dari {@link android.database.Cursor}. Saat +menggunakan {@link android.widget.SimpleCursorAdapter}, Anda harus menentukan layout yang akan digunakan untuk tiap +baris dalam {@link android.database.Cursor} dan di kolom mana di {@link android.database.Cursor} +harus memasukkan tampilan layout. Misalnya, jika Anda ingin untuk membuat daftar +nama orang dan nomor telepon, Anda bisa melakukan query yang menghasilkan {@link +android.database.Cursor} yang berisi satu baris untuk tiap orang dan kolom-kolom untuk nama dan +nomor. Selanjutnya Anda membuat larik string yang menentukan kolom dari {@link +android.database.Cursor} yang Anda inginkan dalam layout untuk setiap hasil dan larik integer yang menentukan +tampilan yang sesuai untuk menempatkan masing-masing kolom:

      +
      +String[] fromColumns = {ContactsContract.Data.DISPLAY_NAME,
      +                        ContactsContract.CommonDataKinds.Phone.NUMBER};
      +int[] toViews = {R.id.display_name, R.id.phone_number};
      +
      +

      Bila Anda membuat instance {@link android.widget.SimpleCursorAdapter}, teruskan layout yang akan digunakan untuk +setiap hasil, {@link android.database.Cursor} yang berisi hasil tersebut, dan dua larik ini:

      +
      +SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
      +        R.layout.person_name_and_number, cursor, fromColumns, toViews, 0);
      +ListView listView = getListView();
      +listView.setAdapter(adapter);
      +
      +

      {@link android.widget.SimpleCursorAdapter} kemudian membuat tampilan untuk tiap baris dalam +{@link android.database.Cursor} dengan layout yang disediakan dengan memasukkan setiap item {@code +fromColumns} ke dalam tampilan {@code toViews} yang sesuai.

      +
      + + +

      Jika, selama aplikasi berjalan, Anda mengubah data sumber yang dibaca oleh +adaptor, maka Anda harus memanggil {@link android.widget.ArrayAdapter#notifyDataSetChanged()}. Hal ini akan +memberi tahu tampilan yang bersangkutan bahwa data telah berubah dan tampilan harus memperbarui dirinya sendiri.

      + + + +

      Menangani kejadian klik

      + +

      Anda bisa merespons kejadian klik pada setiap item dalam {@link android.widget.AdapterView} dengan +menerapkan antarmuka {@link android.widget.AdapterView.OnItemClickListener}. Misalnya:

      + +
      +// Create a message handling object as an anonymous class.
      +private OnItemClickListener mMessageClickedHandler = new OnItemClickListener() {
      +    public void onItemClick(AdapterView parent, View v, int position, long id) {
      +        // Do something in response to the click
      +    }
      +};
      +
      +listView.setOnItemClickListener(mMessageClickedHandler);
      +
      + + + diff --git a/docs/html-intl/intl/id/guide/topics/ui/dialogs.jd b/docs/html-intl/intl/id/guide/topics/ui/dialogs.jd new file mode 100644 index 000000000000..06a25ac5bcd3 --- /dev/null +++ b/docs/html-intl/intl/id/guide/topics/ui/dialogs.jd @@ -0,0 +1,798 @@ +page.title=Dialog +page.tags=alertdialog,dialogfragment + +@jd:body + + + +
      +
      +

      Dalam dokumen ini

      +
        +
      1. Membuat Fragmen Dialog
      2. +
      3. Membuat Dialog Peringatan +
          +
        1. Menambahkan tombol
        2. +
        3. Menambahkan daftar
        4. +
        5. Membuat Layout Custom
        6. +
        +
      4. +
      5. Meneruskan Kejadian Kembali ke Host Dialog
      6. +
      7. Menampilkan Dialog
      8. +
      9. Menampilkan Dialog sebagai Layar Penuh atau Fragmen Tertanam +
          +
        1. Menampilkan aktivitas sebagai dialog pada layar besar
        2. +
        +
      10. +
      11. Menutup Dialog
      12. +
      + +

      Kelas-kelas utama

      +
        +
      1. {@link android.app.DialogFragment}
      2. +
      3. {@link android.app.AlertDialog}
      4. +
      + +

      Lihat juga

      +
        +
      1. Panduan desain dialog
      2. +
      3. Picker (dialog Tanggal/Waktu)
      4. +
      +
      +
      + +

      Dialog adalah jendela kecil yang meminta pengguna untuk +membuat keputusan atau memasukkan informasi tambahan. Dialog tidak mengisi layar dan +biasanya digunakan untuk kejadian modal yang mengharuskan pengguna untuk melakukan tindakan sebelum bisa melanjutkan.

      + +
      +

      Desain Dialog

      +

      Untuk informasi tentang cara mendesain dialog, termasuk saran + untuk bahasa, bacalah panduan Desain dialog.

      +
      + + + +

      Kelas {@link android.app.Dialog} adalah kelas basis untuk dialog, namun Anda +harus menghindari pembuatan instance {@link android.app.Dialog} secara langsung. +Sebagai gantinya, gunakan salah satu subkelas berikut:

      +
      +
      {@link android.app.AlertDialog}
      +
      Dialog yang bisa menampilkan judul, hingga tiga tombol, daftar + item yang dapat dipilih, atau layout custom.
      +
      {@link android.app.DatePickerDialog} atau {@link android.app.TimePickerDialog}
      +
      Dialog berisi UI yang sudah didefinisikan dan memungkinkan pengguna memilih tanggal atau waktu.
      +
      + + + +

      Kelas-kelas ini mendefinisikan gaya dan struktur dialog Anda, namun Anda harus +menggunakan {@link android.support.v4.app.DialogFragment} sebagai kontainer dialog Anda. +Kelas {@link android.support.v4.app.DialogFragment} menyediakan semua kontrol yang Anda +perlukan untuk membuat dialog dan mengelola penampilannya, sebagai ganti memanggil metode +pada objek {@link android.app.Dialog}.

      + +

      Menggunakan {@link android.support.v4.app.DialogFragment} untuk mengelola dialog +akan memastikan bahwa kelas itu menangani kejadian daur hidup +dengan benar seperti ketika pengguna menekan tombol Back atau memutar layar. Kelas {@link +android.support.v4.app.DialogFragment} juga memungkinkan Anda menggunakan ulang dialog UI sebagai +komponen yang bisa ditanamkan dalam UI yang lebih besar, persis seperti {@link +android.support.v4.app.Fragment} tradisional (seperti saat Anda ingin dialog UI muncul berbeda +pada layar besar dan kecil).

      + +

      Bagian-bagian berikutnya dalam panduan ini akan menjelaskan cara menggunakan {@link +android.support.v4.app.DialogFragment} yang dikombinasikan dengan objek {@link android.app.AlertDialog} +. Jika Anda ingin membuat picker tanggal atau waktu, Anda harus membaca panduan +Picker.

      + +

      Catatan: +Karena kelas {@link android.app.DialogFragment} mulanya ditambahkan pada +Android 3.0 (API level 11), dokumen ini menjelaskan cara menggunakan kelas {@link +android.support.v4.app.DialogFragment} yang disediakan bersama Pustaka Dukungan. Dengan menambahkan pustaka ini +ke aplikasi, Anda bisa menggunakan {@link android.support.v4.app.DialogFragment} dan berbagai +API lain pada perangkat yang menjalankan Android 1.6 atau yang lebih tinggi. Jika versi minimum yang didukung aplikasi Anda +adalah API level 11 atau yang lebih tinggi, maka Anda bisa menggunakan versi kerangka kerja {@link +android.app.DialogFragment}, namun ketahuilah bahwa tautan dalam dokumen ini adalah untuk API +pustaka dukungan. Saat menggunakan pustaka dukungan, +pastikan Anda mengimpor kelas android.support.v4.app.DialogFragment +dan bukan android.app.DialogFragment.

      + + +

      Membuat Fragmen Dialog

      + +

      Anda bisa menghasilkan beragam rancangan dialog—termasuk +layout custom dan desain yang dijelaskan dalam panduan desain Dialog +—dengan memperluas +{@link android.support.v4.app.DialogFragment} dan membuat {@link android.app.AlertDialog} +dalam metode callback {@link android.support.v4.app.DialogFragment#onCreateDialog +onCreateDialog()}.

      + +

      Misalnya, berikut ini sebuah {@link android.app.AlertDialog} dasar yang dikelola dalam +{@link android.support.v4.app.DialogFragment}:

      + +
      +public class FireMissilesDialogFragment extends DialogFragment {
      +    @Override
      +    public Dialog onCreateDialog(Bundle savedInstanceState) {
      +        // Use the Builder class for convenient dialog construction
      +        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
      +        builder.setMessage(R.string.dialog_fire_missiles)
      +               .setPositiveButton(R.string.fire, new DialogInterface.OnClickListener() {
      +                   public void onClick(DialogInterface dialog, int id) {
      +                       // FIRE ZE MISSILES!
      +                   }
      +               })
      +               .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
      +                   public void onClick(DialogInterface dialog, int id) {
      +                       // User cancelled the dialog
      +                   }
      +               });
      +        // Create the AlertDialog object and return it
      +        return builder.create();
      +    }
      +}
      +
      + +
      + +

      Gambar 1. +Dialog dengan satu pesan dan dua tombol tindakan.

      +
      + +

      Sekarang, bila Anda membuat instance kelas ini dan memanggil {@link +android.support.v4.app.DialogFragment#show show()} pada objek itu, dialog akan muncul seperti +yang ditampilkan dalam gambar 1.

      + +

      Bagian berikutnya menjelaskan lebih jauh tentang penggunaan API {@link android.app.AlertDialog.Builder} +untuk membuat dialog.

      + +

      Bergantung pada seberapa rumit dialog tersebut, Anda bisa menerapkan berbagai metode callback lain +dalam {@link android.support.v4.app.DialogFragment}, termasuk semua +metode daur hidup fragmen dasar. + + + + + +

      Membuat Dialog Peringatan

      + + +

      Kelas {@link android.app.AlertDialog} memungkinkan Anda membuat berbagai desain dialog dan +seringkali satu-satunya kelas dialog yang akan Anda perlukan. +Seperti yang ditampilkan dalam gambar 2, ada tiga area pada dialog peringatan:

      + +
      + +

      Gambar 2. Layout dialog.

      +
      + +
        +
      1. Judul +

        Area ini opsional dan hanya boleh digunakan bila area konten + ditempati oleh pesan terperinci, daftar, atau layout custom. Jika Anda perlu menyatakan + pesan atau pertanyaan sederhana (seperti dialog dalam gambar 1), Anda tidak memerlukan judul.

      2. +
      3. Area konten +

        Area ini bisa menampilkan pesan, daftar, atau layout custom lainnya.

      4. +
      5. Tombol tindakan +

        Tidak boleh ada lebih dari tiga tombol tindakan dalam sebuah dialog.

      6. +
      + +

      Kelas {@link android.app.AlertDialog.Builder} + menyediakan API yang memungkinkan Anda membuat {@link android.app.AlertDialog} +dengan jenis konten ini, termasuk layout custom.

      + +

      Untuk membuat {@link android.app.AlertDialog}:

      + +
      +// 1. Instantiate an {@link android.app.AlertDialog.Builder} with its constructor
      +AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
      +
      +// 2. Chain together various setter methods to set the dialog characteristics
      +builder.setMessage(R.string.dialog_message)
      +       .setTitle(R.string.dialog_title);
      +
      +// 3. Get the {@link android.app.AlertDialog} from {@link android.app.AlertDialog.Builder#create()}
      +AlertDialog dialog = builder.create();
      +
      + +

      Topik-topik selanjutnya menampilkan cara mendefinisikan berbagai atribut dialog dengan menggunakan +kelas {@link android.app.AlertDialog.Builder}.

      + + + + +

      Menambahkan tombol

      + +

      Untuk menambahkan tombol tindakan seperti dalam gambar 2, +panggil metode {@link android.app.AlertDialog.Builder#setPositiveButton setPositiveButton()} dan +{@link android.app.AlertDialog.Builder#setNegativeButton setNegativeButton()}:

      + +
      +AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
      +// Add the buttons
      +builder.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
      +           public void onClick(DialogInterface dialog, int id) {
      +               // User clicked OK button
      +           }
      +       });
      +builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
      +           public void onClick(DialogInterface dialog, int id) {
      +               // User cancelled the dialog
      +           }
      +       });
      +// Set other dialog properties
      +...
      +
      +// Create the AlertDialog
      +AlertDialog dialog = builder.create();
      +
      + +

      Metode set...Button() mengharuskan adanya judul bagi tombol (disediakan +oleh suatu sumber daya string) dan +{@link android.content.DialogInterface.OnClickListener} yang mendefinisikan tindakan yang diambil +bila pengguna menekan tombol.

      + +

      Ada tiga macam tombol tindakan yang Anda bisa tambahkan:

      +
      +
      Positif
      +
      Anda harus menggunakan tipe ini untuk menerima dan melanjutkan tindakan (tindakan "OK").
      +
      Negatif
      +
      Anda harus menggunakan tipe ini untuk membatalkan tindakan.
      +
      Netral
      +
      Anda harus menggunakan tipe ini bila pengguna mungkin tidak ingin melanjutkan tindakan, + namun tidak ingin membatalkan. Tipe ini muncul antara tombol positif dan +tombol negatif. Misalnya, tindakan bisa berupa "Ingatkan saya nanti".
      +
      + +

      Anda hanya bisa menambahkan salah satu tipe tombol ke {@link +android.app.AlertDialog}. Artinya, Anda tidak bisa memiliki lebih dari satu tombol "positif".

      + + + +
      + +

      Gambar 3. +Dialog dengan satu judul dan daftar.

      +
      + +

      Menambahkan daftar

      + +

      Ada tiga macam daftar yang tersedia pada API {@link android.app.AlertDialog}:

      +
        +
      • Daftar pilihan tunggal biasa
      • +
      • Daftar pilihan tunggal persisten (tombol radio)
      • +
      • Daftar pilihan ganda persisten (kotak cek)
      • +
      + +

      Untuk membuat daftar pilihan tunggal seperti dalam gambar 3, +gunakan metode {@link android.app.AlertDialog.Builder#setItems setItems()}:

      + +
      +@Override
      +public Dialog onCreateDialog(Bundle savedInstanceState) {
      +    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
      +    builder.setTitle(R.string.pick_color)
      +           .setItems(R.array.colors_array, new DialogInterface.OnClickListener() {
      +               public void onClick(DialogInterface dialog, int which) {
      +               // The 'which' argument contains the index position
      +               // of the selected item
      +           }
      +    });
      +    return builder.create();
      +}
      +
      + +

      Karena daftar muncul dalam area konten dialog, +dialog tidak bisa menampilkan pesan dan daftar sekaligus dan Anda harus menetapkan judul untuk +dialog dengan {@link android.app.AlertDialog.Builder#setTitle setTitle()}. +Untuk menentukan item daftar, panggil {@link +android.app.AlertDialog.Builder#setItems setItems()}, dengan meneruskan larik. +Atau, Anda bisa menetapkan daftar menggunakan {@link +android.app.AlertDialog.Builder#setAdapter setAdapter()}. Hal ini memungkinkan Anda mendukung daftar +dengan data dinamis (seperti dari database) dengan menggunakan {@link android.widget.ListAdapter}.

      + +

      Jika Anda memilih untuk mendukung daftar dengan {@link android.widget.ListAdapter}, +selalu gunakan sebuah {@link android.support.v4.content.Loader} agar konten dimuat +secara asinkron. Hal ini dijelaskan lebih jauh dalam panduan +Membuat Layout +dengan Adaptor dan Loader +.

      + +

      Catatan: Secara default, menyentuh sebuah item daftar akan menutup dialog, +kecuali Anda menggunakan salah satu daftar pilihan persisten berikut ini.

      + +
      + +

      Gambar 4. +Daftar item pilihan ganda.

      +
      + + +

      Menambahkan daftar pilihan ganda atau pilihan tunggal persisten

      + +

      Untuk menambahkan daftar item pilihan ganda (kotak cek) atau +item pilihan tunggal (tombol radio), gunakan masing-masing metode +{@link android.app.AlertDialog.Builder#setMultiChoiceItems(Cursor,String,String, +DialogInterface.OnMultiChoiceClickListener) setMultiChoiceItems()}, atau +{@link android.app.AlertDialog.Builder#setSingleChoiceItems(int,int,DialogInterface.OnClickListener) +setSingleChoiceItems()}.

      + +

      Misalnya, berikut ini cara membuat daftar pilihan ganda seperti +yang ditampilkan dalam gambar 4 yang menyimpan item +yang dipilih dalam {@link java.util.ArrayList}:

      + +
      +@Override
      +public Dialog onCreateDialog(Bundle savedInstanceState) {
      +    mSelectedItems = new ArrayList();  // Where we track the selected items
      +    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
      +    // Set the dialog title
      +    builder.setTitle(R.string.pick_toppings)
      +    // Specify the list array, the items to be selected by default (null for none),
      +    // and the listener through which to receive callbacks when items are selected
      +           .setMultiChoiceItems(R.array.toppings, null,
      +                      new DialogInterface.OnMultiChoiceClickListener() {
      +               @Override
      +               public void onClick(DialogInterface dialog, int which,
      +                       boolean isChecked) {
      +                   if (isChecked) {
      +                       // If the user checked the item, add it to the selected items
      +                       mSelectedItems.add(which);
      +                   } else if (mSelectedItems.contains(which)) {
      +                       // Else, if the item is already in the array, remove it
      +                       mSelectedItems.remove(Integer.valueOf(which));
      +                   }
      +               }
      +           })
      +    // Set the action buttons
      +           .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
      +               @Override
      +               public void onClick(DialogInterface dialog, int id) {
      +                   // User clicked OK, so save the mSelectedItems results somewhere
      +                   // or return them to the component that opened the dialog
      +                   ...
      +               }
      +           })
      +           .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
      +               @Override
      +               public void onClick(DialogInterface dialog, int id) {
      +                   ...
      +               }
      +           });
      +
      +    return builder.create();
      +}
      +
      + +

      Walaupun daftar tradisional maupun daftar dengan tombol radio +menyediakan tindakan "pilihan tunggal", Anda harus menggunakan {@link +android.app.AlertDialog.Builder#setSingleChoiceItems(int,int,DialogInterface.OnClickListener) +setSingleChoiceItems()} jika ingin mempertahankan pilihan pengguna. +Yakni, jika nanti membuka dialog lagi untuk menunjukkan pilihan pengguna, +maka Anda perlu membuat daftar dengan tombol radio.

      + + + + + +

      Membuat Layout Custom

      + +
      + +

      Gambar 5. Layout dialog custom.

      +
      + +

      Jika Anda menginginkan layout custom dalam dialog, buatlah layout dan tambahkan ke +{@link android.app.AlertDialog} dengan memanggil {@link +android.app.AlertDialog.Builder#setView setView()} pada objek {@link +android.app.AlertDialog.Builder} Anda.

      + +

      Secara default, layout custom akan mengisi jendela dialog, namun Anda masih bisa +menggunakan metode {@link android.app.AlertDialog.Builder} untuk menambahkan tombol dan judul.

      + +

      Misalnya, berikut ini adalah file layout untuk dialog dalam Gambar 5:

      + +

      res/layout/dialog_signin.xml

      +
      +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      +    android:orientation="vertical"
      +    android:layout_width="wrap_content"
      +    android:layout_height="wrap_content">
      +    <ImageView
      +        android:src="@drawable/header_logo"
      +        android:layout_width="match_parent"
      +        android:layout_height="64dp"
      +        android:scaleType="center"
      +        android:background="#FFFFBB33"
      +        android:contentDescription="@string/app_name" />
      +    <EditText
      +        android:id="@+id/username"
      +        android:inputType="textEmailAddress"
      +        android:layout_width="match_parent"
      +        android:layout_height="wrap_content"
      +        android:layout_marginTop="16dp"
      +        android:layout_marginLeft="4dp"
      +        android:layout_marginRight="4dp"
      +        android:layout_marginBottom="4dp"
      +        android:hint="@string/username" />
      +    <EditText
      +        android:id="@+id/password"
      +        android:inputType="textPassword"
      +        android:layout_width="match_parent"
      +        android:layout_height="wrap_content"
      +        android:layout_marginTop="4dp"
      +        android:layout_marginLeft="4dp"
      +        android:layout_marginRight="4dp"
      +        android:layout_marginBottom="16dp"
      +        android:fontFamily="sans-serif"
      +        android:hint="@string/password"/>
      +</LinearLayout>
      +
      + +

      Tip: Secara default, bila Anda telah mengatur sebuah elemen {@link android.widget.EditText} +agar menggunakan tipe input {@code "textPassword"}, keluarga font akan diatur ke spasi tunggal, sehingga +Anda harus mengubah keluarga font ke {@code "sans-serif"} sehingga kedua bidang teks menggunakan +gaya font yang cocok.

      + +

      Untuk memekarkan layout dalam {@link android.support.v4.app.DialogFragment} Anda, +ambillah {@link android.view.LayoutInflater} dengan +{@link android.app.Activity#getLayoutInflater()} dan panggil +{@link android.view.LayoutInflater#inflate inflate()}, dengan parameter pertama +adalah ID sumber daya layout dan parameter kedua adalah tampilan induk untuk layout. +Selanjutnya Anda bisa memanggil {@link android.app.AlertDialog#setView setView()} +untuk menempatkan layout dalam dialog.

      + +
      +@Override
      +public Dialog onCreateDialog(Bundle savedInstanceState) {
      +    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
      +    // Get the layout inflater
      +    LayoutInflater inflater = getActivity().getLayoutInflater();
      +
      +    // Inflate and set the layout for the dialog
      +    // Pass null as the parent view because its going in the dialog layout
      +    builder.setView(inflater.inflate(R.layout.dialog_signin, null))
      +    // Add action buttons
      +           .setPositiveButton(R.string.signin, new DialogInterface.OnClickListener() {
      +               @Override
      +               public void onClick(DialogInterface dialog, int id) {
      +                   // sign in the user ...
      +               }
      +           })
      +           .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
      +               public void onClick(DialogInterface dialog, int id) {
      +                   LoginDialogFragment.this.getDialog().cancel();
      +               }
      +           });
      +    return builder.create();
      +}
      +
      + +
      +

      Tip: Jika Anda menginginkan dialog custom, +Anda bisa menampilkan {@link android.app.Activity} sebagai dialog +daripada menggunakan API {@link android.app.Dialog}. Cukup buat satu aktivitas dan mengatur temanya ke +{@link android.R.style#Theme_Holo_Dialog Theme.Holo.Dialog} +di elemen manifes {@code +<activity>}:

      + +
      +<activity android:theme="@android:style/Theme.Holo.Dialog" >
      +
      +

      Demikian saja. Aktivitas sekarang ditampilkan dalam jendela dialog, sebagai ganti layar penuh.

      +
      + + + +

      Meneruskan Kejadian Kembali ke Host Dialog

      + +

      Bila pengguna menyentuh salah satu tombol tindakan dialog atau memilih satu item dari daftarnya, +{@link android.support.v4.app.DialogFragment} Anda bisa melakukan sendiri tindakan yang diperlukan +, namun sering kali Anda perlu mengirim kejadian itu ke aktivitas atau fragmen yang +membuka dialog. Caranya, definisikan antarmuka dengan sebuah metode untuk masing-masing tipe kejadian klik. +Lalu implementasikan antarmuka itu dalam komponen host yang akan +menerima kejadian tindakan dari dialog.

      + +

      Misalnya, berikut ini adalah {@link android.support.v4.app.DialogFragment} yang mendefinisikan +antarmuka yang akan digunakan untuk mengirim kembali suatu kejadian ke aktivitas host:

      + +
      +public class NoticeDialogFragment extends DialogFragment {
      +
      +    /* The activity that creates an instance of this dialog fragment must
      +     * implement this interface in order to receive event callbacks.
      +     * Each method passes the DialogFragment in case the host needs to query it. */
      +    public interface NoticeDialogListener {
      +        public void onDialogPositiveClick(DialogFragment dialog);
      +        public void onDialogNegativeClick(DialogFragment dialog);
      +    }
      +
      +    // Use this instance of the interface to deliver action events
      +    NoticeDialogListener mListener;
      +
      +    // Override the Fragment.onAttach() method to instantiate the NoticeDialogListener
      +    @Override
      +    public void onAttach(Activity activity) {
      +        super.onAttach(activity);
      +        // Verify that the host activity implements the callback interface
      +        try {
      +            // Instantiate the NoticeDialogListener so we can send events to the host
      +            mListener = (NoticeDialogListener) activity;
      +        } catch (ClassCastException e) {
      +            // The activity doesn't implement the interface, throw exception
      +            throw new ClassCastException(activity.toString()
      +                    + " must implement NoticeDialogListener");
      +        }
      +    }
      +    ...
      +}
      +
      + +

      Aktivitas yang menjadi host dialog tersebut akan membuat instance dialog +dengan konstruktor fragmen dialog dan menerima kejadian dialog +melalui implementasi antarmuka {@code NoticeDialogListener}:

      + +
      +public class MainActivity extends FragmentActivity
      +                          implements NoticeDialogFragment.NoticeDialogListener{
      +    ...
      +
      +    public void showNoticeDialog() {
      +        // Create an instance of the dialog fragment and show it
      +        DialogFragment dialog = new NoticeDialogFragment();
      +        dialog.show(getSupportFragmentManager(), "NoticeDialogFragment");
      +    }
      +
      +    // The dialog fragment receives a reference to this Activity through the
      +    // Fragment.onAttach() callback, which it uses to call the following methods
      +    // defined by the NoticeDialogFragment.NoticeDialogListener interface
      +    @Override
      +    public void onDialogPositiveClick(DialogFragment dialog) {
      +        // User touched the dialog's positive button
      +        ...
      +    }
      +
      +    @Override
      +    public void onDialogNegativeClick(DialogFragment dialog) {
      +        // User touched the dialog's negative button
      +        ...
      +    }
      +}
      +
      + +

      Karena aktivitas host mengimplementasikan {@code NoticeDialogListener}—yang +diberlakukan oleh metode callback {@link android.support.v4.app.Fragment#onAttach onAttach()} +di atas,—fragmen dialog bisa menggunakan +metode callback antarmuka untuk mengirimkan kejadian klik ke aktivitas:

      + +
      +public class NoticeDialogFragment extends DialogFragment {
      +    ...
      +
      +    @Override
      +    public Dialog onCreateDialog(Bundle savedInstanceState) {
      +        // Build the dialog and set up the button click handlers
      +        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
      +        builder.setMessage(R.string.dialog_fire_missiles)
      +               .setPositiveButton(R.string.fire, new DialogInterface.OnClickListener() {
      +                   public void onClick(DialogInterface dialog, int id) {
      +                       // Send the positive button event back to the host activity
      +                       mListener.onDialogPositiveClick(NoticeDialogFragment.this);
      +                   }
      +               })
      +               .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
      +                   public void onClick(DialogInterface dialog, int id) {
      +                       // Send the negative button event back to the host activity
      +                       mListener.onDialogNegativeClick(NoticeDialogFragment.this);
      +                   }
      +               });
      +        return builder.create();
      +    }
      +}
      +
      + + + +

      Menampilkan Dialog

      + +

      Bila Anda ingin menampilkan dialog, buatlah instance {@link +android.support.v4.app.DialogFragment} dan panggil {@link android.support.v4.app.DialogFragment#show +show()}, dengan meneruskan {@link android.support.v4.app.FragmentManager} dan nama tag +untuk fragmen dialognya.

      + +

      Anda bisa mendapatkan {@link android.support.v4.app.FragmentManager} dengan memanggil +{@link android.support.v4.app.FragmentActivity#getSupportFragmentManager()} dari + {@link android.support.v4.app.FragmentActivity} atau {@link +android.support.v4.app.Fragment#getFragmentManager()} dari {@link +android.support.v4.app.Fragment}. Misalnya:

      + +
      +public void confirmFireMissiles() {
      +    DialogFragment newFragment = new FireMissilesDialogFragment();
      +    newFragment.show(getSupportFragmentManager(), "missiles");
      +}
      +
      + +

      Argumen kedua, {@code "missiles"}, adalah nama tag unik yang digunakan sistem untuk menyimpan +dan memulihkan status fragmen bila diperlukan. Tag ini juga memungkinkan Anda mendapatkan handle ke +fragmen dengan memanggil {@link android.support.v4.app.FragmentManager#findFragmentByTag +findFragmentByTag()}.

      + + + + +

      Menampilkan Dialog sebagai Layar Penuh atau Fragmen Tertanam

      + +

      Anda mungkin memiliki desain UI yang di dalamnya Anda ingin UI muncul sebagai dialog dalam beberapa +situasi, namun sebagai layar penuh atau fragmen tertanam dalam situasi lain (mungkin bergantung pada apakah +perangkat memiliki layar besar atau layar kecil). Kelas {@link android.support.v4.app.DialogFragment} +menawarkan fleksibilitas ini karena masih bisa berperilaku sebagai {@link +android.support.v4.app.Fragment} yang bisa ditanamkan.

      + +

      Akan tetapi, dalam hal ini Anda tidak bisa menggunakan {@link android.app.AlertDialog.Builder AlertDialog.Builder} +atau objek {@link android.app.Dialog} lain untuk membangun dialog. Jika +Anda ingin {@link android.support.v4.app.DialogFragment} +bisa ditanamkan, Anda harus mendefinisikan dialog UI dalam layout, lalu memuat layout itu dalam metode callback +{@link android.support.v4.app.DialogFragment#onCreateView +onCreateView()}.

      + +

      Berikut ini adalah contoh {@link android.support.v4.app.DialogFragment} yang bisa muncul sebagai +dialog maupun fragmen yang bisa ditanamkan (menggunakan layout bernama purchase_items.xml):

      + +
      +public class CustomDialogFragment extends DialogFragment {
      +    /** The system calls this to get the DialogFragment's layout, regardless
      +        of whether it's being displayed as a dialog or an embedded fragment. */
      +    @Override
      +    public View onCreateView(LayoutInflater inflater, ViewGroup container,
      +            Bundle savedInstanceState) {
      +        // Inflate the layout to use as dialog or embedded fragment
      +        return inflater.inflate(R.layout.purchase_items, container, false);
      +    }
      +
      +    /** The system calls this only when creating the layout in a dialog. */
      +    @Override
      +    public Dialog onCreateDialog(Bundle savedInstanceState) {
      +        // The only reason you might override this method when using onCreateView() is
      +        // to modify any dialog characteristics. For example, the dialog includes a
      +        // title by default, but your custom layout might not need it. So here you can
      +        // remove the dialog title, but you must call the superclass to get the Dialog.
      +        Dialog dialog = super.onCreateDialog(savedInstanceState);
      +        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
      +        return dialog;
      +    }
      +}
      +
      + +

      Dan berikut ini adalah beberapa kode yang memutuskan apakah akan menampilkan fragmen sebagai dialog +atau UI layar penuh, berdasarkan ukuran layar:

      + +
      +public void showDialog() {
      +    FragmentManager fragmentManager = getSupportFragmentManager();
      +    CustomDialogFragment newFragment = new CustomDialogFragment();
      +
      +    if (mIsLargeLayout) {
      +        // The device is using a large layout, so show the fragment as a dialog
      +        newFragment.show(fragmentManager, "dialog");
      +    } else {
      +        // The device is smaller, so show the fragment fullscreen
      +        FragmentTransaction transaction = fragmentManager.beginTransaction();
      +        // For a little polish, specify a transition animation
      +        transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
      +        // To make it fullscreen, use the 'content' root view as the container
      +        // for the fragment, which is always the root view for the activity
      +        transaction.add(android.R.id.content, newFragment)
      +                   .addToBackStack(null).commit();
      +    }
      +}
      +
      + +

      Untuk informasi selengkapnya tentang melakukan transaksi fragmen, lihat panduan +Fragmen.

      + +

      Dalam contoh ini, nilai boolean mIsLargeLayout menentukan apakah perangkat saat ini +harus menggunakan desain layout besar aplikasi (dan dengan demikian menampilkan fragmen ini sebagai dialog, bukan +layar penuh). Cara terbaik untuk mengatur jenis boolean ini adalah mendeklarasikan +nilai sumber daya boolean +dengan nilai sumber daya alternatif untuk berbagai ukuran layar. Misalnya, berikut ini adalah dua +versi sumber daya boolean untuk berbagai ukuran layar:

      + +

      res/values/bools.xml

      +
      +<!-- Default boolean values -->
      +<resources>
      +    <bool name="large_layout">false</bool>
      +</resources>
      +
      + +

      res/values-large/bools.xml

      +
      +<!-- Large screen boolean values -->
      +<resources>
      +    <bool name="large_layout">true</bool>
      +</resources>
      +
      + +

      Selanjutnya Anda bisa menetapkan nilai {@code mIsLargeLayout} selama +metode {@link android.app.Activity#onCreate onCreate()} aktivitas:

      + +
      +boolean mIsLargeLayout;
      +
      +@Override
      +public void onCreate(Bundle savedInstanceState) {
      +    super.onCreate(savedInstanceState);
      +    setContentView(R.layout.activity_main);
      +
      +    mIsLargeLayout = getResources().getBoolean(R.bool.large_layout);
      +}
      +
      + + + +

      Menampilkan aktivitas sebagai dialog pada layar besar

      + +

      Sebagai ganti menampilkan dialog berupa UI layar penuh saat di layar kecil, Anda bisa memperoleh +hasil yang sama dengan menampilkan {@link android.app.Activity} sebagai dialog saat di +layar besar. Pendekatan yang Anda pilih bergantung pada desain aplikasi, namun +menampilkan aktivitas sebagai dialog sering kali berguna bila aplikasi Anda sudah didesain untuk +layar kecil dan Anda ingin meningkatkan pengalaman pada tablet dengan menampilkan aktivitas berjangka pendek +sebagai dialog.

      + +

      Untuk menampilkan aktivitas sebagai dialog hanya saat di layar besar, +terapkan tema {@link android.R.style#Theme_Holo_DialogWhenLarge Theme.Holo.DialogWhenLarge} + pada elemen manifes {@code +<activity>}:

      + +
      +<activity android:theme="@android:style/Theme.Holo.DialogWhenLarge" >
      +
      + +

      Untuk informasi selengkapnya tentang mengatur gaya aktivitas Anda dengan tema, lihat panduan Gaya dan Tema.

      + + + +

      Menutup Dialog

      + +

      Bila pengguna menyentuh salah satu tombol tindakan yang dibuat dengan +{@link android.app.AlertDialog.Builder}, sistem akan menutup dialog untuk Anda.

      + +

      Sistem juga menutup dialog bila pengguna menyentuh sebuah item dalam daftar dialog, kecuali +bila daftar itu menggunakan tombol radio atau kotak cek. Jika tidak, Anda bisa menutup dialog secara manual +dengan memanggil {@link android.support.v4.app.DialogFragment#dismiss()} pada {@link +android.support.v4.app.DialogFragment} Anda.

      + +

      Jika Anda perlu melakukan +tindakan tertentu saat dialog menghilang, Anda bisa menerapkan metode {@link +android.support.v4.app.DialogFragment#onDismiss onDismiss()} dalam {@link +android.support.v4.app.DialogFragment} Anda.

      + +

      Anda juga bisa membatalkan dialog. Ini merupakan kejadian khusus yang menunjukkan bahwa pengguna +secara eksplisit meninggalkan dialog tanpa menyelesaikan tugas. Hal ini terjadi jika pengguna menekan tombol +Back, menyentuh layar di luar area dialog, +atau jika Anda secara eksplisit memanggil {@link android.app.Dialog#cancel()} pada {@link +android.app.Dialog} (seperti saat merespons tombol "Cancel" dalam dialog).

      + +

      Seperti yang ditampilkan dalam contoh di atas, Anda bisa merespons kejadian batal dengan menerapkan +{@link android.support.v4.app.DialogFragment#onCancel onCancel()} dalam kelas {@link +android.support.v4.app.DialogFragment} Anda.

      + +

      Catatan: Sistem akan memanggil +{@link android.support.v4.app.DialogFragment#onDismiss onDismiss()} pada tiap kejadian yang +memanggil callback {@link android.support.v4.app.DialogFragment#onCancel onCancel()}. Akan tetapi, +jika Anda memanggil {@link android.app.Dialog#dismiss Dialog.dismiss()} atau {@link +android.support.v4.app.DialogFragment#dismiss DialogFragment.dismiss()}, +sistem akan memanggil {@link android.support.v4.app.DialogFragment#onDismiss onDismiss()} namun +bukan {@link android.support.v4.app.DialogFragment#onCancel onCancel()}. Jadi biasanya Anda harus +memanggil {@link android.support.v4.app.DialogFragment#dismiss dismiss()} bila pengguna menekan tombol +positif dalam dialog untuk menghilangkan tampilan dialog.

      + + diff --git a/docs/html-intl/intl/id/guide/topics/ui/menus.jd b/docs/html-intl/intl/id/guide/topics/ui/menus.jd new file mode 100644 index 000000000000..1ee0244c1a9a --- /dev/null +++ b/docs/html-intl/intl/id/guide/topics/ui/menus.jd @@ -0,0 +1,1031 @@ +page.title=Menu +parent.title=Antarmuka Pengguna +parent.link=index.html +@jd:body + + + +

      Menu adalah komponen antarmuka pengguna yang lazim dalam banyak tipe aplikasi. Untuk menyediakan pengalaman pengguna yang sudah akrab +dan konsisten, Anda harus menggunakan API {@link android.view.Menu} untuk menyajikan +tindakan dan opsi lain dalam aktivitas kepada pengguna.

      + +

      Mulai dengan Android 3.0 (API level 11), perangkat berbasis Android tidak perlu lagi +menyediakan tombol Menu tersendiri. Dengan perubahan ini, aplikasi Android harus bermigrasi dari +dependensi pada panel menu 6 item biasa, dan sebagai ganti menyediakan action-bar untuk menyajikan +berbagai tindakan pengguna yang lazim.

      + +

      Walaupun desain dan pengalaman pengguna untuk sebagian item menu telah berubah, semantik untuk mendefinisikan +serangkaian tindakan dan opsi masih berdasarkan pada API {@link android.view.Menu}. Panduan ini +menampilkan cara membuat tiga tipe dasar penyajian menu atau tindakan pada semua +versi Android:

      + +
      +
      Menu opsi dan action-bar
      +
      Menu opsi adalah kumpulan item menu utama untuk suatu +aktivitas. Inilah tempat Anda harus menempatkan tindakan yang berdampak global pada aplikasi, seperti +"Cari", "Tulis email", dan "Pengaturan". +

      Jika Anda mengembangkan aplikasi untuk Android 2.3 atau yang lebih rendah, pengguna bisa +menampilkan panel menu opsi dengan menekan tombol Menu.

      +

      Pada Android 3.0 dan yang lebih tinggi, item menu opsi disajikan melalui action-bar sebagai kombinasi item tindakan +di layar dan opsi overflow. Mulai dengan Android 3.0, tombol Menu dihilangkan (sebagian +perangkat +tidak memilikinya), sehingga Anda harus bermigrasi ke penggunaan action-bar untuk menyediakan akses ke tindakan dan +opsi lainnya.

      +

      Lihat bagian tentang Membuat Menu Opsi.

      +
      + +
      Menu konteks dan mode tindakan kontekstual
      + +
      Menu konteks adalah menu mengambang yang muncul saat +pengguna mengklik lama pada suatu elemen. Menu ini menyediakan tindakan yang memengaruhi konten atau +bingkai konteks yang dipilih. +

      Saat mengembangkan aplikasi untuk Android 3.0 dan yang lebih tinggi, sebagai gantinya Anda harus menggunakan mode tindakan kontekstual untuk memungkinkan tindakan pada konten yang dipilih. Mode ini menampilkan +item tindakan yang memengaruhi konten yang dipilih dalam baris di bagian atas layar dan memungkinkan pengguna +memilih beberapa item sekaligus.

      +

      Lihat bagian tentang Membuat Menu Kontekstual.

      +
      + +
      Menu popup
      +
      Menu popup menampilkan daftar item secara vertikal yang dipasang pada tampilan yang +memanggil menu. Ini cocok untuk menyediakan kelebihan tindakan yang terkait dengan konten tertentu atau +untuk menyediakan opsi bagi bagian kedua dari suatu perintah. Tindakan di menu popup +tidak boleh memengaruhi secara langsung konten yang bersangkutan—yang diperuntukkan bagi +tindakan kontekstual. Melainkan, menu popup adalah untuk tindakan tambahan yang terkait dengan wilayah konten dalam +aktivitas Anda. +

      Lihat bagian tentang Membuat Menu Popup.

      +
      +
      + + + +

      Mendefinisikan Menu dalam XML

      + +

      Untuk semua tipe menu, Android menyediakan sebuah format XML standar untuk mendefinisikan item menu. +Sebagai ganti membuat menu dalam kode aktivitas, Anda harus mendefinisikan menu dan semua itemnya dalam +sumber daya menu XML. Anda kemudian bisa +memekarkan sumber daya menu (memuatnya sebagai objek {@link android.view.Menu}) dalam aktivitas atau +fragmen.

      + +

      Menggunakan sumber daya menu adalah praktik yang baik karena beberapa alasan:

      +
        +
      • Memvisualisasikan struktur menu dalam XML menjadi lebih mudah.
      • +
      • Cara ini memisahkan konten untuk menu dari kode perilaku aplikasi Anda.
      • +
      • Cara ini memungkinkan Anda membuat konfigurasi menu alternatif untuk berbagai versi platform, +ukuran layar, dan konfigurasi lainnya dengan memanfaatkan kerangka kerja sumber daya aplikasi.
      • +
      + +

      Untuk mendefinisikan menu, buatlah sebuah file XML dalam direktori res/menu/ +proyek dan buat menu dengan elemen-elemen berikut:

      +
      +
      <menu>
      +
      Mendefinisikan {@link android.view.Menu}, yang merupakan sebuah kontainer untuk item menu. Elemen +<menu> harus menjadi simpul akar untuk file dan bisa menampung salah satu atau beberapa dari elemen +<item> dan <group>.
      + +
      <item>
      +
      Membuat {@link android.view.MenuItem}, yang mewakili satu item menu. Elemen ini +bisa berisi elemen <menu> tersarang guna untuk membuat submenu.
      + +
      <group>
      +
      Kontainer opsional tak terlihat untuk elemen-elemen {@code <item>}. Kontainer ini memungkinkan Anda +mengelompokkan item menu untuk berbagi properti seperti status aktif dan visibilitas. Untuk informasi +selengkapnya, lihat bagian tentang Membuat Grup Menu.
      +
      + + +

      Berikut ini adalah contoh menu bernama game_menu.xml:

      +
      +<?xml version="1.0" encoding="utf-8"?>
      +<menu xmlns:android="http://schemas.android.com/apk/res/android">
      +    <item android:id="@+id/new_game"
      +          android:icon="@drawable/ic_new_game"
      +          android:title="@string/new_game"
      +          android:showAsAction="ifRoom"/>
      +    <item android:id="@+id/help"
      +          android:icon="@drawable/ic_help"
      +          android:title="@string/help" />
      +</menu>
      +
      + +

      Elemen <item> mendukung beberapa atribut yang bisa Anda gunakan untuk mendefinisikan penampilan dan perilaku +item. Item menu di atas mencakup atribut berikut:

      + +
      +
      {@code android:id}
      +
      ID sumber daya unik bagi item, yang memungkinkan aplikasi mengenali item +bila pengguna memilihnya.
      +
      {@code android:icon}
      +
      Acuan ke drawable untuk digunakan sebagai ikon item.
      +
      {@code android:title}
      +
      Acuan ke string untuk digunakan sebagai judul item.
      +
      {@code android:showAsAction}
      +
      Menetapkan waktu dan cara item ini muncul sebagai item tindakan di action-bar.
      +
      + +

      Ini adalah atribut-atribut terpenting yang harus Anda gunakan, namun banyak lagi yang tersedia. +Untuk informasi tentang semua atribut yang didukung, lihat dokumen Sumber Daya Menu.

      + +

      Anda bisa menambahkan submenu ke sebuah item di menu (kecuali submenu) apa saja dengan menambahkan elemen {@code <menu>} +sebagai anak {@code <item>}. Submenu berguna saat aplikasi Anda memiliki banyak +fungsi yang bisa ditata ke dalam topik-topik, seperti item dalam sebuah baris menu aplikasi PC (File, +Edit, Lihat, dsb.). Misalnya:

      + +
      +<?xml version="1.0" encoding="utf-8"?>
      +<menu xmlns:android="http://schemas.android.com/apk/res/android">
      +    <item android:id="@+id/file"
      +          android:title="@string/file" >
      +        <!-- "file" submenu -->
      +        <menu>
      +            <item android:id="@+id/create_new"
      +                  android:title="@string/create_new" />
      +            <item android:id="@+id/open"
      +                  android:title="@string/open" />
      +        </menu>
      +    </item>
      +</menu>
      +
      + +

      Untuk menggunakan menu dalam aktivitas, Anda perlu memekarkan sumber daya menu (mengonversi sumber daya XML +menjadi objek yang bisa diprogram) dengan menggunakan {@link android.view.MenuInflater#inflate(int,Menu) +MenuInflater.inflate()}. Di bagian berikut, Anda akan melihat cara memekarkan menu untuk tiap +tipe menu.

      + + + +

      Membuat Menu Opsi

      + +
      + +

      Gambar 1. Menu opsi di +Browser, pada Android 2.3.

      +
      + +

      Menu opsi adalah tempat Anda harus menyertakan tindakan dan opsi lain yang relevan dengan +konteks aktivitas saat ini, seperti "Cari", "Tulis email", dan "Pengaturan".

      + +

      Tempat item dalam menu opsi muncul di layar bergantung pada versi aplikasi yang Anda +kembangkan:

      + +
        +
      • Jika Anda mengembangkan aplikasi untuk Android 2.3.x (API level 10) atau +yang lebih rendah, konten menu opsi muncul pada bagian bawah layar bila pengguna +menekan tombol Menu, seperti yang ditampilkan dalam gambar 1. Bila dibuka, bagian yang terlihat pertama adalah +menu +ikon, yang menampung hingga enam item menu. Jika menu Anda menyertakan lebih dari enam item, Android akan meletakkan +item keenam dan sisanya ke dalam menu kelebihan, yang bisa dibuka pengguna dengan memilih +More.
      • + +
      • Jika Anda mengembangkan aplikasi untuk Android 3.0 (API level 11) dan +yang lebih tinggi, item menu opsi tersedia dalam action-bar. Secara default, sistem +meletakkan semua item dalam kelebihan tindakan, yang bisa ditampilkan pengguna dengan ikon kelebihan tindakan di +sisi kanan action-bar (atau dengan menekan tombol Menu perangkat, jika tersedia). Untuk +mengaktifkan +akses cepat ke tindakan penting, Anda bisa mempromosikan beberapa item agar muncul pada action-bar dengan menambahkan +{@code android:showAsAction="ifRoom"} ke elemen-elemen {@code <item>} yang bersangkutan (lihat gambar +2).

        Untuk informasi selengkapnya tentang item tindakan dan perilaku action-bar lainnya, lihat panduan Action-Bar.

        +

        Catatan: Sekalipun Anda tidak mengembangkan aplikasi untuk Android 3.0 atau +yang lebih tinggi, Anda bisa membuat layout action-bar sendiri untuk mendapatkan efek serupa. Untuk contoh cara +mendukung versi Android yang lebih lama dengan action-bar, lihat contoh Kompatibilitas Action-Bar +.

        +
      • +
      + + +

      Gambar 2. Action-bar dari aplikasi Honeycomb Gallery, yang menampilkan +tab-tab navigasi dan item tindakan kamera (plus tombol kelebihan tindakan).

      + +

      Anda bisa mendeklarasikan item untuk menu opsi dari subkelas {@link android.app.Activity} +atau subkelas {@link android.app.Fragment}. Jika aktivitas maupun fragmen Anda +mendeklarasikan item menu opsi, keduanya akan dikombinasikan dalam UI. Item aktivitas akan muncul +lebih dahulu, diikuti oleh item tiap fragmen sesuai dengan urutan penambahan fragmen ke +aktivitas. Jika perlu, Anda bisa menyusun ulang item menu dengan atribut {@code android:orderInCategory} +dalam setiap {@code <item>} yang perlu Anda pindahkan.

      + +

      Untuk menetapkan menu opsi suatu aktivitas, kesampingkan {@link +android.app.Activity#onCreateOptionsMenu(Menu) onCreateOptionsMenu()} (fragmen-fragmen menyediakan +callback {@link android.app.Fragment#onCreateOptionsMenu onCreateOptionsMenu()} sendiri). Dalam metode ini +, Anda bisa memekarkan sumber daya menu (yang didefinisikan dalam XML) menjadi {@link +android.view.Menu} yang disediakan dalam callback. Misalnya:

      + +
      +@Override
      +public boolean onCreateOptionsMenu(Menu menu) {
      +    MenuInflater inflater = {@link android.app.Activity#getMenuInflater()};
      +    inflater.inflate(R.menu.game_menu, menu);
      +    return true;
      +}
      +
      + +

      Anda juga bisa menambahkan item menu dengan menggunakan {@link android.view.Menu#add(int,int,int,int) +add()} dan mengambil item dengan {@link android.view.Menu#findItem findItem()} untuk merevisi propertinya +dengan API {@link android.view.MenuItem}.

      + +

      Jika Anda mengembangkan aplikasi untuk Android 2.3.x dan yang lebih rendah, sistem akan memanggil {@link +android.app.Activity#onCreateOptionsMenu(Menu) onCreateOptionsMenu()} untuk membuat menu opsi +bila pengguna membuka menu untuk pertama kali. Jika Anda mengembangkan aplikasi untuk Android 3.0 dan yang lebih tinggi, +sistem akan memanggil {@link android.app.Activity#onCreateOptionsMenu(Menu) onCreateOptionsMenu()} saat +memulai aktivitas, untuk menampilkan item menu pada action-bar.

      + + + +

      Menangani kejadian klik

      + +

      Bila pengguna memilih item dari menu opsi (termasuk item tindakan dalam action-bar), +sistem akan memanggil metode {@link android.app.Activity#onOptionsItemSelected(MenuItem) +onOptionsItemSelected()} aktivitas Anda. Metode ini meneruskan {@link android.view.MenuItem} yang dipilih. Anda +bisa mengidentifikasi item dengan memanggil {@link android.view.MenuItem#getItemId()}, yang menghasilkan +ID unik untuk item menu itu (yang didefinisikan oleh atribut {@code android:id} dalam sumber daya menu atau dengan +integer yang diberikan ke metode {@link android.view.Menu#add(int,int,int,int) add()}). Anda bisa mencocokkan +ID ini dengan item menu yang diketahui untuk melakukan tindakan yang sesuai. Misalnya:

      + +
      +@Override
      +public boolean onOptionsItemSelected(MenuItem item) {
      +    // Handle item selection
      +    switch (item.getItemId()) {
      +        case R.id.new_game:
      +            newGame();
      +            return true;
      +        case R.id.help:
      +            showHelp();
      +            return true;
      +        default:
      +            return super.onOptionsItemSelected(item);
      +    }
      +}
      +
      + +

      Bila Anda berhasil menangani sebuah item menu, kembalikan {@code true}. Jika tidak menangani item menu +, Anda harus memanggil implementasi superkelas {@link +android.app.Activity#onOptionsItemSelected(MenuItem) onOptionsItemSelected()} (implementasi default +menghasilkan false).

      + +

      Jika aktivitas Anda menyertakan fragmen, sistem akan memanggil lebih dahulu {@link +android.app.Activity#onOptionsItemSelected(MenuItem) onOptionsItemSelected()} untuk aktivitas, kemudian +untuk setiap fragmen (sesuai dengan urutan penambahan fragmen) hingga satu fragmen mengembalikan +{@code true} atau semua fragmen telah dipanggil.

      + +

      Tip: Android 3.0 menambahkan kemampuan mendefinisikan perilaku on-click +untuk item menu dalam XML, dengan menggunakan atribut {@code android:onClick}. Nilai atribut +harus berupa nama metode yang didefinisikan aktivitas dengan menggunakan menu. Metode +harus bersifat publik dan menerima satu parameter {@link android.view.MenuItem}—bila sistem +memanggilnya, metode ini akan meneruskan item menu yang dipilih. Untuk informasi selengkapnya dan contoh, lihat dokumen Sumber Daya Menu.

      + +

      Tip: Jika aplikasi Anda berisi banyak aktivitas dan +sebagian menyediakan menu opsi yang sama, pertimbangkan untuk membuat +aktivitas yang tidak mengimplementasikan apa-apa kecuali metode {@link android.app.Activity#onCreateOptionsMenu(Menu) +onCreateOptionsMenu()} dan {@link android.app.Activity#onOptionsItemSelected(MenuItem) +onOptionsItemSelected()}. Kemudian perluas kelas ini untuk setiap aktivitas yang harus menggunakan +menu opsi yang sama. Dengan begini, Anda bisa mengelola satu set kode untuk menangani tindakan menu +dan setiap kelas turunan mewarisi perilaku menu. +Jika ingin menambahkan item menu ke salah satu aktivitas turunan, +kesampingkan {@link android.app.Activity#onCreateOptionsMenu(Menu) +onCreateOptionsMenu()} dalam aktivitas itu. Panggil {@code super.onCreateOptionsMenu(menu)} agar +item menu asli dibuat, kemudian tambahkan item menu yang baru dengan {@link +android.view.Menu#add(int,int,int,int) menu.add()}. Anda juga bisa mengesampingkan +perilaku superkelas untuk setiap item menu.

      + + +

      Mengubah item menu saat runtime

      + +

      Setelah sistem memanggil {@link android.app.Activity#onCreateOptionsMenu(Menu) +onCreateOptionsMenu()}, sistem akan mempertahankan instance {@link android.view.Menu} yang Anda tempatkan dan +tidak akan memanggil {@link android.app.Activity#onCreateOptionsMenu(Menu) onCreateOptionsMenu()} +lagi kecuali menu diinvalidkan karena suatu alasan. Akan tetapi, Anda harus menggunakan {@link +android.app.Activity#onCreateOptionsMenu(Menu) onCreateOptionsMenu()} hanya untuk membuat +status menu awal dan tidak untuk membuat perubahan selama daur hidup aktivitas.

      + +

      Jika Anda ingin mengubah menu opsi berdasarkan +kejadian yang terjadi selama daur hidup aktivitas, Anda bisa melakukannya dalam metode +{@link android.app.Activity#onPrepareOptionsMenu(Menu) onPrepareOptionsMenu()}. Metode ini +meneruskan objek {@link android.view.Menu} sebagaimana adanya saat ini sehingga Anda bisa mengubahnya, +seperti menambah, menghapus, atau menonaktifkan item. (Fragmen juga menyediakan callback {@link +android.app.Fragment#onPrepareOptionsMenu onPrepareOptionsMenu()}.)

      + +

      Pada Android 2.3.x dan yang lebih rendah, sistem akan memanggil {@link +android.app.Activity#onPrepareOptionsMenu(Menu) +onPrepareOptionsMenu()} setiap kali pengguna membuka menu opsi (menekan tombol Menu +).

      + +

      Pada Android 3.0 dan yang lebih tinggi, menu opsi dianggap sebagai selalu terbuka saat item menu +ditampilkan pada action-bar. Bila ada kejadian dan Anda ingin melakukan pembaruan menu, Anda harus +memanggil {@link android.app.Activity#invalidateOptionsMenu invalidateOptionsMenu()} untuk meminta +sistem memanggil {@link android.app.Activity#onPrepareOptionsMenu(Menu) onPrepareOptionsMenu()}.

      + +

      Catatan: +Anda tidak boleh mengubah item dalam menu opsi berdasarkan {@link android.view.View} yang saat ini +difokus. Saat dalam mode sentuh (bila pengguna tidak sedang menggunakan trackball atau d-pad), tampilan +tidak bisa mengambil fokus, sehingga Anda tidak boleh menggunakan fokus sebagai dasar untuk mengubah +item dalam menu opsi. Jika Anda ingin menyediakan item menu yang peka konteks pada {@link +android.view.View}, gunakan Menu Konteks.

      + + + + +

      Membuat Menu Kontekstual

      + +
      + +

      Gambar 3. Cuplikan layar menu konteks mengambang (kiri) +dan action-bar kontekstual (kanan).

      +
      + +

      Menu kontekstual menawarkan tindakan yang memengaruhi item atau bingkai konteks tertentu dalam UI. Anda +bisa menyediakan menu konteks untuk setiap tampilan, tetapi menu ini paling sering digunakan untuk item pada {@link +android.widget.ListView}, {@link android.widget.GridView}, atau kumpulan tampilan lainnya yang bisa digunakan +pengguna untuk melakukan tindakan langsung pada setiap item.

      + +

      Ada dua cara menyediakan tindakan kontekstual:

      +
        +
      • Dalam menu konteks mengambang. Menu muncul sebagai +daftar item menu mengambang (serupa dengan dialog) bila pengguna mengklik lama (menekan dan +menahan) pada tampilan yang mendeklarasikan dukungan bagi menu konteks. Pengguna bisa melakukan +tindakan kontekstual pada satu item untuk setiap kalinya.
      • + +
      • Dalam mode tindakan kontekstual. Mode ini adalah implementasi sistem +{@link android.view.ActionMode} yang menampilkan action-bar kontekstual di bagian atas +layar dengan item tindakan yang memengaruhi item(-item) yang dipilih. Bila mode ini aktif, pengguna +bisa melakukan tindakan pada beberapa item sekaligus (jika aplikasi Anda mengizinkannya).
      • +
      + +

      Catatan: Mode tindakan kontekstual tersedia pada Android 3.0 (API +level 11) dan yang lebih tinggi dan merupakan teknik yang lebih disukai untuk menampilkan tindakan kontekstual bila +tersedia. Jika aplikasi Anda mendukung versi yang lebih rendah daripada 3.0, maka Anda harus mundur ke +menu konteks mengambang pada perangkat-perangkat itu.

      + + +

      Membuat menu konteks mengambang

      + +

      Untuk menyediakan menu konteks mengambang:

      +
        +
      1. Daftarkan {@link android.view.View} ke menu konteks yang harus dikaitkan dengan +memanggil {@link android.app.Activity#registerForContextMenu(View) registerForContextMenu()} dan teruskan +{@link android.view.View} ke menu itu. +

        Jika aktivitas Anda menggunakan {@link android.widget.ListView} atau {@link android.widget.GridView} dan +Anda ingin setiap item untuk menyediakan menu konteks yang sama, daftarkan semua item ke menu konteks dengan +meneruskan {@link android.widget.ListView} atau {@link android.widget.GridView} ke {@link +android.app.Activity#registerForContextMenu(View) registerForContextMenu()}.

        +
      2. + +
      3. Implementasikan metode {@link +android.view.View.OnCreateContextMenuListener#onCreateContextMenu onCreateContextMenu()} +dalam {@link android.app.Activity} atau {@link android.app.Fragment} Anda. +

        Bila tampilan yang terdaftar menerima kejadian klik-lama, sistem akan memanggil metode {@link +android.view.View.OnCreateContextMenuListener#onCreateContextMenu onCreateContextMenu()} +Anda. Inilah tempat Anda mendefinisikan item menu, biasanya dengan memekarkan sumber daya menu. Misalnya: +

        +
        +@Override
        +public void onCreateContextMenu(ContextMenu menu, View v,
        +                                ContextMenuInfo menuInfo) {
        +    super.onCreateContextMenu(menu, v, menuInfo);
        +    MenuInflater inflater = getMenuInflater();
        +    inflater.inflate(R.menu.context_menu, menu);
        +}
        +
        + +

        {@link android.view.MenuInflater} memungkinkan Anda untuk memekarkan menu konteks sumber daya menu. Parameter metode callback +menyertakan {@link android.view.View} +yang dipilih pengguna dan objek {@link android.view.ContextMenu.ContextMenuInfo} yang menyediakan +informasi tambahan tentang item yang dipilih. Jika aktivitas Anda memiliki beberapa tampilan yang masing-masingnya menyediakan +menu konteks berbeda, Anda bisa menggunakan parameter ini untuk menentukan menu konteks yang harus +dimekarkan.

        +
      4. + +
      5. Implementasikan {@link android.app.Activity#onContextItemSelected(MenuItem) +onContextItemSelected()}. +

        Bila pengguna memilih item menu, sistem akan memanggil metode ini sehingga Anda bisa melakukan +tindakan yang sesuai. Misalnya:

        + +
        +@Override
        +public boolean onContextItemSelected(MenuItem item) {
        +    AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
        +    switch (item.getItemId()) {
        +        case R.id.edit:
        +            editNote(info.id);
        +            return true;
        +        case R.id.delete:
        +            deleteNote(info.id);
        +            return true;
        +        default:
        +            return super.onContextItemSelected(item);
        +    }
        +}
        +
        + +

        Metode {@link android.view.MenuItem#getItemId()} melakukan query ID untuk +item menu yang dipilih, yang harus Anda tetapkan ke setiap item menu dalam XML dengan menggunakan atribut {@code +android:id}, seperti yang ditampilkan di bagian tentang Mendefinisikan Menu dalam +XML.

        + +

        Bila Anda berhasil menangani sebuah item menu, kembalikan {@code true}. Jika tidak menangani item menu, +Anda harus meneruskan item menu ke implementasi superkelas. Jika aktivitas Anda menyertakan fragmen, +aktivitas akan menerima callback ini lebih dahulu. Dengan memanggil superkelas bila tidak ditangani, sistem +meneruskan kejadian ke metode callback di setiap fragmen, satu per satu (sesuai dengan urutan +penambahan fragmen) hingga {@code true} atau {@code false} dikembalikan. (Implementasi default +untuk {@link android.app.Activity} dan {@code android.app.Fragment} mengembalikan {@code +false}, sehingga Anda harus selalu memanggil superkelas bila tidak ditangani.)

        +
      6. +
      + + +

      Menggunakan mode tindakan kontekstual

      + +

      Mode tindakan kontekstual adalah implementasi sistem {@link android.view.ActionMode} yang +memfokuskan interaksi pengguna pada upaya melakukan tindakan kontekstual. Bila seorang +pengguna mengaktifkan mode ini dengan memilih item, action-bar kontekstual akan muncul di bagian atas +layar untuk menampilkan tindakan yang bisa dilakukan pengguna pada item yang dipilih saat ini. Selagi mode ini +diaktifkan, pengguna bisa memilih beberapa item (jika Anda mengizinkan), membatalkan pilihan item, dan melanjutkan +penelusuran dalam aktivitas (sebanyak yang ingin Anda izinkan). Mode tindakan dinonaktifkan +dan action-bar kontekstual menghilang bila pengguna membatalkan pilihan semua item, menekan tombol BACK, +atau memilih tindakan Done di sisi kiri action-bar.

      + +

      Catatan: Action-bar kontekstual tidak harus +terkait dengan action-bar. Action-bar ini beroperasi +secara independen, walaupun action-bar kontekstual secara visual mengambil alih +posisi action-bar.

      + +

      Jika Anda mengembangkan aplikasi untuk Android 3.0 (API level 11) atau yang lebih tinggi, Anda +biasanya harus menggunakan mode tindakan kontekstual untuk menampilkan tindakan kontekstual, sebagai ganti menu konteks mengambang.

      + +

      Untuk tampilan yang menyediakan tindakan kontekstual, Anda biasanya harus memanggil mode tindakan kontekstual +pada salah satu dari dua kejadian (atau keduanya):

      +
        +
      • Pengguna mengklik-lama pada tampilan.
      • +
      • Pengguna memilih kotak cek atau komponen UI yang serupa dalam tampilan.
      • +
      + +

      Cara aplikasi memanggil mode tindakan kontekstual dan mendefinisikan perilaku setiap +tindakan bergantung pada desain Anda. Pada dasarnya ada dua desain:

      +
        +
      • Untuk tindakan kontekstual pada tampilan individual dan tak didukung.
      • +
      • Untuk tindakan kontekstual batch pada grup item dalam {@link +android.widget.ListView} atau {@link android.widget.GridView} (memungkinkan pengguna memilih beberapa +item dan melakukan tindakan pada semua item itu).
      • +
      + +

      Bagian berikut ini menjelaskan penyiapan yang diperlukan untuk setiap skenario.

      + + +

      Mengaktifkan mode tindakan kontekstual untuk tampilan individual

      + +

      Jika Anda ingin memanggil mode tindakan kontekstual hanya bila pengguna memilih +tampilan tertentu, Anda harus:

      +
        +
      1. Mengimplementasikan antarmuka {@link android.view.ActionMode.Callback}. Dalam metode callback-nya, Anda +bisa menetapkan tindakan untuk action-bar kontekstual, merespons kejadian klik pada item tindakan, dan +menangani kejadian daur hidup lainnya untuk mode tindakan itu.
      2. +
      3. Memanggil {@link android.app.Activity#startActionMode startActionMode()} bila Anda ingin menampilkan +action-bar (seperti saat pengguna mengklik-lama pada tampilan).
      4. +
      + +

      Misalnya:

      + +
        +
      1. Implementasikan antarmuka {@link android.view.ActionMode.Callback ActionMode.Callback}: +
        +private ActionMode.Callback mActionModeCallback = new ActionMode.Callback() {
        +
        +    // Called when the action mode is created; startActionMode() was called
        +    @Override
        +    public boolean onCreateActionMode(ActionMode mode, Menu menu) {
        +        // Inflate a menu resource providing context menu items
        +        MenuInflater inflater = mode.getMenuInflater();
        +        inflater.inflate(R.menu.context_menu, menu);
        +        return true;
        +    }
        +
        +    // Called each time the action mode is shown. Always called after onCreateActionMode, but
        +    // may be called multiple times if the mode is invalidated.
        +    @Override
        +    public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
        +        return false; // Return false if nothing is done
        +    }
        +
        +    // Called when the user selects a contextual menu item
        +    @Override
        +    public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
        +        switch (item.getItemId()) {
        +            case R.id.menu_share:
        +                shareCurrentItem();
        +                mode.finish(); // Action picked, so close the CAB
        +                return true;
        +            default:
        +                return false;
        +        }
        +    }
        +
        +    // Called when the user exits the action mode
        +    @Override
        +    public void onDestroyActionMode(ActionMode mode) {
        +        mActionMode = null;
        +    }
        +};
        +
        + +

        Perhatikan bahwa kejadian callback ini hampir persis sama dengan callback untuk menu opsi, hanya saja setiap callback ini juga meneruskan objek {@link +android.view.ActionMode} yang terkait dengan kejadian. Anda bisa menggunakan API {@link +android.view.ActionMode} untuk membuat berbagai perubahan pada CAB, seperti merevisi judul dan +subjudul dengan {@link android.view.ActionMode#setTitle setTitle()} dan {@link +android.view.ActionMode#setSubtitle setSubtitle()} (berguna untuk menunjukkan jumlah item +yang dipilih).

        + +

        Juga perhatikan bahwa contoh di atas mengatur variabel {@code mActionMode} ke nol bila +mode tindakan dimusnahkan. Dalam langkah berikutnya, Anda akan melihat cara variabel diinisialisasi dan kegunaan menyimpan +variabel anggota dalam aktivitas atau fragmen.

        +
      2. + +
      3. Panggil {@link android.app.Activity#startActionMode startActionMode()} untuk mengaktifkan +mode tindakan kontekstual bila sesuai, seperti saat merespons klik-lama pada {@link +android.view.View}:

        + +
        +someView.setOnLongClickListener(new View.OnLongClickListener() {
        +    // Called when the user long-clicks on someView
        +    public boolean onLongClick(View view) {
        +        if (mActionMode != null) {
        +            return false;
        +        }
        +
        +        // Start the CAB using the ActionMode.Callback defined above
        +        mActionMode = getActivity().startActionMode(mActionModeCallback);
        +        view.setSelected(true);
        +        return true;
        +    }
        +});
        +
        + +

        Bila Anda memanggil {@link android.app.Activity#startActionMode startActionMode()}, sistem akan mengembalikan +{@link android.view.ActionMode} yang dibuat. Dengan menyimpannya dalam variabel anggota, Anda bisa +membuat perubahan ke action-bar kontekstual sebagai respons terhadap kejadian lainnya. Dalam contoh di atas, +{@link android.view.ActionMode} digunakan untuk memastikan bahwa instance {@link android.view.ActionMode} +tidak dibuat kembali jika sudah aktif, dengan memeriksa apakah anggota bernilai nol sebelum memulai +mode tindakan.

        +
      4. +
      + + + +

      Mengaktifkan tindakan kontekstual batch dalam ListView atau GridView

      + +

      Jika Anda memiliki sekumpulan item dalam {@link android.widget.ListView} atau {@link +android.widget.GridView} (atau ekstensi {@link android.widget.AbsListView} lainnya) dan ingin +mengizinkan pengguna melakukan tindakan batch, Anda harus:

      + +
        +
      • Mengimplementasikan antarmuka {@link android.widget.AbsListView.MultiChoiceModeListener} dan mengaturnya +untuk grup tampilan dengan {@link android.widget.AbsListView#setMultiChoiceModeListener +setMultiChoiceModeListener()}. Dalam metode callback listener, Anda bisa menetapkan tindakan +untuk action-bar kontekstual, merespons kejadian klik pada item tindakan, dan menangani callback lainnya +yang diwarisi dari antarmuka {@link android.view.ActionMode.Callback}.
      • + +
      • Panggil {@link android.widget.AbsListView#setChoiceMode setChoiceMode()} dengan argumen {@link +android.widget.AbsListView#CHOICE_MODE_MULTIPLE_MODAL}.
      • +
      + +

      Misalnya:

      + +
      +ListView listView = getListView();
      +listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
      +listView.setMultiChoiceModeListener(new MultiChoiceModeListener() {
      +
      +    @Override
      +    public void onItemCheckedStateChanged(ActionMode mode, int position,
      +                                          long id, boolean checked) {
      +        // Here you can do something when items are selected/de-selected,
      +        // such as update the title in the CAB
      +    }
      +
      +    @Override
      +    public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
      +        // Respond to clicks on the actions in the CAB
      +        switch (item.getItemId()) {
      +            case R.id.menu_delete:
      +                deleteSelectedItems();
      +                mode.finish(); // Action picked, so close the CAB
      +                return true;
      +            default:
      +                return false;
      +        }
      +    }
      +
      +    @Override
      +    public boolean onCreateActionMode(ActionMode mode, Menu menu) {
      +        // Inflate the menu for the CAB
      +        MenuInflater inflater = mode.getMenuInflater();
      +        inflater.inflate(R.menu.context, menu);
      +        return true;
      +    }
      +
      +    @Override
      +    public void onDestroyActionMode(ActionMode mode) {
      +        // Here you can make any necessary updates to the activity when
      +        // the CAB is removed. By default, selected items are deselected/unchecked.
      +    }
      +
      +    @Override
      +    public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
      +        // Here you can perform updates to the CAB due to
      +        // an {@link android.view.ActionMode#invalidate} request
      +        return false;
      +    }
      +});
      +
      + +

      Demikian saja. Kini bila pengguna memilih item dengan klik-lama, sistem akan memanggil metode {@link +android.widget.AbsListView.MultiChoiceModeListener#onCreateActionMode onCreateActionMode()} +dan menampilkan action-bar kontekstual bersama tindakan yang ditetapkan. Saat +action-bar kontekstual terlihat, pengguna bisa memilih item tambahan.

      + +

      Dalam beberapa kasus di mana tindakan kontekstual menyediakan item tindakan umum, Anda mungkin +ingin menambahkan kotak cek atau elemen UI serupa yang memungkinkan pengguna memilih item, karena pengguna +mungkin tidak menemukan perilaku klik-lama. Bila pengguna memilih kotak cek itu, Anda +bisa memanggil mode tindakan kontekstual dengan mengatur item daftar yang bersangkutan ke +status diberi tanda cek dengan {@link android.widget.AbsListView#setItemChecked setItemChecked()}.

      + + + + +

      Membuat Menu Popup

      + +
      + +

      Gambar 4. Menu popup dalam aplikasi Gmail, dikaitkan pada +tombol kelebihan di sudut kanan atas.

      +
      + +

      {@link android.widget.PopupMenu} adalah menu modal yang dikaitkan pada {@link android.view.View}. +Menu ini muncul di bawah tampilan jangkar jika ada ruang, atau di atas tampilan jika tidak ada. Menu ini berguna untuk:

      +
        +
      • Menyediakan menu bergaya kelebihan (overflow) untuk tindakan yang berkaitan dengan konten tertentu (seperti +header email Gmail, yang ditampilkan dalam gambar 4). +

        Catatan: Ini tidak sama dengan menu konteks, yang umumnya +untuk tindakan yang memengaruhi konten yang dipilih. Untuk tindakan yang memengaruhi +konten yang dipilih, gunakan mode tindakan kontekstual atau menu konteks mengambang.

      • +
      • Menyediakan bagian kedua dari kalimat perintah (seperti tombol bertanda "Tambah" +yang menghasilkan menu popup dengan berbagai opsi "Tambah").
      • +
      • Menyediakan daftar menurun yang serupa dengan {@link android.widget.Spinner} yang tidak mempertahankan +pilihan persisten.
      • +
      + + +

      Catatan: {@link android.widget.PopupMenu} tersedia dengan API +level 11 dan yang lebih tinggi.

      + +

      Jika Anda mendefinisikan menu dalam XML, berikut ini adalah cara Anda menampilkan menu popup:

      +
        +
      1. Buat instance {@link android.widget.PopupMenu} bersama konstruktornya, yang mengambil +aplikasi saat ini {@link android.content.Context} dan {@link android.view.View} yang akan menjadi tempat mengaitkan +menu.
      2. +
      3. Gunakan {@link android.view.MenuInflater} untuk memekarkan sumber daya menu Anda ke dalam objek {@link +android.view.Menu} yang dikembalikan oleh {@link +android.widget.PopupMenu#getMenu() PopupMenu.getMenu()}. Pada API level 14 ke atas, Anda bisa menggunakan +{@link android.widget.PopupMenu#inflate PopupMenu.inflate()} sebagai gantinya.
      4. +
      5. Panggil {@link android.widget.PopupMenu#show() PopupMenu.show()}.
      6. +
      + +

      Misalnya, berikut ini adalah tombol dengan atribut {@link android.R.attr#onClick android:onClick} +yang menampilkan menu popup:

      + +
      +<ImageButton
      +    android:layout_width="wrap_content"
      +    android:layout_height="wrap_content"
      +    android:src="@drawable/ic_overflow_holo_dark"
      +    android:contentDescription="@string/descr_overflow_button"
      +    android:onClick="showPopup" />
      +
      + +

      Aktivitas nanti bisa menampilkan menu popup seperti ini:

      + +
      +public void showPopup(View v) {
      +    PopupMenu popup = new PopupMenu(this, v);
      +    MenuInflater inflater = popup.getMenuInflater();
      +    inflater.inflate(R.menu.actions, popup.getMenu());
      +    popup.show();
      +}
      +
      + +

      Dalam API level 14 dan yang lebih tinggi, Anda bisa menggabungkan dua baris yang memekarkan menu dengan {@link +android.widget.PopupMenu#inflate PopupMenu.inflate()}.

      + +

      Menu akan menghilang bila pengguna memilih item atau menyentuh di luar +area menu. Anda bisa mendengarkan kejadian menghilangkan dengan menggunakan {@link +android.widget.PopupMenu.OnDismissListener}.

      + +

      Menangani kejadian klik

      + +

      Untuk melakukan suatu +tindakan bila pengguna memilih item menu, Anda harus mengimplementasikan antarmuka {@link +android.widget.PopupMenu.OnMenuItemClickListener} dan mendaftarkannya pada {@link +android.widget.PopupMenu} dengan memanggil {@link android.widget.PopupMenu#setOnMenuItemClickListener +setOnMenuItemclickListener()}. Bila pengguna memilih item, sistem akan memanggil callback {@link +android.widget.PopupMenu.OnMenuItemClickListener#onMenuItemClick onMenuItemClick()} dalam +antarmuka Anda.

      + +

      Misalnya:

      + +
      +public void showMenu(View v) {
      +    PopupMenu popup = new PopupMenu(this, v);
      +
      +    // This activity implements OnMenuItemClickListener
      +    popup.setOnMenuItemClickListener(this);
      +    popup.inflate(R.menu.actions);
      +    popup.show();
      +}
      +
      +@Override
      +public boolean onMenuItemClick(MenuItem item) {
      +    switch (item.getItemId()) {
      +        case R.id.archive:
      +            archive(item);
      +            return true;
      +        case R.id.delete:
      +            delete(item);
      +            return true;
      +        default:
      +            return false;
      +    }
      +}
      +
      + + +

      Membuat Grup Menu

      + +

      Grup menu adalah sekumpulan item menu yang sama-sama memiliki ciri (trait) tertentu. Dengan grup, Anda +bisa:

      +
        +
      • Menampilkan atau menyembunyikan semua item dengan {@link android.view.Menu#setGroupVisible(int,boolean) +setGroupVisible()}
      • +
      • Mengaktifkan atau mennonaktifkan semua item dengan {@link android.view.Menu#setGroupEnabled(int,boolean) +setGroupEnabled()}
      • +
      • Menetapkan apakah semua item bisa diberi tanda cek dengan {@link +android.view.Menu#setGroupCheckable(int,boolean,boolean) setGroupCheckable()}
      • +
      + +

      Anda bisa membuat grup dengan menyarangkan elemen-elemen {@code <item>} dalam elemen {@code <group>} +dalam sumber daya menu atau dengan menetapkan ID grup dengan metode {@link +android.view.Menu#add(int,int,int,int) add()}.

      + +

      Berikut ini adalah contoh sumber daya menu yang berisi sebuah grup:

      + +
      +<?xml version="1.0" encoding="utf-8"?>
      +<menu xmlns:android="http://schemas.android.com/apk/res/android">
      +    <item android:id="@+id/menu_save"
      +          android:icon="@drawable/menu_save"
      +          android:title="@string/menu_save" />
      +    <!-- menu group -->
      +    <group android:id="@+id/group_delete">
      +        <item android:id="@+id/menu_archive"
      +              android:title="@string/menu_archive" />
      +        <item android:id="@+id/menu_delete"
      +              android:title="@string/menu_delete" />
      +    </group>
      +</menu>
      +
      + +

      Item yang berada dalam grup akan muncul pada level yang sama dengan item pertama—ketiga item +dalam menu adalah bersaudara. Akan tetapi, Anda bisa memodifikasi ciri kedua +item dalam grup dengan mengacu ID grup dan menggunakan metode yang tercantum di atas. Sistem +juga tidak akan memisahkan item yang telah dikelompokkan. Misalnya, jika Anda mendeklarasikan {@code +android:showAsAction="ifRoom"} untuk tiap item, item tersebut akan muncul dalam +action-bar atau dalam kelebihan tindakan.

      + + +

      Menggunakan item menu yang bisa diberi tanda cek

      + +
      + +

      Gambar 5. Cuplikan layar submenu dengan +item yang bisa diberi tanda cek.

      +
      + +

      Menu bisa digunakan sebagai antarmuka untuk mengaktifkan dan menonaktifkan opsi, menggunakan kotak cek untuk +opsi mandiri, atau tombol radio untuk grup +opsi yang saling eksklusif. Gambar 5 menampilkan submenu dengan item yang bisa diberi tanda cek dengan +tombol radio.

      + +

      Catatan: Item menu dalam Icon Menu (dari menu opsi) tidak bisa +menampilkan kotak cek atau tombol radio. Jika Anda memilih untuk membuat item dalam Icon Menu yang bisa diberi tanda cek, +Anda harus menandai status diberi tanda cek secara manual dengan menukar ikon dan/atau teks +tiap kali statusnya berubah.

      + +

      Anda bisa mendefinisikan perilaku yang bisa diberi tanda cek untuk tiap item menu dengan menggunakan atribut {@code +android:checkable} dalam elemen {@code <item>}, atau untuk seluruh grup dengan +atribut {@code android:checkableBehavior} dalam elemen {@code <group>}. Misalnya +, semua item dalam grup menu ini bisa diberi tanda cek dengan tombol radio:

      + +
      +<?xml version="1.0" encoding="utf-8"?>
      +<menu xmlns:android="http://schemas.android.com/apk/res/android">
      +    <group android:checkableBehavior="single">
      +        <item android:id="@+id/red"
      +              android:title="@string/red" />
      +        <item android:id="@+id/blue"
      +              android:title="@string/blue" />
      +    </group>
      +</menu>
      +
      + +

      Atribut {@code android:checkableBehavior} menerima: +

      +
      {@code single}
      +
      Hanya satu item dari grup ini yang bisa diberi tanda cek (tombol radio)
      +
      {@code all}
      +
      Semua item bisa diberi tanda cek (kotak cek)
      +
      {@code none}
      +
      Tidak ada item yang bisa diberi tanda cek
      +
      + +

      Anda bisa menerapkan status diberi tanda cek default pada suatu item dengan menggunakan atribut {@code android:checked} dalam +elemen {@code <item>} dan mengubahnya dalam kode dengan metode {@link +android.view.MenuItem#setChecked(boolean) setChecked()}.

      + +

      Bila item yang bisa diberi tanda cek dipilih, sistem akan memanggil metode callback setiap item yang dipilih +(seperti {@link android.app.Activity#onOptionsItemSelected(MenuItem) onOptionsItemSelected()}). Di sinilah +Anda harus mengatur status kotak cek itu, karena kotak cek atau tombol radio tidak +mengubah statusnya secara otomatis. Anda bisa melakukan query status saat ini suatu item (seperti sebelum +pengguna memilihnya) dengan {@link android.view.MenuItem#isChecked()} kemudian mengatur status diberi tanda cek dengan +{@link android.view.MenuItem#setChecked(boolean) setChecked()}. Misalnya:

      + +
      +@Override
      +public boolean onOptionsItemSelected(MenuItem item) {
      +    switch (item.getItemId()) {
      +        case R.id.vibrate:
      +        case R.id.dont_vibrate:
      +            if (item.isChecked()) item.setChecked(false);
      +            else item.setChecked(true);
      +            return true;
      +        default:
      +            return super.onOptionsItemSelected(item);
      +    }
      +}
      +
      + +

      Jika Anda tidak mengatur status diberi tanda cek dengan cara ini, maka status item (kotak cek atau +tombol radio) yang terlihat tidak akan +berubah bila pengguna memilihnya. Bila Anda telah mengatur status, aktivitas akan menjaga status diberi tanda cek +suatu item sehingga bila nanti pengguna membuka menu, status diberi tanda cek yang Anda +atur akan terlihat.

      + +

      Catatan: +Item menu yang bisa diberi tanda cek dimaksudkan untuk digunakan hanya atas dasar per sesi dan tidak disimpan setelah +aplikasi dimusnahkan. Jika Anda memiliki pengaturan aplikasi yang ingin disimpan untuk pengguna, +Anda harus menyimpan data dengan menggunakan Shared Preferences.

      + + + +

      Menambahkan Item Menu Berdasarkan Intent

      + +

      Kadang-kadang Anda ingin supaya item menu menjalankan aktivitas dengan menggunakan {@link android.content.Intent} +(baik aktivitas berada dalam aplikasi Anda maupun di aplikasi lain). Bila Anda mengetahui intent +yang ingin digunakan dan memiliki item menu tertentu yang harus memulai intent, Anda bisa mengeksekusi +intent dengan {@link android.app.Activity#startActivity(Intent) startActivity()} selama +metode callback bila-item-dipilih yang sesuai (seperti callback {@link +android.app.Activity#onOptionsItemSelected(MenuItem) onOptionsItemSelected()}).

      + +

      Akan tetapi, jika Anda tidak yakin apakah perangkat pengguna +berisi aplikasi yang menangani intent, maka menambahkan item menu yang memanggilnya bisa mengakibatkan +item menu tidak berfungsi, karena intent tidak bisa diterjemahkan menjadi +aktivitas. Untuk mengatasi hal ini, Android memungkinkan Anda menambahkan item menu secara dinamis ke menu +bila Android menemukan aktivitas pada perangkat yang menangani intent Anda.

      + +

      Untuk menambahkan item menu berdasarkan aktivitas tersedia yang menerima intent:

      +
        +
      1. Definisikan +intent dengan kategori {@link android.content.Intent#CATEGORY_ALTERNATIVE} dan/atau +{@link android.content.Intent#CATEGORY_SELECTED_ALTERNATIVE}, plus kebutuhan lainnya.
      2. +
      3. Panggil {@link +android.view.Menu#addIntentOptions(int,int,int,ComponentName,Intent[],Intent,int,MenuItem[]) +Menu.addIntentOptions()}. Android kemudian akan mencari setiap aplikasi yang bisa melakukan intent +dan menambahkannya ke menu Anda.
      4. +
      + +

      Jika tidak ada aplikasi terinstal +yang memenuhi intent, maka tidak ada item menu yang ditambahkan.

      + +

      Catatan: +{@link android.content.Intent#CATEGORY_SELECTED_ALTERNATIVE} digunakan untuk menangani +elemen yang saat ini dipilih pada layar. Jadi, metode hanya digunakan saat membuat Menu dalam {@link +android.app.Activity#onCreateContextMenu(ContextMenu,View,ContextMenuInfo) +onCreateContextMenu()}.

      + +

      Misalnya:

      + +
      +@Override
      +public boolean onCreateOptionsMenu(Menu menu){
      +    super.onCreateOptionsMenu(menu);
      +
      +    // Create an Intent that describes the requirements to fulfill, to be included
      +    // in our menu. The offering app must include a category value of Intent.CATEGORY_ALTERNATIVE.
      +    Intent intent = new Intent(null, dataUri);
      +    intent.addCategory(Intent.CATEGORY_ALTERNATIVE);
      +
      +    // Search and populate the menu with acceptable offering applications.
      +    menu.addIntentOptions(
      +         R.id.intent_group,  // Menu group to which new items will be added
      +         0,      // Unique item ID (none)
      +         0,      // Order for the items (none)
      +         this.getComponentName(),   // The current activity name
      +         null,   // Specific items to place first (none)
      +         intent, // Intent created above that describes our requirements
      +         0,      // Additional flags to control items (none)
      +         null);  // Array of MenuItems that correlate to specific items (none)
      +
      +    return true;
      +}
      + +

      Untuk setiap aktivitas yang diketahui menyediakan filter intent yang cocok dengan intent yang didefinisikan, item menu +akan ditambahkan, menggunakan nilai dalam filter intent android:label sebagai +judul item menu dan ikon aplikasi sebagai ikon item menu. Metode +{@link android.view.Menu#addIntentOptions(int,int,int,ComponentName,Intent[],Intent,int,MenuItem[]) +addIntentOptions()} mengembalikan jumlah item menu yang ditambahkan.

      + +

      Catatan: Bila Anda memanggil {@link +android.view.Menu#addIntentOptions(int,int,int,ComponentName,Intent[],Intent,int,MenuItem[]) +addIntentOptions()}, metode ini akan mengesampingkan setiap dan semua item menu menurut grup menu yang ditetapkan dalam argumen +pertama.

      + + +

      Memungkinkan aktivitas Anda ditambahkan ke menu lain

      + +

      Anda juga bisa menawarkan layanan aktivitas Anda pada aplikasi lainnya, sehingga +aplikasi Anda bisa disertakan dalam menu aplikasi lain (membalik peran yang dijelaskan di atas).

      + +

      Agar bisa dimasukkan dalam menu aplikasi lain, Anda perlu mendefinisikan +filter intent seperti biasa, tetapi pastikan menyertakan nilai-nilai {@link android.content.Intent#CATEGORY_ALTERNATIVE} +dan/atau {@link android.content.Intent#CATEGORY_SELECTED_ALTERNATIVE} untuk +kategori filter intent. Misalnya:

      +
      +<intent-filter label="@string/resize_image">
      +    ...
      +    <category android:name="android.intent.category.ALTERNATIVE" />
      +    <category android:name="android.intent.category.SELECTED_ALTERNATIVE" />
      +    ...
      +</intent-filter>
      +
      + +

      Baca selengkapnya tentang penulisan filter intent dalam dokumen +Intent dan Filter Intent.

      + +

      Untuk contoh aplikasi yang menggunakan teknik ini, lihat contoh kode +Note +Pad.

      diff --git a/docs/html-intl/intl/id/guide/topics/ui/multi-window.jd b/docs/html-intl/intl/id/guide/topics/ui/multi-window.jd new file mode 100644 index 000000000000..5e7b3d927202 --- /dev/null +++ b/docs/html-intl/intl/id/guide/topics/ui/multi-window.jd @@ -0,0 +1,589 @@ +page.title=Dukungan Multi-Jendela +page.metaDescription=Dukungan baru di Android N untuk menampilkan lebih dari satu aplikasi sekaligus. +page.keywords="multi-window", "android N", "split screen", "free-form" + +@jd:body + + + +

      + Android N menambahkan dukungan untuk menampilkan lebih dari satu aplikasi + sekaligus. Pada perangkat genggam, dua aplikasi bisa berjalan berdampingan atau + atas-bawah dalam mode layar terbagi. Pada perangkat TV, aplikasi bisa + menggunakan mode gambar-dalam-gambar untuk melanjutkan pemutaran video selagi pengguna + berinteraksi dengan aplikasi lain. +

      + +

      + Jika Anda membangun aplikasi Anda dengan N Preview SDK, Anda bisa mengonfigurasi cara aplikasi + menangani tampilan multi-jendela. Misalnya, Anda bisa menetapkan dimensi + minimum yang diizinkan aktivitas Anda. Anda juga bisa menonaktifkan tampilan multi-jendela untuk + aplikasi, sehingga memastikan sistem hanya menampilkan aplikasi Anda dalam mode + layar penuh. +

      + +

      Ringkasan

      + +

      + Android N memungkinkan beberapa aplikasi berbagi layar sekaligus. Misalnya, + pengguna bisa membagi layar, melihat halaman web di sisi kiri + sambil menulis email di sisi kanan. Pengalaman pengguna bergantung pada + perangkat: +

      + +
        +
      • Perangkat genggam yang menjalankan Android N menawarkan mode + layar terbagi. Di mode ini, sistem mengisi layar dengan dua aplikasi, menampilkannya secara + berdampingan atau atas-bawah. Pengguna bisa menyeret garis pembagi + yang memisahkan keduanya untuk membuat satu aplikasi lebih besar dan yang lainnya lebih kecil. +
      • + +
      • Pada Nexus Player yang menjalankan Android N, aplikasi bisa menempatkan diri + dalam mode gambar-dalam-gambar, yang memungkinkannya + untuk terus menampilkan materi selagi pengguna menjelajahi atau berinteraksi dengan + aplikasi lain. +
      • + +
      • Produsen perangkat berukuran lebih besar bisa memilih untuk mengaktifkan mode + bentuk bebas, di mana pengguna bisa bebas mengubah ukuran setiap aktivitas. Jika + produsen mengaktifkan fitur ini, perangkat akan menawarkan mode bentuk bebas sebagai tambahan + untuk mode layar terbagi. +
      • +
      + + +

      + Gambar 1. Dua aplikasi berjalan berdampingan dalam mode layar terbagi. +

      + +

      + Pengguna bisa beralih ke mode multi-jendela dengan cara berikut: +

      + +
        +
      • Jika pengguna membuka layar + Ringkasan dan menekan lama pada + judul aktivitas, mereka bisa menyeret aktivitas itu ke bagian yang disorot pada layar + untuk menempatkan aktivitas dalam mode multi-jendela. +
      • + +
      • Jika pengguna menekan lama pada tombol Ringkasan, perangkat akan menempatkan + aktivitas saat ini dalam mode multi-jendela, dan membuka layar Ringkasan guna + memungkinkan pengguna memilih aktivitas lain untuk berbagi layar. +
      • +
      + +

      + Pengguna bisa seret dan + lepas data dari aktivitas satu ke aktivitas lain sewaktu aktivitas berbagi + layar. (Sebelumnya, pengguna hanya bisa menyeret dan melepas data dalam aktivitas + tunggal.) +

      + +

      Daur Hidup Multi-Jendela

      + +

      + Mode multi-jendela tidak mengubah daur hidup + aktivitas. +

      + +

      + Dalam mode multi-jendela, hanya aktivitas yang paling sering digunakan pengguna + yang akan aktif pada waktu tertentu. Aktivitas ini dianggap teratas. + Semua aktivitas lainnya dalam keadaan berhenti sementara, sekalipun terlihat. + Akan tetapi, sistem memberikan aktivitas, yang berhenti-sementara-namun-terlihat ini, prioritas lebih tinggi + daripada aktivitas yang tidak terlihat. Jika pengguna berinteraksi dengan salah satu + aktivitas yang berhenti sementara, aktivitas tersebut akan dilanjutkan kembali, dan aktivitas + teratas sebelumnya akan dihentikan sementara. +

      + +

      + Catatan: Dalam mode multi-jendela, aplikasi bisa berada dalam keadaan berhenti sementara + dan masih terlihat oleh pengguna. Sebuah aplikasi mungkin perlu melanjutkan aktivitasnya + bahkan saat berhenti sementara. Misalnya, aplikasi pemutar video yang ada dalam + mode berhenti sementara namun terlihat harus tetap menampilkan videonya. Karena alasan + ini, kami menyarankan aktivitas yang memutar video tidak menghentikan sementara video + dalam handler {@link android.app.Activity#onPause onPause()} mereka. + Sebagai gantinya, aktivitas itu harus menghentikan sementara video di {@link android.app.Activity#onStop + onStop()}, dan melanjutkan pemutaran di {@link android.app.Activity#onStart + onStart()}. +

      + +

      + Bila pengguna menempatkan aplikasi dalam mode multi-jendela, sistem akan memberi tahu + aktivitas tersebut mengenai perubahan konfigurasi, sebagaimana ditetapkan dalam Menangani Perubahan + Waktu Proses. Hal ini juga terjadi ketika pengguna mengubah skala aplikasi, atau menempatkan kembali aplikasi + ke mode layar penuh. + Pada dasarnya, perubahan ini memiliki implikasi daur hidup aktivitas yang sama + seperti saat sistem memberi tahu aplikasi bahwa perangkat telah beralih + dari mode potret ke mode lanskap, kecuali dimensi perangkat + telah berubah sebagai ganti bertukar posisi. Seperti yang dibahas di Menangani Perubahan + Waktu Proses, aktivitas Anda bisa menangani perubahan konfigurasi itu sendiri, atau + mengizinkan sistem memusnahkan aktivitas dan membuatnya kembali dengan dimensi + baru. +

      + +

      + Jika pengguna mengubah ukuran jendela dan membuat dimensinya lebih besar, sistem + akan mengubah ukuran aktivitas untuk menyesuaikan dengan tindakan pengguna dan mengeluarkan perubahan waktu proses + bila diperlukan. Jika aplikasi tertinggal dibandingkan gambar di area yang baru diekspos, + sistem untuk sementara mengisi area tersebut dengan warna yang ditetapkan oleh atribut {@link + android.R.attr#windowBackground windowBackground} atau dengan atribut gaya + windowBackgroundFallback secara default. +

      + +

      Mengonfigurasi Aplikasi Anda untuk Mode Multi-Jendela

      + +

      + Jika aplikasi Anda menargetkan Android N, Anda bisa mengonfigurasi bagaimana dan + apakah aktivitas aplikasi Anda mendukung tampilan multi-jendela. Anda bisa menyetel + atribut dalam manifes untuk mengontrol ukuran dan layoutnya. + Setelan atribut aktivitas root berlaku pada semua aktivitas + dalam tumpukan tugasnya. Misalnya, jika aktivitas root memiliki + android:resizeableActivity yang disetel ke true, maka semua aktivitas + dalam tumpukan tugas bisa diubah ukurannya. +

      + +

      + Catatan: Jika Anda membangun aplikasi multi-orientasi dengan versi + SDK lebih rendah dari Android N, dan pengguna menggunakan aplikasi + dalam mode multi-jendela, sistem akan mengubah ukuran aplikasi secara paksa. Sistem akan menampilkan kotak + dialog yang memperingatkan pengguna bahwa aplikasi mungkin berperilaku tidak terduga. Sistem + tidak mengubah ukuran aplikasi yang berorientasi tetap; jika + pengguna berusaha membuka aplikasi berorientasi tetap saat mode multi-jendela, + aplikasi akan menggunakan seluruh layar. +

      + +

      android:resizeableActivity

      +

      + Setel atribut ini dalam manifes <activity> Anda atau simpul + <application> untuk mengaktifkan atau menonaktifkan tampilan + multi-jendela: +

      + +
      +android:resizeableActivity=["true" | "false"]
      +
      + +

      + Jika atribut ini disetel ke true, aktivitas bisa dijalankan di + mode layar terbagi dan mode bentuk bebas. Jika atribut ini disetel ke false, aktivitas + tidak akan mendukung mode multi-jendela. Jika nilai ini false, dan pengguna + berusaha memulai aktivitas dalam mode multi-jendela, aktivitas akan menggunakan + layar penuh. +

      + +

      + Jika aplikasi Anda menargetkan Android N, namun Anda tidak menetapkan nilai + untuk atribut ini, nilai atribut default adalah true. +

      + +

      android:supportsPictureInPicture

      + +

      + Setel atribut ini dalam simpul <activity> manifes Anda untuk + menunjukkan apakah aktivitas mendukung tampilan gambar-dalam-gambar. Atribut ini + diabaikan jika android:resizeableActivity bernilai false. +

      + +
      +android:supportsPictureInPicture=["true" | "false"]
      +
      + +

      Atribut layout

      + +

      + Dengan Android N, elemen manifes <layout> + mendukung beberapa atribut yang memengaruhi cara aktivitas berperilaku dalam + mode multi-jendela: +

      + +
      +
      + android:defaultWidth +
      + +
      + Lebar default aktivitas saat dijalankan dalam mode bentuk bebas. +
      + +
      + android:defaultHeight +
      + +
      + Tinggi default aktivitas saat dijalankan dalam mode bentuk bebas. +
      + +
      + android:gravity +
      + +
      + Penempatan awal dari aktivitas saat dibuka dalam mode bentuk bebas. Lihat referensi + {@link android.view.Gravity} untuk mengetahui nilai yang cocok. +
      + +
      + android:minimalHeight, android:minimalWidth +
      + +
      + Tinggi dan lebar minimum untuk aktivitas dalam mode layar terbagi + dan mode bentuk bebas. Jika pengguna memindahkan pembagi dalam mode layar terbagi + untuk membuat aktivitas lebih kecil dari minimum yang ditetapkan, sistem akan memangkas + aktivitas sesuai dengan ukuran yang diminta pengguna. +
      +
      + +

      + Misalnya, kode berikut menampilkan cara menetapkan ukuran dan lokasi default + aktivitas, dan ukuran minimumnya, bila aktivitas ditampilkan dalam + mode bentuk bebas: +

      + +
      +<activity android:name=".MyActivity">
      +    <layout android:defaultHeight="500dp"
      +          android:defaultWidth="600dp"
      +          android:gravity="top|end"
      +          android:minimalHeight="450dp"
      +          android:minimalWidth="300dp" />
      +</activity>
      +
      + +

      Menjalankan Aplikasi Anda dalam Mode Multi-Jendela

      + +

      + Android N menawarkan fungsionalitas baru untuk mendukung aplikasi yang bisa berjalan + dalam mode multi-jendela. +

      + +

      Fitur yang dinonaktifkan dalam mode multi-jendela

      + +

      + Fitur tertentu akan dinonaktifkan atau diabaikan bila perangkat berada dalam mode + multi-jendela, karena dianggap tidak logis bagi suatu aktivitas yang mungkin berbagi + layar perangkat dengan aktivitas atau aplikasi lainnya. Fitur tersebut meliputi: + +

        +
      • Beberapa opsi penyesuaian di System UI + dinonaktifkan; misalnya, aplikasi tidak bisa menyembunyikan bilah status + jika tidak berjalan dalam mode layar penuh. +
      • + +
      • Sistem akan mengabaikan perubahan pada atribut android:screenOrientation. +
      • +
      + +

      Pemberitahuan perubahan multi-jendela dan melakukan kueri

      + +

      + Metode baru berikut telah ditambahkan ke kelas {@link android.app.Activity} + untuk mendukung tampilan multi-jendela. Untuk mengetahui detail tentang setiap + metode, lihat Referensi N + Preview SDK. +

      + +
      +
      + Activity.isInMultiWindowMode() +
      + +
      + Panggil untuk mengetahui apakah aktivitas berada dalam mode multi-jendela. +
      + +
      + Activity.isInPictureInPictureMode() +
      + +
      + Panggil untuk mengetahui apakah aktivitas berada dalam mode gambar-dalam-gambar. + +

      + Catatan: Mode gambar-dalam-gambar adalah kasus khusus pada + mode multi-jendela. Jika myActivity.isInPictureInPictureMode() + mengembalikan nilai true, maka myActivity.isInMultiWindowMode() juga + mengembalikan nilai true. +

      +
      + +
      + Activity.onMultiWindowModeChanged() +
      + +
      + Sistem akan memanggil metode ini bila aktivitas masuk atau keluar dari + mode multi-jendela. Sistem akan meneruskan ke metode sebuah nilai true jika + aktivitas tersebut memasuki mode multi-jendela, dan nilai false jika aktivitas + tersebut meninggalkan mode multi-jendela. +
      + +
      + Activity.onPictureInPictureModeChanged() +
      + +
      + Sistem akan memanggil metode ini bila aktivitas masuk atau keluar dari + mode gambar-dalam-gambar. Sistem akan meneruskan ke metode sebuah nilai true jika + aktivitas tersebut memasuki mode gambar-dalam-gambar, dan nilai false jika aktivitas + tersebut meninggalkan mode gambar-dalam-gambar. +
      +
      + +

      + Ada juga versi {@link android.app.Fragment} untuk setiap + metode ini, misalnya Fragment.isInMultiWindowMode(). +

      + +

      Memasuki mode gambar-dalam-gambar

      + +

      + Untuk menempatkan aktivitas dalam mode gambar-dalam-gambar, panggil metode baru + Activity.enterPictureInPictureMode(). Metode ini tidak berpengaruh jika + perangkat tidak mendukung mode gambar-dalam-gambar. Untuk informasi selengkapnya, + lihat dokumentasi Gambar-dalam-Gambar. +

      + +

      Meluncurkan Aktivitas Baru dalam Mode Multi-Jendela

      + +

      + Bila meluncurkan aktivitas baru, Anda bisa memberi petunjuk pada sistem bahwa aktivitas + baru harus ditampilkan bersebelahan dengan aktivitas yang sedang aktif, jika memungkinkan. Caranya, + gunakan flag + Intent.FLAG_ACTIVITY_LAUNCH_TO_ADJACENT. Meneruskan + flag ini akan meminta perilaku berikut: +

      + +
        +
      • Jika perangkat berada dalam mode layar terbagi, sistem akan berupaya membuat + aktivitas baru di sebelah aktivitas yang meluncurkannya, sehingga kedua aktivitas tersebut + berbagi layar. Tidak ada jaminan sistem mampu melakukannya, namun sistem akan + membuat aktivitas bersebelahan jika memungkinkan. +
      • + +
      • Jika perangkat tidak berada dalam mode layar terbagi, flag ini tidak akan berpengaruh. +
      • +
      + +

      + Jika perangkat dalam mode bentuk bebas dan Anda menjalankan aktivitas baru, Anda bisa + menetapkan dimensi aktivitas baru dan lokasi layar dengan memanggil + ActivityOptions.setLaunchBounds(). Metode ini tidak berpengaruh jika + perangkat tidak berada dalam mode multi-jendela. +

      + +

      + Catatan: Jika Anda meluncurkan aktivitas dalam tumpukan tugas, aktivitas + tersebut akan menggantikan aktivitas pada layar, dengan mewarisi semua + properti multi-jendelanya. Jika Anda ingin meluncurkan aktivitas baru sebagai jendela + terpisah dalam mode multi-jendela, Anda harus meluncurkannya dalam tumpukan tugas baru. +

      + +

      Mendukung seret dan lepas

      + +

      + Pengguna bisa menyeret dan + melepas data dari satu aktivitas ke aktivitas yang lain selagi kedua aktivitas + berbagi layar. (Sebelumnya, pengguna hanya bisa menyeret dan melepas data dalam + aktivitas tunggal.) Karena alasan ini, Anda mungkin perlu menambahkan fungsionalitas + seret dan lepas ke aplikasi jika aplikasi saat ini belum mendukungnya. +

      + +

      + N Preview SDK menambahkan paket android.view + untuk mendukung seret dan lepas lintas-aplikasi. Untuk mengetahui detail tentang kelas dan metode + berikut, lihat Referensi N + Preview SDK. +

      + +
      +
      + android.view.DropPermissions +
      + +
      + Objek token bertanggung jawab menetapkan izin yang diberikan kepada aplikasi + yang menerima pelepasan tersebut. +
      + +
      + View.startDragAndDrop() +
      + +
      + Alias baru untuk {@link android.view.View#startDrag View.startDrag()}. Untuk + mengaktifkan seret dan lepas lintas-aktivitas, teruskan flag baru + View.DRAG_FLAG_GLOBAL. Jika Anda perlu memberikan izin URI ke + aktivitas penerima, teruskan flag baru, + View.DRAG_FLAG_GLOBAL_URI_READ atau + View.DRAG_FLAG_GLOBAL_URI_WRITE, sebagaimana mestinya. +
      + +
      + View.cancelDragAndDrop() +
      + +
      + Membatalkan operasi seret yang sedang berlangsung. Hanya bisa dipanggil oleh + aplikasi yang menghasilkan operasi seret. +
      + +
      + View.updateDragShadow() +
      + +
      + Menggantikan bayangan penyeretan untuk operasi seret yang sedang berlangsung. Hanya + bisa dipanggil oleh aplikasi yang menghasilkan operasi seret. +
      + +
      + Activity.requestDropPermissions() +
      + +
      + Meminta izin untuk URI materi yang diteruskan dengan {@link + android.content.ClipData} yang terdapat dalam {@link android.view.DragEvent}. +
      +
      + +

      Menguji Dukungan Multi-Jendela Aplikasi Anda

      + +

      + Apakah Anda memperbarui aplikasi untuk Android N atau tidak, Anda harus + verifikasi bagaimana perilakunya di mode multi-jendela saat pengguna mencoba untuk menjalankannya + dalam mode multi-jendela pada perangkat yang menjalankan Android N. +

      + +

      Mengonfigurasi Perangkat Pengujian

      + +

      + Jika Anda pasang Android N pada perangkat, mode + layar terbagi secara otomatis didukung. +

      + +

      Jika aplikasi Anda tidak dibangun dengan N Preview SDK

      + +

      + Jika Anda tidak membangun aplikasi dengan N Preview SDK dan pengguna berupaya menggunakan + aplikasi dalam mode multi-jendela, sistem secara paksa akan mengubah ukuran aplikasi kecuali jika aplikasi + mendeklarasikan orientasi tetap. +

      + +

      + Jika aplikasi Anda tidak mendeklarasikan orientasi tetap, Anda harus meluncurkan aplikasi + pada perangkat yang menjalankan Android N dan berupaya menempatkan aplikasi tersebut dalam + mode layar terbagi. Verifikasi pengalaman pengguna + bisa diterima bila aplikasi secara paksa diubah ukurannya. +

      + +

      + Jika aplikasi mendeklarasikan orientasi tetap, Anda harus berupaya menempatkan aplikasi dalam + mode multi-jendela. Verifikasi apakah saat Anda melakukannya, aplikasi tetap berada dalam + mode layar penuh. +

      + +

      Jika Anda mendukung mode multi-jendela

      + +

      + Jika Anda membuat aplikasi Anda dengan N Preview SDK dan belum menonaktifkan + dukungan multi-jendela, verifikasi perilaku berikut dalam mode layar terbagi + dan mode bentuk bebas. +

      + +
        +
      • Luncurkan aplikasi dalam mode layar penuh, kemudian beralih ke mode multi-jendela dengan + menekan lama pada tombol Ringkasan. Verifikasi apakah aplikasi beralih dengan benar. +
      • + +
      • Jalankan aplikasi secara langsung dalam mode multi-jendela, dan verifikasi aplikasi + diluncurkan dengan benar. Anda bisa meluncurkan aplikasi dalam mode multi-jendela dengan menekan + tombol Ringkasan, kemudian menekan lama baris judul pada aplikasi Anda dan menyeretnya + ke salah satu area yang disorot di layar. +
      • + +
      • Ubah ukuran aplikasi Anda dalam mode layar terbagi dengan menyeret garis pembagi. + Verifikasi apakah aplikasi mengubah ukuran tanpa mogok, dan apakah elemen UI yang diperlukan + terlihat. +
      • + +
      • Jika Anda telah menetapkan dimensi minimum aplikasi, cobalah untuk mengubah ukuran + aplikasi di bawah dimensi tersebut. Verifikasi apakah Anda tidak bisa mengubah ukuran aplikasi menjadi + lebih kecil dari minimum yang ditetapkan. +
      • + +
      • Melalui semua pengujian, verifikasi apakah kinerja aplikasi Anda bisa diterima. Misalnya, + verifikasi apakah tidak ada jeda yang terlalu lama untuk memperbarui UI setelah + aplikasi diubah ukurannya. +
      • +
      + +

      Daftar periksa pengujian

      + +

      + Untuk verifikasi kinerja aplikasi Anda dalam mode multi-jendela, cobalah operasi + berikut. Anda harus mencoba semua operasi ini dalam mode layar terbagi dan + dan mode multi-jendela, kecuali jika dinyatakan berbeda. +

      + +
        +
      • Masuki dan tinggalkan mode multi-jendela. +
      • + +
      • Beralih dari aplikasi Anda ke aplikasi lain, dan verifikasi apakah aplikasi berperilaku + sebagaimana mestinya saat terlihat namun tidak aktif. Misalnya, jika aplikasi Anda + sedang memutar video, verifikasi apakah video terus diputar selagi pengguna + berinteraksi dengan aplikasi lain. +
      • + +
      • Dalam mode layar terbagi, cobalah menggeser garis pembagi untuk membuat aplikasi + Anda menjadi lebih besar dan lebih kecil. Coba operasi ini dalam konfigurasi berdampingan dan + atas-bawah. Verifikasi apakah aplikasi tidak mogok, + fungsionalitas penting bisa terlihat, dan operasi mengubah ukuran tidak memakan waktu terlalu + lama. +
      • + +
      • Lakukan beberapa operasi ubah ukuran berturut-turut dalam waktu cepat. Verifikasi apakah + aplikasi Anda tidak mogok atau mengalami kebocoran memori. Untuk informasi tentang memeriksa penggunaan memori + aplikasi Anda, lihat + Menyelidiki Penggunaan RAM Anda. +
      • + +
      • Gunakan aplikasi secara normal di sejumlah konfigurasi jendela yang berbeda, dan + verifikasi apakah aplikasi berperilaku sebagaimana mestinya. Verifikasi apakah teks terbaca, dan apakah + elemen UI tidak terlalu kecil untuk interaksi. +
      • +
      + +

      Jika Anda telah menonaktifkan dukungan multi-jendela

      + +

      + Jika Anda menonaktifkan dukungan multi-jendela dengan menyetel + android:resizableActivity="false", Anda harus menjalankan aplikasi pada + perangkat yang menjalankan Android N dan berusaha menempatkan aplikasi dalam + mode bentuk bebas dan mode layar terbagi. Verifikasi apakah saat Anda melakukannya, aplikasi tetap berada dalam + mode layar penuh. +

      diff --git a/docs/html-intl/intl/id/guide/topics/ui/notifiers/notifications.jd b/docs/html-intl/intl/id/guide/topics/ui/notifiers/notifications.jd new file mode 100644 index 000000000000..bb48b80a0bcc --- /dev/null +++ b/docs/html-intl/intl/id/guide/topics/ui/notifiers/notifications.jd @@ -0,0 +1,979 @@ +page.title=Pemberitahuan +@jd:body + + +

      + Pemberitahuan adalah pesan yang bisa Anda tampilkan kepada pengguna di luar + UI normal aplikasi. Bila Anda memberi tahu sistem untuk mengeluarkan pemberitahuan, pemberitahuan akan muncul lebih dahulu sebagai ikon dalam + area pemberitahuan. Untuk melihat detail pemberitahuan, pengguna membuka + laci pemberitahuan. Baik area pemberitahuan maupun laci pemberitahuan + adalah area-area yang dikontrol sistem yang bisa dilihat pengguna kapan saja. +

      + +

      + Gambar 1. Pemberitahuan di area pemberitahuan. +

      + +

      + Gambar 2. Pemberitahuan di laci pemberitahuan. +

      + +

      Catatan: Kecuali disebutkan, panduan ini mengacu pada +kelas {@link android.support.v4.app.NotificationCompat.Builder NotificationCompat.Builder} +dalam Support Library versi 4. +Kelas {@link android.app.Notification.Builder Notification.Builder} telah ditambahkan pada Android +3.0 (API level 11).

      + +

      Pertimbangan Desain

      + +

      Pemberitahuan, sebagai bagian penting dari antarmuka pengguna Android, memiliki panduan desainnya sendiri. +Perubahan desain materi yang diperkenalkan dalam Android 5.0 (API level 21) adalah sangat +penting, dan Anda harus meninjau pelatihan Desain Bahan +untuk informasi selengkapnya. Untuk mengetahui cara mendesain pemberitahuan dan interaksinya, bacalah panduan desain +Pemberitahuan.

      + +

      Membuat Pemberitahuan

      + +

      Anda menetapkan informasi dan tindakan UI bagi pemberitahuan dalam +objek {@link android.support.v4.app.NotificationCompat.Builder NotificationCompat.Builder}. +Untuk membuat pemberitahuan itu sendiri, panggil +{@link android.support.v4.app.NotificationCompat.Builder#build NotificationCompat.Builder.build()}, +yang akan mengembalikan objek {@link android.app.Notification} berisi spesifikasi Anda. Untuk mengeluarkan +pemberitahuan, Anda meneruskan objek {@link android.app.Notification} ke sistem dengan memanggil +{@link android.app.NotificationManager#notify NotificationManager.notify()}.

      + +

      Isi pemberitahuan yang diperlukan

      +

      + Objek {@link android.app.Notification} harus berisi yang berikut ini: +

      +
        +
      • + Ikon kecil, yang diatur dengan + {@link android.support.v4.app.NotificationCompat.Builder#setSmallIcon setSmallIcon()} +
      • +
      • + Judul, yang diatur dengan + {@link android.support.v4.app.NotificationCompat.Builder#setContentTitle setContentTitle()} +
      • +
      • + Teks detail, yang diatur dengan + {@link android.support.v4.app.NotificationCompat.Builder#setContentText setContentText()} +
      • +
      +

      Isi dan pengaturan pemberitahuan opsional

      +

      + Semua isi dan pengaturan pemberitahuan lainnya bersifat opsional. Untuk mengetahui selengkapnya tentang semua itu, + lihat dokumentasi acuan untuk {@link android.support.v4.app.NotificationCompat.Builder}. +

      + +

      Tindakan pemberitahuan

      +

      + Walaupun bersifat opsional, Anda harus menambahkan setidaknya satu tindakan pada pemberitahuan. + Tindakan memungkinkan pengguna beralih langsung dari pemberitahuan ke + {@link android.app.Activity} dalam aplikasi Anda, tempat pengguna bisa melihat satu atau beberapa kejadian + atau melakukan pekerjaan lebih jauh. +

      +

      + Pemberitahuan bisa menyediakan beberapa tindakan sekaligus. Anda harus selalu mendefinisikan tindakan yang + akan diaktifkan bila pengguna mengklik pemberitahuan; biasanya tindakan ini akan membuka + {@link android.app.Activity} dalam aplikasi Anda. Anda juga bisa menambahkan tombol pada pemberitahuan + yang melakukan tindakan tambahan seperti mendiamkan alarm atau segera merespons + pesan teks; fitur ini tersedia mulai Android 4.1. Jika menggunakan tombol tindakan tambahan, Anda + juga harus membuat fungsionalitasnya tersedia dalam {@link android.app.Activity} di aplikasi Anda; lihat + bagian Menangani kompatibilitas untuk detail selengkapnya. +

      +

      + Dalam {@link android.app.Notification}, tindakan itu sendiri didefinisikan oleh + {@link android.app.PendingIntent} berisi + {@link android.content.Intent} yang memulai + {@link android.app.Activity} dalam aplikasi Anda. Untuk mengaitkan + {@link android.app.PendingIntent} dengan gestur, panggil metode + {@link android.support.v4.app.NotificationCompat.Builder} yang sesuai. Misalnya, jika ingin memulai + {@link android.app.Activity} bila pengguna mengklik teks pemberitahuan pada + laci pemberitahuan, tambahkan {@link android.app.PendingIntent} dengan memanggil + {@link android.support.v4.app.NotificationCompat.Builder#setContentIntent setContentIntent()}. +

      +

      + Memulai {@link android.app.Activity} bila pengguna mengklik pemberitahuan adalah + skenario tindakan yang paling umum. Anda juga bisa memulai {@link android.app.Activity} bila pengguna + menghilangkan pemberitahuan. Dalam Android 4.1 dan yang lebih baru, Anda bisa memulai + {@link android.app.Activity} dari tombol tindakan. Untuk mengetahui selengkapnya, bacalah panduan acuan untuk + {@link android.support.v4.app.NotificationCompat.Builder}. +

      + +

      Prioritas pemberitahuan

      +

      + Jika diinginkan, Anda bisa mengatur prioritas pemberitahuan. Prioritas berfungsi + sebagai petunjuk bagi UI perangkat tentang cara menampilkan pemberitahuan. + Untuk mengatur prioritas pemberitahuan, panggil {@link + android.support.v4.app.NotificationCompat.Builder#setPriority(int) + NotificationCompat.Builder.setPriority()} dan teruskan salah satu konstanta prioritas {@link + android.support.v4.app.NotificationCompat}. Ada + lima level prioritas, mulai dari {@link + android.support.v4.app.NotificationCompat#PRIORITY_MIN} (-2) hingga {@link + android.support.v4.app.NotificationCompat#PRIORITY_MAX} (2); jika tidak diatur, + prioritas default akan ditetapkan {@link + android.support.v4.app.NotificationCompat#PRIORITY_DEFAULT} (0). +

      +

      Untuk informasi tentang mengatur level prioritas, lihat "Mengatur + dan mengelola prioritas pemberitahuan dengan benar" dalam panduan +Desain Pemberitahuan. +

      + +

      Membuat pemberitahuan sederhana

      +

      + Cuplikan berikut mengilustrasikan pemberitahuan sederhana yang menetapkan aktivitas untuk dibuka bila + pengguna mengklik pemberitahuan. Perhatikan bahwa kode ini membuat + objek {@link android.support.v4.app.TaskStackBuilder} dan menggunakannya untuk membuat + {@link android.app.PendingIntent} untuk tindakan. Pola ini dijelaskan secara lebih detail + di bagian + Mempertahankan Navigasi saat Memulai Aktivitas: +

      +
      +NotificationCompat.Builder mBuilder =
      +        new NotificationCompat.Builder(this)
      +        .setSmallIcon(R.drawable.notification_icon)
      +        .setContentTitle("My notification")
      +        .setContentText("Hello World!");
      +// Creates an explicit intent for an Activity in your app
      +Intent resultIntent = new Intent(this, ResultActivity.class);
      +
      +// The stack builder object will contain an artificial back stack for the
      +// started Activity.
      +// This ensures that navigating backward from the Activity leads out of
      +// your application to the Home screen.
      +TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
      +// Adds the back stack for the Intent (but not the Intent itself)
      +stackBuilder.addParentStack(ResultActivity.class);
      +// Adds the Intent that starts the Activity to the top of the stack
      +stackBuilder.addNextIntent(resultIntent);
      +PendingIntent resultPendingIntent =
      +        stackBuilder.getPendingIntent(
      +            0,
      +            PendingIntent.FLAG_UPDATE_CURRENT
      +        );
      +mBuilder.setContentIntent(resultPendingIntent);
      +NotificationManager mNotificationManager =
      +    (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
      +// mId allows you to update the notification later on.
      +mNotificationManager.notify(mId, mBuilder.build());
      +
      +

      Demikian saja. Pengguna Anda kini telah diberi tahu.

      + +

      Menerapkan layout yang diperluas pada pemberitahuan

      +

      + Agar pemberitahuan muncul dalam tampilan yang diperluas, buat dahulu + objek {@link android.support.v4.app.NotificationCompat.Builder} dengan opsi tampilan normal + yang Anda inginkan. Berikutnya, panggil {@link android.support.v4.app.NotificationCompat.Builder#setStyle + Builder.setStyle()} dengan objek layout yang diperluas sebagai argumennya. +

      +

      + Ingatlah bahwa pemberitahuan yang diperluas tidak tersedia pada platform-platform sebelum Android 4.1. Untuk + mengetahui cara menangani pemberitahuan untuk Android 4.1 dan untuk platform-platform sebelumnya, bacalah + bagian Menangani kompatibilitas. +

      +

      + Misalnya, cuplikan kode berikut memperagakan cara mengubah pemberitahuan yang dibuat + dalam cuplikan sebelumnya untuk menggunakan layout yang diperluas: +

      +
      +NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
      +    .setSmallIcon(R.drawable.notification_icon)
      +    .setContentTitle("Event tracker")
      +    .setContentText("Events received")
      +NotificationCompat.InboxStyle inboxStyle =
      +        new NotificationCompat.InboxStyle();
      +String[] events = new String[6];
      +// Sets a title for the Inbox in expanded layout
      +inboxStyle.setBigContentTitle("Event tracker details:");
      +...
      +// Moves events into the expanded layout
      +for (int i=0; i < events.length; i++) {
      +
      +    inboxStyle.addLine(events[i]);
      +}
      +// Moves the expanded layout object into the notification object.
      +mBuilder.setStyle(inBoxStyle);
      +...
      +// Issue the notification here.
      +
      + +

      Menangani kompatibilitas

      + +

      + Tidak semua fitur pemberitahuan tersedia untuk versi tertentu, walaupun + metode untuk mengaturnya ada dalam kelas pustaka dukungan + {@link android.support.v4.app.NotificationCompat.Builder NotificationCompat.Builder}. + Misalnya, tombol tindakan, yang bergantung pada pemberitahuan yang diperluas, hanya muncul pada Android + 4.1 dan lebih tinggi, karena pemberitahuan yang diperluas itu sendiri hanya tersedia pada + Android 4.1 dan yang lebih tinggi. +

      +

      + Untuk memastikan kompatibilitas terbaik, buatlah pemberitahuan dengan + {@link android.support.v4.app.NotificationCompat NotificationCompat} dan subkelasnya, + khususnya {@link android.support.v4.app.NotificationCompat.Builder + NotificationCompat.Builder}. Selain itu, ikutilah proses ini bila Anda mengimplementasikan pemberitahuan: +

      +
        +
      1. + Sediakan semua fungsionalitas pemberitahuan kepada semua pengguna, terlepas dari versi + yang mereka gunakan. Caranya, pastikan semua fungsionalitas tersedia dari + {@link android.app.Activity} dalam aplikasi Anda. Anda mungkin perlu menambahkan sebuah + {@link android.app.Activity} baru untuk melakukannya. +

        + Misalnya, jika Anda ingin menggunakan + {@link android.support.v4.app.NotificationCompat.Builder#addAction addAction()} untuk + menyediakan kontrol yang menghentikan dan memulai pemutaran media, implementasikan dahulu + kontrol ini pada {@link android.app.Activity} dalam aplikasi Anda. +

        +
      2. +
      3. + Pastikan semua pengguna bisa memperoleh fungsionalitas dalam {@link android.app.Activity}, + dengan memulainya bila pengguna mengklik pemberitahuan. Caranya, + buatlah {@link android.app.PendingIntent} + untuk {@link android.app.Activity}. Panggil + {@link android.support.v4.app.NotificationCompat.Builder#setContentIntent + setContentIntent()} untuk menambahkan {@link android.app.PendingIntent} pada pemberitahuan. +
      4. +
      5. + Kini tambahkan fitur pemberitahuan diperluas yang ingin Anda gunakan pada pemberitahuan. Ingatlah + bahwa setiap fungsionalitas yang Anda tambahkan juga harus tersedia dalam {@link android.app.Activity} + yang akan dimulai bila pengguna mengklik pemberitahuan. +
      6. +
      + + + + +

      Mengelola Pemberitahuan

      +

      + Bila perlu mengeluarkan pemberitahuan beberapa kali untuk tipe kejadian yang sama, +hindari membuat pemberitahuan yang sama sekali baru. Sebagai gantinya, Anda harus mempertimbangkan untuk memperbarui + pemberitahuan sebelumnya, baik dengan mengubah sebagian nilainya atau dengan menambahkan nilai, atau keduanya. +

      +

      + Misalnya, Gmail akan memberi tahu pengguna bila ada email baru dengan menambah hitungan + pesan tidak terbaca dan dengan menambahkan rangkuman tiap email ke pemberitahuan. Ini disebut dengan + "stacking" (menumpuk) pemberitahuan; hal ini dijelaskan lebih detail dalam panduan + Desain Pemberitahuan. +

      +

      + Catatan: Fitur Gmail ini mensyaratkan layout "kotak masuk" diperluas, yang merupakan + bagian dari fitur pemberitahuan diperluas yang tersedia mulai Android 4.1. +

      +

      + Bagian berikut menjelaskan cara memperbarui pemberitahuan dan cara menghapusnya. +

      +

      Memperbarui pemberitahuan

      +

      + Untuk menyiapkan pemberitahuan agar bisa diperbarui, keluarkan pemberitahuan bersama ID pemberitahuan dengan + memanggil {@link android.app.NotificationManager#notify(int, android.app.Notification) NotificationManager.notify()}. + Untuk memperbarui pemberitahuan ini setelah Anda + mengeluarkan, memperbarui, atau membuat objek {@link android.support.v4.app.NotificationCompat.Builder}, + buat objek {@link android.app.Notification} darinya, dan keluarkan + {@link android.app.Notification} bersama ID yang sama dengan yang Anda gunakan sebelumnya. Jika + pemberitahuan sebelumnya tetap terlihat, sistem akan memperbaruinya dari konten + objek {@link android.app.Notification}. Jika pemberitahuan sebelumnya telah dihilangkan, sebuah + pemberitahuan baru akan dibuat. +

      +

      + Cuplikan berikut memperagakan pemberitahuan yang diperbarui untuk mencerminkan + jumlah kejadian yang telah terjadi. Cuplikan ini menumpuk pemberitahuan, yang menampilkan rangkuman: +

      +
      +mNotificationManager =
      +        (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
      +// Sets an ID for the notification, so it can be updated
      +int notifyID = 1;
      +mNotifyBuilder = new NotificationCompat.Builder(this)
      +    .setContentTitle("New Message")
      +    .setContentText("You've received new messages.")
      +    .setSmallIcon(R.drawable.ic_notify_status)
      +numMessages = 0;
      +// Start of a loop that processes data and then notifies the user
      +...
      +    mNotifyBuilder.setContentText(currentText)
      +        .setNumber(++numMessages);
      +    // Because the ID remains unchanged, the existing notification is
      +    // updated.
      +    mNotificationManager.notify(
      +            notifyID,
      +            mNotifyBuilder.build());
      +...
      +
      + + +

      Menghapus pemberitahuan

      +

      + Pemberitahuan tetap terlihat hingga salah satu kejadian berikut terjadi: +

      +
        +
      • + Pengguna menghilangkan pemberitahuan satu per satu atau dengan menggunakan "Clear All" (jika + pemberitahuan bisa dihapus). +
      • +
      • + Pengguna mengklik pemberitahuan, dan Anda memanggil + {@link android.support.v4.app.NotificationCompat.Builder#setAutoCancel setAutoCancel()} bila + Anda telah membuat pemberitahuan. +
      • +
      • + Anda memanggil {@link android.app.NotificationManager#cancel(int) cancel()} untuk + ID pemberitahuan tertentu. Metode ini juga menghapus pemberitahuan yang berjalan. +
      • +
      • + Anda memanggil {@link android.app.NotificationManager#cancelAll() cancelAll()}, yang menghapus + semua pemberitahuan yang dikeluarkan sebelumnya. +
      • +
      + + +

      Mempertahankan Navigasi saat Memulai Aktivitas

      +

      + Bila memulai {@link android.app.Activity} dari pemberitahuan, Anda harus mempertahankan + pengalaman navigasi yang diharapkan pengguna. Mengklik Back harus membawa pengguna kembali melalui + aliran pekerjaan normal aplikasi ke layar Home, dan mengklik Recents harus menampilkan + {@link android.app.Activity} sebagai tugas terpisah. Untuk mempertahankan pengalaman navigasi, Anda + harus memulai {@link android.app.Activity} dalam tugas baru. Cara menyiapkan + {@link android.app.PendingIntent} untuk memberi Anda tugas baru bergantung pada sifat + {@link android.app.Activity} yang Anda mulai. Ada dua situasi umum: +

      +
      +
      + Aktivitas rutin +
      +
      + Anda memulai {@link android.app.Activity} yang merupakan bagian dari aliran pekerjaan normal + aplikasi. Dalam situasi ini, siapkan {@link android.app.PendingIntent} untuk + memulai tugas baru, dan sediakan {@link android.app.PendingIntent} bersama back-stack + yang meniru perilaku Back biasa. +

      + Pemberitahuan dari aplikasi Gmail memperagakan hal ini. Bila Anda mengklik pemberitahuan untuk + satu pesan email, Anda akan melihat pesan itu sendiri. Menyentuh Back akan membawa Anda + kembali melalui Gmail ke layar Home, persis seperti jika memasuki Gmail dari + layar Home bukannya memasukinya dari pemberitahuan. +

      +

      + Hal ini terjadi terlepas dari aplikasi tempat Anda berada saat menyentuh + pemberitahuan. Misalnya, jika Anda dalam Gmail sedang menulis pesan, dan Anda mengklik + pemberitahuan untuk satu email, Anda akan segera dibawa ke email itu. Menyentuh Back + akan membawa Anda ke kotak masuk kemudian layar Home, bukannya membawa Anda ke + pesan yang sedang ditulis. +

      +
      +
      + Aktivitas khusus +
      +
      + Pengguna hanya melihat {@link android.app.Activity} ini jika dimulai dari pemberitahuan. + Dalam beberapa hal, {@link android.app.Activity} akan memperluas pemberitahuan dengan menyediakan + informasi yang akan sulit untuk ditampilkan dalam pemberitahuan itu sendiri. Untuk situasi ini, + siapkan {@link android.app.PendingIntent} untuk dimulai dalam tugas baru. Tidak perlu + membuat back-stack, karena {@link android.app.Activity} yang dimulai bukan bagian dari + aliran aktivitas aplikasi. Mengklik Back tetap akan membawa pengguna ke + layar Home. +
      +
      + +

      Menyiapkan PendingIntent aktivitas biasa

      +

      + Untuk menyiapkan {@link android.app.PendingIntent} yang memulai entri langsung + {@link android.app.Activity}, ikuti langkah-langkah ini: +

      +
        +
      1. + Definisikan hierarki {@link android.app.Activity} aplikasi Anda dalam manifes. +
          +
        1. + Tambahkan dukungan untuk Android 4.0.3 dan yang terdahulu. Caranya, tetapkan induk + {@link android.app.Activity} yang Anda mulai dengan menambahkan elemen +<meta-data> + sebagai anak +<activity>. +

          + Untuk elemen ini, atur +android:name="android.support.PARENT_ACTIVITY". + Atur +android:value="<parent_activity_name>" + dengan <parent_activity_name> sebagai nilai +android:name + untuk elemen induk +<activity> +. Lihat XML berikut sebagai contoh. +

          +
        2. +
        3. + Juga tambahkan dukungan untuk Android 4.1 dan yang lebih baru. Caranya, tambahkan atribut +android:parentActivityName + pada elemen +<activity> + dari {@link android.app.Activity} yang Anda mulai. +
        4. +
        +

        + XML akhir akan terlihat seperti ini: +

        +
        +<activity
        +    android:name=".MainActivity"
        +    android:label="@string/app_name" >
        +    <intent-filter>
        +        <action android:name="android.intent.action.MAIN" />
        +        <category android:name="android.intent.category.LAUNCHER" />
        +    </intent-filter>
        +</activity>
        +<activity
        +    android:name=".ResultActivity"
        +    android:parentActivityName=".MainActivity">
        +    <meta-data
        +        android:name="android.support.PARENT_ACTIVITY"
        +        android:value=".MainActivity"/>
        +</activity>
        +
        +
      2. +
      3. + Buat back-stack berdasarkan {@link android.content.Intent} yang memulai + {@link android.app.Activity}: +
          +
        1. + Buat {@link android.content.Intent} untuk memulai {@link android.app.Activity}. +
        2. +
        3. + Buat stack-builder (pembangun tumpukan) dengan memanggil {@link android.app.TaskStackBuilder#create + TaskStackBuilder.create()}. +
        4. +
        5. + Tambahkan back-stack ke stack-builder dengan memanggil + {@link android.support.v4.app.TaskStackBuilder#addParentStack addParentStack()}. + Untuk setiap {@link android.app.Activity} dalam hierarki yang telah Anda definisikan dalam + manifes, back-stack berisi objek {@link android.content.Intent} yang + memulai {@link android.app.Activity}. Metode ini juga menambahkan flag yang memulai + back-stack dalam tugas baru. +

          + Catatan: Walaupun argumen untuk + {@link android.support.v4.app.TaskStackBuilder#addParentStack addParentStack()} + adalah acuan ke {@link android.app.Activity} yang dimulai, panggilan metode + tidak akan menambahkan {@link android.content.Intent} yang memulai + {@link android.app.Activity}. Sebagai gantinya, hal itu ditangani dalam langkah berikutnya. +

          +
        6. +
        7. + Tambahkan {@link android.content.Intent} yang memulai {@link android.app.Activity} + dari pemberitahuan, dengan memanggil + {@link android.support.v4.app.TaskStackBuilder#addNextIntent addNextIntent()}. + Teruskan {@link android.content.Intent} yang Anda buat dalam langkah pertama sebagai + argumen ke + {@link android.support.v4.app.TaskStackBuilder#addNextIntent addNextIntent()}. +
        8. +
        9. + Jika perlu, tambahkan argumen ke objek {@link android.content.Intent} pada + back-stack dengan memanggil {@link android.support.v4.app.TaskStackBuilder#editIntentAt + TaskStackBuilder.editIntentAt()}. Kadang-kadang perlu memastikan apakah + {@link android.app.Activity} target menampilkan data bermakna saat pengguna menelusurinya + dengan menggunakan Back. +
        10. +
        11. + Dapatkan {@link android.app.PendingIntent} untuk back-stack ini dengan memanggil + {@link android.support.v4.app.TaskStackBuilder#getPendingIntent getPendingIntent()}. + Anda nanti bisa menggunakan {@link android.app.PendingIntent} ini sebagai argumen untuk + {@link android.support.v4.app.NotificationCompat.Builder#setContentIntent + setContentIntent()}. +
        12. +
        +
      4. +
      +

      + Cuplikan kode berikut memperagakan prosesnya: +

      +
      +...
      +Intent resultIntent = new Intent(this, ResultActivity.class);
      +TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
      +// Adds the back stack
      +stackBuilder.addParentStack(ResultActivity.class);
      +// Adds the Intent to the top of the stack
      +stackBuilder.addNextIntent(resultIntent);
      +// Gets a PendingIntent containing the entire back stack
      +PendingIntent resultPendingIntent =
      +        stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
      +...
      +NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
      +builder.setContentIntent(resultPendingIntent);
      +NotificationManager mNotificationManager =
      +    (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
      +mNotificationManager.notify(id, builder.build());
      +
      + +

      Menyiapkan PendingIntent aktivitas khusus

      +

      + Bagian berikut menjelaskan cara menyiapkan aktivitas khusus + {@link android.app.PendingIntent}. +

      +

      + {@link android.app.Activity} khusus tidak memerlukan back-stack, sehingga Anda tidak perlu + mendefinisikan hierarki {@link android.app.Activity}-nya dalam manifes, dan Anda tidak perlu + memanggil + {@link android.support.v4.app.TaskStackBuilder#addParentStack addParentStack()} untuk membuat + back-stack. Sebagai gantinya, gunakan manifes untuk menyiapkan opsi tugas {@link android.app.Activity}, + dan buat {@link android.app.PendingIntent} dengan memanggil + {@link android.app.PendingIntent#getActivity getActivity()}: +

      +
        +
      1. + Dalam manifes, tambahkan atribut berikut pada elemen +<activity> + untuk {@link android.app.Activity} +
        +
        +android:name="activityclass" +
        +
        + Nama kelas mutlak (fully qualified) aktivitas. +
        +
        +android:taskAffinity="" +
        +
        + Dikombinasikan dengan flag + {@link android.content.Intent#FLAG_ACTIVITY_NEW_TASK FLAG_ACTIVITY_NEW_TASK} + yang Anda atur dalam kode, ini memastikan bahwa {@link android.app.Activity} ini tidak + masuk ke dalam tugas default aplikasi. Setiap tugas yang ada yang memiliki + afinitas default aplikasi tidak terpengaruh. +
        +
        +android:excludeFromRecents="true" +
        +
        + Mengecualikan tugas baru dari Recents, sehingga pengguna tidak bisa tanpa sengaja + mengarahkan kembali. +
        +
        +

        + Cuplikan ini menampilkan elemen: +

        +
        +<activity
        +    android:name=".ResultActivity"
        +...
        +    android:launchMode="singleTask"
        +    android:taskAffinity=""
        +    android:excludeFromRecents="true">
        +</activity>
        +...
        +
        +
      2. +
      3. + Buat dan keluarkan pemberitahuan: +
          +
        1. + Buat {@link android.content.Intent} yang memulai + {@link android.app.Activity}. +
        2. +
        3. + Atur {@link android.app.Activity} untuk dimulai dalam tugas kosong yang baru dengan memanggil + {@link android.content.Intent#setFlags setFlags()} dengan flag + {@link android.content.Intent#FLAG_ACTIVITY_NEW_TASK FLAG_ACTIVITY_NEW_TASK} + dan + {@link android.content.Intent#FLAG_ACTIVITY_CLEAR_TASK FLAG_ACTIVITY_CLEAR_TASK}. +
        4. +
        5. + Atur setiap opsi lain yang Anda perlukan untuk {@link android.content.Intent}. +
        6. +
        7. + Buat {@link android.app.PendingIntent} dari {@link android.content.Intent} + dengan memanggil {@link android.app.PendingIntent#getActivity getActivity()}. + Anda nanti bisa menggunakan {@link android.app.PendingIntent} ini sebagai argumen untuk + {@link android.support.v4.app.NotificationCompat.Builder#setContentIntent + setContentIntent()}. +
        8. +
        +

        + Cuplikan kode berikut memperagakan prosesnya: +

        +
        +// Instantiate a Builder object.
        +NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
        +// Creates an Intent for the Activity
        +Intent notifyIntent =
        +        new Intent(this, ResultActivity.class);
        +// Sets the Activity to start in a new, empty task
        +notifyIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
        +                        | Intent.FLAG_ACTIVITY_CLEAR_TASK);
        +// Creates the PendingIntent
        +PendingIntent notifyPendingIntent =
        +        PendingIntent.getActivity(
        +        this,
        +        0,
        +        notifyIntent,
        +        PendingIntent.FLAG_UPDATE_CURRENT
        +);
        +
        +// Puts the PendingIntent into the notification builder
        +builder.setContentIntent(notifyPendingIntent);
        +// Notifications are issued by sending them to the
        +// NotificationManager system service.
        +NotificationManager mNotificationManager =
        +    (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        +// Builds an anonymous Notification object from the builder, and
        +// passes it to the NotificationManager
        +mNotificationManager.notify(id, builder.build());
        +
        +
      4. +
      + + +

      Menampilkan Kemajuan dalam Pemberitahuan

      +

      + Pemberitahuan bisa menyertakan indikator kemajuan beranimasi yang menampilkan status +operasi yang berjalan kepada pengguna. Jika Anda bisa memperkirakan lamanya operasi berlangsung dan berapa banyak + yang sudah selesai pada suatu waktu, gunakan bentuk indikator yang "pasti" + (baris kemajuan). Jika Anda tidak bisa memperkirakan lamanya operasi, gunakan + bentuk indikator "tidak pasti" (indikator aktivitas). +

      +

      + Indikator kemajuan ditampilkan bersama implementasi platform + kelas {@link android.widget.ProgressBar}. +

      +

      + Untuk menggunakan indikator kemajuan pada platform mulai dari Android 4.0, panggil + {@link android.support.v4.app.NotificationCompat.Builder#setProgress setProgress()}. Untuk + versi sebelumnya, Anda harus membuat layout pemberitahuan custom sendiri yang +menyertakan tampilan {@link android.widget.ProgressBar}. +

      +

      + Bagian berikut ini menjelaskan cara menampilkan kemajuan dalam pemberitahuan dengan menggunakan + {@link android.support.v4.app.NotificationCompat.Builder#setProgress setProgress()}. +

      + +

      Menampilkan indikator kemajuan berdurasi tetap

      +

      + Untuk menampilkan baris kemajuan pasti, tambahkan baris itu ke pemberitahuan dengan memanggil + {@link android.support.v4.app.NotificationCompat.Builder#setProgress + setProgress(max, progress, false)}, kemudian keluarkan pemberitahuan. Selagi operasi berlangsung, + tambah progress, dan perbarui pemberitahuan. Di akhir operasi, + progress harus sama dengan max. Satu cara umum memanggil + {@link android.support.v4.app.NotificationCompat.Builder#setProgress setProgress()} + adalah mengatur max ke 100, kemudian tambah progress sebagai + nilai "persen selesai"untuk operasi itu. +

      +

      + Anda bisa membiarkan baris kemajuan ditampilkan saat operasi selesai, atau menghilangkannya. Dalam + hal apa pun, ingatlah memperbarui teks pemberitahuan untuk menampilkan bahwa operasi telah selesai. + Untuk menghapus baris kemajuan, panggil + {@link android.support.v4.app.NotificationCompat.Builder#setProgress + setProgress(0, 0, false)}. Misalnya: +

      +
      +...
      +mNotifyManager =
      +        (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
      +mBuilder = new NotificationCompat.Builder(this);
      +mBuilder.setContentTitle("Picture Download")
      +    .setContentText("Download in progress")
      +    .setSmallIcon(R.drawable.ic_notification);
      +// Start a lengthy operation in a background thread
      +new Thread(
      +    new Runnable() {
      +        @Override
      +        public void run() {
      +            int incr;
      +            // Do the "lengthy" operation 20 times
      +            for (incr = 0; incr <= 100; incr+=5) {
      +                    // Sets the progress indicator to a max value, the
      +                    // current completion percentage, and "determinate"
      +                    // state
      +                    mBuilder.setProgress(100, incr, false);
      +                    // Displays the progress bar for the first time.
      +                    mNotifyManager.notify(0, mBuilder.build());
      +                        // Sleeps the thread, simulating an operation
      +                        // that takes time
      +                        try {
      +                            // Sleep for 5 seconds
      +                            Thread.sleep(5*1000);
      +                        } catch (InterruptedException e) {
      +                            Log.d(TAG, "sleep failure");
      +                        }
      +            }
      +            // When the loop is finished, updates the notification
      +            mBuilder.setContentText("Download complete")
      +            // Removes the progress bar
      +                    .setProgress(0,0,false);
      +            mNotifyManager.notify(ID, mBuilder.build());
      +        }
      +    }
      +// Starts the thread by calling the run() method in its Runnable
      +).start();
      +
      + + +

      Menampilkan indikator aktivitas berlanjut

      +

      + Untuk menampilkan indikator aktivitas tidak pasti, tambahkan aktivitas ke pemberitahuan dengan + {@link android.support.v4.app.NotificationCompat.Builder#setProgress setProgress(0, 0, true)} + (dua argumen pertama akan diabaikan), dan keluarkan pemberitahuan. Hasilnya adalah indikator + yang memiliki gaya yang sama dengan baris kemajuan, hanya saja animasinya terus berjalan. +

      +

      + Keluarkan pemberitahuan di awal operasi. Animasi akan berjalan hingga Anda + memodifikasi pemberitahuan. Bila operasi selesai, panggil + {@link android.support.v4.app.NotificationCompat.Builder#setProgress setProgress(0, 0, false)} + kemudian perbarui pemberitahuan untuk menghapus indikator aktivitas. + Selalu lakukan ini; jika makan animasi akan terus berjalan sekalipun operasi telah selesai. Juga + ingatlah mengubah teks pemberitahuan untuk menunjukkan bahwa operasi telah selesai. +

      +

      + Untuk melihat cara kerja indikator aktivitas, lihat cuplikan terdahulu. Cari lokasi baris-baris berikut: +

      +
      +// Sets the progress indicator to a max value, the current completion
      +// percentage, and "determinate" state
      +mBuilder.setProgress(100, incr, false);
      +// Issues the notification
      +mNotifyManager.notify(0, mBuilder.build());
      +
      +

      + Ganti baris yang telah Anda temukan dengan baris berikut: +

      +
      + // Sets an activity indicator for an operation of indeterminate length
      +mBuilder.setProgress(0, 0, true);
      +// Issues the notification
      +mNotifyManager.notify(0, mBuilder.build());
      +
      + +

      Metadata Pemberitahuan

      + +

      Pemberitahuan dapat disortir sesuai metadata yang Anda tetapkan dengan +metode {@link android.support.v4.app.NotificationCompat.Builder} berikut:

      + +
        +
      • {@link android.support.v4.app.NotificationCompat.Builder#setCategory(java.lang.String) setCategory()} + memberi tahu sistem cara menangani pemberitahuan aplikasi Anda bila perangkat berada dalam mode Priority + (misalnya, jika pemberitahuan menyatakan suatu panggilan masuk, pesan instan, atau alarm).
      • +
      • {@link android.support.v4.app.NotificationCompat.Builder#setPriority(int) setPriority()} menyebabkan + pemberitahuan dengan bidang prioritas diatur ke {@code PRIORITY_MAX} atau {@code PRIORITY_HIGH} + muncul dalam jendela kecil mengambang jika pemberitahuan juga memiliki suara atau getaran.
      • +
      • {@link android.support.v4.app.NotificationCompat.Builder#addPerson(java.lang.String) addPerson()} + memungkinkan Anda menambahkan daftar orang ke pemberitahuan. Aplikasi Anda bisa menggunakannya untuk memberi isyarat pada + sistem bahwa sistem harus mengelompokkan bersama pemberitahuan dari orang-orang yang ditetapkan, atau memberi peringkat lebih penting pada pemberitahuan + untuk orang-orang ini.
      • +
      + +
      + +

      + Gambar 3. Aktivitas layar penuh yang menampilkan pemberitahuan pendahuluan +

      +
      + +

      Pemberitahuan Pendahuluan

      + +

      Dengan Android 5.0 (API level 21), pemberitahuan bisa muncul dalam jendela kecil mengambang +(yang disebut juga dengan pemberitahuan pendahuluan) saat perangkat aktif +(yakni, perangkat dibuka kuncinya dan layarnya menyala). Pemberitahuan ini +muncul seperti bentuk ringkas pemberitahuan Anda, hanya saja +pemberitahuan pendahuluan juga menampilkan tombol tindakan. Pengguna bisa menindaklanjuti atau mengabaikan, +pemberitahuan pendahuluan tanpa meninggalkan aplikasi saat ini.

      + +

      Contoh-contoh kondisi yang dapat memicu pemberitahuan pendahuluan antara lain:

      + +
        +
      • Aktivitas pengguna berada dalam mode layar penuh (aplikasi menggunakan +{@link android.app.Notification#fullScreenIntent}), atau
      • +
      • Pemberitahuan memiliki prioritas tinggi dan menggunakan nada dering atau + getaran
      • +
      + +

      Pemberitahuan Layar Kunci

      + +

      Dengan rilis Android 5.0 (API level 21), pemberitahuan kini dapat muncul pada +layar kunci. Aplikasi Anda bisa menggunakan fungsionalitas ini untuk menyediakan kontrol pemutaran media dan +tindakan umum lainnya. Pengguna bisa memilih lewat Settings apakah akan menampilkan pemberitahuan pada layar kunci, dan +Anda bisa mendesain apakah pemberitahuan aplikasi akan terlihat pada layar kunci.

      + +

      Mengatur Visibilitas

      + +

      Aplikasi Anda bisa mengatur level detail terlihat pada pemberitahuan yang ditampilkan di +layar kunci aman. Anda memanggil {@link android.support.v4.app.NotificationCompat.Builder#setVisibility(int) setVisibility()} +dan menetapkan salah satu nilai berikut:

      + +
        +
      • {@link android.support.v4.app.NotificationCompat#VISIBILITY_PUBLIC} menampilkan isi lengkap + pemberitahuan.
      • +
      • {@link android.support.v4.app.NotificationCompat#VISIBILITY_SECRET} tidak menampilkan bagian apa pun dari + pemberitahuan ini pada layar kunci.
      • +
      • {@link android.support.v4.app.NotificationCompat#VISIBILITY_PRIVATE} menampilkan informasi dasar, + misalnya ikon dan judul isi pemberitahuan, namun menyembunyikan isi lengkap pemberitahuan.
      • +
      + +

      Bila {@link android.support.v4.app.NotificationCompat#VISIBILITY_PRIVATE} telah diatur, Anda juga bisa +menyediakan versi alternatif isi pemberitahuan yang menyembunyikan detail tertentu. Misalnya, +aplikasi SMS dapat menampilkan pemberitahuan yang menampilkan Anda memiliki 3 pesan teks baru, namun menyembunyikan +isi dan pengirim pesan. Untuk menyediakan pemberitahuan alternatif ini, buat dahulu pemberitahuan +pengganti menggunakan {@link android.support.v4.app.NotificationCompat.Builder}. Bila Anda membuat +objek pemberitahuan privat, lampirkan pemberitahuan pengganti melalui metode +{@link android.support.v4.app.NotificationCompat.Builder#setPublicVersion(android.app.Notification) setPublicVersion()} +.

      + +

      Mengontrol Pemutaran Media pada Layar Kunci

      + +

      Dalam Android 5.0 (API level 21) layar kunci tidak lagi menampilkan kontrol media +berdasarkan {@link android.media.RemoteControlClient}, yang sekarang telah dihilangkan. Sebagai gantinya, gunakan +template {@link android.app.Notification.MediaStyle} dengan metode +{@link android.app.Notification.Builder#addAction(android.app.Notification.Action) addAction()} +, yang mengubah tindakan menjadi ikon yang bisa diklik.

      + +

      Catatan: Template dan metode {@link android.app.Notification.Builder#addAction(android.app.Notification.Action) addAction()} +tidak disertakan dalam pustaka dukungan, sehingga fitur-fitur ini berjalan pada Android 5.0 dan yang lebih tinggi +saja.

      + +

      Untuk menampilkan kontrol pemutaran media di layar kunci dalam Android 5.0, atur visibilitas +ke {@link android.support.v4.app.NotificationCompat#VISIBILITY_PUBLIC}, seperti dijelaskan di atas. Kemudian tambahkan +tindakan dan atur template {@link android.app.Notification.MediaStyle}, seperti dijelaskan dalam contoh kode +berikut:

      + +
      +Notification notification = new Notification.Builder(context)
      +    // Show controls on lock screen even when user hides sensitive content.
      +    .setVisibility(Notification.VISIBILITY_PUBLIC)
      +    .setSmallIcon(R.drawable.ic_stat_player)
      +    // Add media control buttons that invoke intents in your media service
      +    .addAction(R.drawable.ic_prev, "Previous", prevPendingIntent) // #0
      +    .addAction(R.drawable.ic_pause, "Pause", pausePendingIntent)  // #1
      +    .addAction(R.drawable.ic_next, "Next", nextPendingIntent)     // #2
      +    // Apply the media style template
      +    .setStyle(new Notification.MediaStyle()
      +    .setShowActionsInCompactView(1 /* #1: pause button */)
      +    .setMediaSession(mMediaSession.getSessionToken())
      +    .setContentTitle("Wonderful music")
      +    .setContentText("My Awesome Band")
      +    .setLargeIcon(albumArtBitmap)
      +    .build();
      +
      + +

      Catatan: Dihilangkannya {@link android.media.RemoteControlClient} +memiliki implikasi lebih jauh untuk mengontrol media. Lihat +Kontrol Pemutaran Media +untuk informasi selengkapnya tentang API baru untuk mengelola sesi media dan mengontrol pemutaran.

      + + + +

      Layout Pemberitahuan Custom

      +

      + Kerangka kerja pemberitahuan memungkinkan Anda mendefinisikan layout pemberitahuan custom, yang + mendefinisikan penampilan pemberitahuan dalam objek {@link android.widget.RemoteViews}. + Pemberitahuan dengan layout custom serupa pemberitahuan normal, namun dibuat berdasarkan + {@link android.widget.RemoteViews} yang didefinisikan dalam file layout XML. +

      +

      + Tinggi yang tersedia untuk layout pemberitahuan custom bergantung pada tampilan pemberitahuan. Layout + tampilan normal dibatasi hingga 64 dp, dan layout tampilan yang diperluas dibatasi hingga 256 dp. +

      +

      + Untuk mendefinisikan layout pemberitahuan custom, mulailah dengan membuat instance + objek {@link android.widget.RemoteViews} yang memekarkan file layout XML. Kemudian, + sebagai ganti memanggil metode seperti + {@link android.support.v4.app.NotificationCompat.Builder#setContentTitle setContentTitle()}, + panggil {@link android.support.v4.app.NotificationCompat.Builder#setContent setContent()}. Untuk mengatur + detail isi pemberitahuan custom, gunakan metode dalam + {@link android.widget.RemoteViews} untuk mengatur nilai anak tampilan: +

      +
        +
      1. + Buat layout XML untuk pemberitahuan di file terpisah. Anda bisa menggunakan nama file +apa saja yang diinginkan, namun Anda harus menggunakan ekstensi .xml +
      2. +
      3. + Dalam aplikasi Anda, gunakan metode {@link android.widget.RemoteViews} untuk mendefinisikan + ikon dan teks pemberitahuan. Masukkan objek {@link android.widget.RemoteViews} ini ke dalam + {@link android.support.v4.app.NotificationCompat.Builder} Anda dengan memanggil + {@link android.support.v4.app.NotificationCompat.Builder#setContent setContent()}. Hindari + mengatur {@link android.graphics.drawable.Drawable} latar belakang pada + objek {@link android.widget.RemoteViews} Anda, karena warna teks bisa menjadi tidak terbaca. +
      4. +
      +

      + Kelas {@link android.widget.RemoteViews} juga menyertakan metode yang bisa Anda gunakan untuk + menambahkan {@link android.widget.Chronometer} atau {@link android.widget.ProgressBar} +dengan mudah ke layout pemberitahuan Anda. Untuk informasi selengkapnya tentang cara membuat layout custom + pemberitahuan Anda, lihat dokumentasi acuan {@link android.widget.RemoteViews}. +

      +

      + Perhatian: Bila Anda menggunakan layout pemberitahuan custom, berhati-hatilah + untuk memastikan bahwa layout custom itu bekerja pada berbagai orientasi dan resolusi perangkat. Walaupun + berlaku bagi semua layout View, nasihat ini khususnya penting untuk pemberitahuan karena + ruang di laci pemberitahuan sangat terbatas. Jangan buat layout custom terlalu + kompleks, dan pastikan mengujinya di berbagai konfigurasi. +

      + +

      Menggunakan sumber daya gaya untuk teks pemberitahuan custom

      +

      + Selalu gunakan sumber daya gaya untuk teks pemberitahuan custom. Warna latar belakang + pemberitahuan bisa bervariasi di berbagai perangkat dan versi, dan menggunakan sumber daya gaya + membantu Anda menangani hal ini. Mulai Android 2.3, sistem mendefinisikan sebuah gaya untuk + teks layout pemberitahuan standar. Jika Anda menggunakan gaya yang sama dalam aplikasi yang menargetkan Android + 2.3 atau yang lebih tinggi, Anda akan memastikan bahwa teks terlihat pada latar belakang tampilan. +

      diff --git a/docs/html-intl/intl/id/guide/topics/ui/overview.jd b/docs/html-intl/intl/id/guide/topics/ui/overview.jd new file mode 100644 index 000000000000..ca8b42085ac2 --- /dev/null +++ b/docs/html-intl/intl/id/guide/topics/ui/overview.jd @@ -0,0 +1,71 @@ +page.title=Ikhtisar UI +@jd:body + + +

      Semua elemen antarmuka pengguna dalam aplikasi Android dibangun menggunakan objek {@link android.view.View} dan +{@link android.view.ViewGroup}. {@link android.view.View} adalah objek yang menarik +sesuatu di layar dan dapat berinteraksi dengan pengguna. {@link android.view.ViewGroup} merupakan sebuah +objek yang menyimpan objek {@link android.view.View} lainnya (dan {@link android.view.ViewGroup}) untuk +mendefinisikan layout antarmuka.

      + +

      Android menyediakan sekumpulan subkelas {@link android.view.View} dan {@link +android.view.ViewGroup} yang menawarkan kontrol input umum (seperti tombol dan bidang +teks) serta berbagai model layout (seperti layout linear atau relatif).

      + + +

      Layout Antarmuka Pengguna

      + +

      Antarmuka pengguna untuk setiap komponen aplikasi Anda didefinisikan menggunakan hierarki objek {link +android.view.View} dan {@link android.view.ViewGroup}, seperti yang ditampilkan dalam gambar 1. Setiap kelompok tampilan +merupakan kontainer tak terlihat yang mengelola tampilan anak, sementara tampilan anak ini dapat menjadi kontrol +input atau widget lain yang +menarik sebagian dari UI. Pohon hierarki ini bisa sederhana atau bisa juga kompleks bergantung kebutuhan +(namun yang sederhana paling baik untuk kinerja).

      + + +

      Gambar 1. Ilustrasi dari hierarki tampilan, yang mendefinisikan layout +UI.

      + +

      Untuk mendeklarasikan layout, Anda dapat menyediakan objek {@link android.view.View} dalam kode dan mulai +membangun pohon, namun cara termudah dan terefektif untuk mendefinisikan layout adalah dengan file XML. +XML menawarkan struktur layout yang dapat dibaca manusia, serupa dengan HTML.

      + +

      Nama elemen XML untuk tampilan sesuai dengan kelas Android yang diwakilinya. Dengan demikian elemen +<TextView> membuat widget {@link android.widget.TextView} dalam UI Anda, +dan elemen <LinearLayout> membuat kelompok tampilan {@link android.widget.LinearLayout} +.

      + +

      Misalnya, layout vertikal sederhana dengan tampilan teks dan tombol akan tampak seperti ini:

      +
      +<?xml version="1.0" encoding="utf-8"?>
      +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      +              android:layout_width="fill_parent"
      +              android:layout_height="fill_parent"
      +              android:orientation="vertical" >
      +    <TextView android:id="@+id/text"
      +              android:layout_width="wrap_content"
      +              android:layout_height="wrap_content"
      +              android:text="I am a TextView" />
      +    <Button android:id="@+id/button"
      +            android:layout_width="wrap_content"
      +            android:layout_height="wrap_content"
      +            android:text="I am a Button" />
      +</LinearLayout>
      +
      + +

      Saat Anda memuat sumber daya layout di aplikasi, Android akan menginisialisasi setiap simpul layout menjadi +objek runtime yang bisa Anda gunakan untuk mendefinisikan perilaku tambahan, query status objek, atau memodifikasi +layout.

      + +

      Untuk mendapatkan panduan lengkap mengenai pembuatan layout UI, lihat Layout +XML. + + +

      Komponen Antarmuka Pengguna

      + +

      Anda tidak harus membuat semua UI menggunakan objek {@link android.view.View} dan {link +android.view.ViewGroup}. Android menyediakan beberapa komponen aplikasi yang menawarkan +layout UI standar yang tinggal Anda definisikan kontennya. Komponen UI ini masing-masing +memiliki set API unik yang dijelaskan dalam masing-masing dokumennya, seperti Action-Bar, Dialog, dan Pemberitahuan Status.

      + + diff --git a/docs/html-intl/intl/id/guide/topics/ui/settings.jd b/docs/html-intl/intl/id/guide/topics/ui/settings.jd new file mode 100644 index 000000000000..89be52fc2a73 --- /dev/null +++ b/docs/html-intl/intl/id/guide/topics/ui/settings.jd @@ -0,0 +1,1202 @@ +page.title=Pengaturan +page.tags=preference,preferenceactivity,preferencefragment + +@jd:body + + + + + + + +

      Aplikasi sering kali menyertakan pengaturan yang memungkinkan pengguna memodifikasi fitur dan perilaku aplikasi. Misalnya, +beberapa aplikasi memungkinkan pengguna untuk menetapkan apakah pemberitahuan diaktifkan atau menetapkan seberapa sering +aplikasi menyinkronkan data dengan cloud.

      + +

      Jika ingin menyediakan pengaturan untuk aplikasi, Anda harus menggunakan +API Android {@link android.preference.Preference} untuk membangun antarmuka yang konsisten dengan +pengalaman pengguna di aplikasi Android yang lain (termasuk pengaturan sistem). Dokumen ini menjelaskan +cara membangun pengaturan aplikasi Anda menggunakan API {@link android.preference.Preference}.

      + +
      +

      Desain Pengaturan

      +

      Untuk informasi tentang cara mendesain pengaturan Anda, bacalah panduan desain Pengaturan.

      +
      + + + +

      Gambar 1. Cuplikan layar dari pengaturan +aplikasi Messaging Android. Memilih item yang didefinisikan oleh {@link android.preference.Preference} +akan membuka antarmuka untuk mengubah pengaturan.

      + + + + +

      Ikhtisar

      + +

      Sebagai ganti menggunakan objek {@link android.view.View} untuk membangun antarmuka pengguna, pengaturan +dibangun menggunakan berbagai subkelas dari kelas {@link android.preference.Preference} yang Anda +deklarasikan dalam file XML.

      + +

      Objek {@link android.preference.Preference} adalah blok pembangun untuk pengaturan +tunggal. Setiap {@link android.preference.Preference} muncul sebagai item dalam daftar dan menyediakan UI +yang sesuai bagi pengguna untuk memodifikasi pengaturan. Misalnya, {@link +android.preference.CheckBoxPreference} membuat item daftar yang menampilkan kotak cek, dan {@link +android.preference.ListPreference} membuat item yang membuka dialog berisi daftar pilihan.

      + +

      Setiap {@link android.preference.Preference} yang Anda tambahkan memiliki pasangan nilai-kunci yang sesuai yang +digunakan sistem untuk menyimpan pengaturan dalam file {@link android.content.SharedPreferences} +default untuk pengaturan aplikasi Anda. Bila pengguna mengubah pengaturan, sistem akan memperbarui nilai +yang bersangkutan dalam file {@link android.content.SharedPreferences} untuk Anda. Satu-satunya saat di mana Anda harus +berinteraksi langsung dengan file {@link android.content.SharedPreferences} yang terkait adalah bila Anda +perlu membaca nilai untuk menentukan perilaku aplikasi berdasarkan pengaturan pengguna.

      + +

      Nilai yang tersimpan di {@link android.content.SharedPreferences} untuk setiap pengaturan bisa berupa +tipe data berikut:

      + +
        +
      • Boolean
      • +
      • Float
      • +
      • Int
      • +
      • Long
      • +
      • String
      • +
      • String {@link java.util.Set}
      • +
      + +

      Oleh karena UI pengaturan aplikasi Anda dibangun menggunakan objek {@link android.preference.Preference} +sebagai ganti +objek {@link android.view.View}, Anda perlu menggunakan {@link android.app.Activity} khusus atau +subkelas {@link android.app.Fragment} untuk menampilkan pengaturan daftar:

      + +
        +
      • Jika aplikasi Anda mendukung versi Android yang lebih lama dari 3.0 (API level 10 dan yang lebih rendah), Anda harus +membangun aktivitas sebagai ekstensi dari kelas {@link android.preference.PreferenceActivity}.
      • +
      • Pada Android 3.0 dan yang lebih baru, sebaiknya Anda menggunakan {@link android.app.Activity} biasa +yang menjadi host {@link android.preference.PreferenceFragment} yang menampilkan pengaturan aplikasi Anda. +Akan tetapi, Anda juga bisa menggunakan {@link android.preference.PreferenceActivity} untuk membuat layout dua panel +bagi layar besar bila Anda memiliki beberapa grup pengaturan.
      • +
      + +

      Cara mengatur {@link android.preference.PreferenceActivity} Anda dan instance {@link +android.preference.PreferenceFragment} dibahas di bagian tentang Membuat Aktivitas Preferensi dan Menggunakan +Fragmen Preferensi.

      + + +

      Preferensi

      + +

      Setiap pengaturan untuk aplikasi Anda diwakili oleh subkelas khusus dari kelas {@link +android.preference.Preference}. Setiap subkelas menyertakan seperangkat properti utama yang memungkinkan Anda +untuk menetapkan berbagai hal seperti judul pengaturan dan nilai default. Setiap subkelas juga menyediakan +antarmuka pengguna dan properti khusus miliknya sendiri. Misalnya, gambar 1 menampilkan cuplikan layar dari + pengaturan aplikasi Messaging. Setiap item daftar dalam layar pengaturan didukung oleh objek {@link +android.preference.Preference} berbeda.

      + +

      Beberapa preferensi yang paling umum adalah:

      + +
      +
      {@link android.preference.CheckBoxPreference}
      +
      Menampilkan item dengan kotak cek untuk pengaturan yang diaktifkan atau dinonaktifkan. Nilai +tersimpan adalah boolean (true jika diberi tanda cek).
      + +
      {@link android.preference.ListPreference}
      +
      Membuka dialog berisi daftar tombol radio. Nilai +tersimpan bisa berupa tipe nilai apa pun yang didukung (tercantum di atas).
      + +
      {@link android.preference.EditTextPreference}
      +
      Membuka dialog berisi widget {@link android.widget.EditText}. Nilai tersimpan adalah {@link +java.lang.String}.
      +
      + +

      Lihat kelas {@link android.preference.Preference} untuk mengetahui daftar subkelas lain dan +propertinya.

      + +

      Tentu saja, kelas bawaan tidak mengakomodasi setiap kebutuhan dan aplikasi Anda mungkin memerlukan +sesuatu yang lebih khusus. Misalnya, platform saat ini tidak menyediakan kelas {@link +android.preference.Preference} untuk mengambil nomor atau tanggal. Anda mungkin perlu mendefinisikan +subkelas {@link android.preference.Preference} sendiri. Untuk bantuan melakukannya, lihat bagian tentang Membangun Preferensi Custom.

      + + + +

      Mendefinisikan Preferensi dalam XML

      + +

      Meskipun bisa membuat instance objek {@link android.preference.Preference} baru saat runtime, Anda +harus mendefinisikan daftar pengaturan dalam XML dengan hierarki objek +{@link android.preference.Preference}. Menggunakan file XML untuk mendefinisikan sekumpulan pengaturan lebih disukai karena file +menyediakan struktur yang mudah dibaca dan diperbarui. Selain itu, pengaturan aplikasi Anda +umumnya telah ditetapkan sebelumnya, meskipun Anda masih bisa memodifikasi kumpulan tersebut saat runtime.

      + +

      Setiap subkelas {@link android.preference.Preference} bisa dideklarasikan dengan elemen XML yang +cocok dengan nama kelas, seperti {@code <CheckBoxPreference>}.

      + +

      Anda harus menyimpan file XML dalam direktori {@code res/xml/}. Meskipun bisa memberi nama file +sesuka Anda, biasanya file diberi nama {@code preferences.xml}. Biasanya Anda hanya memerlukan satu file, +karena cabang di hierarki (yang membuka daftar pengaturanny sendiri) dideklarasikan menggunakan instance +tersarang {@link android.preference.PreferenceScreen}.

      + +

      Catatan: Jika ingin membuat layout multipanel untuk +pengaturan, Anda memerlukan file XML terpisah untuk setiap fragmen.

      + +

      Simpul akar untuk file XML harus merupakan elemen {@link android.preference.PreferenceScreen +<PreferenceScreen>}. Dalam elemen inilah tempat Anda menambahkan setiap {@link +android.preference.Preference}. Setiap anak yang Anda tambahkan dalam elemen +{@link android.preference.PreferenceScreen <PreferenceScreen>} akan tampak sebagai item +tunggal dalam daftar pengaturan.

      + +

      Misalnya:

      + +
      +<?xml version="1.0" encoding="utf-8"?>
      +<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
      +    <CheckBoxPreference
      +        android:key="pref_sync"
      +        android:title="@string/pref_sync"
      +        android:summary="@string/pref_sync_summ"
      +        android:defaultValue="true" />
      +    <ListPreference
      +        android:dependency="pref_sync"
      +        android:key="pref_syncConnectionType"
      +        android:title="@string/pref_syncConnectionType"
      +        android:dialogTitle="@string/pref_syncConnectionType"
      +        android:entries="@array/pref_syncConnectionTypes_entries"
      +        android:entryValues="@array/pref_syncConnectionTypes_values"
      +        android:defaultValue="@string/pref_syncConnectionTypes_default" />
      +</PreferenceScreen>
      +
      + +

      Dalam contoh ini, terdapat {@link android.preference.CheckBoxPreference} dan {@link +android.preference.ListPreference}. Kedua item tersebut menyertakan tiga atribut berikut:

      + +
      +
      {@code android:key}
      +
      Atribut ini diperlukan untuk preferensi yang mempertahankan nilai data. Ini menetapkan kunci +unik (string) yang digunakan sistem saat menyimpan nilai pengaturan ini dalam {@link +android.content.SharedPreferences}. +

      Instance satu-satunya di mana atribut ini tidak diperlukan adalah bila preferensi berupa +{@link android.preference.PreferenceCategory} atau {@link android.preference.PreferenceScreen}, atau +preferensi menetapkan {@link android.content.Intent} untuk dipanggil (dengan elemen {@code <intent>}) atau {@link android.app.Fragment} untuk ditampilkan (dengan atribut {@code +android:fragment}).

      +
      +
      {@code android:title}
      +
      Ini menyediakan nama pengaturan yang bisa dilihat oleh pengguna.
      +
      {@code android:defaultValue}
      +
      Ini menetapkan nilai awal yang harus diatur sistem dalam file {@link +android.content.SharedPreferences}. Anda harus memberikan nilai default untuk semua +pengaturan.
      +
      + +

      Untuk informasi tentang semua atribut lain yang didukung, lihat dokumentasi {@link +android.preference.Preference} (dan subkelas masing-masing).

      + + +
      + +

      Gambar 2. Mengatur kategori + dengan judul.
      1. Kategori ditetapkan oleh elemen {@link +android.preference.PreferenceCategory <PreferenceCategory>}.
      2. Judul +ditetapkan dengan atribut {@code android:title}.

      +
      + + +

      Bila daftar pengaturan Anda melebihi sekitar 10 item, Anda mungkin perlu menambahkan judul untuk +mendefinisikan grup pengaturan atau menampilkan grup tersebut di +layar terpisah. Opsi ini dijelaskan di bagian berikut.

      + + +

      Membuat grup pengaturan

      + +

      Jika Anda menampilkan daftar 10 pengaturan atau lebih, pengguna +mungkin akan kesulitan dalam memindai, memahami dan memprosesnya. Anda bisa mengatasinya dengan +membagi sebagian atau semua pengaturan ke dalam beberapa grup, yang secara efektif akan mengubah satu daftar panjang menjadi beberapa daftar +yang lebih pendek. Suatu grup pengaturan terkait bisa ditampilkan dalam salah satu dari dua cara:

      + + + +

      Anda bisa menggunakan salah satu atau keduanya untuk mengelola pengaturan aplikasi Anda. Saat +memutuskan mana yang akan digunakan dan cara membagi pengaturan, Anda harus mengikuti pedoman dalam +Panduan Pengaturan Desain Android.

      + + +

      Menggunakan judul

      + +

      Jika ingin menyediakan divider dengan heading di antara grup pengaturan (seperti yang ditampilkan dalam gambar 2), +tempatkan setiap grup objek {@link android.preference.Preference} di dalam {@link +android.preference.PreferenceCategory}.

      + +

      Misalnya:

      + +
      +<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
      +    <PreferenceCategory
      +        android:title="@string/pref_sms_storage_title"
      +        android:key="pref_key_storage_settings">
      +        <CheckBoxPreference
      +            android:key="pref_key_auto_delete"
      +            android:summary="@string/pref_summary_auto_delete"
      +            android:title="@string/pref_title_auto_delete"
      +            android:defaultValue="false"... />
      +        <Preference
      +            android:key="pref_key_sms_delete_limit"
      +            android:dependency="pref_key_auto_delete"
      +            android:summary="@string/pref_summary_delete_limit"
      +            android:title="@string/pref_title_sms_delete"... />
      +        <Preference
      +            android:key="pref_key_mms_delete_limit"
      +            android:dependency="pref_key_auto_delete"
      +            android:summary="@string/pref_summary_delete_limit"
      +            android:title="@string/pref_title_mms_delete" ... />
      +    </PreferenceCategory>
      +    ...
      +</PreferenceScreen>
      +
      + + +

      Menggunakan sublayar

      + +

      Jika ingin menempatkan grup pengaturan ke dalam sublayar (seperti yang ditampilkan dalam gambar 3), tempatkan grup +objek {@link android.preference.Preference} di dalam {@link +android.preference.PreferenceScreen}.

      + + +

      Gambar 3. Mengatur sublayar. Elemen {@code +<PreferenceScreen>} +membuat item yang, bila dipilih, akan membuka daftar terpisah untuk menampilkan pengaturan tersarang.

      + +

      Misalnya:

      + +
      +<PreferenceScreen  xmlns:android="http://schemas.android.com/apk/res/android">
      +    <!-- opens a subscreen of settings -->
      +    <PreferenceScreen
      +        android:key="button_voicemail_category_key"
      +        android:title="@string/voicemail"
      +        android:persistent="false">
      +        <ListPreference
      +            android:key="button_voicemail_provider_key"
      +            android:title="@string/voicemail_provider" ... />
      +        <!-- opens another nested subscreen -->
      +        <PreferenceScreen
      +            android:key="button_voicemail_setting_key"
      +            android:title="@string/voicemail_settings"
      +            android:persistent="false">
      +            ...
      +        </PreferenceScreen>
      +        <RingtonePreference
      +            android:key="button_voicemail_ringtone_key"
      +            android:title="@string/voicemail_ringtone_title"
      +            android:ringtoneType="notification" ... />
      +        ...
      +    </PreferenceScreen>
      +    ...
      +</PreferenceScreen>
      +
      + + +

      Menggunakan intent

      + +

      Dalam beberapa kasus, Anda mungkin ingin item preferensi untuk membuka beberapa aktivitas sebagai ganti +layar pengaturan, seperti browser web untuk melihat halaman web. Untuk memanggil {@link +android.content.Intent} saat pengguna memilih item preferensi, tambahkan elemen {@code <intent>} +sebagai anak dari elemen {@code <Preference>} yang bersangkutan.

      + +

      Misalnya, berikut ini cara menggunakan item preferensi untuk membuka halaman web:

      + +
      +<Preference android:title="@string/prefs_web_page" >
      +    <intent android:action="android.intent.action.VIEW"
      +            android:data="http://www.example.com" />
      +</Preference>
      +
      + +

      Anda bisa membuat intent implisit maupun eksplisit menggunakan atribut berikut:

      + +
      +
      {@code android:action}
      +
      Tindakan yang akan ditetapkan, sesuai metode +{@link android.content.Intent#setAction setAction()}.
      +
      {@code android:data}
      +
      Data yang akan ditetapkan, sesuai metode {@link android.content.Intent#setData setData()}.
      +
      {@code android:mimeType}
      +
      Tipe MIME yang akan ditetapkan, sesuai metode +{@link android.content.Intent#setType setType()}.
      +
      {@code android:targetClass}
      +
      Bagian kelas dari nama komponen, sesuai metode {@link android.content.Intent#setComponent +setComponent()}.
      +
      {@code android:targetPackage}
      +
      Bagian paket dari nama komponen, sesuai metode {@link +android.content.Intent#setComponent setComponent()}.
      +
      + + + +

      Membuat Aktivitas Preferensi

      + +

      Untuk menampilkan pengaturan Anda dalam suatu aktivitas, perluas kelas {@link +android.preference.PreferenceActivity}. Ini adalah ekstensi dari kelas {@link +android.app.Activity} biasa yang menampilkan daftar pengaturan berdasarkan hierarki objek {@link +android.preference.Preference}. {@link android.preference.PreferenceActivity} +secara otomatis mempertahankan pengaturan yang dikaitkan dengan setiap {@link +android.preference.Preference} bila pengguna membuat perubahan.

      + +

      Catatan: Jika Anda mengembangkan aplikasi untuk Android 3.0 dan +yang lebih tinggi, sebaiknya gunakan {@link android.preference.PreferenceFragment}. Pindah ke bagian +berikutnya tentang Menggunakan Fragmen Preferensi.

      + +

      Hal paling penting untuk diingat adalah jangan memuat layout tampilan selama callback {@link +android.preference.PreferenceActivity#onCreate onCreate()}. Sebagai gantinya, panggil {@link +android.preference.PreferenceActivity#addPreferencesFromResource addPreferencesFromResource()} untuk +menambahkan preferensi yang telah Anda deklarasikan dalam file XML ke aktivitas. Misalnya, berikut ini adalah kode minimum +polos yang diperlukan untuk {@link android.preference.PreferenceActivity} fungsional:

      + +
      +public class SettingsActivity extends PreferenceActivity {
      +    @Override
      +    public void onCreate(Bundle savedInstanceState) {
      +        super.onCreate(savedInstanceState);
      +        addPreferencesFromResource(R.xml.preferences);
      +    }
      +}
      +
      + +

      Ini sebenarnya kode yang cukup untuk beberapa aplikasi, karena segera setelah pengguna memodifikasi preferensi, +sistem akan menyimpan perubahan tersebut ke file {@link android.content.SharedPreferences} default yang +bisa dibaca oleh komponen aplikasi Anda lainnya bila Anda perlu memeriksa pengaturan pengguna. Akan tetapi, +banyak aplikasi, yang memerlukan kode lebih sedikit untuk mendengarkan perubahan yang terjadi pada preferensi. +Untuk informasi tentang mendengarkan perubahan di file {@link android.content.SharedPreferences}, +lihat bagian tentang Preferensi Membaca.

      + + + + +

      Menggunakan Fragmen Preferensi

      + +

      Jika Anda mengembangkan Android 3.0 (API level 11) dan yang lebih tinggi, Anda harus menggunakan {@link +android.preference.PreferenceFragment} untuk menampilkan daftar objek {@link android.preference.Preference} +Anda. Anda bisa menambahkan {@link android.preference.PreferenceFragment} ke aktivitas apa pun,—Anda tidak +perlu menggunakan {@link android.preference.PreferenceActivity}.

      + +

      Fragmen menyediakan arsitektur yang lebih +fleksibel untuk aplikasi Anda, dibandingkan hanya menggunakan aktivitas, apa pun jenis +aktivitas yang Anda bangun. Dengan sendirinya, kami menyarankan Anda menggunakan {@link +android.preference.PreferenceFragment} untuk mengontrol tampilan pengaturan Anda sebagai ganti {@link +android.preference.PreferenceActivity} bila memungkinkan.

      + +

      Implementasi {@link android.preference.PreferenceFragment} Anda bisa semudah +mendefinisikan metode {@link android.preference.PreferenceFragment#onCreate onCreate()} untuk memuat +file preferensi dengan {@link android.preference.PreferenceFragment#addPreferencesFromResource +addPreferencesFromResource()}. Misalnya:

      + +
      +public static class SettingsFragment extends PreferenceFragment {
      +    @Override
      +    public void onCreate(Bundle savedInstanceState) {
      +        super.onCreate(savedInstanceState);
      +
      +        // Load the preferences from an XML resource
      +        addPreferencesFromResource(R.xml.preferences);
      +    }
      +    ...
      +}
      +
      + +

      Anda nanti bisa menambahkan fragmen ini ke {@link android.app.Activity} seperti yang Anda lakukan untuk +{@link android.app.Fragment} lainnya. Misalnya:

      + +
      +public class SettingsActivity extends Activity {
      +    @Override
      +    protected void onCreate(Bundle savedInstanceState) {
      +        super.onCreate(savedInstanceState);
      +
      +        // Display the fragment as the main content.
      +        getFragmentManager().beginTransaction()
      +                .replace(android.R.id.content, new SettingsFragment())
      +                .commit();
      +    }
      +}
      +
      + +

      Catatan: {@link android.preference.PreferenceFragment} tidak memiliki +objek {@link android.content.Context} sendiri. Jika memerlukan objek {@link android.content.Context} +, Anda bisa memanggil {@link android.app.Fragment#getActivity()}. Akan tetapi, berhati-hatilah untuk memanggil +{@link android.app.Fragment#getActivity()} hanya bila fragmen telah dikaitkan dengan aktivitas. Bila +fragmen belum dikaitkan, atau terlepas saat akhir daur hidupnya, {@link +android.app.Fragment#getActivity()} akan mengembalikan nol.

      + + +

      Mengatur Nilai Default

      + +

      Preferensi yang Anda buat mungkin mendefinisikan beberapa perilaku penting untuk aplikasi, jadi Anda +perlu menginisialisasi file {@link android.content.SharedPreferences} yang terkait dengan +nilai default untuk setiap {@link android.preference.Preference} bila pengguna menggunakan aplikasi +Anda untuk pertama kali.

      + +

      Hal pertama yang harus Anda lakukan adalah menetapkan nilai default untuk setiap objek {@link +android.preference.Preference} +di file XML Anda menggunakan atribut {@code android:defaultValue}. Nilainya bisa berupa tipe data +apa saja yang sesuai untuk objek {@link android.preference.Preference} bersangkutan. Misalnya: +

      + +
      +<!-- default value is a boolean -->
      +<CheckBoxPreference
      +    android:defaultValue="true"
      +    ... />
      +
      +<!-- default value is a string -->
      +<ListPreference
      +    android:defaultValue="@string/pref_syncConnectionTypes_default"
      +    ... />
      +
      + +

      Kemudian, dari metode {@link android.app.Activity#onCreate onCreate()} dalam aktivitas utama aplikasi +Anda—dan dalam aktivitas lainnya yang digunakan pengguna untuk masuk ke aplikasi Anda untuk pertama kali +—panggil {@link android.preference.PreferenceManager#setDefaultValues +setDefaultValues()}:

      + +
      +PreferenceManager.setDefaultValues(this, R.xml.advanced_preferences, false);
      +
      + +

      Memanggil ini selama {@link android.app.Activity#onCreate onCreate()} akan memastikan aplikasi +Anda diinisialisasi dengan pengaturan default, yang mungkin perlu +dibaca oleh aplikasi Anda untuk menentukan beberapa perilaku (seperti apakah akan mengunduh data pada +jaringan seluler).

      + +

      Metode ini membutuhkan tiga argumen:

      +
        +
      • {@link android.content.Context} aplikasi Anda.
      • +
      • ID sumber daya untuk file XML preferensi yang ingin Anda atur nilai defaultnya.
      • +
      • Boolean menunjukkan apakah nilai default harus diatur lebih dari satu kali. +

        Bila false, sistem akan mengatur nilai default hanya jika metode ini belum pernah +dipanggil sebelumnya (atau {@link android.preference.PreferenceManager#KEY_HAS_SET_DEFAULT_VALUES} +dalam file preferensi berbagi nilai default salah).

      • +
      + +

      Selama Anda mengatur argumen ketiga ke false, Anda bisa dengan aman memanggil metode ini +setiap kali aktivitas Anda memulai tanpa mengesampingkan preferensi tersimpan pengguna dengan mengatur ulang preferensi tersebut ke +default. Akan tetapi, jika mengatur ke true, Anda akan mengesampingkan nilai +sebelumnya dengan default.

      + + + +

      Menggunakan Header Preferensi

      + +

      Dalam kasus yang jarang terjadi, Anda mungkin perlu mendesain pengaturan agar layar pertama +hanya menampilkan daftar sublayar (seperti dalam aplikasi Setting pada sistem, +seperti yang ditampilkan dalam gambar 4 dan 5). Bila mengembangkan desain seperti itu untuk Android 3.0 dan yang lebih tinggi, Anda +harus menggunakan fitur "header" yang baru di Android 3.0, sebagai ganti membangun sublayar dengan elemen +{@link android.preference.PreferenceScreen} tersarang.

      + +

      Untuk membangun pengaturan dengan header, Anda perlu:

      +
        +
      1. Memisahkan setiap grup pengaturan ke dalam instance {@link +android.preference.PreferenceFragment} terpisah. Ini berarti, setiap grup pengaturan memerlukan file XML +terpisah.
      2. +
      3. Membuat file header XML yang mencantumkan daftar setiap grup pengaturan dan mendeklarasikan fragmen mana +yang berisi daftar pengaturan yang sesuai.
      4. +
      5. Memperluas kelas {@link android.preference.PreferenceActivity} untuk menjadi host pengaturan Anda.
      6. +
      7. Mengimplementasikan callback {@link +android.preference.PreferenceActivity#onBuildHeaders onBuildHeaders()} untuk menetapkan file +header.
      8. +
      + +

      Manfaat besar dalam menggunakan desain ini adalah karena {@link android.preference.PreferenceActivity} +secara otomatis akan menampilkan layout dua panel yang ditampilkan dalam gambar 4 bila dijalankan pada layar besar.

      + +

      Bahkan jika aplikasi Anda mendukung versi Android yang lebih lama dari 3.0, Anda bisa membangun +aplikasi untuk menggunakan {@link android.preference.PreferenceFragment} bagi presentasi dua panel pada perangkat +yang lebih baru sementara tetap mendukung hierarki multilayar biasa pada perangkat +yang lebih lama (lihat bagian tentang Mendukung versi yang lebih lama dengan +header preferensi).

      + + +

      Gambar 4. Layout dua panel dengan header.
      1. Header +didefinisikan dengan file header XML.
      2. Setiap grup pengaturan didefinisikan dengan +{@link android.preference.PreferenceFragment} yang ditetapkan oleh elemen {@code <header>} dalam +file header.

      + + +

      Gambar 5. Perangkat handset dengan header pengaturan. Bila sebuah +item dipilih, {@link android.preference.PreferenceFragment} terkait akan menggantikan +header.

      + + +

      Membuat file header

      + +

      Setiap grup pengaturan dalam daftar header Anda akan ditetapkan oleh elemen {@code <header>} +tunggal dalam elemen {@code <preference-headers>} akar. Misalnya:

      + +
      +<?xml version="1.0" encoding="utf-8"?>
      +<preference-headers xmlns:android="http://schemas.android.com/apk/res/android">
      +    <header
      +        android:fragment="com.example.prefs.SettingsActivity$SettingsFragmentOne"
      +        android:title="@string/prefs_category_one"
      +        android:summary="@string/prefs_summ_category_one" />
      +    <header
      +        android:fragment="com.example.prefs.SettingsActivity$SettingsFragmentTwo"
      +        android:title="@string/prefs_category_two"
      +        android:summary="@string/prefs_summ_category_two" >
      +        <!-- key/value pairs can be included as arguments for the fragment. -->
      +        <extra android:name="someKey" android:value="someHeaderValue" />
      +    </header>
      +</preference-headers>
      +
      + +

      Dengan atribut {@code android:fragment}, setiap header mendeklarasikan instance {@link +android.preference.PreferenceFragment} yang harus terbuka saat pengguna memilih header.

      + +

      Elemen {@code <extras>} memungkinkan Anda meneruskan pasangan nilai-kunci ke fragmen di {@link +android.os.Bundle}. Fragmen bisa mengambil argumen dengan memanggil {@link +android.app.Fragment#getArguments()}. Anda bisa meneruskan argumen ke fragmen dengan berbagai +alasan, namun satu alasan yang baik adalah untuk menggunakan kembali subkelas yang sama dari {@link +android.preference.PreferenceFragment} untuk setiap grup dan menggunakan argumen untuk menetapkan file +XML preferensi mana yang harus dimuat fragmen.

      + +

      Misalnya, ada fragmen yang bisa digunakan ulang untuk berbagai grup pengaturan, bila setiap +header mendefinisikan argumen {@code <extra>} dengan kunci {@code "settings"}:

      + +
      +public static class SettingsFragment extends PreferenceFragment {
      +    @Override
      +    public void onCreate(Bundle savedInstanceState) {
      +        super.onCreate(savedInstanceState);
      +
      +        String settings = getArguments().getString("settings");
      +        if ("notifications".equals(settings)) {
      +            addPreferencesFromResource(R.xml.settings_wifi);
      +        } else if ("sync".equals(settings)) {
      +            addPreferencesFromResource(R.xml.settings_sync);
      +        }
      +    }
      +}
      +
      + + + +

      Menampilkan header

      + +

      Untuk menampilkan header preferensi, Anda harus mengimplementasikan metode callback {@link +android.preference.PreferenceActivity#onBuildHeaders onBuildHeaders()} dan memanggil +{@link android.preference.PreferenceActivity#loadHeadersFromResource +loadHeadersFromResource()}. Misalnya:

      + +
      +public class SettingsActivity extends PreferenceActivity {
      +    @Override
      +    public void onBuildHeaders(List<Header> target) {
      +        loadHeadersFromResource(R.xml.preference_headers, target);
      +    }
      +}
      +
      + +

      Bila pengguna memilih item dari daftar header, sistem akan membuka {@link +android.preference.PreferenceFragment} terkait.

      + +

      Catatan: Saat menggunakan header preferensi, subkelas {@link +android.preference.PreferenceActivity} Anda tidak perlu mengimplementasikan metode {@link +android.preference.PreferenceActivity#onCreate onCreate()}, karena tugas +yang diperlukan untuk aktivitas hanyalah memuat header.

      + + +

      Mendukung versi yang lebih lama dengan header preferensi

      + +

      Jika aplikasi Anda mendukung versi Android yang lebih lama dari 3.0, Anda tetap bisa menggunakan header untuk +menyediakan layout dua panel saat berjalan pada Android 3.0 dan yang lebih tinggi. Anda hanya perlu membuat +file XML preferensi tambahan yang menggunakan elemen {@link android.preference.Preference +<Preference>} dasar yang berperilaku seperti item header (untuk digunakan oleh Android +versi yang lebih lama).

      + +

      Akan tetapi, sebagai ganti membuka {@link android.preference.PreferenceScreen} baru, setiap elemen {@link +android.preference.Preference <Preference>} mengirimkan {@link android.content.Intent} ke +{@link android.preference.PreferenceActivity} yang menetapkan file XML preferensi mana yang +akan dimuat.

      + +

      Misalnya, ini adalah file XML untuk header preferensi yang menggunakan Android 3.0 +dan yang lebih tinggi ({@code res/xml/preference_headers.xml}):

      + +
      +<preference-headers xmlns:android="http://schemas.android.com/apk/res/android">
      +    <header
      +        android:fragment="com.example.prefs.SettingsFragmentOne"
      +        android:title="@string/prefs_category_one"
      +        android:summary="@string/prefs_summ_category_one" />
      +    <header
      +        android:fragment="com.example.prefs.SettingsFragmentTwo"
      +        android:title="@string/prefs_category_two"
      +        android:summary="@string/prefs_summ_category_two" />
      +</preference-headers>
      +
      + +

      Dan ini adalah file preferensi yang menyediakan header yang sama untuk versi yang lebih lama dari +Android 3.0 ({@code res/xml/preference_headers_legacy.xml}):

      + +
      +<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
      +    <Preference
      +        android:title="@string/prefs_category_one"
      +        android:summary="@string/prefs_summ_category_one"  >
      +        <intent
      +            android:targetPackage="com.example.prefs"
      +            android:targetClass="com.example.prefs.SettingsActivity"
      +            android:action="com.example.prefs.PREFS_ONE" />
      +    </Preference>
      +    <Preference
      +        android:title="@string/prefs_category_two"
      +        android:summary="@string/prefs_summ_category_two" >
      +        <intent
      +            android:targetPackage="com.example.prefs"
      +            android:targetClass="com.example.prefs.SettingsActivity"
      +            android:action="com.example.prefs.PREFS_TWO" />
      +    </Preference>
      +</PreferenceScreen>
      +
      + +

      Karena dukungan untuk {@code <preference-headers>} telah ditambahkan di Android 3.0, sistem akan memanggil +{@link android.preference.PreferenceActivity#onBuildHeaders onBuildHeaders()} di {@link +android.preference.PreferenceActivity} hanya saat berjalan pada Android 3.0 atau yang lebih tinggi. Untuk memuat +file header "lama" ({@code preference_headers_legacy.xml}), Anda harus memeriksa versi Android +dan, jika versi tersebut lebih lama dari Android 3.0 ({@link +android.os.Build.VERSION_CODES#HONEYCOMB}), panggil {@link +android.preference.PreferenceActivity#addPreferencesFromResource addPreferencesFromResource()} untuk +memuat file header lama. Misalnya:

      + +
      +@Override
      +public void onCreate(Bundle savedInstanceState) {
      +    super.onCreate(savedInstanceState);
      +    ...
      +
      +    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
      +        // Load the legacy preferences headers
      +        addPreferencesFromResource(R.xml.preference_headers_legacy);
      +    }
      +}
      +
      +// Called only on Honeycomb and later
      +@Override
      +public void onBuildHeaders(List<Header> target) {
      +   loadHeadersFromResource(R.xml.preference_headers, target);
      +}
      +
      + +

      Satu-satunya hal yang perlu dilakukan adalah menangani {@link android.content.Intent} yang diteruskan ke +aktivitas untuk mengidentifikasi file preferensi yang akan dimuat. Jadi ambillah tindakan intent dan bandingkan dengan +string tindakan yang diketahui yang telah Anda gunakan dalam tag {@code <intent>} XML preferensi:

      + +
      +final static String ACTION_PREFS_ONE = "com.example.prefs.PREFS_ONE";
      +...
      +
      +@Override
      +public void onCreate(Bundle savedInstanceState) {
      +    super.onCreate(savedInstanceState);
      +
      +    String action = getIntent().getAction();
      +    if (action != null && action.equals(ACTION_PREFS_ONE)) {
      +        addPreferencesFromResource(R.xml.preferences);
      +    }
      +    ...
      +
      +    else if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
      +        // Load the legacy preferences headers
      +        addPreferencesFromResource(R.xml.preference_headers_legacy);
      +    }
      +}
      +
      + +

      Ketahuilah bahwa panggilan berturut-turut ke {@link +android.preference.PreferenceActivity#addPreferencesFromResource addPreferencesFromResource()} akan +menumpuk semua preferensi ke dalam satu daftar, jadi pastikan bahwa ini hanya dipanggil sekali dengan mengikatkan syarat +ke pernyataan else-if.

      + + + + + +

      Preferensi Membaca

      + +

      Secara default, semua preferensi aplikasi Anda disimpan ke file yang bisa diakses dari mana saja +di dalam aplikasi dengan memanggil metode statis {@link +android.preference.PreferenceManager#getDefaultSharedPreferences +PreferenceManager.getDefaultSharedPreferences()}. Ini akan mengembalikan objek {@link +android.content.SharedPreferences} berisi semua pasangan nilai-kunci yang terkait +dengan objek {@link android.preference.Preference} yang digunakan di {@link +android.preference.PreferenceActivity} Anda.

      + +

      Misalnya, inilah cara membaca salah satu nilai preferensi dari aktivitas lain dalam aplikasi +Anda:

      + +
      +SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this);
      +String syncConnPref = sharedPref.getString(SettingsActivity.KEY_PREF_SYNC_CONN, "");
      +
      + + + +

      Mendengarkan perubahan preferensi

      + +

      Ada beberapa alasan yang membuat Anda perlu mendapatkan pemberitahuan segera setelah pengguna mengubah salah satu +preferensi. Untuk menerima callback saat perubahan terjadi pada salah satu preferensi, +implementasikan antarmuka {@link android.content.SharedPreferences.OnSharedPreferenceChangeListener +SharedPreference.OnSharedPreferenceChangeListener} dan daftarkan listener untuk objek +{@link android.content.SharedPreferences} dengan memanggil {@link +android.content.SharedPreferences#registerOnSharedPreferenceChangeListener +registerOnSharedPreferenceChangeListener()}.

      + +

      Antarmuka hanya memiliki satu metode callback, {@link +android.content.SharedPreferences.OnSharedPreferenceChangeListener#onSharedPreferenceChanged +onSharedPreferenceChanged()}, dan mungkin lebih mudah mengimplementasikan antarmuka sebagai bagian dari +aktivitas Anda. Misalnya:

      + +
      +public class SettingsActivity extends PreferenceActivity
      +                              implements OnSharedPreferenceChangeListener {
      +    public static final String KEY_PREF_SYNC_CONN = "pref_syncConnectionType";
      +    ...
      +
      +    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
      +        String key) {
      +        if (key.equals(KEY_PREF_SYNC_CONN)) {
      +            Preference connectionPref = findPreference(key);
      +            // Set summary to be the user-description for the selected value
      +            connectionPref.setSummary(sharedPreferences.getString(key, ""));
      +        }
      +    }
      +}
      +
      + +

      Dalam contoh ini, metode akan memeriksa apakah pengaturan yang diubah adalah untuk kunci preferensi yang diketahui. Ini akan +memanggil {@link android.preference.PreferenceActivity#findPreference findPreference()} untuk mendapatkan objek +{@link android.preference.Preference} yang diubah agar bisa memodifikasi rangkuman item +menjadi keterangan pada pilihan pengguna. Ini berarti, bila pengaturan adalah {@link +android.preference.ListPreference} atau pengaturan multipilihan, Anda harus memanggil {@link +android.preference.Preference#setSummary setSummary()} bila pengaturan berubah ke tampilkan +status saat ini (seperti pengaturan Sleep yang ditampilkan dalam gambar 5).

      + +

      Catatan: Seperti dijelaskan dalam dokumen Desain Android tentang Pengaturan, kami merekomendasikan Anda untuk memperbarui +rangkuman {@link android.preference.ListPreference} setiap kali pengguna mengubah preferensi untuk +menjelaskan pengaturan saat ini.

      + +

      Untuk manajemen daur hidup yang baik di aktivitas, kami merekomendasikan Anda untuk mendaftarkan dan mencabut pendaftaran +{@link android.content.SharedPreferences.OnSharedPreferenceChangeListener} selama callback {@link +android.app.Activity#onResume} dan {@link android.app.Activity#onPause}:

      + +
      +@Override
      +protected void onResume() {
      +    super.onResume();
      +    getPreferenceScreen().getSharedPreferences()
      +            .registerOnSharedPreferenceChangeListener(this);
      +}
      +
      +@Override
      +protected void onPause() {
      +    super.onPause();
      +    getPreferenceScreen().getSharedPreferences()
      +            .unregisterOnSharedPreferenceChangeListener(this);
      +}
      +
      + +

      Perhatian: Bila Anda memanggil {@link +android.content.SharedPreferences#registerOnSharedPreferenceChangeListener +registerOnSharedPreferenceChangeListener()}, pengelola preferensi saat ini tidak akan +menyimpan referensi kuat ke listener. Anda harus menyimpan referensi +kuat bagi listener, atau referensi akan rentan terhadap pengumpulan sampah. Kami +merekomendasikan Anda untuk mempertahankan referensi bagi listener dalam data instance objek +yang akan ada selama Anda memerlukan listener tersebut.

      + +

      Misalnya, dalam kode berikut, caller tidak menyimpan referensi ke +listener. Akibatnya, listener akan dikenakan pengumpulan sampah, +dan suatu saat nanti akan gagal:

      + +
      +prefs.registerOnSharedPreferenceChangeListener(
      +  // Bad! The listener is subject to garbage collection!
      +  new SharedPreferences.OnSharedPreferenceChangeListener() {
      +  public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
      +    // listener implementation
      +  }
      +});
      +
      + +

      Sebagai gantinya, simpan referensi ke listener dalam bidang data instance +objek yang akan ada selama listener dibutuhkan:

      + +
      +SharedPreferences.OnSharedPreferenceChangeListener listener =
      +    new SharedPreferences.OnSharedPreferenceChangeListener() {
      +  public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
      +    // listener implementation
      +  }
      +};
      +prefs.registerOnSharedPreferenceChangeListener(listener);
      +
      + +

      Mengelola Penggunaan Jaringan

      + + +

      Mulai Android 4.0, aplikasi Settings untuk sistem memungkinkan pengguna melihat seberapa besar +data jaringan yang digunakan aplikasi mereka saat berada di latar depan dan latar belakang. Kemudian pengguna bisa +menonaktifkan penggunaan data latar belakang untuk aplikasi individual. Agar pengguna tidak menonaktifkan akses +aplikasi ke data dari latar belakang, Anda harus menggunakan koneksi data secara efisien dan mengizinkan +pengguna untuk menyaring penggunaan data aplikasi melalui pengaturan aplikasi Anda.

      + +

      Misalnya, Anda bisa mengizinkan pengguna untuk mengontrol seberapa sering aplikasi menyinkronkan data, apakah aplikasi +hanya melakukan pengunggahan/pengunduhan bila ada Wi-Fi, apakah aplikasi menggunakan data saat roaming, dll. Dengan +tersedianya kontrol ini bagi pengguna, mereka kemungkinan besar tidak akan menonaktifkan akses aplikasi ke data +saat mendekati batas yang mereka tetapkan dalam Settings pada sistem, karena mereka bisa mengontrol secara tepat +seberapa besar data yang digunakan aplikasi Anda.

      + +

      Setelah menambahkan preferensi yang diperlukan dalam {@link android.preference.PreferenceActivity} Anda +untuk mengontrol kebiasaan data aplikasi, Anda harus menambahkan filter intent untuk {@link +android.content.Intent#ACTION_MANAGE_NETWORK_USAGE} dalam file manifes Anda. Misalnya:

      + +
      +<activity android:name="SettingsActivity" ... >
      +    <intent-filter>
      +       <action android:name="android.intent.action.MANAGE_NETWORK_USAGE" />
      +       <category android:name="android.intent.category.DEFAULT" />
      +    </intent-filter>
      +</activity>
      +
      + +

      Filter intent ini menunjukkan pada sistem bahwa ini adalah aktivitas yang mengontrol penggunaan +data aplikasi Anda. Jadi, saat pengguna memeriksa seberapa banyak data yang digunakan oleh aplikasi dari +aplikasi Settings pada sistem, tombol View application settings akan tersedia dan menjalankan +{@link android.preference.PreferenceActivity} sehingga pengguna bisa menyaring seberapa besar data yang digunakan +aplikasi Anda.

      + + + + + + + +

      Membangun Preferensi Custom

      + +

      Kerangka kerja Android menyertakan berbagai subkelas {@link android.preference.Preference} yang +memungkinkan Anda membangun UI untuk beberapa macam tipe pengaturan. +Akan tetapi, Anda mungkin menemukan pengaturan yang diperlukan bila tidak ada solusi bawaan, seperti +picker nomor atau picker tanggal. Dalam hal demikian, Anda akan perlu membuat preferensi custom dengan memperluas +kelas {@link android.preference.Preference} atau salah satu subkelas lainnya.

      + +

      Bila memperluas kelas {@link android.preference.Preference}, ada beberapa hal +penting yang perlu Anda lakukan:

      + +
        +
      • Menetapkan antarmuka pengguna yang akan muncul saat pengguna memilih pengaturan.
      • +
      • Menyimpan nilai pengaturan bila perlu.
      • +
      • Menginisialisasi {@link android.preference.Preference} dengan nilai saat ini (atau default) +bila muncul di tampilan.
      • +
      • Menyediakan nilai default bila diminta oleh sistem.
      • +
      • Jika {@link android.preference.Preference} menyediakan UI sendiri (seperti dialog), simpan +dan pulihkan status untuk menangani perubahan daur hidup (seperti saat pengguna memutar layar).
      • +
      + +

      Bagian berikut menjelaskan cara melakukan setiap tugas ini.

      + + + +

      Menetapkan antarmuka pengguna

      + +

      Jika secara langsung memperluas kelas {@link android.preference.Preference}, Anda perlu mengimplementasikan +{@link android.preference.Preference#onClick()} untuk mendefinisikan tindakan yang terjadi bila pengguna +memilih item tersebut. Akan tetapi, sebagian besar pengaturan custom memperluas {@link android.preference.DialogPreference} untuk +menampilkan dialog, sehingga menyederhanakan prosedur. Bila memperluas {@link +android.preference.DialogPreference}, Anda harus memanggil {@link +android.preference.DialogPreference#setDialogLayoutResource setDialogLayoutResourcs()} selama di +konstruktor kelas untuk menetapkan layout dialog.

      + +

      Misalnya, beri ini konstruktor untuk {@link +android.preference.DialogPreference} custom yang mendeklarasikan layout dan menetapkan teks untuk tombol dialog +negatif dan positif default:

      + +
      +public class NumberPickerPreference extends DialogPreference {
      +    public NumberPickerPreference(Context context, AttributeSet attrs) {
      +        super(context, attrs);
      +
      +        setDialogLayoutResource(R.layout.numberpicker_dialog);
      +        setPositiveButtonText(android.R.string.ok);
      +        setNegativeButtonText(android.R.string.cancel);
      +
      +        setDialogIcon(null);
      +    }
      +    ...
      +}
      +
      + + + +

      Menyimpan nilai pengaturan

      + +

      Anda bisa menyimpan nilai pengaturan kapan saja dengan memanggil salah satu metode {@code persist*()} kelas {@link +android.preference.Preference}, seperti {@link +android.preference.Preference#persistInt persistInt()} jika nilai pengaturan adalah integer atau +{@link android.preference.Preference#persistBoolean persistBoolean()} untuk menyimpan boolean.

      + +

      Catatan: Setiap {@link android.preference.Preference} hanya bisa menyimpan satu +tipe data, jadi Anda harus menggunakan metode {@code persist*()} yang tepat untuk tipe data yang digunakan +oleh {@link android.preference.Preference} custom Anda.

      + +

      Bila Anda memilih untuk mempertahankannya, pengaturan bisa bergantung pada kelas {@link +android.preference.Preference} yang Anda perluas. Jika Anda memperluas {@link +android.preference.DialogPreference}, maka Anda harus mempertahankan nilai hanya jika dialog +tertutup karena hasil positif (pengguna memilih tombol "OK").

      + +

      Bila {@link android.preference.DialogPreference} tertutup, sistem akan memanggil metode {@link +android.preference.DialogPreference#onDialogClosed onDialogClosed()}. Metode mencakup argumen +boolean yang menetapkan apakah hasil pengguna "positif"—jika nilainya +true, maka pengguna memilih tombol positif dan Anda harus menyimpan nilai baru. Misalnya: +

      + +
      +@Override
      +protected void onDialogClosed(boolean positiveResult) {
      +    // When the user selects "OK", persist the new value
      +    if (positiveResult) {
      +        persistInt(mNewValue);
      +    }
      +}
      +
      + +

      Dalam contoh ini, mNewValue adalah anggota kelas yang menampung nilai +pengaturan saat ini. Memanggil {@link android.preference.Preference#persistInt persistInt()} akan menyimpan nilai +ke file {@link android.content.SharedPreferences} (secara otomatis menggunakan kunci yang +ditetapkan dalam file XML untuk {@link android.preference.Preference} ini).

      + + +

      Menginisialisasi nilai saat ini

      + +

      Bila sistem menambahkan {@link android.preference.Preference} Anda ke layar, ia +akan memanggil {@link android.preference.Preference#onSetInitialValue onSetInitialValue()} untuk memberi tahu +Anda apakah pengaturan memiliki nilai yang dipertahankan. Jika tidak ada nilai yang dipertahankan, panggilan ini +akan menyediakan nilai default bagi Anda.

      + +

      Metode {@link android.preference.Preference#onSetInitialValue onSetInitialValue()} akan meneruskan +boolean, restorePersistedValue, untuk menunjukkan apakah nilai dipertahankan +untuk pengaturan. Jika true, maka Anda harus mengambil nilai yang dipertahankan dengan memanggil +salah satu metode {@code getPersisted*()} kelas {@link +android.preference.Preference}, seperti {@link +android.preference.Preference#getPersistedInt getPersistedInt()} untuk nilai integer. Anda biasanya +perlu mengambil nilai yang dipertahankan agar bisa memperbarui UI dengan benar untuk merefleksikan +nilai yang tersimpan sebelumnya.

      + +

      Jika restorePersistedValue adalah false, maka Anda +harus menggunakan nilai default yang diteruskan dalam argumen kedua.

      + +
      +@Override
      +protected void onSetInitialValue(boolean restorePersistedValue, Object defaultValue) {
      +    if (restorePersistedValue) {
      +        // Restore existing state
      +        mCurrentValue = this.getPersistedInt(DEFAULT_VALUE);
      +    } else {
      +        // Set default state from the XML attribute
      +        mCurrentValue = (Integer) defaultValue;
      +        persistInt(mCurrentValue);
      +    }
      +}
      +
      + +

      Setiap metode {@code getPersisted*()} memerlukan argumen yang menetapkan +nilai default untuk digunakan jika tidak ada nilai yang dipertahankan atau kunci tidak ada. Dalam contoh +di atas, konstanta lokal yang digunakan untuk menetapkan nilai default dalam kasus {@link +android.preference.Preference#getPersistedInt getPersistedInt()} tidak bisa mengembalikan nilai yang dipertahankan.

      + +

      Perhatian: Anda tidak bisa menggunakan +defaultValue sebagai nilai default dalam metode {@code getPersisted*()}, karena +nilainya selalu nol bila restorePersistedValue adalah true.

      + + +

      Menyediakan nilai default

      + +

      Jika instance kelas {@link android.preference.Preference} Anda menetapkan nilai default +(dengan atribut {@code android:defaultValue}), maka +sistem akan memanggil {@link android.preference.Preference#onGetDefaultValue +onGetDefaultValue()} bila membuat instance objek untuk mengambil nilai. Anda harus mengimplementasikan +metode ini agar sistem bisa menyimpan nilai default dalam {@link +android.content.SharedPreferences}. Misalnya:

      + +
      +@Override
      +protected Object onGetDefaultValue(TypedArray a, int index) {
      +    return a.getInteger(index, DEFAULT_VALUE);
      +}
      +
      + +

      Argumen metode menyediakan semua hal yang Anda perlukan: larik atribut dan posisi +indeks dari {@code android:defaultValue}, yang harus Anda ambil. Alasan Anda harus +mengimplementasikan metode ini untuk mengekstrak nilai default dari atribut adalah karena Anda harus menetapkan +nilai default lokal untuk atribut jika nilai tidak didefinisikan.

      + + + +

      Menyimpan dan memulihkan status Preferensi

      + +

      Seperti halnya {@link android.view.View} di layout, subkelas {@link android.preference.Preference} +Anda bertanggung jawab menyimpan dan memulihkan statusnya jika aktivitas atau fragmen +di-restart (seperti saat pengguna memutar layar). Untuk menyimpan +dan memulihkan status kelas {@link android.preference.Preference} dengan benar, Anda harus mengimplementasikan +metode callback daur hidup {@link android.preference.Preference#onSaveInstanceState +onSaveInstanceState()} dan {@link +android.preference.Preference#onRestoreInstanceState onRestoreInstanceState()}.

      + +

      Status {@link android.preference.Preference} Anda didefinisikan oleh objek yang mengimplementasikan +antarmuka {@link android.os.Parcelable}. Kerangka kerja Android menyediakan objek seperti itu untuk Anda gunakan +sebagai titik mulai untuk mendefinisikan objek status Anda: kelas {@link +android.preference.Preference.BaseSavedState}.

      + +

      Untuk mendefinisikan cara kelas {@link android.preference.Preference} menyimpan statusnya, Anda harus +memperluas kelas {@link android.preference.Preference.BaseSavedState}. Anda hanya perlu mengesampingkan + beberapa metode dan mendefinisikan objek {@link android.preference.Preference.BaseSavedState#CREATOR} +.

      + +

      Untuk sebagian besar aplikasi, Anda bisa menyalin implementasi berikut dan cukup mengubah baris yang +menangani {@code value} jika subkelas {@link android.preference.Preference} Anda menyimpan tipe +data selain integer.

      + +
      +private static class SavedState extends BaseSavedState {
      +    // Member that holds the setting's value
      +    // Change this data type to match the type saved by your Preference
      +    int value;
      +
      +    public SavedState(Parcelable superState) {
      +        super(superState);
      +    }
      +
      +    public SavedState(Parcel source) {
      +        super(source);
      +        // Get the current preference's value
      +        value = source.readInt();  // Change this to read the appropriate data type
      +    }
      +
      +    @Override
      +    public void writeToParcel(Parcel dest, int flags) {
      +        super.writeToParcel(dest, flags);
      +        // Write the preference's value
      +        dest.writeInt(value);  // Change this to write the appropriate data type
      +    }
      +
      +    // Standard creator object using an instance of this class
      +    public static final Parcelable.Creator<SavedState> CREATOR =
      +            new Parcelable.Creator<SavedState>() {
      +
      +        public SavedState createFromParcel(Parcel in) {
      +            return new SavedState(in);
      +        }
      +
      +        public SavedState[] newArray(int size) {
      +            return new SavedState[size];
      +        }
      +    };
      +}
      +
      + +

      Dengan implementasi {@link android.preference.Preference.BaseSavedState} di atas yang ditambahkan +ke aplikasi Anda (biasanya sebagai subkelas dari subkelas {@link android.preference.Preference}), Anda +nanti perlu mengimplementasikan metode {@link android.preference.Preference#onSaveInstanceState +onSaveInstanceState()} dan {@link +android.preference.Preference#onRestoreInstanceState onRestoreInstanceState()} untuk subkelas +{@link android.preference.Preference} Anda.

      + +

      Misalnya:

      + +
      +@Override
      +protected Parcelable onSaveInstanceState() {
      +    final Parcelable superState = super.onSaveInstanceState();
      +    // Check whether this Preference is persistent (continually saved)
      +    if (isPersistent()) {
      +        // No need to save instance state since it's persistent,
      +        // use superclass state
      +        return superState;
      +    }
      +
      +    // Create instance of custom BaseSavedState
      +    final SavedState myState = new SavedState(superState);
      +    // Set the state's value with the class member that holds current
      +    // setting value
      +    myState.value = mNewValue;
      +    return myState;
      +}
      +
      +@Override
      +protected void onRestoreInstanceState(Parcelable state) {
      +    // Check whether we saved the state in onSaveInstanceState
      +    if (state == null || !state.getClass().equals(SavedState.class)) {
      +        // Didn't save the state, so call superclass
      +        super.onRestoreInstanceState(state);
      +        return;
      +    }
      +
      +    // Cast state to custom BaseSavedState and pass to superclass
      +    SavedState myState = (SavedState) state;
      +    super.onRestoreInstanceState(myState.getSuperState());
      +
      +    // Set this Preference's widget to reflect the restored state
      +    mNumberPicker.setValue(myState.value);
      +}
      +
      + diff --git a/docs/html-intl/intl/id/guide/topics/ui/ui-events.jd b/docs/html-intl/intl/id/guide/topics/ui/ui-events.jd new file mode 100644 index 000000000000..0307b34a85c1 --- /dev/null +++ b/docs/html-intl/intl/id/guide/topics/ui/ui-events.jd @@ -0,0 +1,291 @@ +page.title=Kejadian Input +parent.title=Antarmuka Pengguna +parent.link=index.html +@jd:body + +
      +
      +

      Dalam dokumen ini

      +
        +
      1. Event Listener
      2. +
      3. Event Handler
      4. +
      5. Mode Sentuh
      6. +
      7. Menangani Fokus
      8. +
      + +
      +
      + +

      Di Android, ada lebih dari satu cara untuk mencegat kejadian dari interaksi pengguna dengan aplikasi Anda. +Saat mempertimbangkan kejadian dalam antarmuka pengguna Anda, pendekatannya adalah menangkap kejadian +dari objek View tertentu yang digunakan pengguna untuk berinteraksi. Kelas View menyediakan sarana untuk melakukannya.

      + +

      Dalam berbagai kelas View yang akan digunakan untuk menyusun layout, Anda mungkin melihat beberapa metode callback +publik yang tampak berguna untuk kejadian UI. Metode ini dipanggil oleh kerangka kerja Android ketika masing-masing +tindakan terjadi pada objek itu. Misalnya, bila View (seperti Button/Tombol) disentuh, +metode onTouchEvent() akan dipanggil pada objek itu. Akan tetapi, untuk mencegatnya, Anda harus memperluas +kelas dan mengesampingkan metode itu. Akan tetapi, memperluas setiap objek View +untuk menangani kejadian seperti itu tidaklah praktis. Karena itulah kelas View juga berisi +sekumpulan antarmuka tersarang dengan callback yang jauh lebih mudah didefinisikan. Antarmuka ini, +yang disebut event listener, merupakan tiket Anda untuk menangkap interaksi pengguna dengan UI.

      + +

      Walaupun Anda akan lebih sering menggunakan event listener ini untuk interaksi pengguna, +mungkin ada saatnya Anda ingin memperluas kelas View, untuk membuat komponen custom. +Mungkin Anda ingin memperluas kelas {@link android.widget.Button} +untuk membuat sesuatu yang lebih menarik. Dalam hal ini, Anda akan dapat mendefinisikan perilaku kejadian default untuk kelas Anda dengan menggunakan +kelas event handler.

      + + +

      Event Listener

      + +

      Event listener merupakan antarmuka di kelas {@link android.view.View} yang berisi metode +callback tunggal. Metode ini akan dipanggil oleh kerangka kerja Android bila View yang +telah didaftarkan dengan listener dipicu oleh interaksi pengguna dengan item dalam UI.

      + +

      Yang juga disertakan dalam antarmuka event listener adalah metode callback berikut ini:

      + +
      +
      onClick()
      +
      Dari {@link android.view.View.OnClickListener}. + Ini dipanggil baik saat pengguna menyentuh item + (bila dalam mode sentuh), maupun memfokuskan pada item dengan tombol navigasi atau trackball dan +menekan tombol "enter" yang sesuai atau menekan trackball.
      +
      onLongClick()
      +
      Dari {@link android.view.View.OnLongClickListener}. + Ini dipanggil baik saat pengguna menyentuh dan menahan item (bila dalam mode sentuh), +maupun memfokuskan pada item dengan tombol navigasi atau trackball dan +menekan serta menahan tombol "enter" yang sesuai atau menekan dan menahan trackball (selama satu detik).
      +
      onFocusChange()
      +
      Dari {@link android.view.View.OnFocusChangeListener}. + Ini dipanggil saat pengguna menyusuri ke atau dari item, dengan menggunakan tombol navigasi atau trackball.
      +
      onKey()
      +
      Dari {@link android.view.View.OnKeyListener}. + Ini dipanggil saat pengguna memfokuskan pada item dan menekan atau melepas tombol fisik pada perangkat.
      +
      onTouch()
      +
      Dari {@link android.view.View.OnTouchListener}. + Ini dipanggil saat pengguna melakukan tindakan yang digolongkan sebagai kejadian sentuh, termasuk penekanan, pelepasan, +atau gerak perpindahan pada layar (dalam batasan item itu).
      +
      onCreateContextMenu()
      +
      Dari {@link android.view.View.OnCreateContextMenuListener}. + Ini dipanggil saat Menu Konteks sedang dibuat (akibat "klik lama" terus-menerus). Lihat diskusi +tentang menu konteks di panduan pengembang Menu. +
      +
      + +

      Metode ini satu-satunya yang menempati antarmukanya masing-masing. Untuk mendefinisikan salah satu metode ini +dan menangani kejadian Anda, implementasikan antarmuka tersarang dalam Aktivitas Anda atau definisikan sebagai kelas anonim. +Kemudian, teruskan satu +instance implementasi Anda pada masing-masing metode View.set...Listener(). (Misalnya, panggil +{@link android.view.View#setOnClickListener(View.OnClickListener) setOnClickListener()} +dan teruskan implementasi {@link android.view.View.OnClickListener OnClickListener} Anda.)

      + +

      Contoh di bawah menunjukkan cara mendaftarkan on-click listener untuk Button.

      + +
      +// Create an anonymous implementation of OnClickListener
      +private OnClickListener mCorkyListener = new OnClickListener() {
      +    public void onClick(View v) {
      +      // do something when the button is clicked
      +    }
      +};
      +
      +protected void onCreate(Bundle savedValues) {
      +    ...
      +    // Capture our button from layout
      +    Button button = (Button)findViewById(R.id.corky);
      +    // Register the onClick listener with the implementation above
      +    button.setOnClickListener(mCorkyListener);
      +    ...
      +}
      +
      + +

      Anda juga akan merasa lebih praktis mengimplementasikan OnClickListener sebagai bagian dari Aktivitas. +Ini akan menghindari beban kelas ekstra dan alokasi objek. Misalnya:

      +
      +public class ExampleActivity extends Activity implements OnClickListener {
      +    protected void onCreate(Bundle savedValues) {
      +        ...
      +        Button button = (Button)findViewById(R.id.corky);
      +        button.setOnClickListener(this);
      +    }
      +
      +    // Implement the OnClickListener callback
      +    public void onClick(View v) {
      +      // do something when the button is clicked
      +    }
      +    ...
      +}
      +
      + +

      Perhatikan bahwa callback onClick() dalam contoh di atas tidak memiliki +nilai hasil, namun beberapa metode event listener lainnya harus mengembalikan boolean. Sebabnya +bergantung pada kejadian. Untuk sebagian yang mengembalikan boolean, ini sebabnya:

      +
        +
      • {@link android.view.View.OnLongClickListener#onLongClick(View) onLongClick()} - + Ini mengembalikan boolean untuk menunjukkan apakah Anda telah menggunakan kejadian dan tidak boleh dibawa lebih jauh. + Yaitu, mengembalikan benar untuk menunjukkan apakah Anda telah menangani kejadian dan semestinya berhenti di sini; + mengembalikan salah jika Anda tidak menanganinya dan/atau kejadian semestinya berlanjut ke + on-click listener lainnya.
      • +
      • {@link android.view.View.OnKeyListener#onKey(View,int,KeyEvent) onKey()} - + Ini mengembalikan boolean untuk menunjukkan apakah Anda telah menggunakan kejadian dan tidak boleh dibawa lebih jauh. + Yaitu, mengembalikan benar untuk menunjukkan apakah Anda telah menangani kejadian dan semestinya berhenti di sini; + mengembalikan salah jika Anda tidak menanganinya dan/atau kejadian semestinya berlanjut ke + on-key listener lainnya.
      • +
      • {@link android.view.View.OnTouchListener#onTouch(View,MotionEvent) onTouch()} - + Ini mengembalikan boolean untuk menunjukkan apakah listener Anda telah menggunakan kejadian ini. Yang penting adalah +kejadian ini bisa memiliki beberapa tindakan yang saling mengikuti. Jadi, jika Anda mengembalikan salahsaat +kejadian tindakan turun diterima, itu menunjukkan bahwa Anda belum menggunakan kejadian itu dan juga +tidak tertarik dengan tindakan berikutnya dari kejadian ini. Karena itu, Anda tidak akan diminta untuk melakukan tindakan + lainnya dalam kejadian, seperti gerakan jari, atau kejadian tindakan naik yang akan terjadi.
      • +
      + +

      Ingatlah bahwa kejadian tombol fisik selalu disampaikan ke View yang sedang difokus. Kejadian ini dikirim mulai dari atas +hierarki View, kemudian turun hingga tujuan yang sesuai. Jika View Anda (atau anak View Anda) +saat ini sedang fokus, maka Anda dapat melihat kejadian berpindah melalui metode.{@link android.view.View#dispatchKeyEvent(KeyEvent) +dispatchKeyEvent()} Sebagai pengganti untuk menangkap kejadian penting melalui View, Anda juga dapat menerima +semua kejadian dalam Aktivitas Anda dengan {@link android.app.Activity#onKeyDown(int,KeyEvent) onKeyDown()} +dan {@link android.app.Activity#onKeyUp(int,KeyEvent) onKeyUp()}.

      + +

      Selain itu, saat memikirkan tentang input teks aplikasi Anda, ingatlah bahwa banyak perangkat yang hanya memiliki +metode input perangkat lunak. Metode seperti itu tidak harus berbasis tombol; sebagian mungkin menggunakan input suara, tulisan tangan, dan seterusnya. Meskipun +metode input menyajikan antarmuka seperti keyboard, itu umumnya tidak memicu keluarga kejadian +{@link android.app.Activity#onKeyDown(int,KeyEvent) onKeyDown()}. Anda sama sekali tidak boleh +membangun UI yang mengharuskan penekanan tombol tertentu dikontrol kecuali jika Anda ingin membatasi aplikasi Anda pada perangkat yang memiliki +keyboard fisik. Khususnya, jangan mengandalkan metode ini untuk memvalidasi input saat pengguna menekan tombol +enter; melainkan, gunakan tindakan seperti {@link android.view.inputmethod.EditorInfo#IME_ACTION_DONE} untuk menandai +metode input mengenai reaksi yang diharapkan aplikasi Anda, sehingga bisa mengubah UI-nya secara signifikan. Hindari anggapan +tentang bagaimana metode input perangkat lunak seharusnya bekerja dan percayalah bahwa metode akan menyediakan teks yang sudah diformat bagi aplikasi Anda.

      + +

      Catatan: Android akan memanggil event handler terlebih dahulu kemudian handler +default yang sesuai dari definisi kelas. Karena itu, mengembalikan benar dari event listener ini akan menghentikan +penyebaran kejadian ke event listener lain dan juga akan memblokir callback ke +event handler default di View. Pastikan bahwa Anda ingin mengakhiri kejadian saat mengembalikan true.

      + + +

      Event Handler

      + +

      Jika Anda membuat komponen custom dari View, maka Anda dapat mendefinisikan penggunaan beberapa +metode callback sebagai event handler default. +Dalam dokumen tentang Komponen +Custom, Anda akan melihat penggunaan beberapa callback umum untuk penanganan kejadian, +termasuk:

      +
        +
      • {@link android.view.View#onKeyDown} - Dipanggil bila terjadi kejadian tombol baru.
      • +
      • {@link android.view.View#onKeyUp} - Dipanggil bila terjadi kejadian tombol naik.
      • +
      • {@link android.view.View#onTrackballEvent} - Dipanggil bila terjadi kejadian gerakan trackball.
      • +
      • {@link android.view.View#onTouchEvent} - Dipanggil bila terjadi kejadian gerakan layar sentuh.
      • +
      • {@link android.view.View#onFocusChanged} - Dipanggil bila View memperoleh atau kehilangan fokus.
      • +
      +

      Ada beberapa metode lain yang harus Anda ketahui, yang bukan bagian dari kelas View, +namun bisa berdampak langsung pada kemampuan Anda menangani kejadian. Jadi, saat mengelola kejadian yang lebih kompleks dalam +layout, pertimbangkanlah metode-metode lain ini:

      +
        +
      • {@link android.app.Activity#dispatchTouchEvent(MotionEvent) + Activity.dispatchTouchEvent(MotionEvent)} - Ini memungkinkan {@link + android.app.Activity} Anda mencegat semua kejadian sentuh sebelum dikirim ke jendela.
      • +
      • {@link android.view.ViewGroup#onInterceptTouchEvent(MotionEvent) + ViewGroup.onInterceptTouchEvent(MotionEvent)} - Ini memungkinkan {@link + android.view.ViewGroup} memantau kejadian saat dikirim ke View anak.
      • +
      • {@link android.view.ViewParent#requestDisallowInterceptTouchEvent(boolean) + ViewParent.requestDisallowInterceptTouchEvent(boolean)} - Panggil ini + pada View induk untuk menunjukan larangan mencegat kejadian sentuh dengan {@link + android.view.ViewGroup#onInterceptTouchEvent(MotionEvent)}.
      • +
      + +

      Mode Sentuh

      +

      +Saat pengguna menyusuri antarmuka pengguna dengan tombol pengarah atau trackball, Anda +perlu memberikan fokus pada item tindakan (seperti tombol) agar pengguna bisa mengetahui apa +yang akan menerima input. Akan tetapi jika perangkat memiliki kemampuan sentuh, dan pengguna +mulai berinteraksi dengan antarmuka dengan menyentuhnya, maka Anda tidak perlu lagi +menyorot item, atau memfokuskan pada View tertentu. Karena itu, ada mode +untuk interaksi yang bernama "mode sentuh". +

      +

      +Untuk perangkat berkemampuan sentuh, setelah pengguna menyentuh layar, perangkat +akan masuk ke mode sentuh. Dari sini dan selanjutnya, hanya View dengan +{@link android.view.View#isFocusableInTouchMode} benar yang akan dapat difokus, seperti widget pengedit teks. +View lain yang dapat disentuh, seperti tombol, tidak akan difokus bila disentuh; View ini akan +langsung memicu on-click listener bila ditekan. +

      +

      +Kapan saja pengguna menekan tombol pengarah atau menggulir dengan trackball, perangkat akan +keluar dari mode sentuh, dan mencari tampilan untuk difokuskan. Kini pengguna bisa melanjutkan interaksi +dengan antarmuka pengguna tanpa menyentuh layar. +

      +

      +Status mode sentuh dipertahankan di seluruh sistem (semua jendela dan aktivitas). +Untuk query status saat ini, Anda bisa memanggil +{@link android.view.View#isInTouchMode} untuk mengetahui apakah perangkat saat ini sedang dalam mode sentuh. +

      + + +

      Menangani Fokus

      + +

      Kerangka kerja ini akan menangani gerakan fokus rutin sebagai respons input pengguna. +Ini termasuk mengubah fokus saat View dihapus atau disembunyikan, atau saat tersedia View +baru. View menunjukkan kesediaannya untuk mengambil fokus +melalui metode {@link android.view.View#isFocusable()}. Untuk mengubah apakah View bisa mengambil +fokus, panggil {@link android.view.View#setFocusable(boolean) setFocusable()}. Saat dalam mode sentuh, +Anda dapat me-query apakah View memungkinkan fokus dengan {@link android.view.View#isFocusableInTouchMode()}. +Anda bisa mengubahnya dengan {@link android.view.View#setFocusableInTouchMode(boolean) setFocusableInTouchMode()}. +

      + +

      Gerakan fokus berdasarkan pada algoritma yang mencari tetangga terdekat dalam +arah yang diberikan. Dalam kasus yang jarang terjadi, algoritma default mungkin +tidak cocok dengan perilaku yang diinginkan pengembang. Dalam situasi ini, Anda bisa memberikan +pengesampingan eksplisit dengan mengikuti atribut XML berikut dalam file layout: +nextFocusDown, nextFocusLeft, nextFocusRight, dan +nextFocusUp. Tambahkan salah satu atribut ini ke View dari mana fokus +meninggalkan. Definisikan nilai atribut untuk menjadi ID View +ke mana fokus harus diberikan. Misalnya:

      +
      +<LinearLayout
      +    android:orientation="vertical"
      +    ... >
      +  <Button android:id="@+id/top"
      +          android:nextFocusUp="@+id/bottom"
      +          ... />
      +  <Button android:id="@+id/bottom"
      +          android:nextFocusDown="@+id/top"
      +          ... />
      +</LinearLayout>
      +
      + +

      Biasanya, dalam layout vertikal ini, navigasi ke atas dari Button pertama tidak akan membawa ke +mana pun, tidak pula akan menyusuri ke bawah dari Button kedua. Karena sekarang Button atas telah +mendefinisikan Button bawah sebagai nextFocusUp (dan sebaliknya), fokus navigasi akan +silih berganti dari atas ke bawah dan bawah ke atas.

      + +

      Jika Anda ingin mendeklarasikan View sebagai dapat difokus dalam UI (bila biasanya tidak dapat difokus), +tambahkan atribut XML android:focusable ke View, dalam deklarasi layout Anda. +Atur nilai true. Anda juga bisa mendeklarasikan View +sebagai dapat difokus saat dalam Mode Sentuh dengan android:focusableInTouchMode.

      +

      Untuk meminta View tertentu difokus, panggil {@link android.view.View#requestFocus()}.

      +

      Untuk mendengarkan kejadian fokus (diberi tahu bila View menerima atau kehilangan fokus), gunakan +{@link android.view.View.OnFocusChangeListener#onFocusChange(View,boolean) onFocusChange()} +, seperti yang dibahas di bagian Event Listener, di atas.

      + + + + diff --git a/docs/html-intl/intl/id/training/articles/direct-boot.jd b/docs/html-intl/intl/id/training/articles/direct-boot.jd new file mode 100644 index 000000000000..a7e3cf3cad77 --- /dev/null +++ b/docs/html-intl/intl/id/training/articles/direct-boot.jd @@ -0,0 +1,181 @@ +page.title=Direct Boot +page.keywords=pratinjau,sdk,direct boot +page.tags=androidn +page.image=images/cards/card-nyc_2x.jpg + +@jd:body + + + +

      Android N berjalan dalam mode Direct Boot yang aman +bila perangkat telah dihidupkan namun pengguna tidak membuka +kunci perangkat. Untuk mendukung hal ini, sistem menyediakan dua lokasi penyimpanan untuk data:

      + +
        +
      • Penyimpanan yang dienkripsi dengan kredensial, yang merupakan lokasi penyimpanan default +dan hanya tersedia setelah pengguna membuka kunci perangkat.
      • +
      • Penyimpanan yang dienkripsi dengan perangkat, yang merupakan lokasi penyimpanan yang tersedia +selama mode Direct Boot dan setelah pengguna membuka kunci perangkat.
      • +
      + +

      Secara default, aplikasi tidak berjalan selama mode Direct Boot. +Jika aplikasi Anda perlu melakukan tindakan selama mode Direct Boot, Anda bisa mendaftarkan +komponen aplikasi yang harus dijalankan selama mode ini. Beberapa kasus penggunaan umum +untuk aplikasi yang perlu dijalankan selama mode Direct Boot antara lain:

      + +
        +
      • Aplikasi yang telah menjadwalkan pemberitahuan, seperti aplikasi +beker.
      • +
      • Aplikasi yang menyediakan pemberitahuan pengguna yang penting, seperti aplikasi SMS.
      • +
      • Aplikasi yang menyediakan layanan aksesibilitas, seperti TalkBack.
      • +
      + +

      Jika aplikasi Anda perlu mengakses data saat dijalankan dalam mode Direct Boot, gunakan +penyimpanan yang dienkripsi dengan perangkat. Penyimpanan yang dienkripsi dengan perangkat berisi data +yang dienkripsi dengan kunci yang hanya tersedia setelah perangkat melakukan +booting yang berhasil diverifikasi.

      + +

      Untuk data yang harus dienkripsi dengan kunci yang dikaitkan dengan kredensial +pengguna, seperti PIN atau kata sandi, gunakan penyimpanan yang dienkripsi dengan kredensial. +Penyimpanan yang dienkripsi dengan kredensial hanya tersedia setelah pengguna berhasil +membuka kunci perangkat, hingga saat pengguna menghidupkan ulang perangkat lagi. Jika +pengguna mengaktifkan layar kunci setelah membuka kunci perangkat, hal ini tidak akan mengunci +penyimpanan yang dienkripsi dengan kredensial.

      + +

      Meminta Akses untuk Berjalan Selama Direct Boot

      + +

      Aplikasi harus mendaftarkan komponennya pada sistem agar +bisa berjalan selama mode Direct Boot atau mengakses +penyimpanan yang dienkripsi dengan perangkat. Aplikasi mendaftar pada sistem dengan menandai komponen sebagai +peka enkripsi. Untuk menandai komponen Anda sebagai peka enkripsi, setel atribut +android:directBootAware ke true dalam manifes Anda.

      + +

      Komponen yang peka enkripsi bisa mendaftar untuk menerima pesan siaran +LOCKED_BOOT_COMPLETED dari +sistem bila perangkat telah dihidupkan ulang. Pada tahap ini +penyimpanan yang dienkripsi dengan perangkat akan tersedia, dan komponen Anda bisa mengeksekusi tugas-tugas yang perlu +dijalankan selama mode Direct Boot, seperti memicu alarm yang terjadwal.

      + +

      Cuplikan kode berikut adalah contoh cara mendaftarkan +{@link android.content.BroadcastReceiver} sebagai peka enkripsi, dan menambahkan sebuah +filter intent untuk LOCKED_BOOT_COMPLETED, dalam manifes aplikasi:

      + +
      +<receiver
      +  android:directBootAware="true" >
      +  ...
      +  <intent-filter>
      +    <action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />
      +  </intent-filter>
      +</receiver>
      +
      + +

      Setelah pengguna membuka kunci perangkat, semua komponen bisa mengakses +penyimpanan yang dienkripsi dengan perangkat serta penyimpanan yang dienkripsi dengan kredensial.

      + +

      Mengakses Penyimpanan yang Dienkripsi dengan Perangkat

      + +

      Untuk mengakses penyimpanan yang dienkripsi dengan perangkat, buat instance +{@link android.content.Context} kedua dengan memanggil +Context.createDeviceProtectedStorageContext(). Semua panggilan +API penyimpanan yang dibuat menggunakan konteks ini mengakses penyimpanan yang dienkripsi dengan perangkat. Contoh +berikut mengakses penyimpanan yang dienkripsi dengan perangkat dan membuka file data aplikasi +yang ada:

      + +
      +Context directBootContext = appContext.createDeviceProtectedStorageContext();
      +// Access appDataFilename that lives in device encrypted storage
      +FileInputStream inStream = directBootContext.openFileInput(appDataFilename);
      +// Use inStream to read content...
      +
      + +

      Gunakan penyimpanan yang dienkripsi dengan perangkat hanya untuk +informasi yang harus bisa diakses selama mode Direct Boot. +Jangan gunakan penyimpanan yang dienkripsi dengan perangkat sebagai penyimpanan terenkripsi serba guna. +Untuk informasi pengguna yang bersifat pribadi, atau data terenkripsi yang tidak diperlukan selama +mode Direct Boot, gunakan penyimpanan yang dienkripsi dengan kredensial.

      + +

      Mendapatkan Pemberitahuan saat Pengguna Membuka Kunci

      + +

      Setelah pengguna membuka kunci perangkat setelah restart, aplikasi Anda bisa beralih untuk +mengakses penyimpanan yang dienkripsi dengan kredensial dan menggunakan layanan sistem biasa yang +bergantung pada kredensial pengguna.

      + +

      Agar diberi tahu bila pengguna membuka kunci perangkat setelah boot ulang, +daftarkan {@link android.content.BroadcastReceiver} dari komponen yang berjalan +untuk mendengarkan pesan ACTION_USER_UNLOCKED. Atau, Anda bisa +menerima pesan {@link android.content.Intent#ACTION_BOOT_COMPLETED +ACTION_BOOT_COMPLETED} yang ada, yang sekarang menunjukkan bahwa perangkat telah dihidupkan dan +pengguna telah membuka kunci perangkat.

      + +

      Anda bisa langsung kueri apakah pengguna telah membuka kunci perangkat dengan memanggil +UserManager.isUserUnlocked().

      + +

      Migrasi Data yang Ada

      + +

      Jika pengguna memperbarui perangkat mereka untuk menggunakan mode Direct Boot, +data Anda yang ada mungkin perlu dipindahkan ke penyimpanan yang dienkripsi dengan perangkat. Gunakan +Context.moveSharedPreferencesFrom() dan +Context.moveDatabaseFrom() untuk memindahkan data preferensi dan +basis data antara penyimpanan yang dienkripsi dengan kredensial dan penyimpanan yang dienkripsi dengan perangkat.

      + +

      Pertimbangkan dengan baik saat memutuskan data apa yang akan dipindahkan dari +penyimpanan yang dienkripsi dengan kredensial ke penyimpanan yang dienkripsi dengan perangkat. Anda sebaiknya tidak memindahkan +informasi pengguna yang bersifat rahasia, seperti kata sandi atau token otorisasi, ke +penyimpanan yang dienkripsi dengan perangkat. Dalam beberapa skenario, Anda mungkin perlu mengelola +set data terpisah pada dua tempat penyimpanan yang dienkripsi.

      + +

      Menguji Aplikasi Peka Enkripsi Anda

      + +

      Uji aplikasi peka enkripsi Anda menggunakan mode Direct Boot baru. Ada +dua cara untuk mengaktifkan Direct Boot.

      + +

      Perhatian: Mengaktifkan Direct Boot +akan menghapus semua data pengguna pada perangkat.

      + +

      Pada perangkat yang didukung dengan Android N terpasang, aktifkan +Direct Boot dengan melakukan salah satu hal berikut:

      + +
        +
      • Pada perangkat, aktifkan Developer options jika Anda belum melakukannya dengan +masuk ke Settings > About phone, dan menyentuh Build number +tujuh kali. Setelah layar Developer options terbuka, masuk ke +Settings > Developer options dan pilih +Convert to file encryption.
      • +
      • Gunakan perintah shell adb berikut untuk mengaktifkan mode Direct Boot: +
        +$ adb reboot-bootloader
        +$ fastboot --wipe-and-use-fbe
        +
        +
      • +
      + +

      Mode emulasi Direct Boot juga tersedia, jika Anda perlu mengganti +mode pada perangkat pengujian. Mode emulasi sebaiknya hanya digunakan selama +pengembangan dan bisa menyebabkan kehilangan data. Untuk mengaktifkan mode emulasi Direct Boot, +setel pola kunci pada perangkat, pilih "No thanks" jika ditanya mengenai +layar start-up aman saat menetapkan pola kunci, kemudian gunakan +perintah shell adb berikut:

      + +
      +$ adb shell sm set-emulate-fbe true
      +
      + +

      Untuk menonaktifkan mode emulasi Direct Boot, gunakan perintah berikut:

      + +
      +$ adb shell sm set-emulate-fbe false
      +
      + +

      Menggunakan perintah ini akan menyebabkan perangkat melakukan boot ulang.

      diff --git a/docs/html-intl/intl/id/training/articles/scoped-directory-access.jd b/docs/html-intl/intl/id/training/articles/scoped-directory-access.jd new file mode 100644 index 000000000000..30aed6fbb2a4 --- /dev/null +++ b/docs/html-intl/intl/id/training/articles/scoped-directory-access.jd @@ -0,0 +1,148 @@ +page.title=Scoped Directory Access +page.keywords=pratinjau,sdk,scoped directory access +page.tags=androidn + +@jd:body + + + +

      Aplikasi seperti aplikasi foto biasanya hanya memerlukan akses ke direktori tertentu dalam +penyimpanan eksternal, seperti direktori Pictures. Pendekatan +yang ada dalam mengakses penyimpanan eksternal tidak didesain untuk memberi kemudahan +akses direktori tertarget untuk tipe aplikasi ini. Misalnya:

      + +
        +
      • Meminta {@link android.Manifest.permission#READ_EXTERNAL_STORAGE} +atau {@link android.Manifest.permission#WRITE_EXTERNAL_STORAGE} dalam manifes Anda +akan memungkinkan akses ke semua direktori publik pada penyimpanan eksternal, yang mungkin +lebih banyak akses dari yang dibutuhkan aplikasi Anda.
      • +
      • Menggunakan +Storage +Access Framework biasanya membuat pengguna Anda memilih direktori +melalui UI sistem, yang tidak diperlukan jika aplikasi Anda selalu mengakses +direktori eksternal yang sama.
      • +
      + +

      Android N menyediakan API baru yang disederhanakan untuk mengakses +direktori penyimpanan eksternal umum.

      + +

      Mengakses Direktori Penyimpanan Eksternal

      + +

      Gunakan kelas StorageManager untuk mendapatkan instance +StorageVolume yang tepat. Kemudian, buat intent dengan memanggil metode +StorageVolume.createAccessIntent() dari instance itu. +Gunakan intent ini untuk mengakses direktori penyimpanan eksternal. Untuk mendapatkan daftar +semua volume yang tersedia, termasuk volume media lepas-pasang, gunakan +StorageManager.getVolumesList().

      + +

      Jika Anda memiliki informasi tentang file spesifik, gunakan +StorageManager.getStorageVolume(File) untuk mendapatkan +StorageVolume yang berisi file tersebut. Panggil +createAccessIntent() pada StorageVolume ini untuk mengakses +direktori penyimpanan eksternal untuk file tersebut.

      + +

      +Di volume kedua, seperti kartu SD eksternal, teruskan null saat memanggil +StorageVolume.createAccessIntent() untuk meminta akses ke seluruh +volume, sebagai ganti direktori spesifik. +StorageVolume.createAccessIntent() akan mengembalikan null jika Anda meneruskan +null ke volume utama, atau jika Anda meneruskan nama direktori yang tidak valid. +

      + +

      Cuplikan kode berikut adalah contoh cara membuka direktori +Pictures dalam penyimpanan bersama utama:

      + +
      +StorageManager sm = (StorageManager)getSystemService(Context.STORAGE_SERVICE);
      +StorageVolume volume = sm.getPrimaryVolume();
      +Intent intent = volume.createAccessIntent(Environment.DIRECTORY_PICTURES);
      +startActivityForResult(intent, request_code);
      +
      + +

      Sistem ini mencoba untuk memberikan akses ke direktori eksternal, dan jika +diperlukan mengonfirmasi akses dengan pengguna menggunakan UI yang disederhanakan:

      + + +

      Gambar 1. Sebuah aplikasi yang meminta +akses ke direktori Pictures.

      + +

      Jika pengguna memberi akses, sistem akan memanggil penggantian +onActivityResult() Anda dengan kode hasil +Activity.RESULT_OK, dan data intent yang berisi URI. Gunakan +URI yang disediakan untuk mengakses informasi direktori, serupa dengan menggunakan URI +yang dikembalikan oleh +Storage +Access Framework.

      + +

      Jika pengguna tidak memberi akses, sistem akan memanggil penggantian +onActivityResult() Anda dengan kode hasil +Activity.RESULT_CANCELED, dan data intent nol.

      + +

      Catatan: Mendapatkan akses ke direktori eksternal tertentu +juga akan memperoleh akses ke subdirektori dalam direktori tersebut.

      + +

      Mengakses Direktori pada Media Lepas-Pasang

      + +

      Untuk menggunakan Scoped Directory Access guna mengakses direktori pada media lepas-pasang, +pertama tambahkan {@link android.content.BroadcastReceiver} yang akan mendengarkan pemberitahuan +{@link android.os.Environment#MEDIA_MOUNTED}, misalnya:

      + +
      +<receiver
      +    android:name=".MediaMountedReceiver"
      +    android:enabled="true"
      +    android:exported="true" >
      +    <intent-filter>
      +        <action android:name="android.intent.action.MEDIA_MOUNTED" />
      +        <data android:scheme="file" />
      +    </intent-filter>
      +</receiver>
      +
      + +

      Bila pengguna memasang media lepas-pasang, seperti kartu SD, sistem akan mengirimkan pemberitahuan +{@link android.os.Environment#MEDIA_MOUNTED}. Pemberitahuan ini +memberikan sebuah objek StorageVolume dalam data intent yang bisa +Anda gunakan untuk mengakses direktori pada media lepas-pasang. Contoh berikut +mengakses direktori Pictures pada media lepas-pasang:

      + +
      +// BroadcastReceiver has already cached the MEDIA_MOUNTED
      +// notification Intent in mediaMountedIntent
      +StorageVolume volume = (StorageVolume)
      +    mediaMountedIntent.getParcelableExtra(StorageVolume.EXTRA_STORAGE_VOLUME);
      +volume.createAccessIntent(Environment.DIRECTORY_PICTURES);
      +startActivityForResult(intent, request_code);
      +
      + +

      Praktik Terbaik

      + +

      Bila memungkinkan, pertahankan URI akses direktori eksternal sehingga Anda tidak perlu +berulang kali meminta akses ke pengguna. Setelah pengguna memberikan akses, panggil +getContentResolver().takePersistableUriPermssion() bersama +URI akses direktori. Sistem akan mempertahankan URI dan permintaan +akses berikutnya akan mengembalikan RESULT_OK dan tidak menampilkan UI konfirmasi kepada +pengguna.

      + +

      Jika pengguna menolak akses ke direktori eksternal, jangan langsung +meminta akses lagi. Berulang kali meminta akses akan menghasilkan pengalaman +pengguna yang buruk. Jika permintaan ditolak oleh pengguna, dan aplikasi meminta akses +lagi, UI akan menampilkan kotak centang Don't ask again:

      + + +

      Gambar 1. Sebuah aplikasi membuat +permintaan kedua untuk mengakses media lepas-pasang.

      + +

      Jika pengguna memilih Don't ask again dan menolak permintaan, +semua permintaan berikutnya untuk direktori yang diberikan dari aplikasi +Anda secara otomatis akan ditolak, dan tidak ada UI permintaan yang akan ditampilkan ke pengguna.

      \ No newline at end of file diff --git a/docs/html-intl/intl/id/training/articles/security-config.jd b/docs/html-intl/intl/id/training/articles/security-config.jd new file mode 100644 index 000000000000..e13429dec04e --- /dev/null +++ b/docs/html-intl/intl/id/training/articles/security-config.jd @@ -0,0 +1,747 @@ +page.title=Konfigurasi Keamanan Jaringan +page.keywords=androidn,keamanan,jaringan +page.image=images/cards/card-nyc_2x.jpg + +@jd:body + + + + +

      + Android N menyertakan fitur + Network Security Configuration yang memungkinkan aplikasi menyesuaikan setelan keamanan jaringan mereka dalam + file konfigurasi deklaratif yang aman tanpa memodifikasi kode aplikasi. Setelan ini bisa + dikonfigurasi untuk domain dan aplikasi tertentu. Kemampuan + utama fitur ini adalah sebagai berikut: +

      + +
        +
      • + Trust-anchor khusus: Menyesuaikan Certificate Authorities (CA) mana + yang dipercaya untuk koneksi aman aplikasi. Misalnya, + mempercayai sertifikat tertentu yang ditandatangani sendiri atau membatasi + set CA umum yang dipercaya aplikasi. +
      • + +
      • + Penggantian hanya-debug: Men-debug secara aman koneksi aman dalam aplikasi + tanpa menambahkan risiko pada basis yang telah dipasang. +
      • + +
      • + Berhenti dari lalu lintas cleartext: Melindungi aplikasi dari + penggunaan lalu lintas cleartext secara tidak sengaja. +
      • + +
      • + Penyematan sertifikat: Membatasi koneksi aman aplikasi ke + sertifikat tertentu. +
      • +
      + + +

      Menambahkan File Konfigurasi Keamanan

      + +

      + Fitur Network Security Configuration menggunakan file XML tempat Anda menetapkan + setelan untuk aplikasi. Anda harus menyertakan sebuah entri dalam manifes aplikasi + untuk menunjuk ke file ini. Kutipan kode berikut dari sebuah manifes + yang memperagakan cara membuat entri ini: +

      + +
      +<?xml version="1.0" encoding="utf-8"?>
      +<manifest ... >
      +  <application ... >
      +    <meta-data android:name="android.security.net.config"
      +               android:resource="@xml/network_security_config" />
      +    ...
      +  </application>
      +</manifest>
      +
      + +

      Menyesuaikan CA Tepercaya

      + +

      + Aplikasi mungkin perlu mempercayai set CA khusus sebagai ganti default + platform. Alasannya yang paling umum adalah: +

      + +
        +
      • Menghubungkan ke host dengan otoritas sertifikat khusus (ditandatangani sendiri, + dikeluarkan oleh CA internal, dll). +
      • + +
      • Membatasi set CA hanya untuk CA yang Anda percaya sebagai ganti setiap CA + yang sudah terpasang. +
      • + +
      • Mempercayai CA tambahan yang tidak disertakan dalam sistem. +
      • +
      + +

      + Secara default koneksi (mis. TLS, HTTPS) aman dari semua aplikasi mempercayai + CA yang telah dipasang oleh sistem, dan aplikasi yang menargetkan API level 23 + (Android M) ke bawah, juga mempercayai penyimpanan CA yang ditambahkan pengguna secara default. Aplikasi + bisa menyesuaikan koneksinya menggunakan {@code base-config} (untuk + penyesuaian lebar-aplikasi) atau {@code domain-config} (untuk penyesuaian + per-domain). +

      + + +

      Mengonfigurasi CA Khusus

      + +

      + Anggaplah Anda ingin menghubungkan ke host Anda yang menggunakan sertifikat + SSL yang ditandatangani sendiri atau ke host yang sertifikat SSL-nya dikeluarkan oleh CA non-publik + yang Anda percaya, seperti CA internal perusahaan Anda. +

      + +

      + res/xml/network_security_config.xml: +

      +<?xml version="1.0" encoding="utf-8"?>
      +<network-security-config>
      +    <domain-config>
      +        <domain includeSubdomains="true">example.com</domain>
      +        <trust-anchors>
      +            <certificates src="@raw/my_ca"/>
      +        </trust-anchors>
      +    </domain-config>
      +</network-security-config>
      +
      +

      + +

      + Menambahkan sertifikat CA yang ditandatangani sendiri atau sertifikat CA non-publik, dalam format PEM atau DER, ke + {@code res/raw/my_ca}. +

      + + +

      Membatasi Set CA Tepercaya

      + +

      + Aplikasi yang tidak ingin mempercayai semua CA yang dipercaya oleh sistem + sebagai gantinya bisa menetapkan set CA sendiri yang telah dikurangi untuk dipercaya. Ini akan melindungi + aplikasi dari sertifikat palsu yang dikeluarkan oleh selain CA. +

      + +

      + Konfigurasi untuk membatasi set CA tepercaya mirip dengan mempercayai CA khusus untuk domain tertentu selain + beberapa CA disediakan dalam sumber daya. +

      + +

      +res/xml/network_security_config.xml: +

      +<?xml version="1.0" encoding="utf-8"?>
      +<network-security-config>
      +    <domain-config>
      +        <domain includeSubdomains="true">secure.example.com</domain>
      +        <domain includeSubdomains="true">cdn.example.com</domain>
      +        <trust-anchors>
      +            <certificates src="@raw/trusted_roots"/>
      +        </trust-anchors>
      +    </domain-config>
      +</network-security-config>
      +
      +

      + +

      + Menambahkan CA tepercaya, dalam format PEM atau DER, ke {@code res/raw/trusted_roots}. + Perhatikan, jika menggunakan format PEM, file hanya boleh berisi data PEM + dan tidak ada teks tambahan. Anda juga bisa menyediakan beberapa elemen + <certificates> +sebagai ganti satu elemen. +

      + + +

      + Mempercayai CA Tambahan +

      + +

      + Sebuah aplikasi mungkin perlu mempercayai CA tambahan yang tidak dipercaya oleh sistem, + hal ini bisa disebabkan karena sistem belum menyertakan CA atau CA tidak + memenuhi persyaratan untuk memasukkan ke dalam sistem Android. Aplikasi + bisa melakukannya dengan menetapkan beberapa sumber sertifikat untuk + konfigurasi. +

      +

      +res/xml/network_security_config.xml: +

      +<?xml version="1.0" encoding="utf-8"?>
      +<network-security-config>
      +    <base-config>
      +        <trust-anchors>
      +            <certificates src="@raw/extracas"/>
      +            <certificates src="system"/>
      +        </trust-anchors>
      +    </base-config>
      +</network-security-config>
      +
      +

      + + +

      Mengonfigurasi CA untuk Debug

      + +

      + Saat men-debug aplikasi yang terhubung melalui HTTPS, Anda mungkin perlu + menghubungkan ke server pengembangan lokal, yang tidak memiliki sertifikat + SSL untuk server produksi Anda. Untuk mendukungnya tanpa + memodifikasi kode aplikasi, Anda bisa menetapkan CA hanya-debug + yang hanya dipercaya bila +android:debuggable + adalah {@code true} dengan menggunakan {@code debug-overrides}. Biasanya IDE dan alat + build menyetel flag ini secara otomatis untuk build non-rilis. +

      + +

      + Ini lebih aman daripada kode kondisional biasa karena, sebagai tindakan + pencegahan keamanan, toko aplikasi tidak menerima aplikasi yang ditandai + bisa-di-debug. +

      + +

      +res/xml/network_security_config.xml: +

      +<?xml version="1.0" encoding="utf-8"?>
      +<network-security-config>
      +    <debug-overrides>
      +        <trust-anchors>
      +            <certificates src="@raw/debug_cas"/>
      +        </trust-anchors>
      +    </debug-overrides>
      +</network-security-config>
      +
      +

      + + +

      Berhenti dari Lalu Lintas Cleartext

      + +

      + Aplikasi bermaksud menyambung ke tujuan hanya menggunakan koneksi + aman dapat memilih keluar dari dukungan cleartext (menggunakan protokol + HTTP yang tidak terenkripsi sebagai ganti HTTPS) ke tujuan tersebut. Opsi ini akan membantu mencegah + regresi tidak disengaja dalam aplikasi karena perubahan dalam URL yang disediakan oleh sumber-sumber + eksternal seperti server backend. + Lihat {@link android.security.NetworkSecurityPolicy#isCleartextTrafficPermitted + NetworkSecurityPolicy.isCleartextTrafficPermitted()} untuk detail selengkapnya. +

      + +

      + Misalnya, aplikasi mungkin ingin memastikan semua koneksi ke {@code + secure.example.com} selalu dilakukan melalui HTTPS untuk melindungi lalu lintas sensitif + dari jaringan yang berbahaya. +

      + +

      +res/xml/network_security_config.xml: +

      +<?xml version="1.0" encoding="utf-8"?>
      +<network-security-config>
      +    <domain-config usesCleartextTraffic="false">
      +        <domain includeSubdomains="true">secure.example.com</domain>
      +    </domain-config>
      +</network-security-config>
      +
      +

      + + +

      Menyematkan Sertifikat

      + +

      + Biasanya aplikasi mempercayai semua CA yang telah terpasang. Jika salah satu dari CA ini + mengeluarkan sertifikat palsu, aplikasi akan berisiko terkena serangan + MiTM. Beberapa aplikasi memilih untuk membatasi set sertifikat yang mereka terima + baik dengan membatasi set CA yang mereka percaya atau dengan menyematkan sertifikat. +

      + +

      + Penyematan sertifikat dilakukan dengan memberikan seperangkat sertifikat dengan hash + kunci publik (SubjectPublicKeyInfo pada sertifikat X.509). Rantai + sertifikat nanti hanya berlaku jika rantai sertifikat berisi setidaknya salah satu + dari kunci publik yang disematkan. +

      + +

      + Perhatikan, saat menggunakan penyematan sertifikat, Anda harus selalu menyertakan kunci + cadangan sehingga jika Anda terpaksa beralih ke kunci baru, atau mengubah CA (saat + menyematkan ke sertifikat CA atau perantara CA tersebut), konektivitas + aplikasi Anda tidak terpengaruh. Jika tidak, Anda harus mendorong + pembaruan ke aplikasi tersebut untuk memulihkan konektivitas. +

      + +

      + Selain itu dimungkinkan juga menyetel waktu habis masa berlaku untuk pin setelah + penyematan tidak dilakukan. Hal ini membantu mencegah masalah konektivitas dalam + aplikasi yang belum diperbarui. Akan tetapi, menyetel waktu kedaluwarsa + pada pin mungkin akan membuat penyematan bisa diabaikan. +

      + +

      +res/xml/network_security_config.xml: +

      +<?xml version="1.0" encoding="utf-8"?>
      +<network-security-config>
      +    <domain-config>
      +        <domain includeSubdomains="true">example.com</domain>
      +        <pin-set expiration="2018-01-01">
      +            <pin digest="SHA-256">7HIpactkIAq2Y49orFOOQKurWxmmSFZhBCoQYcRhJ3Y=</pin>
      +            <!-- backup pin -->
      +            <pin digest="SHA-256">fwza0LRMXouZHRC8Ei+4PyuldPDcf3UKgO/04cDM1oE=</pin>
      +        </pin-set>
      +    </domain-config>
      +</network-security-config>
      +
      +

      + + +

      Perilaku Pewarisan Konfigurasi

      + +

      + Nilai yang tidak disetel dalam konfigurasi tertentu akan diwariskan. Perilaku ini memungkinkan konfigurasi + yang lebih kompleks sambil menjaga file konfigurasi tetap terbaca. +

      + +

      + Jika nilai tidak disetel dalam entri tertentu maka nilai dari entri berikutnya yang lebih + umum akan digunakan. Nilai yang tidak disetel dalam {@code domain-config} akan + diambil dari {@code domain-config} induk, jika tersarang, atau dari {@code + base-config} jika tidak. Nilai yang tidak disetel dalam {@code base-config} akan menggunakan + nilai default platform. +

      + +

      + Misalnya pertimbangkan, bila semua koneksi ke subdomain {@code + example.com} harus menggunakan set CA khusus. Selain itu, lalu lintas cleartext ke + domain ini diizinkan kecuali saat menghubungkan ke {@code + secure.example.com}. Dengan menyarangkan konfigurasi untuk {@code + secure.example.com} dalam konfigurasi untuk {@code example.com}, + {@code trust-anchors} tidak perlu digandakan. +

      + +

      +res/xml/network_security_config.xml: +

      +<?xml version="1.0" encoding="utf-8"?>
      +<network-security-config>
      +    <domain-config>
      +        <domain includeSubdomains="true">example.com</domain>
      +        <trust-anchors>
      +            <certificates src="@raw/my_ca"/>
      +        </trust-anchors>
      +        <domain-config cleartextTrafficPermitted="false">
      +            <domain includeSubdomains="true">secure.example.com</domain>
      +        </domain-config>
      +    </domain-config>
      +</network-security-config>
      +
      +

      + + +

      Format File Konfigurasi

      + +

      + Fitur Network Security Configuration menggunakan format file XML. + Struktur keseluruhan file ditampilkan dalam contoh kode berikut: +

      + +
      +<?xml version="1.0" encoding="utf-8"?>
      +<network-security-config>
      +    <base-config>
      +        <trust-anchors>
      +            <certificates src="..."/>
      +            ...
      +        </trust-anchors>
      +    </base-config>
      +
      +    <domain-config>
      +        <domain>android.com</domain>
      +        ...
      +        <trust-anchors>
      +            <certificates src="..."/>
      +            ...
      +        </trust-anchors>
      +        <pin-set>
      +            <pin digest="...">...</pin>
      +            ...
      +        </pin-set>
      +    </domain-config>
      +    ...
      +    <debug-overrides>
      +        <trust-anchors>
      +            <certificates src="..."/>
      +            ...
      +        </trust-anchors>
      +    </debug-overrides>
      +</network-security-config>
      +
      + +

      + Bagian berikut menjelaskan sintaks dan detail lainnya dari format + file. +

      + +

      + <network-security-config> +

      + +
      +
      + bisa berisi: +
      + +
      + 0 atau 1 <base-config>
      + Sejumlah <domain-config>
      + 0 atau 1 <debug-overrides> +
      +
      + +

      + <base-config> +

      + +
      +
      + sintaks: +
      +
      + +
      +<base-config usesCleartextTraffic=["true" | "false"]>
      +    ...
      +</base-config>
      +
      +
      +
      + bisa berisi: +
      + +
      + <trust-anchors> +
      + +
      + keterangan: +
      + +
      + Konfigurasi default yang digunakan oleh semua koneksi yang tujuannya tidak + tercakup oleh domain-config. + +

      + Nilai yang tidak disetel akan menggunakan nilai default platform. Konfigurasi + default untuk aplikasi yang menargetkan API level 24 ke atas: +

      + +
      +<base-config usesCleartextTraffic="true">
      +    <trust-anchors>
      +        <certificates src="system" />
      +    </trust-anchors>
      +</base-config>
      +
      +Konfigurasi default untuk aplikasi yang menargetkan API level 23 ke bawah: +
      +<base-config usesCleartextTraffic="true">
      +    <trust-anchors>
      +        <certificates src="system" />
      +        <certificates src="user" />
      +    </trust-anchors>
      +</base-config>
      +
      + +
      +
      + +

      <domain-config>

      +
      +
      sintaks:
      +
      +
      <domain-config usesCleartextTraffic=["true" | "false"]>
      +    ...
      +</domain-config>
      +
      + +
      Bisa Berisi:
      + +
      +1 atau beberapa <domain> +
      0 atau 1 <trust-anchors> +
      0 atau 1 <pin-set> +
      Sejumlah <domain-config> tersarang
      + +
      Keterangan
      +
      Konfigurasi yang digunakan untuk koneksi ke tujuan tertentu seperti didefinisikan oleh elemen {@code domain}. + +

      Perhatikan, jika beberapa elemen {@code domain-config} mencakup suatu tujuan, konfigurasi dengan aturan domain paling spesifik (terpanjang) yang cocok +akan digunakan.

      +
      + + +

      <domain>

      + +
      +
      + sintaks: +
      + +
      +
      +<domain includeSubdomains=["true" | "false"]>example.com</domain>
      +
      +
      + +
      + Atribut: +
      + +
      +
      +
      + {@code includeSubdomains} +
      + +
      + Jika {@code "true"} maka aturan domain ini akan dicocokkan dengan domain dan semua + subdomain, termasuk subdomain dari subdomain, jika tidak peraturan hanya + diterapkan pada kecocokan yang persis tepat. +
      +
      +
      + +
      + Keterangan: +
      +
      + +

      <debug-overrides>

      + +
      +
      + sintaks: +
      + +
      +
      +<debug-overrides>
      +    ...
      +</debug-overrides>
      +
      +
      + +
      + Bisa Berisi: +
      + +
      + 0 atau 1 <trust-anchors> +
      + +
      + Keterangan: +
      + +
      + Pengesampingan yang akan diterapkan bila android:debuggable + adalah {@code "true"} yang biasanya terjadi untuk build non-rilis + yang dihasilkan oleh alat IDE dan build. Trust-anchor yang ditetapkan dalam {@code + debug-overrides} akan ditambahkan ke semua konfigurasi lainnya dan penyematan + sertifikat tidak dilakukan bila rantai sertifikat server menggunakan satu dari + trust-anchor hanya-debug ini. Jika android:debuggable + adalah {@code "false"} maka bagian ini akan diabaikan sepenuhnya. +
      +
      + +

      <trust-anchors>

      +
      +
      + sintaks: +
      + +
      +
      +<trust-anchors>
      +...
      +</trust-anchors>
      +
      +
      + +
      + Bisa Berisi: +
      + +
      + Sejumlah <certificates> +
      + +
      + Keterangan: +
      + +
      + Set trust-anchor untuk koneksi aman. +
      +
      + + +

      <certificates>

      +
      +
      sintaks:
      +
      <certificates src=["system" | "user" | "raw resource"]
      +              overridePins=["true" | "false"] />
      +
      +
      keterangan:
      +
      Set sertifikat X.509 untuk elemen {@code trust-anchors}.
      + +
      atribut:
      +
      +
      {@code src}
      +
      +Sumber sertifikat CA, bisa salah satu dari +
        +
      • ID sumber daya mentah yang menunjuk ke file berisi sertifikat X.509. + Sertifikat harus dikodekan dalam format DER atau PEM. Dalam hal sertifikat + PEM, file tidak boleh berisi data tambahan non-PEM seperti + komentar. +
      • + +
      • {@code "system"} untuk sertifikat CA sistem yang telah terpasang. +
      • + +
      • {@code "user"} untuk sertifikat CA yang ditambahkan pengguna. +
      • +
      +
      + +
      {@code overridePins}
      +
      +

      + Menetapkan apakah CA dari sumber akan mengabaikan penyematan sertifikat. Jika {@code + "true"} kemudian rangkaian sertifikat melalui salah satu CA dari + sumber ini maka tidak dilakukan penyematan. Hal ini bisa berguna untuk debug CA + atau untuk mendukung dengan memungkinkan pengguna melakukan MiTM atas lalu lintas aman aplikasi Anda. +

      + +

      + Default-nya adalah {@code "false"} kecuali jika ditetapkan dalam elemen {@code debug-overrides}, + dalam hal demikian default-nya adalah {@code "true"}. +

      +
      +
      +
      + + +

      <pin-set>

      + +
      +
      + sintaks: +
      + +
      +
      +<pin-set expiration="date">
      +...
      +</pin-set>
      +
      +
      + +
      + Bisa Berisi: +
      + +
      + Sejumlah <pin> +
      + +
      + Keterangan: +
      + +
      + Satu set pin kunci publik. Agar koneksi aman bisa dipercaya, salah satu + kunci publik dalam rantai kepercayaan harus berada dalam set pin. Lihat + <pin> untuk mengetahui format pin. +
      + +
      + Atribut: +
      + +
      +
      +
      + {@code expiration} +
      + +
      + Tanggal, dalam format {@code yyyy-MM-dd}, pada saat dan setelah pin + kedaluwarsa, sehingga menonaktifkan penyematan. Jika atribut tidak disetel maka + pin tidak kedaluwarsa. +

      + Tanggal kedaluwarsa membantu mencegah masalah konektivitas di aplikasi yang + tidak mengambil pembaruan untuk set pin mereka, misalnya karena pengguna + menonaktifkan pembaruan aplikasi. +

      +
      +
      +
      +
      + +

      <pin>

      +
      +
      + sintaks: +
      + +
      +
      +<pin digest=["SHA-256"]>base64 encoded digest of X.509
      +    SubjectPublicKeyInfo (SPKI)</pin>
      +
      +
      + +
      + Atribut: +
      + +
      +
      +
      + {@code digest} +
      + +
      + Algoritme intisari yang digunakan untuk menghasilkan pin. Saat ini, hanya + {@code "SHA-256"} yang didukung. +
      +
      +
      +
      diff --git a/docs/html-intl/intl/id/training/basics/network-ops/data-saver.jd b/docs/html-intl/intl/id/training/basics/network-ops/data-saver.jd new file mode 100644 index 000000000000..abd4e4391dfa --- /dev/null +++ b/docs/html-intl/intl/id/training/basics/network-ops/data-saver.jd @@ -0,0 +1,234 @@ +page.title=Data Saver +metaDescription=Optimalisasi penggunaan data yang diaktifkan pengguna. +page.keywords="android N", "data usage", "metered network" +page.image=images/cards/card-nyc_2x.jpg +@jd:body + + + +

      + Selama penggunaan ponsel cerdas, biaya paket data seluler bisa saja + melebihi harga perangkat itu sendiri. Di N Developer Preview, pengguna bisa + mengaktifkan Data Saver berdasarkan lingkup perangkat untuk menghemat data, baik saat + roaming, mendekati akhir siklus penagihan, atau pada paket data prabayar kecil. +

      + +

      + Bila pengguna mengaktifkan Data Saver di Settings dan perangkat + berada dalam jaringan berkuota, sistem akan memblokir penggunaan data latar belakang dan memberi tahu + aplikasi untuk menghemat penggunaan data latar depan bila memungkinkan. Pengguna bisa + memasukkan aplikasi tertentu ke daftar putih untuk memungkinkan penggunaan data berkuota bila Data + Saver diaktifkan. +

      + +

      + N Developer Preview memperluas {@link android.net.ConnectivityManager} + API untuk menyediakan cara pada aplikasi untuk menerima preferensi Data Saver + pengguna dan memantau perubahan + preferensi. Hal ini dianggap praktik terbaik bagi aplikasi untuk memeriksa apakah + pengguna telah mengaktifkan DataSaver dan berusaha membatasi penggunaan data latar depan dan + data latar belakang. +

      + +

      + Memeriksa Preferensi Data Saver +

      + +

      + Di N Developer Preview, aplikasi bisa menggunakan {@link + android.net.ConnectivityManager} API untuk menentukan pembatasan penggunaan data + apa yang sedang diterapkan. Metode {@code getRestrictBackgroundStatus()} + akan mengembalikan salah satu dari nilai berikut: +

      + +
      +
      + {@code RESTRICT_BACKGROUND_STATUS_DISABLED} +
      + +
      + Data Saver dinonaktifkan. +
      + +
      + {@code RESTRICT_BACKGROUND_STATUS_ENABLED} +
      + +
      + Pengguna telah mengaktifkan Data Saver untuk aplikasi ini. Aplikasi harus berusaha membatasi + penggunaan data di latar depan dan dengan halus menangani pembatasan penggunaan + data latar belakang. +
      + +
      + {@code RESTRICT_BACKGROUND_STATUS_WHITELISTED} +
      + +
      + Pengguna telah mengaktifkan Data Saver namun aplikasi telah dimasukkan dalam daftar putih. Aplikasi harus + tetap berusaha membatasi penggunaan data latar belakang dan latar depan. +
      +
      + +

      + Hal ini dianggap praktik terbaik untuk membatasi penggunaan data bila perangkat + terhubung ke jaringan berkuota, meskipun Data Saver telah dinonaktifkan atau aplikasi + telah dimasukkan dalam daftar putih. Kode contoh berikut menggunakan {@link + android.net.ConnectivityManager#isActiveNetworkMetered + ConnectivityManager.isActiveNetworkMetered()} dan {@code + ConnectivityManager.getRestrictBackgroundStatus()} untuk menentukan berapa banyak data + yang harus digunakan aplikasi: +

      + +
      +ConnectivityManager connMgr = (ConnectivityManager)
      +        getSystemService(Context.CONNECTIVITY_SERVICE);
      +// Checks if the device is on a metered network
      +if (connMgr.isActiveNetworkMetered()) {
      +  // Checks user’s Data Saver settings.
      +  switch (connMgr.getRestrictBackgroundStatus()) {
      +    case RESTRICT_BACKGROUND_STATUS_ENABLED:
      +    // Background data usage is blocked for this app. Wherever possible,
      +    // the app should also use less data in the foreground.
      +
      +    case RESTRICT_BACKGROUND_STATUS_WHITELISTED:
      +    // The app is whitelisted. Wherever possible,
      +    // the app should use less data in the foreground and background.
      +
      +    case RESTRICT_BACKGROUND_STATUS_DISABLED:
      +    // Data Saver is disabled. Since the device is connected to a
      +    // metered network, the app should use less data wherever possible.
      +  }
      +} else {
      +  // The device is not on a metered network.
      +  // Use data as required to perform syncs, downloads, and updates.
      +}
      +
      + +

      + Meminta izin daftar putih +

      + +

      + Jika aplikasi Anda perlu menggunakan data di latar belakang, aplikasi bisa meminta izin + daftar putih dengan mengirim + Settings.ACTION_IGNORE_BACKGROUND_DATA_RESTRICTIONS_SETTINGS + yang mengandung URI dari nama paket aplikasi Anda: misalnya, + package:MY_APP_ID. +

      + +

      + Mengirim intent dan URI akan membuka aplikasi Settings dan + menampilkan setelan penggunaan data untuk aplikasi Anda. Pengguna nanti bisa memutuskan apakah akan + mengaktifkan data latar belakang untuk aplikasi Anda. Sebelum Anda mengirim intent ini, sebaiknya + tanyakan kepada pengguna terlebih dahulu apakah mereka ingin membuka aplikasi + Settings untuk keperluan mengaktifkan penggunaan + data latar belakang. +

      + +

      + Memantau Perubahan pada Preferensi Data Saver +

      + +

      + Aplikasi bisa memantau perubahan pada preferensi Data Saver dengan membuat {@link + android.content.BroadcastReceiver} untuk memantau {@code + ConnectivityManager.ACTION_RESTRICT_BACKGROUND_CHANGED} dan secara dinamis + mendaftarkan penerima pada {@link android.content.Context#registerReceiver + Context.registerReceiver()}. Bila menerima siaran ini, aplikasi harus + memeriksa apakah preferensi Data Saver baru memengaruhi + izinnya dengan memanggil {@code + ConnectivityManager.getRestrictBackgroundStatus()}. +

      + +

      + Catatan: Sistem hanya mengirim siaran ini ke aplikasi yang + secara dinamis mendaftar padanya dengan {@link + android.content.Context#registerReceiver Context.registerReceiver()}. Aplikasi + yang mendaftar untuk menerima siaran ini dalam manifes mereka + tidak akan menerimanya. +

      + +

      + Menguji dengan Perintah Android Debug Bridge +

      + +Android Debug Bridge (ADB) +menyediakan beberapa perintah yang bisa Anda gunakan untuk memeriksa dan +mengonfigurasi izin jaringan: + +
      +
      + $ adb shell dumpsys netpolicy +
      + +
      + Menghasilkan laporan berisi setelan pembatasan jaringan latar belakang + global saat ini, UID paket saat ini di daftar putih, dan izin jaringan + untuk paket yang diketahui lainnya. +
      + +
      + $ adb shell cmd netpolicy +
      + +
      + Menampilkan daftar lengkap dari perintah Network Policy Manager (netpolicy). +
      + +
      + $ adb shell cmd netpolicy set restrict-background + <boolean> +
      + +
      + Mengaktifkan atau menonaktifkan mode Data Saver saat meneruskan true atau + false, masing-masing. +
      + +
      + $ adb shell cmd netpolicy add restrict-background-whitelist + <UID> +
      + +
      + Menambahkan UID paket tertentu ke daftar putih untuk mengizinkan penggunaan data berkuota + di latar belakang. +
      + +
      + $ adb shell cmd netpolicy remove restrict-background-whitelist + <UID> +
      + +
      + Membuang UID paket tertentu dari daftar putih untuk memblokir + penggunaan data berkuota di latar belakang saat Data Saver diaktifkan. +
      +
      diff --git a/docs/html-intl/intl/id/training/material/animations.jd b/docs/html-intl/intl/id/training/material/animations.jd new file mode 100644 index 000000000000..e57a03f166c8 --- /dev/null +++ b/docs/html-intl/intl/id/training/material/animations.jd @@ -0,0 +1,550 @@ +page.title=Mendefinisikan Animasi Custom + +@jd:body + + + + +

      Animasi dalam desain bahan memberi pengguna umpan balik tentang tindakannya dan menyediakan +kesinambungan visual saat pengguna berinteraksi dengan aplikasi Anda. Tema bahan menyediakan beberapa animasi default +untuk tombol dan transisi aktivitas, dan Android 5.0 (API level 21) ke atas memungkinkan Anda menyesuaikan +animasi ini dan membuat yang baru:

      + +
        +
      • Umpan balik sentuh
      • +
      • Singkap Melingkar
      • +
      • Transisi aktivitas
      • +
      • Gerakan melengkung
      • +
      • Perubahan status tampilan
      • +
      + + +

      Menyesuaikan Umpan Balik Sentuh

      + +

      Umpan balik sentuh dalam desain bahan menyediakan konfirmasi visual seketika pada +titik kontak bila pengguna berinteraksi dengan elemen UI. Animasi umpan balik sentuh default +untuk tombol menggunakan kelas {@link android.graphics.drawable.RippleDrawable} baru, yang bertransisi +di antara berbagai status dengan efek riak.

      + +

      Di sebagian besar kasus, Anda harus menerapkan fungsionalitas ini dalam XML tampilan dengan menetapkan +latar belakang tampilan sebagai:

      + +
        +
      • ?android:attr/selectableItemBackground untuk riak berbatas.
      • +
      • ?android:attr/selectableItemBackgroundBorderless untuk riak yang meluas ke luar +tampilan. Latar belakang ini akan digambar di atas, dan dibatasi oleh, induk tampilan terdekat dengan +latar belakang non-null.
      • +
      + +

      Catatan: selectableItemBackgroundBorderless adalah +atribut baru yang diperkenalkan di API level 21.

      + + +

      Atau, Anda bisa mendefinisikan {@link android.graphics.drawable.RippleDrawable} +sebagai sumber daya XML dengan menggunakan elemen ripple.

      + +

      Anda bisa menetapkan warna ke objek-objek {@link android.graphics.drawable.RippleDrawable}. Untuk mengubah +warna default umpan balik sentuh, gunakan atribut android:colorControlHighlight +tema.

      + +

      Untuk informasi selengkapnya, lihat referensi API bagi kelas {@link +android.graphics.drawable.RippleDrawable}.

      + + +

      Menggunakan Reveal Effect

      + +

      Animasi singkap memberi pengguna kesinambungan visual saat menampilkan atau menyembunyikan sekelompok +elemen UI. Metode {@link android.view.ViewAnimationUtils#createCircularReveal +ViewAnimationUtils.createCircularReveal()} memungkinkan Anda menganimasikan lingkaran terpangkas +untuk memperlihatkan atau menyembunyikan tampilan.

      + +

      Untuk memperlihatkan tampilan yang sebelumnya tidak terlihat dengan menggunakan efek ini:

      + +
      +// previously invisible view
      +View myView = findViewById(R.id.my_view);
      +
      +// get the center for the clipping circle
      +int cx = (myView.getLeft() + myView.getRight()) / 2;
      +int cy = (myView.getTop() + myView.getBottom()) / 2;
      +
      +// get the final radius for the clipping circle
      +int finalRadius = Math.max(myView.getWidth(), myView.getHeight());
      +
      +// create the animator for this view (the start radius is zero)
      +Animator anim =
      +    ViewAnimationUtils.createCircularReveal(myView, cx, cy, 0, finalRadius);
      +
      +// make the view visible and start the animation
      +myView.setVisibility(View.VISIBLE);
      +anim.start();
      +
      + +

      Untuk menyembunyikan sebuah tampilan yang sebelumnya terlihat dengan menggunakan efek ini:

      + +
      +// previously visible view
      +final View myView = findViewById(R.id.my_view);
      +
      +// get the center for the clipping circle
      +int cx = (myView.getLeft() + myView.getRight()) / 2;
      +int cy = (myView.getTop() + myView.getBottom()) / 2;
      +
      +// get the initial radius for the clipping circle
      +int initialRadius = myView.getWidth();
      +
      +// create the animation (the final radius is zero)
      +Animator anim =
      +    ViewAnimationUtils.createCircularReveal(myView, cx, cy, initialRadius, 0);
      +
      +// make the view invisible when the animation is done
      +anim.addListener(new AnimatorListenerAdapter() {
      +    @Override
      +    public void onAnimationEnd(Animator animation) {
      +        super.onAnimationEnd(animation);
      +        myView.setVisibility(View.INVISIBLE);
      +    }
      +});
      +
      +// start the animation
      +anim.start();
      +
      + + +

      Menyesuaikan Transisi Aktivitas

      + + +
      +
      + +
      +
      +

      Gambar 1 - Transisi + dengan elemen bersama.

      + Untuk memutar ulang film, klik layar perangkat +
      +
      + +

      Transisi aktivitas dalam aplikasi desain bahan memberikan koneksi visual antar berbagai status +melalui gerakan dan transformasi di antara elemen umum. Anda bisa menetapkan animasi custom untuk +masuk ke dan keluar dari transisi dan untuk transisi elemen bersama di antara aktivitas.

      + +
        +
      • Transisi masuk menentukan cara tampilan di aktivitas memasuki suatu babak. +misalnya, dalam transisi masuk explode, tampilan memasuki babak dari sisi luar +dan melayang masuk ke arah tengah layar.
      • + +
      • Transisi keluar menentukan cara tampilan di aktivitas keluar dari suatu babak. Misalnya +, dalam transisi keluar explode, tampilan akan keluar dari babak dari bagian +tengahnya.
      • + +
      • Transisi elemen bersama menentukan cara menggunakan bersama suatu tampilan +oleh dua transisi aktivitas di antara aktivitas-aktivitas ini. Misalnya, jika dua aktivitas memiliki +gambar yang sama dengan posisi dan ukuran berbeda, transisi elemen bersama changeImageTransform +mentransformasikan dan menskalakan gambar secara mulus di antara aktivitas-aktivitas ini.
      • +
      + +

      Android 5.0 (API level 21) mendukung transisi masuk dan transisi keluar ini:

      + +
        +
      • explode - Memindahkan tampilan masuk ke atau keluar dari tengah babak.
      • +
      • slide - Memindahkan tampilan masuk ke atau keluar dari salah satu tepi babak.
      • +
      • fade - Menambahkan atau menghapus tampilan dari babak dengan mengubah opasitasnya.
      • +
      + +

      Transisi apa pun yang memperluas kelas {@link android.transition.Visibility} didukung +sebagai transisi masuk atau transisi keluar. Untuk informasi selengkapnya, lihat referensi API untuk kelas +{@link android.transition.Transition}.

      + +

      Android 5.0 (API level 21) juga mendukung transisi elemen bersama ini:

      + +
        +
      • changeBounds - Menganimasikan perubahan pada batas-batas layout tampilan target.
      • +
      • changeClipBounds - Menganimasikan perubahan pada batas-batas pemangkasan tampilan target.
      • +
      • changeTransform - Menganimasikan perubahan pada skala dan rotasi tampilan target.
      • +
      • changeImageTransform - Menganimasikan perubahan pada ukuran dan skala gambar target.
      • +
      + +

      Bila Anda mengaktifkan transisi aktivitas dalam aplikasi, transisi memudar-silang default akan +diaktifkan di antara aktivitas masuk dan aktivitas keluar.

      + + +

      Gambar 2 - Transisi babak dengan satu elemen bersama. +

      + +

      Menetapkan transisi custom

      + +

      Pertama, aktifkan transisi konten jendela dengan atribut android:windowContentTransitions +bila Anda mendefinisikan gaya yang mewarisi tema bahan. Anda juga bisa menetapkan +transisi-transisi masuk, keluar, dan elemen bersama dalam definisi gaya:

      + +
      +<style name="BaseAppTheme" parent="android:Theme.Material">
      +  <!-- enable window content transitions -->
      +  <item name="android:windowContentTransitions">true</item>
      +
      +  <!-- specify enter and exit transitions -->
      +  <item name="android:windowEnterTransition">@transition/explode</item>
      +  <item name="android:windowExitTransition">@transition/explode</item>
      +
      +  <!-- specify shared element transitions -->
      +  <item name="android:windowSharedElementEnterTransition">
      +    @transition/change_image_transform</item>
      +  <item name="android:windowSharedElementExitTransition">
      +    @transition/change_image_transform</item>
      +</style>
      +
      + +

      Transisi change_image_transform dalam contoh ini didefinisikan sebagai berikut:

      + +
      +<!-- res/transition/change_image_transform.xml -->
      +<!-- (see also Shared Transitions below) -->
      +<transitionSet xmlns:android="http://schemas.android.com/apk/res/android">
      +  <changeImageTransform/>
      +</transitionSet>
      +
      + +

      Elemen changeImageTransform menunjukkan +kelas {@link android.transition.ChangeImageTransform}. Untuk informasi selengkapnya, lihat referensi +API untuk {@link android.transition.Transition}.

      + +

      Sebaliknya, untuk mengaktifkan transisi konten jendela dalam kode Anda, panggil +metode {@link android.view.Window#requestFeature Window.requestFeature()}:

      + +
      +// inside your activity (if you did not enable transitions in your theme)
      +getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
      +
      +// set an exit transition
      +getWindow().setExitTransition(new Explode());
      +
      + +

      Untuk menetapkan transisi dalam kode Anda, panggil metode-metode ini dengan objek {@link +android.transition.Transition}:

      + +
        +
      • {@link android.view.Window#setEnterTransition Window.setEnterTransition()}
      • +
      • {@link android.view.Window#setExitTransition Window.setExitTransition()}
      • +
      • {@link android.view.Window#setSharedElementEnterTransition + Window.setSharedElementEnterTransition()}
      • +
      • {@link android.view.Window#setSharedElementExitTransition + Window.setSharedElementExitTransition()}
      • +
      + +

      Metode {@link android.view.Window#setExitTransition setExitTransition()} dan {@link +android.view.Window#setSharedElementExitTransition setSharedElementExitTransition()} mendefinisikan +transisi keluar untuk aktivitas yang memanggil. Metode {@link android.view.Window#setEnterTransition +setEnterTransition()} dan {@link android.view.Window#setSharedElementEnterTransition +setSharedElementEnterTransition()} mendefinisikan transisi masuk untuk aktivitas yang dipanggil.

      + +

      Untuk mendapatkan efek penuh sebuah transisi, Anda harus mengaktifkan transisi konten jendela pada +aktivitas yang memanggil maupun aktivitas yang dipanggil. Jika tidak, aktivitas yang memanggil akan memulai transisi keluar, +namun kemudian Anda akan melihat transisi jendela (seperti mengelupas atau memudar).

      + +

      Untuk memulai transisi masuk sesegera mungkin, gunakan metode +{@link android.view.Window#setAllowEnterTransitionOverlap Window.setAllowEnterTransitionOverlap()} +pada aktivitas yang dipanggil. Ini memungkinkan Anda mendapatkan transisi masuk yang lebih dramatis.

      + +

      Memulai aktivitas dengan menggunakan transisi

      + +

      Jika Anda mengaktifkan transisi dan mengatur transisi keluar untuk aktivitas, transisi itu akan diaktifkan +bila Anda menjalankan aktivitas lain sebagai berikut:

      + +
      +startActivity(intent,
      +              ActivityOptions.makeSceneTransitionAnimation(this).toBundle());
      +
      + +

      Jika Anda telah mengatur transisi masuk untuk aktivitas kedua, transisi juga akan diaktifkan +bila aktivitas dimulai. Untuk menonaktifkan transisi bila Anda memulai aktivitas lain, sediakan +bundel opsi null.

      + +

      Memulai aktivitas dengan satu elemen bersama

      + +

      Untuk membuat animasi transisi layar di antara dua aktivitas yang memiliki satu elemen bersama:

      + +
        +
      1. Aktifkan transisi konten jendela dalam tema Anda.
      2. +
      3. Tetapkan transisi elemen bersama dalam gaya Anda.
      4. +
      5. Definisikan transisi Anda sebagai sumber daya XML.
      6. +
      7. Tetapkan nama umum pada elemen bersama dalam kedua layout dengan + atribut android:transitionName.
      8. +
      9. Gunakan metode {@link android.app.ActivityOptions#makeSceneTransitionAnimation +ActivityOptions.makeSceneTransitionAnimation()}.
      10. +
      + +
      +// get the element that receives the click event
      +final View imgContainerView = findViewById(R.id.img_container);
      +
      +// get the common element for the transition in this activity
      +final View androidRobotView = findViewById(R.id.image_small);
      +
      +// define a click listener
      +imgContainerView.setOnClickListener(new View.OnClickListener() {
      +    @Override
      +    public void onClick(View view) {
      +        Intent intent = new Intent(this, Activity2.class);
      +        // create the transition animation - the images in the layouts
      +        // of both activities are defined with android:transitionName="robot"
      +        ActivityOptions options = ActivityOptions
      +            .makeSceneTransitionAnimation(this, androidRobotView, "robot");
      +        // start the new activity
      +        startActivity(intent, options.toBundle());
      +    }
      +});
      +
      + +

      Untuk tampilan dinamis bersama yang Anda hasilkan dalam kode, gunakan +metode {@link android.view.View#setTransitionName View.setTransitionName()} untuk menetapkan +nama elemen umum di kedua aktivitas.

      + +

      Untuk membalik animasi transisi babak bila Anda menyelesaikan aktivitas kedua, panggil metode +{@link android.app.Activity#finishAfterTransition Activity.finishAfterTransition()} +sebagai ganti {@link android.app.Activity#finish Activity.finish()}.

      + +

      Memulai aktivitas dengan beberapa elemen bersama

      + +

      Untuk membuat animasi transisi babak antara dua aktivitas yang memiliki lebih dari satu +elemen bersama, definisikan elemen bersama di kedua layout dengan atribut android:transitionName + (atau gunakan metode {@link android.view.View#setTransitionName View.setTransitionName()} +di kedua aktivitas), dan buat sebuah objek {@link android.app.ActivityOptions} sebagai berikut:

      + +
      +ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(this,
      +        Pair.create(view1, "agreedName1"),
      +        Pair.create(view2, "agreedName2"));
      +
      + + +

      Menggunakan Gerakan Melengkung

      + +

      Animasi dalam desain bahan mengandalkan kurva untuk pola interpolasi waktu dan +gerakan spasial. Dengan Android 5.0 (API level 21) ke atas, Anda bisa mendefinisikan kurva pewaktuan custom dan +pola gerakan melengkung untuk animasi.

      + +

      Kelas {@link android.view.animation.PathInterpolator} adalah interpolator baru berdasarkan sebuah +kurva Bézier atau objek {@link android.graphics.Path}. Interpolator ini menetapkan kurva gerakan +dalam bujur sangkar 1x1, dengan titik-titik jangkar di (0,0) dan (1,1) dan titik-titik kontrol sebagaimana ditetapkan menggunakan +argumen konstruktor. Anda juga bisa mendefinisikan interpolator path sebagai sumber daya XML:

      + +
      +<pathInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
      +    android:controlX1="0.4"
      +    android:controlY1="0"
      +    android:controlX2="1"
      +    android:controlY2="1"/>
      +
      + +

      Sistem menyediakan sumber daya XML untuk tiga kurva dasar dalam +spesifikasi desain bahan:

      + +
        +
      • @interpolator/fast_out_linear_in.xml
      • +
      • @interpolator/fast_out_slow_in.xml
      • +
      • @interpolator/linear_out_slow_in.xml
      • +
      + +

      Anda bisa meneruskan objek {@link android.view.animation.PathInterpolator} ke metode {@link +android.animation.Animator#setInterpolator Animator.setInterpolator()}.

      + +

      Kelas {@link android.animation.ObjectAnimator} memiliki konstruktor-konstruktor baru yang memungkinkan Anda menganimasikan +koordinat bersama sebuah path dengan menggunakan dua atau beberapa properti sekaligus. Misalnya, animator berikut +menggunakan objek {@link android.graphics.Path} untuk menganimasikan properti X dan Y sebuah tampilan:

      + +
      +ObjectAnimator mAnimator;
      +mAnimator = ObjectAnimator.ofFloat(view, View.X, View.Y, path);
      +...
      +mAnimator.start();
      +
      + + +

      Menganimasikan Perubahan Status Tampilan

      + +

      Kelas {@link android.animation.StateListAnimator} memungkinkan Anda mendefinisikan animator yang berjalan bila +status tampilan berubah. Contoh berikut menampilkan cara mendefinisikan {@link +android.animation.StateListAnimator} sebagai sumber daya XML:

      + +
      +<!-- animate the translationZ property of a view when pressed -->
      +<selector xmlns:android="http://schemas.android.com/apk/res/android">
      +  <item android:state_pressed="true">
      +    <set>
      +      <objectAnimator android:propertyName="translationZ"
      +        android:duration="@android:integer/config_shortAnimTime"
      +        android:valueTo="2dp"
      +        android:valueType="floatType"/>
      +        <!-- you could have other objectAnimator elements
      +             here for "x" and "y", or other properties -->
      +    </set>
      +  </item>
      +  <item android:state_enabled="true"
      +    android:state_pressed="false"
      +    android:state_focused="true">
      +    <set>
      +      <objectAnimator android:propertyName="translationZ"
      +        android:duration="100"
      +        android:valueTo="0"
      +        android:valueType="floatType"/>
      +    </set>
      +  </item>
      +</selector>
      +
      + +

      Untuk menyertakan animasi status tampilan custom ke tampilan, definisikan animator menggunakan +elemen selector dalam sumber daya file XML sebagaimana dalam contoh ini, dan tetapkan ke +tampilan Anda dengan atribut android:stateListAnimator. Untuk menetapkan animator daftar status +ke sebuah tampilan dalam kode Anda, gunakan metode {@link android.animation.AnimatorInflater#loadStateListAnimator +AnimationInflater.loadStateListAnimator()}, dan tetapkan animator ke tampilan dengan +metode {@link android.view.View#setStateListAnimator View.setStateListAnimator()}.

      + +

      Bila tema Anda memperluas tema bahan, tombol-tombol akan memiliki animasi Z secara default. Untuk menghindari +perilaku ini di tombol Anda, aturlah atribut android:stateListAnimator ke +@null.

      + +

      Kelas {@link android.graphics.drawable.AnimatedStateListDrawable} memungkinkan Anda membuat drawable +yang menampilkan animasi di antara perubahan status tampilan terkait. Sebagian widget sistem di +Android 5.0 menggunakan animasi ini secara default. Contoh berikut menampilkan cara +mendefinisikan {@link android.graphics.drawable.AnimatedStateListDrawable} sebagai sumber daya XML:

      + +
      +<!-- res/drawable/myanimstatedrawable.xml -->
      +<animated-selector
      +    xmlns:android="http://schemas.android.com/apk/res/android">
      +
      +    <!-- provide a different drawable for each state-->
      +    <item android:id="@+id/pressed" android:drawable="@drawable/drawableP"
      +        android:state_pressed="true"/>
      +    <item android:id="@+id/focused" android:drawable="@drawable/drawableF"
      +        android:state_focused="true"/>
      +    <item android:id="@id/default"
      +        android:drawable="@drawable/drawableD"/>
      +
      +    <!-- specify a transition -->
      +    <transition android:fromId="@+id/default" android:toId="@+id/pressed">
      +        <animation-list>
      +            <item android:duration="15" android:drawable="@drawable/dt1"/>
      +            <item android:duration="15" android:drawable="@drawable/dt2"/>
      +            ...
      +        </animation-list>
      +    </transition>
      +    ...
      +</animated-selector>
      +
      + + +

      Menganimasikan Drawable Vektor

      + +

      Drawable Vektor +bisa diubah skalanya tanpa kehilangan definisi. Kelas {@link android.graphics.drawable.AnimatedVectorDrawable} +memungkinkan Anda menganimasikan properti drawable vektor.

      + +

      Anda biasanya mendefinisikan drawable vektor yang dianimasikan dalam tiga file XML:

      + +
        +
      • Drawable vektor dengan elemen <vector> dalam +res/drawable/
      • +
      • Drawable vektor animasi dengan elemen <animated-vector> dalam +res/drawable/
      • +
      • Satu atau beberapa animator objek dengan elemen <objectAnimator> dalam +res/anim/
      • +
      + +

      Drawable vektor yang dianimasikan bisa menganimasikan atribut elemen <group> dan +<path>. Elemen <group> mendefinisikan satu set +path atau subgrup, dan elemen <path> mendefinisikan path yang harus digambar.

      + +

      Bila Anda mendefinisikan drawable vektor yang ingin dianimasikan, gunakan atribut android:name +untuk menetapkan nama unik ke grup dan path, sehingga Anda bisa merujuknya dari +definisi animator Anda. Misalnya:

      + +
      +<!-- res/drawable/vectordrawable.xml -->
      +<vector xmlns:android="http://schemas.android.com/apk/res/android"
      +    android:height="64dp"
      +    android:width="64dp"
      +    android:viewportHeight="600"
      +    android:viewportWidth="600">
      +    <group
      +        android:name="rotationGroup"
      +        android:pivotX="300.0"
      +        android:pivotY="300.0"
      +        android:rotation="45.0" >
      +        <path
      +            android:name="v"
      +            android:fillColor="#000000"
      +            android:pathData="M300,70 l 0,-70 70,70 0,0 -70,70z" />
      +    </group>
      +</vector>
      +
      + +

      Definisi drawable vektor yang dianimasikan merujuk pada grup dan path dalam drawable vektor +berdasarkan namanya:

      + +
      +<!-- res/drawable/animvectordrawable.xml -->
      +<animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
      +  android:drawable="@drawable/vectordrawable" >
      +    <target
      +        android:name="rotationGroup"
      +        android:animation="@anim/rotation" />
      +    <target
      +        android:name="v"
      +        android:animation="@anim/path_morph" />
      +</animated-vector>
      +
      + +

      Definisi animasi menyatakan objek {@link android.animation.ObjectAnimator} atau {@link +android.animation.AnimatorSet}. Animator pertama dalam contoh ini memutar +grup target sebanyak 360 derajat:

      + +
      +<!-- res/anim/rotation.xml -->
      +<objectAnimator
      +    android:duration="6000"
      +    android:propertyName="rotation"
      +    android:valueFrom="0"
      +    android:valueTo="360" />
      +
      + +

      Animator kedua dalam contoh ini perlahan-lahan mengubah bentuk path drawable vektor dari satu bentuk ke +bentuk yang lain. Kedua path harus kompatibel untuk morphing: keduanya harus memiliki jumlah perintah yang sama +dan jumlah parameter yang sama untuk setiap perintah.

      + +
      +<!-- res/anim/path_morph.xml -->
      +<set xmlns:android="http://schemas.android.com/apk/res/android">
      +    <objectAnimator
      +        android:duration="3000"
      +        android:propertyName="pathData"
      +        android:valueFrom="M300,70 l 0,-70 70,70 0,0   -70,70z"
      +        android:valueTo="M300,70 l 0,-70 70,0  0,140 -70,0 z"
      +        android:valueType="pathType" />
      +</set>
      +
      + +

      Untuk informasi selengkapnya, lihat referensi API bagi {@link +android.graphics.drawable.AnimatedVectorDrawable}.

      diff --git a/docs/html-intl/intl/id/training/material/compatibility.jd b/docs/html-intl/intl/id/training/material/compatibility.jd new file mode 100644 index 000000000000..ef444c359b57 --- /dev/null +++ b/docs/html-intl/intl/id/training/material/compatibility.jd @@ -0,0 +1,168 @@ +page.title=Mempertahankan Kompatibilitas + +@jd:body + + + + +

      Sebagian fitur desain bahan seperti tema bahan dan transisi aktivitas custom +hanya tersedia pada Android 5.0 (API level 21) ke atas. Akan tetapi, Anda bisa mendesain aplikasi untuk menggunakan +fitur-fitur ini saat dijalankan pada perangkat yang mendukung desain bahan dan tetap kompatibel +dengan perangkat yang menjalankan rilis Android sebelumnya.

      + + +

      Mendefinisikan Gaya Alternatif

      + +

      Anda bisa mengonfigurasi aplikasi untuk menggunakan tema bahan pada perangkat yang mendukungnya dan mengembalikan +ke tema lama pada perangkat yang menjalankan versi Android terdahulu:

      + +
        +
      1. Definisikan tema yang mewarisi tema lama (seperti Holo) di + res/values/styles.xml.
      2. +
      3. Definisikan tema bernama sama yang mewarisi tema bahan di + res/values-v21/styles.xml.
      4. +
      5. Atur tema ini sebagai tema aplikasi Anda dalam file manifes.
      6. +
      + +

      Catatan: +Jika aplikasi Anda menggunakan tema bahan namun tidak menyediakan tema alternatif dengan cara ini, +aplikasi itu tidak akan berjalan pada versi Android sebelum 5.0. +

      + + +

      Menyediakan Layout Alternatif

      + +

      Jika layout yang Anda desain sesuai dengan panduan desain bahan tidak menggunakan salah satu +atribut XML baru yang diperkenalkan di Android 5.0 (API level 21), layout itu akan berfungsi pada +versi Android sebelumnya. Jika tidak, Anda bisa menyediakan layout alternatif. Anda juga bisa menyediakan +layout alternatif untuk menyesuaikan cara aplikasi ditampilkan pada versi Android terdahulu.

      + +

      Buatlah file layout untuk Android 5.0 (API level 21) dalam res/layout-v21/ dan +file layout alternatif untuk versi Android terdahulu dalam res/layout/. +Misalnya, res/layout/my_activity.xml adalah layout alternatif untuk +res/layout-v21/my_activity.xml.

      + +

      Untuk menghindari duplikasi kode, definisikan gaya dalam res/values/, modifikasi +gaya di res/values-v21/ untuk API baru, dan gunakan pewarisan gaya, dengan mendefinisikan +gaya dasar di res/values/ dan mewarisi gaya di res/values-v21/.

      + + +

      Menggunakan Support Library

      + +

      v7 Support Library +r21 ke atas menyertakan fitur desain bahan berikut:

      + + + +

      Widget sistem

      + +

      Tema-tema Theme.AppCompat menyediakan gaya desain bahan untuk widget ini:

      + +
        +
      • {@link android.widget.EditText}
      • +
      • {@link android.widget.Spinner}
      • +
      • {@link android.widget.CheckBox}
      • +
      • {@link android.widget.RadioButton}
      • +
      • {@link android.support.v7.widget.SwitchCompat}
      • +
      • {@link android.widget.CheckedTextView}
      • +
      + +

      Palet Warna

      + +

      Untuk memperoleh gaya desain bahan dan menyesuaikan palet warna dengan Android v7 Support +Library, terapkan salah satu tema Theme.AppCompat:

      + +
      +<!-- extend one of the Theme.AppCompat themes -->
      +<style name="Theme.MyTheme" parent="Theme.AppCompat.Light">
      +    <!-- customize the color palette -->
      +    <item name="colorPrimary">@color/material_blue_500</item>
      +    <item name="colorPrimaryDark">@color/material_blue_700</item>
      +    <item name="colorAccent">@color/material_green_A200</item>
      +</style>
      +
      + +

      Daftar dan Kartu

      + +

      Widget {@link android.support.v7.widget.RecyclerView} dan {@link +android.support.v7.widget.CardView} tersedia di versi Android terdahulu melalui +Android v7 Support Library dengan pembatasan ini:

      +
        +
      • {@link android.support.v7.widget.CardView} memundurkan ke implementasi bayangan terprogram + dengan menggunakan pengisi tambahan.
      • +
      • {@link android.support.v7.widget.CardView} tidak memangkas tampilan anaknya yang berpotongan + dengan sudut melengkung.
      • +
      + + +

      Dependensi

      + +

      Untuk menggunakan fitur-fitur ini di versi Android sebelum 5.0 (API level 21), sertakan +Android v7 Support Library dalam proyek Anda sebagai dependensi Gradle:

      + +
      +dependencies {
      +    compile 'com.android.support:appcompat-v7:21.0.+'
      +    compile 'com.android.support:cardview-v7:21.0.+'
      +    compile 'com.android.support:recyclerview-v7:21.0.+'
      +}
      +
      + + +

      Memeriksa Versi Sistem

      + +

      Fitur berikut hanya tersedia di Android 5.0 (API level 21) ke atas:

      + +
        +
      • Transisi aktivitas
      • +
      • Umpan balik sentuh
      • +
      • Animasi membuka
      • +
      • Animasi berbasis path
      • +
      • Drawable vektor
      • +
      • Pewarnaan drawable
      • +
      + +

      Untuk menjaga kompatibilitas dengan versi Android terdahulu, periksa {@link +android.os.Build.VERSION#SDK_INT version} sistem saat runtime sebelum Anda memanggil API untuk salah satu +fitur ini:

      + +
      +// Check if we're running on Android 5.0 or higher
      +if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
      +    // Call some material design APIs here
      +} else {
      +    // Implement this feature without material design
      +}
      +
      + +

      Catatan: Untuk menetapkan versi Android yang didukung aplikasi Anda, +gunakan atribut android:minSdkVersion dan android:targetSdkVersion +dalam file manifes. Untuk menggunakan fitur desain bahan di Android 5.0, atur +atribut android:targetSdkVersion ke 21. Untuk informasi selengkapnya, lihat +panduan API +<uses-sdk>.

      diff --git a/docs/html-intl/intl/id/training/material/drawables.jd b/docs/html-intl/intl/id/training/material/drawables.jd new file mode 100644 index 000000000000..493abd46bebd --- /dev/null +++ b/docs/html-intl/intl/id/training/material/drawables.jd @@ -0,0 +1,126 @@ +page.title=Bekerja dengan Drawable + +@jd:body + + + +

      Kemampuan berikut untuk drawable membantu Anda mengimplementasikan desain bahan dalam aplikasi Anda:

      + +
        +
      • Pewarnaan drawable
      • +
      • Ekstraksi warna mencolok
      • +
      • Drawable vektor
      • +
      + +

      Pelajaran ini menampilkan cara menggunakan fitur-fitur ini dalam aplikasi Anda.

      + + +

      Mewarnai Sumber Daya Drawable

      + +

      Dengan Android 5.0 (API level 21) ke atas, Anda bisa mewarnai bitmap dan sembilan-tambalan yang didefinisikan sebagai +alpha-mask. Anda bisa mewarnainya dengan sumber daya warna atau atribut tema yang mencocokkan ke +sumber daya warna (misalnya, ?android:attr/colorPrimary). Biasanya, Anda membuat aset ini +hanya sekali dan mewarnainya secara otomatis agar cocok dengan tema Anda.

      + +

      Anda bisa menerapkan warna ke objek {@link android.graphics.drawable.BitmapDrawable} atau {@link +android.graphics.drawable.NinePatchDrawable} dengan metode {@code setTint()}. Anda juga bisa +mengatur warna dan mode dalam layout dengan atribut android:tint dan +android:tintMode.

      + + +

      Mengekstrak Warna Mencolok dari Gambar

      + +

      Android Support Library r21 ke atas menyertakan kelas {@link +android.support.v7.graphics.Palette}, yang memungkinkan Anda mengekstrak warna mencolok dari gambar. +Kelas ini mengekstrak warna mencolok berikut:

      + +
        +
      • Menyala
      • +
      • Menyala pekat
      • +
      • Menyala pucat
      • +
      • Pudar
      • +
      • Pudar pekat
      • +
      • Pudar pucat
      • +
      + +

      Untuk mengekstrak warna-warna ini, teruskan objek {@link android.graphics.Bitmap} ke +metode statis {@link android.support.v7.graphics.Palette#generate Palette.generate()} dalam +thread latar belakang tempat Anda memuat gambar. Jika Anda tidak bisa menggunakan thread itu, panggil metode +{@link android.support.v7.graphics.Palette#generateAsync Palette.generateAsync()} dan +sediakan listener sebagai gantinya.

      + +

      Anda bisa mengambil warna mencolok dari gambar dengan metode getter di kelas +Palette, misalnya Palette.getVibrantColor.

      + +

      Untuk menggunakan kelas {@link android.support.v7.graphics.Palette} dalam proyek Anda, tambahkan +dependensi Gradle berikut ke +modul aplikasi Anda:

      + +
      +dependencies {
      +    ...
      +    compile 'com.android.support:palette-v7:21.0.0'
      +}
      +
      + +

      Untuk informasi selengkapnya, lihat referensi API untuk kelas {@link android.support.v7.graphics.Palette}. +

      + + +

      Membuat Drawable Vektor

      + + + +
      +

      Video

      +

      Grafis Vektor Android

      +
      +
      + +

      Di Android 5.0 (API Level 21) ke atas, Anda bisa mendefinisikan drawable vektor, yang berubah skala tanpa +kehilangan definisi. Anda hanya memerlukan satu file aset per gambar vektor, bukan file aset untuk +setiap densitas layar seperti pada gambar bitmap. Untuk membuat gambar vektor, Anda mendefinisikan detail +bentuknya dalam sebuah elemen XML <vector>.

      + +

      Contoh berikut mendefinisikan gambar vektor berbentuk hati:

      + +
      +<!-- res/drawable/heart.xml -->
      +<vector xmlns:android="http://schemas.android.com/apk/res/android"
      +    <!-- intrinsic size of the drawable -->
      +    android:height="256dp"
      +    android:width="256dp"
      +    <!-- size of the virtual canvas -->
      +    android:viewportWidth="32"
      +    android:viewportHeight="32">
      +
      +  <!-- draw a path -->
      +  <path android:fillColor="#8fff"
      +      android:pathData="M20.5,9.5
      +                        c-1.955,0,-3.83,1.268,-4.5,3
      +                        c-0.67,-1.732,-2.547,-3,-4.5,-3
      +                        C8.957,9.5,7,11.432,7,14
      +                        c0,3.53,3.793,6.257,9,11.5
      +                        c5.207,-5.242,9,-7.97,9,-11.5
      +                        C25,11.432,23.043,9.5,20.5,9.5z" />
      +</vector>
      +
      + +

      Gambar vektor direpresentasikan di Android sebagai objek {@link android.graphics.drawable.VectorDrawable}. + Untuk informasi selengkapnya tentang sintaks pathData, lihat Referensi Path SVG. Untuk informasi selengkapnya +tentang menganimasikan properti drawable vektor, lihat +Menganimasikan Drawable Vektor.

      diff --git a/docs/html-intl/intl/id/training/material/get-started.jd b/docs/html-intl/intl/id/training/material/get-started.jd new file mode 100644 index 000000000000..1a551a9e36a9 --- /dev/null +++ b/docs/html-intl/intl/id/training/material/get-started.jd @@ -0,0 +1,171 @@ +page.title=Memulai + +@jd:body + + + + +

      Untuk membuat aplikasi dengan desain bahan:

      + +
        +
      1. + Tinjaulah spesifikasi desain bahan.
      2. +
      3. + Terapkan tema bahan ke aplikasi Anda.
      4. +
      5. + Buat layout agar mengikuti panduan desain bahan.
      6. +
      7. + Tetapkan ketinggian tampilan Anda untuk menghasilkan bayangan.
      8. +
      9. + Gunakan widget sistem untuk daftar dan kartu.
      10. +
      11. + Sesuaikan animasi di aplikasi Anda.
      12. +
      + +

      Mempertahankan kompatibilitas mundur

      + +

      Anda bisa menambahkan banyak fitur desain bahan ke aplikasi sekaligus mempertahankan kompatibilitas dengan +versi Android sebelum 5.0. Untuk informasi selengkapnya, lihat +Mempertahankan Kompatibilitas.

      + +

      Memperbarui aplikasi dengan desain bahan

      + +

      Untuk memperbarui aplikasi yang ada guna memasukkan desain bahan, perbarui layout Anda dengan mengikuti +panduan desain bahan. Juga pastikan memasukkan kedalaman, umpan balik sentuh, dan +animasi.

      + +

      Membuat aplikasi baru dengan desain bahan

      + +

      Jika Anda sedang membuat aplikasi baru dengan fitur desain bahan, panduan desain bahan akan memberi Anda +kerangka kerja desain yang kohesif. Ikuti panduan itu dan gunakan fungsionalitas baru di +kerangka kerja Android untuk mendesain dan mengembangkan aplikasi Anda.

      + + +

      Menerapkan Tema Bahan

      + +

      Untuk menerapkan tema bahan dalam aplikasi Anda, tetapkan gaya yang mewarisi +android:Theme.Material:

      + +
      +<!-- res/values/styles.xml -->
      +<resources>
      +  <!-- your theme inherits from the material theme -->
      +  <style name="AppTheme" parent="android:Theme.Material">
      +    <!-- theme customizations -->
      +  </style>
      +</resources>
      +
      + +

      Tema bahan menyediakan widget sistem terbaru yang memungkinkan Anda mengatur palet warnanya dan +animasi default untuk umpan balik sentuh dan transisi aktivitas. Untuk detail selengkapnya, lihat +Menggunakan Tema Bahan.

      + + +

      Mendesain Layout Anda

      + +

      Selain menerapkan dan menyesuaikan tema bahan, layout Anda harus mematuhi +panduan desain bahan. Bila Anda mendesain +layout, berikan perhatian khusus pada hal-hal berikut:

      + +
        +
      • Petak patokan
      • +
      • Garis utama
      • +
      • Pengaturan Jarak
      • +
      • Ukuran target sentuh
      • +
      • Struktur layout
      • +
      + + +

      Menetapkan Ketinggian di Tampilan Anda

      + +

      Tampilan bisa menghasilkan bayangan, dan nilai ketinggian tampilan +menentukan ukuran bayangan dan urutan penggambarannya. Untuk mengatur ketinggian tampilan, gunakan +atribut android:elevation dalam layout:

      + +
      +<TextView
      +    android:id="@+id/my_textview"
      +    android:layout_width="wrap_content"
      +    android:layout_height="wrap_content"
      +    android:text="@string/next"
      +    android:background="@color/white"
      +    android:elevation="5dp" />
      +
      + +

      Properti translationZ baru memungkinkan Anda membuat animasi yang mencerminkan +perubahan sementara pada ketinggian tampilan. Perubahan ketinggian bisa berguna saat +merespons +gerakan sentuh.

      + +

      Untuk detail selengkapnya, lihat Mendefinisikan +Bayangan dan Memangkas Tampilan.

      + + +

      Membuat Daftar dan Kartu

      + +

      {@link android.support.v7.widget.RecyclerView} adalah versi {@link +android.widget.ListView} yang lebih mudah dimasukkan dan mendukung beragam tipe layout serta memberikan peningkatan kinerja. +{@link android.support.v7.widget.CardView} memungkinkan Anda menampilkan potongan informasi dalam kartu dengan +tampilan konsisten di seluruh aplikasi. Contoh kode berikut memperagakan cara menyertakan +{@link android.support.v7.widget.CardView} dalam layout Anda:

      + +
      +<android.support.v7.widget.CardView
      +    android:id="@+id/card_view"
      +    android:layout_width="200dp"
      +    android:layout_height="200dp"
      +    card_view:cardCornerRadius="3dp">
      +    ...
      +</android.support.v7.widget.CardView>
      +
      + +

      Untuk informasi selengkapnya, lihat Membuat Daftar +dan Kartu.

      + + +

      Menyesuaikan Animasi Anda

      + +

      Android 5.0 (API level 21) menyertakan API baru untuk membuat animasi custom di aplikasi Anda. +Misalnya, Anda bisa mengaktifkan transisi aktivitas dan mendefinisikan transisi keluar di +aktivitas:

      + +
      +public class MyActivity extends Activity {
      +
      +    @Override
      +    protected void onCreate(Bundle savedInstanceState) {
      +        super.onCreate(savedInstanceState);
      +        // enable transitions
      +        getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
      +        setContentView(R.layout.activity_my);
      +    }
      +
      +    public void onSomeButtonClicked(View view) {
      +        getWindow().setExitTransition(new Explode());
      +        Intent intent = new Intent(this, MyOtherActivity.class);
      +        startActivity(intent,
      +                      ActivityOptions
      +                          .makeSceneTransitionAnimation(this).toBundle());
      +    }
      +}
      +
      + +

      Bila Anda memulai aktivitas lain dari aktivitas ini, transisi keluar akan diaktifkan.

      + +

      Untuk mengetahui selengkapnya tentang API animasi yang baru, lihat Mendefinisikan Animasi Custom.

      diff --git a/docs/html-intl/intl/id/training/material/index.jd b/docs/html-intl/intl/id/training/material/index.jd new file mode 100644 index 000000000000..53697d2ea666 --- /dev/null +++ b/docs/html-intl/intl/id/training/material/index.jd @@ -0,0 +1,60 @@ +page.title=Desain Bahan untuk Pengembang +page.image=images/cards/material_2x.png +page.metaDescription=Pelajari cara menerapkan desain bahan pada aplikasi Anda. + + +@jd:body + +
      +
      +

      Dependensi dan Prasyarat

      +
        +
      • Android 5.0 (API Level 21)
      • +
      +
      +
      + +

      Desain bahan adalah panduan komprehensif untuk desain visual, gerak, dan interaksi di +berbagai platform dan perangkat. Untuk menggunakan desain bahan di aplikasi Android, ikuti panduan +yang dijelaskan dalam +spesifikasi desain bahan + dan gunakan komponen serta fungsionalitas baru yang tersedia di Android 5.0 +(API level 21).

      + +

      Kelas ini menampilkan kepada Anda cara membuat aplikasi desain bahan dengan elemen-elemen berikut:

      + +
        +
      • Tema bahan
      • +
      • Widget untuk kartu dan daftar
      • +
      • Bayangan custom dan pemangkasan tampilan
      • +
      • Drawable vektor
      • +
      • Animasi custom
      • +
      + +

      Kelas ini juga mengajarkan cara mempertahankan kompatibilitas dengan versi Android sebelum +5.0 (API level 21) bila Anda menggunakan fitur desain bahan dalam aplikasi.

      + +

      Pelajaran

      + +
      +
      Memulai
      +
      Pelajari cara memperbarui aplikasi Anda dengan fitur desain bahan.
      + +
      Menggunakan Tema Bahan
      +
      Pelajari cara menerapkan gaya desain bahan pada aplikasi Anda.
      + +
      Membuat Daftar dan Kartu
      +
      Pelajari cara membuat daftar dan kartu dengan tampilan dan cara kerja yang konsisten menggunakan widget sistem.
      + +
      Mendefinisikan Bayangan dan Memangkas Tampilan
      +
      Pelajari cara mengatur elevasi tampilan Anda untuk membuat bayangan custom dan cara memangkas tampilan.
      + +
      Bekerja dengan Drawable
      +
      Pelajari cara membuat drawable vektor dan cara mewarnai sumber daya drawable.
      + +
      Mendefinisikan Animasi Custom
      +
      Pelajari cara membuat animasi custom untuk tampilan dan transisi aktivitas dengan elemen bersama.
      + +
      Mempertahankan Kompatibilitas
      +
      Pelajari cara mempertahankan kompatibilitas dengan versi platform sebelum Android 5.0.
      +
      diff --git a/docs/html-intl/intl/id/training/material/lists-cards.jd b/docs/html-intl/intl/id/training/material/lists-cards.jd new file mode 100644 index 000000000000..46dd19afc4e1 --- /dev/null +++ b/docs/html-intl/intl/id/training/material/lists-cards.jd @@ -0,0 +1,266 @@ +page.title=Membuat Daftar dan Kartu + +@jd:body + +
      +
      +

      Pelajaran ini mengajarkan Anda cara

      +
        +
      1. Membuat Daftar
      2. +
      3. Membuat Kartu
      4. +
      5. Menambahkan Dependensi
      6. +
      +

      Anda juga harus membaca

      + +
      +
      + + +

      Untuk membuat daftar dan kartu yang kompleks dengan gaya desain bahan di aplikasi, Anda bisa menggunakan widget +{@link android.support.v7.widget.RecyclerView} dan {@link android.support.v7.widget.CardView}. +

      + + +

      Membuat Daftar

      + +

      Widget {@link android.support.v7.widget.RecyclerView} adalah +versi {@link android.widget.ListView} yang lebih maju dan fleksibel. Widget ini adalah kontainer untuk menampilkan set data +besar yang bisa digulir secara sangat efisien dengan mempertahankan tampilan dalam jumlah terbatas. Gunakan +widget {@link android.support.v7.widget.RecyclerView} bila Anda memiliki kumpulan data dengan elemen +yang berubah saat runtime berdasarkan tindakan pengguna atau kejadian jaringan.

      + +

      Kelas {@link android.support.v7.widget.RecyclerView} menyederhanakan penampilan dan penanganan +set data yang besar dengan menyediakan:

      + +
        +
      • Pengelola layout untuk memosisikan item
      • +
      • Animasi default untuk operasi item umum, misalnya penghapusan atau penambahan item
      • +
      + +

      Anda juga memiliki keluwesan untuk mendefinisikan pengelola layout custom dan animasi untuk widget {@link +android.support.v7.widget.RecyclerView}.

      + + +

      +Gambar 1. Widget RecyclerView. +

      + +

      Untuk menggunakan widget {@link android.support.v7.widget.RecyclerView}, Anda harus menetapkan +adaptor dan pengelola layout. Untuk membuat adaptor, perluas kelas {@link +android.support.v7.widget.RecyclerView.Adapter RecyclerView.Adapter}. Detail +implementasi bergantung pada detail set data Anda dan tipe tampilan. Untuk informasi selengkapnya, + lihat contoh-contoh di bawah.

      + +
      + +

      +Gambar 2 - Daftar berisi RecyclerView. +

      +
      + +

      Pengelola layout memosisikan tampilan item dalam {@link +android.support.v7.widget.RecyclerView} dan menentukan waktu untuk menggunakan ulang tampilan item yang tidak +lagi terlihat oleh pengguna. Untuk menggunakan ulang (atau mendaur ulang) tampilan, pengelola layout bisa meminta +adaptor untuk mengganti konten tampilan dengan elemen lain dalam dataset. Mendaur ulang +tampilan dengan cara ini akan meningkatkan kinerja karena menghindari pembuatan tampilan yang tidak diperlukan atau +melakukan pencarian {@link android.app.Activity#findViewById findViewById()} yang mahal.

      + +

      {@link android.support.v7.widget.RecyclerView} menyediakan semua pengelola layout bawaan ini:

      + +
        +
      • {@link android.support.v7.widget.LinearLayoutManager} menampilkan item dalam +daftar gulir vertikal atau horizontal.
      • +
      • {@link android.support.v7.widget.GridLayoutManager} menampilkan item dalam petak.
      • +
      • {@link android.support.v7.widget.StaggeredGridLayoutManager} menampilkan item dalam petak zigzag.
      • +
      + +

      Untuk membuat pengelola layout custom, perluas kelas {@link +android.support.v7.widget.RecyclerView.LayoutManager RecyclerView.LayoutManager}.

      + +

      Animasi

      + +

      Animasi untuk menambahkan dan menghapus item diaktifkan secara default di {@link +android.support.v7.widget.RecyclerView}. Untuk menyesuaikan animasi ini, perluas kelas +{@link android.support.v7.widget.RecyclerView.ItemAnimator RecyclerView.ItemAnimator}dan gunakan +metode {@link android.support.v7.widget.RecyclerView#setItemAnimator RecyclerView.setItemAnimator()}. +

      + +

      Contoh

      + +

      Contoh kode berikut memperagakan cara menambahkan +{@link android.support.v7.widget.RecyclerView} ke layout:

      + +
      +<!-- A RecyclerView with some commonly used attributes -->
      +<android.support.v7.widget.RecyclerView
      +    android:id="@+id/my_recycler_view"
      +    android:scrollbars="vertical"
      +    android:layout_width="match_parent"
      +    android:layout_height="match_parent"/>
      +
      + +

      Begitu Anda menambahkan widget {@link android.support.v7.widget.RecyclerView} ke layout, +dapatkan pengatur atau handle objek itu, hubungkan dengan pengelola layout, dan sertakan adaptor untuk data +yang akan ditampilkan:

      + +
      +public class MyActivity extends Activity {
      +    private RecyclerView mRecyclerView;
      +    private RecyclerView.Adapter mAdapter;
      +    private RecyclerView.LayoutManager mLayoutManager;
      +
      +    @Override
      +    protected void onCreate(Bundle savedInstanceState) {
      +        super.onCreate(savedInstanceState);
      +        setContentView(R.layout.my_activity);
      +        mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);
      +
      +        // use this setting to improve performance if you know that changes
      +        // in content do not change the layout size of the RecyclerView
      +        mRecyclerView.setHasFixedSize(true);
      +
      +        // use a linear layout manager
      +        mLayoutManager = new LinearLayoutManager(this);
      +        mRecyclerView.setLayoutManager(mLayoutManager);
      +
      +        // specify an adapter (see also next example)
      +        mAdapter = new MyAdapter(myDataset);
      +        mRecyclerView.setAdapter(mAdapter);
      +    }
      +    ...
      +}
      +
      + +

      Adaptor menyediakan akses ke item dataset Anda, membuat tampilan untuk item, dan +mengganti konten sebagian tampilan dengan item data baru bila item semula tidak lagi +terlihat. Contoh kode berikut menampilkan implementasi sederhana untuk sebuah dataset yang terdiri dari +larik string yang ditampilkan dengan menggunakan widget {@link android.widget.TextView}:

      + +
      +public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
      +    private String[] mDataset;
      +
      +    // Provide a reference to the views for each data item
      +    // Complex data items may need more than one view per item, and
      +    // you provide access to all the views for a data item in a view holder
      +    public static class ViewHolder extends RecyclerView.ViewHolder {
      +        // each data item is just a string in this case
      +        public TextView mTextView;
      +        public ViewHolder(TextView v) {
      +            super(v);
      +            mTextView = v;
      +        }
      +    }
      +
      +    // Provide a suitable constructor (depends on the kind of dataset)
      +    public MyAdapter(String[] myDataset) {
      +        mDataset = myDataset;
      +    }
      +
      +    // Create new views (invoked by the layout manager)
      +    @Override
      +    public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,
      +                                                   int viewType) {
      +        // create a new view
      +        View v = LayoutInflater.from(parent.getContext())
      +                               .inflate(R.layout.my_text_view, parent, false);
      +        // set the view's size, margins, paddings and layout parameters
      +        ...
      +        ViewHolder vh = new ViewHolder(v);
      +        return vh;
      +    }
      +
      +    // Replace the contents of a view (invoked by the layout manager)
      +    @Override
      +    public void onBindViewHolder(ViewHolder holder, int position) {
      +        // - get element from your dataset at this position
      +        // - replace the contents of the view with that element
      +        holder.mTextView.setText(mDataset[position]);
      +
      +    }
      +
      +    // Return the size of your dataset (invoked by the layout manager)
      +    @Override
      +    public int getItemCount() {
      +        return mDataset.length;
      +    }
      +}
      +
      + + +
      + +

      +Gambar 3. Contoh kartu. +

      +
      + +

      Membuat Kartu

      + +

      {@link android.support.v7.widget.CardView} memperluas kelas {@link android.widget.FrameLayout} +dan memungkinkan Anda menampilkan informasi dalam kartu yang memiliki tampilan konsisten lintas platform. Widget {@link +android.support.v7.widget.CardView} bisa memiliki bayangan dan sudut membulat.

      + +

      Untuk membuat kartu dengan bayangan, gunakan atribut card_view:cardElevation. +{@link android.support.v7.widget.CardView} menggunakan elevasi nyata dan bayangan dinamis pada Android 5.0 +(API level 21) ke atas dan memundurkan ke implementasi bayangan terprogram pada versi terdahulu. +Untuk informasi selengkapnya, lihat Mempertahankan +Kompatibilitas.

      + +

      Gunakan properti-properti ini untuk menyesuaikan penampilan +widget {@link android.support.v7.widget.CardView}:

      + +
        +
      • Untuk mengatur radius sudut pada layout Anda, gunakan atribut card_view:cardCornerRadius. +
      • +
      • Untuk mengatur radius sudut dalam kode Anda, gunakan metode CardView.setRadius.
      • +
      • Untuk mengatur warna latar belakang kartu, gunakan atribut card_view:cardBackgroundColor. +
      • +
      + +

      Contoh kode berikut menampilkan cara menyertakan widget {@link android.support.v7.widget.CardView} +dalam layout:

      + +
      +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      +    xmlns:tools="http://schemas.android.com/tools"
      +    xmlns:card_view="http://schemas.android.com/apk/res-auto"
      +    ... >
      +    <!-- A CardView that contains a TextView -->
      +    <android.support.v7.widget.CardView
      +        xmlns:card_view="http://schemas.android.com/apk/res-auto"
      +        android:id="@+id/card_view"
      +        android:layout_gravity="center"
      +        android:layout_width="200dp"
      +        android:layout_height="200dp"
      +        card_view:cardCornerRadius="4dp">
      +
      +        <TextView
      +            android:id="@+id/info_text"
      +            android:layout_width="match_parent"
      +            android:layout_height="match_parent" />
      +    </android.support.v7.widget.CardView>
      +</LinearLayout>
      +
      + +

      Untuk informasi selengkapnya, lihat referensi API untuk {@link android.support.v7.widget.CardView}.

      + + +

      Menambahkan Dependensi

      + +

      Widget {@link android.support.v7.widget.RecyclerView} dan {@link android.support.v7.widget.CardView} +adalah bagian dari v7 Support +Library. Untuk menggunakan widget dalam proyek Anda, tambahkan +dependensi Gradle ini ke +modul aplikasi Anda:

      + +
      +dependencies {
      +    ...
      +    compile 'com.android.support:cardview-v7:21.0.+'
      +    compile 'com.android.support:recyclerview-v7:21.0.+'
      +}
      +
      diff --git a/docs/html-intl/intl/id/training/material/shadows-clipping.jd b/docs/html-intl/intl/id/training/material/shadows-clipping.jd new file mode 100644 index 000000000000..543192672159 --- /dev/null +++ b/docs/html-intl/intl/id/training/material/shadows-clipping.jd @@ -0,0 +1,133 @@ +page.title=Mendefinisikan Bayangan dan Memangkas Tampilan + +@jd:body + + + +

      Desain bahan memperkenalkan elevasi untuk elemen-elemen UI. Elevasi membantu pengguna memahami +arti penting relatif masing-masing elemen dan memfokuskan perhatian pada tugas yang ada.

      + +

      Elevasi tampilan, yang dinyatakan dengan properti Z, menentukan tampilan visual +bayangannya: tampilan dengan nilai Z lebih tinggi menghasilkan bayangan lebih besar dan lebih halus. Tampilan dengan nilai Z lebih tinggi menutupi +tampilan dengan nilai Z lebih rendah; akan tetapi, nilai Z tampilan tidak memengaruhi ukuran tampilan.

      + +

      Bayangan digambar oleh induk tampilan yang dinaikkan, sehingga terkena pemangkasan standar tampilan, +yang dipangkas oleh induk secara default.

      + +

      Elevasi juga berguna untuk membuat animasi tempat memunculkan widget untuk sementara di atas +bidang tampilan saat melakukan beberapa tindakan.

      + +

      Untuk informasi selengkapnya tentang elevasi dalam desain bahan, lihat +Objek +di ruang 3D.

      + + +

      Menetapkan Elevasi pada Tampilan Anda

      + +

      Nilai Z untuk tampilan memiliki dua komponen: + +

        +
      • Elevasi: Komponen statis.
      • +
      • Transformasi: Komponen dinamis yang digunakan untuk animasi.
      • +
      + +

      Z = elevation + translationZ

      + + +

      Gambar 1 - Bayangan untuk berbagai elevasi tampilan.

      + +

      Untuk mengatur elevasi tampilan dalam definisi layout, gunakan atribut android:elevation. + Untuk mengatur elevasi tampilan dalam kode aktivitas, gunakan +metode {@link android.view.View#setElevation View.setElevation()}.

      + +

      Untuk mengatur transformasi tampilan, gunakan metode {@link android.view.View#setTranslationZ +View.setTranslationZ()}.

      + +

      Metode {@link android.view.ViewPropertyAnimator#z ViewPropertyAnimator.z()} dan {@link +android.view.ViewPropertyAnimator#translationZ ViewPropertyAnimator.translationZ()} yang baru memudahkan +Anda menganimasikan elevasi tampilan. Untuk informasi selengkapnya, lihat referensi API untuk +{@link android.view.ViewPropertyAnimator} dan panduan pengembang Animasi Properti. +

      + +

      Anda juga bisa menggunakan {@link android.animation.StateListAnimator} +untuk menetapkan animasi ini secara deklaratif. Ini khususnya berguna bila +perubahan status memicu animasi, seperti saat seorang pengguna menekan tombol. Untuk informasi selengkapnya, lihat +Menganimasikan Perubahan Status Tampilan.

      + +

      Nilai Z diukur dengan satuan dp (density-independent pixel).

      + + +

      Menyesuaikan Bayangan dan Garis Luar Tampilan

      + +

      Batas-batas drawable latar belakang tampilan menentukan bentuk default bayangannya. +Garis luar menyatakan bentuk luar objek grafis dan mendefinisikan +bidang riak untuk umpan balik sentuh.

      + +

      Perhatikan tampilan ini, yang didefinisikan dengan drawable latar belakang:

      + +
      +<TextView
      +    android:id="@+id/myview"
      +    ...
      +    android:elevation="2dp"
      +    android:background="@drawable/myrect" />
      +
      + +

      Drawable latar belakang didefinisikan sebagai persegi panjang dengan sudut membulat:

      + +
      +<!-- res/drawable/myrect.xml -->
      +<shape xmlns:android="http://schemas.android.com/apk/res/android"
      +       android:shape="rectangle">
      +    <solid android:color="#42000000" />
      +    <corners android:radius="5dp" />
      +</shape>
      +
      + +

      Tampilan ini menghasilkan bayangan dengan sudut membulat, karena drawable latar belakang mendefinisikan +garis luar tampilan. Memberikan garis luar custom akan mengesampingkan bentuk default bayangan tampilan.

      + +

      Untuk mendefinisikan garis luar custom suatu tampilan dalam kode Anda:

      + +

        +
      1. Perluas kelas {@link android.view.ViewOutlineProvider}.
      2. +
      3. Kesampingkan metode {@link android.view.ViewOutlineProvider#getOutline getOutline()}.
      4. +
      5. Tetapkan penyedia garis luar baru untuk tampilan Anda dengan metode {@link +android.view.View#setOutlineProvider View.setOutlineProvider()}.
      6. +
      + +

      Anda bisa membuat garis luar lonjong dan persegi panjang yang bersudut membulat dengan menggunakan metode dalam +kelas {@link android.graphics.Outline}. Penyedia garis luar default untuk tampilan memperoleh garis luar +dari latar belakang tampilan. Untuk mencegah tampilan menghasilkan bayangan, atur penyedia garis luarnya +ke null.

      + + +

      Memangkas Tampilan

      + +

      Memangkas tampilan memudahkan Anda mengubah bentuk tampilan. Anda bisa memangkas tampilan agar +konsistensi dengan elemen desain lainnya atau mengubah bentuk tampilan untuk merespons input pengguna. +Anda bisa memangkas tampilan hingga area garis luarnya dengan menggunakan metode {@link android.view.View#setClipToOutline +View.setClipToOutline()} atau atribut android:clipToOutline. Hanya +garis-garis luar persegi panjang, lingkaran, dan persegi panjang bersudut bulat yang mendukung pemangkasan, seperti yang ditentukan oleh +metode {@link android.graphics.Outline#canClip Outline.canClip()}.

      + +

      Untuk memangkas tampilan ke bentuk drawable, atur drawable sebagai latar belakang tampilan +(seperti yang ditampilkan di atas) dan panggil metode {@link android.view.View#setClipToOutline View.setClipToOutline()}. +

      + +

      Memangkas tampilan adalah operasi yang mahal; jadi, jangan animasikan bentuk yang Anda gunakan +untuk memangkas tampilan. Untuk memperoleh efek ini, gunakan animasi Reveal Effect.

      diff --git a/docs/html-intl/intl/id/training/material/theme.jd b/docs/html-intl/intl/id/training/material/theme.jd new file mode 100644 index 000000000000..5acdcd2d0692 --- /dev/null +++ b/docs/html-intl/intl/id/training/material/theme.jd @@ -0,0 +1,131 @@ +page.title=Menggunakan Tema Bahan + +@jd:body + +
      +
      +

      Pelajaran ini mengajarkan Anda cara

      +
        +
      1. Menyesuaikan Palet Warna
      2. +
      3. Menyesuaikan Baris Status
      4. +
      5. Tampilan Setiap Tema
      6. +
      +

      Anda juga harus membaca

      + +
      +
      + + +

      Tema bahan yang baru menyediakan:

      + +
        +
      • Widget sistem yang memungkinkan Anda mengatur palet warnanya
      • +
      • Animasi umpan balik sentuh untuk widget sistem
      • +
      • Animasi transisi aktivitas
      • +
      + +

      Anda bisa menyesuaikan tampilan tema bahan +sesuai dengan identitas merek Anda dengan palet warna yang Anda kontrol. Anda bisa mewarnai action-bar dan +baris status dengan menggunakan atribut tema, seperti yang ditampilkan dalam Gambar 3.

      + +

      Widget sistem memiliki desain baru dan animasi umpan balik sentuh. Anda bisa menyesuaikan +palet warna, animasi umpan balik sentuh, dan transisi aktivitas untuk aplikasi.

      + +

      Tema bahan didefinisikan sebagai:

      + +
        +
      • @android:style/Theme.Material (versi gelap)
      • +
      • @android:style/Theme.Material.Light (versi terang)
      • +
      • @android:style/Theme.Material.Light.DarkActionBar
      • +
      + +

      Untuk daftar gaya bahan yang bisa Anda gunakan, lihat referensi API untuk +{@link android.R.style R.style}.

      + + +
      +
      + +
      +

      Gambar 1. Tema bahan gelap

      +
      +
      +
      + +
      +

      Gambar 2. Tema bahan terang

      +
      +
      +
      +
      + +

      +Catatan: Tema bahan hanya tersedia di Android 5.0 (API level 21) +ke atas. v7 Support Library +menyediakan tema dengan gaya desain bahan untuk beberapa widget dan dukungan untuk menyesuaikan +palet warna. Untuk informasi selengkapnya, lihat +Mempertahankan Kompatibilitas. +

      + + +

      Menyesuaikan Palet Warna

      + +

      Untuk menyesuaikan warna dasar tema agar cocok dengan merek Anda, definisikan +warna custom menggunakan atribut tema saat Anda mewariskan dari tema bahan:

      + +
      +<resources>
      +  <!-- inherit from the material theme -->
      +  <style name="AppTheme" parent="android:Theme.Material">
      +    <!-- Main theme colors -->
      +    <!--   your app branding color for the app bar -->
      +    <item name="android:colorPrimary">@color/primary</item>
      +    <!--   darker variant for the status bar and contextual app bars -->
      +    <item name="android:colorPrimaryDark">@color/primary_dark</item>
      +    <!--   theme UI controls like checkboxes and text fields -->
      +    <item name="android:colorAccent">@color/accent</item>
      +  </style>
      +</resources>
      +
      + +
      + +

      +Gambar 3. Menyesuaikan tema bahan.

      +
      + + +

      Menyesuaikan Baris Status

      + +

      Tema bahan memungkinkan Anda menyesuaikan baris status dengan mudah; jadi Anda bisa menetapkan +warna yang cocok dengan merek Anda dan memberikan kontras yang cukup untuk menampilkan ikon status putih. Untuk +mengatur warna custom bagi baris status, gunakan atribut android:statusBarColor bila +Anda memperluas tema bahan. Secara default, android:statusBarColor mewarisi +nilai android:colorPrimaryDark.

      + +

      Anda juga bisa menggambar sendiri di belakang baris status. Misalnya, jika Anda ingin menampilkan +baris status secara transparan di atas foto, dengan gradasi gelap yang halus untuk memastikan +ikon status putih tetap terlihat. Caranya, atur atribut android:statusBarColor ke +@android:color/transparent dan sesuaikan flag jendela seperti yang diperlukan. Anda juga bisa +menggunakan metode {@link android.view.Window#setStatusBarColor Window.setStatusBarColor()} untuk +animasi atau pemudaran.

      + +

      +Catatan: Baris status harus selalu memiliki delineasi yang jelas dari +toolbar utama, kecuali bila Anda menampilkan gambar detail atau konten media tepi-ke-tepi di belakang +baris ini dan bila Anda menggunakan gradasi untuk memastikan ikon tetap terlihat. +

      + +

      Bila Anda menyesuaikan baris navigasi dan baris status, jadikan keduanya transparan atau modifikasi +baris status saja. Baris navigasi harus tetap hitam di semua kasus lainnya.

      + + +

      Tampilan Setiap Tema

      + +

      Elemen dalam definisi layout XML bisa menetapkan atribut android:theme, +yang merujuk sumber daya tema. Atribut ini memodifikasi tema untuk elemen itu dan setiap +elemen anak, yang berguna untuk mengubah palet warna tema dalam porsi tertentu +pada antarmuka.

      diff --git a/docs/html-intl/intl/id/training/tv/playback/picture-in-picture.jd b/docs/html-intl/intl/id/training/tv/playback/picture-in-picture.jd new file mode 100644 index 000000000000..41af6de97723 --- /dev/null +++ b/docs/html-intl/intl/id/training/tv/playback/picture-in-picture.jd @@ -0,0 +1,213 @@ +page.title=Gambar-dalam-gambar +page.keywords=pratinjau,sdk,PIP,Gambar-dalam-gambar +page.tags=androidn + +@jd:body + + + +

      Di Android N, pengguna Android TV sekarang bisa menonton video +dalam jendela yang disematkan di sudut layar saat menyusuri +aplikasi. Mode gambar-dalam-gambar (PIP) memungkinkan aplikasi menjalankan aktivitas +video dalam jendela yang disematkan selagi aktivitas lain tetap berjalan di +latar belakang. Jendela PIP memungkinkan pengguna melakukan multitasking saat menggunakan aplikasi Anda, yang +membantu pengguna menjadi lebih produktif.

      + +

      Aplikasi Anda bisa memutuskan kapan memicu mode PIP. Inilah beberapa contoh +kapan memasuki mode PIP:

      + +
        +
      • Aplikasi Anda bisa memindahkan video ke dalam mode PIP bila pengguna mengarah +mundur dari video untuk menjelajah materi lainnya.
      • +
      • Aplikasi Anda bisa mengalihkan video ke dalam mode PIP selagi pengguna menonton akhir episode +dari materi. Layar utama menampilkan informasi +promosi atau rangkuman tentang episode berikutnya dalam seri tersebut.
      • +
      • Aplikasi Anda bisa menyediakan suatu cara bagi pengguna untuk mengantre materi tambahan selagi +mereka menonton video. Video terus dimainkan dalam mode PIP selagi layar +utama menampilkan aktivitas pemilihan materi.
      • +
      + +

      Jendela PIP memiliki luas 240x135 dp dan ditampilkan di layer paling atas pada salah satu +dari empat sudut layar, yang dipilih oleh sistem. Pengguna bisa memunculkan +menu PIP yang memungkinkan mereka untuk beralih mode dari jendela PIP ke layar penuh, atau menutup jendela +PIP, dengan menekan dan menahan tombol Beranda pada remote. Jika video +lain mulai diputar pada layar utama, jendela PIP secara otomatis +ditutup. Pengguna juga bisa menutup jendela PIP melalui Recents.

      + + +

      Gambar 1. Video +Gambar-dalam-gambar terlihat di sudut layar selagi pengguna menjelajahi materi pada layar +utama.

      + +

      PIP memanfaatkan API multi-jendela yang tersedia di Android N untuk +menyediakan jendela hamparan video yang disematkan. Untuk menambahkan PIP ke aplikasi, Anda harus +mendaftarkan aktivitas yang mendukung PIP, mengalihkan aktivitas Anda ke mode PIP bila +diperlukan, serta memastikan elemen UI disembunyikan dan pemutaran video berlanjut bila +aktivitas dalam mode PIP.

      + +

      Mendeklarasikan Bahwa Aktivitas Anda Mendukung Gambar-dalam-gambar

      + +

      Secara default, sistem tidak secara otomatis mendukung PIP untuk aplikasi. +Jika Anda ingin mendukung PIP dalam aplikasi, daftarkan aktivitas +video Anda dalam manifes dengan menyetel +android:supportsPictureInPicture dan +android:resizeableActivity ke true. Juga, tetapkan +bahwa aktivitas Anda menangani perubahan konfigurasi layout sehingga aktivitas +Anda tidak diluncurkan ulang saat terjadi perubahan layout selama transisi mode PIP.

      + +
      +<activity android:name="VideoActivity"
      +    android:resizeableActivity="true"
      +    android:supportsPictureInPicture="true"
      +    android:configChanges=
      +        "screenSize|smallestScreenSize|screenLayout|orientation"
      +    ...
      +
      + +

      Saat mendaftarkan aktivitas Anda, ingatlah bahwa dalam mode PIP aktivitas +Anda akan ditampilkan pada jendela hamparan kecil pada layar TV. Aktivitas +pemutaran video dengan UI minimal akan memberikan pengalaman pengguna terbaik. Aktivitas yang +mengandung elemen UI kecil mungkin tidak memberikan pengalaman pengguna yang baik +ketika beralih ke mode PIP, karena pengguna tidak dapat melihat elemen UI secara jelas +di jendela PIP.

      + +

      Mengalihkan Aktivitas Anda ke Gambar-dalam-gambar

      + +Bila Anda perlu untuk mengalihkan aktivitas ke mode PIP, panggil +Activity.enterPictureInPictureMode(). Contoh berikut mengalihkan +ke mode PIP bila pengguna memilih tombol PIP khusus pada baris +kontrol media:

      + +
      +@Override
      +public void onActionClicked(Action action) {
      +    if (action.getId() == R.id.lb_control_picture_in_picture) {
      +        getActivity().enterPictureInPictureMode();
      +        return;
      +    }
      +    ...
      +
      + +

      Menambahkan tombol PIP ke baris kontrol media Anda akan memungkinkan pengguna dengan mudah beralih +ke mode PIP selagi mengontrol pemutaran video.

      + + +

      Gambar 1. Tombol +gambar-dalam-gambar pada baris kontrol media.

      + +

      Android N menyertakan kelas +PlaybackControlsRow.PictureInPictureAction baru yang mendefinisikan +tindakan PIP baris kontrol dan menggunakan ikon PIP.

      + +

      Menangani UI Selama Gambar-dalam-gambar

      + +

      Bila aktivitas memasuki mode PIP, aktivitas Anda seharusnya hanya menampilkan pemutaran +video. Buang elemen UI sebelum aktivitas Anda memasuki PIP, +dan pulihkan elemen ini bila aktivitas Anda beralih ke layar penuh lagi. +Ganti Activity.onPictureInPictureModeChanged() atau +Fragment.onPictureInPictureModeChanged() dan aktifkan atau +nonaktifkan elemen UI saat diperlukan, misalnya:

      + +
      +@Override
      +public void onPictureInPictureModeChanged(boolean isInPictureInPictureMode) {
      +    if (isInPictureInPictureMode) {
      +        // Hide the controls in picture-in-picture mode.
      +        ...
      +    } else {
      +        // Restore the playback UI based on the playback status.
      +        ...
      +    }
      +}
      +
      + +

      Melanjutkan Pemutaran Video Saat dalam +Gambar-dalam-gambar

      + +

      Bila aktivitas Anda beralih ke PIP, sistem akan menganggap aktivitas tersebut berada dalam +keadaan berhenti sementara, dan akan memanggil metode onPause() aktivitas Anda. Pemutaran +video tidak boleh berhenti sementara dan harus terus diputar jika aktivitas tersebut +berhenti sementara karena mode PIP. Periksa PIP dalam metode +onPause() aktivitas Anda dan tangani pemutaran dengan tepat, +misalnya:

      + +
      +@Override
      +public void onPause() {
      +    // If called while in PIP mode, do not pause playback
      +    if (isInPictureInPictureMode()) {
      +        // Continue playback
      +        ...
      +    }
      +    // If paused but not in PIP, pause playback if necessary
      +    ...
      +}
      +
      + +

      Bila aktivitas meninggalkan mode PIP dan kembali ke mode layar penuh, sistem +akan melanjutkan aktivitas Anda dan memanggil metode onResume().

      + +

      Menggunakan Aktivitas Pemutaran Tunggal untuk + Gambar-dalam-gambar

      + +

      Di aplikasi Anda, seorang pengguna bisa memilih video baru saat menyusuri materi di +layar utama, selagi aktivitas pemutaran video dalam mode PIP. Putar +video baru di aktivitas pemutaran yang ada dalam mode layar penuh, sebagai ganti +meluncurkan aktivitas baru yang dapat membingungkan pengguna.

      + +

      Guna memastikan aktivitas tunggal digunakan untuk permintaan pemutaran video dan +beralih ke atau dari mode PIP bila dibutuhkan, setel +android:launchMode aktivitas ke singleTask dalam manifes Anda: +

      + +
      +<activity android:name="VideoActivity"
      +    ...
      +    android:supportsPictureInPicture="true"
      +    android:launchMode="singleTask"
      +    ...
      +
      + +

      Di aktivitas Anda, ganti {@link android.app.Activity#onNewIntent +Activity.onNewIntent()} dan tangani video baru, yang akan menghentikan pemutaran video +jika diperlukan.

      + +

      Praktik Terbaik

      + +

      PIP ditujukan untuk aktivitas yang memutar video layar penuh. Saat mengalihkan +aktivitas Anda ke mode PIP, hindari menampilkan apa pun selain materi video. +Pantau saat aktivitas Anda memasuki mode PIP dan sembunyikan elemen UI, seperti dijelaskan +dalam Menangani UI Selama Gambar-dalam-gambar.

      + +

      Karena jendela PIP ditampilkan sebagai jendela mengambang di sudut +layar, Anda harus menghindari menampilkan informasi penting di layar utama +di area mana saja yang bisa terhalang oleh jendela PIP.

      + +

      Bila aktivitas ada berada dalam mode PIP, secara default aktivitas itu tidak mendapatkan fokus masukan. Untuk +menerima kejadian masukan saat dalam mode PIP, gunakan +MediaSession.setMediaButtonReceiver().

      diff --git a/docs/html-intl/intl/id/training/tv/tif/content-recording.jd b/docs/html-intl/intl/id/training/tv/tif/content-recording.jd new file mode 100644 index 000000000000..3389dbf84cbf --- /dev/null +++ b/docs/html-intl/intl/id/training/tv/tif/content-recording.jd @@ -0,0 +1,142 @@ +page.title=Perekaman TV +page.keywords=pratinjau,sdk,tv,perekaman +page.tags=androidn +page.image=images/cards/card-nyc_2x.jpg + +@jd:body + + + +

      Layanan masukan TV memungkinkan pengguna menghentikan sementara dan melanjutkan pemutaran saluran melalui +API perekaman. Android N telah berkembang hingga ke perekaman +dengan memungkinkan pengguna menyimpan beberapa sesi rekaman.

      + +

      Pengguna bisa menjadwalkan rekaman terlebih dahulu, atau memulai rekaman sambil menonton +suatu acara. Setelah sistem menyimpan rekaman, pengguna bisa menjelajah, menata, +dan memutar kembali rekaman tersebut menggunakan aplikasi TV di sistem.

      + +

      Jika Anda ingin menyediakan fungsi perekaman untuk layanan masukan TV, +Anda harus menunjukkan pada sistem bahwa aplikasi Anda mendukung perekaman, mengimplementasikan +kemampuan merekam program, menangani dan mengomunikasikan kesalahan yang muncul +selama perekaman, dan mengelola sesi perekaman Anda.

      + +

      Catatan: Aplikasi Live Channels belum +menyediakan cara bagi pengguna untuk membuat atau mengakses perekaman. Hingga dibuat perubahan +di aplikasi Live Channels, mungkin sulit menguji sepenuhnya pengalaman +perekaman untuk layanan masukan TV Anda.

      + +

      Menunjukkan Dukungan untuk Perekaman

      + +

      Untuk memberi tahu sistem bahwa layanan masukan TV Anda mendukung perekaman, setel +atribut android:canRecord di file XML metadata layanan Anda +ke true: +

      + +
      +<tv-input xmlns:android="http://schemas.android.com/apk/res/android"
      +  android:canRecord="true"
      +  android:setupActivity="com.example.sampletvinput.SampleTvInputSetupActivity" />
      +
      + +

      Untuk informasi selengkapnya mengenai layanan file metadata, lihat +Mendeklarasikan Layanan Masukan TV Anda +di Manifes. +

      + +

      Atau, Anda bisa menunjukkan dukungan perekaman dalam kode Anda menggunakan +langkah-langkah ini:

      + +
        +
      1. Dalam metode TvInputService.onCreate() Anda, buat objek +TvInputInfo baru menggunakan kelas TvInputInfo.Builder. +
      2. +
      3. Saat membuat objek TvInputInfo baru, panggil +setCanRecord(true) sebelum memanggil build() untuk + menunjukkan layanan Anda mendukung perekaman.
      4. +
      5. Daftarkan objek TvInputInfo Anda pada sistem dengan memanggil +TvInputManager.updateTvInputInfo().
      6. +
      + +

      Merekam Sesi

      + +

      Setelah layanan masukan TV Anda mendaftar bahwa mendukung fungsionalitas +perekaman, sistem akan memanggil +TvInputService.onCreateRecordingSession() bila perlu untuk mengakses +implementasi perekaman aplikasi Anda. Implementasikan subkelas +TvInputService.RecordingSession Anda sendiri dan kembalikan +bila callback onCreateRecordingSession() dipicu. + Subkelas ini bertanggung jawab mengalihkan ke saluran data yang benar, +merekam data yang diminta, dan memberitahukan status perekaman serta kesalahan ke +sistem.

      + +

      Bila sistem memanggil RecordingSession.onTune(), dengan meneruskan +URI saluran, setel ke saluran yang ditetapkan URI. Beri tahu sistem bahwa +aplikasi Anda telah disetel ke saluran yang diinginkan dengan memanggil notifyTuned(), +atau, jika aplikasi Anda tidak bisa disetel ke saluran yang tepat, panggil +notifyError().

      + +

      Sistem berikutnya akan memanggil callback RecordingSession.onStartRecording(). + Aplikasi Anda harus segera mulai merekam. Bila sistem memanggil +callback ini, sistem mungkin akan memberikan URI yang berisi informasi tentang program +yang akan direkam. Bila perekaman selesai, Anda perlu menyalin data +ini ke tabel data RecordedPrograms.

      + +

      Terakhir, sistem akan memanggil RecordingSession.onStopRecording(). +Pada tahap ini, aplikasi Anda harus segera berhenti merekam. Anda juga perlu +membuat entri dalam tabel RecordedPrograms. Entri ini harus +menyertakan URI data sesi yang direkam dalam kolom +RecordedPrograms.COLUMN_RECORDING_DATA_URI, dan informasi +program yang diberikan sistem dalam panggilan awal ke +onStartRecording().

      + +

      Untuk detail selengkapnya tentang cara mengakses tabel RecordedPrograms +lihat Mengelola Sesi yang Direkam.

      + +

      Menangani Kesalahan Perekaman

      + +

      Jika terjadi kesalahan selama perekaman, yang menghasilkan data terekam yang tidak bisa digunakan, +beri tahu sistem dengan memanggil RecordingSession.notifyError(). +Begitu juga, Anda bisa memanggil notifyError() setelah sesi rekaman dibuat +agar sistem mengetahui bahwa aplikasi Anda tidak bisa lagi merekam sesi.

      + +

      Jika terjadi kesalahan selama perekaman, namun Anda ingin menyediakan rekaman parsial +yang bisa digunakan pengguna untuk pemutaran, panggil +RecordingSession.notifyRecordingStopped() untuk memungkinkan sistem +menggunakan sesi parsial.

      + +

      Mengelola Sesi yang Direkam

      + +

      Sistem menyimpan informasi untuk semua sesi yang direkam dari semua +aplikasi saluran yang mampu merekam dalam tabel penyedia materi TvContract.RecordedPrograms. + Informasi ini bisa diakses lewat URI materi +RecordedPrograms.Uri. Gunakan API penyedia materi untuk +membaca, menambahkan, dan menghapus entri dari tabel ini.

      + +

      Untuk informasi selengkapnya tentang menangani data penyedia materi, lihat + +Dasar-Dasar Penyedia Materi.

      + +

      Praktik Terbaik

      + +

      Perangkat TV mungkin memiliki penyimpanan terbatas, jadi pertimbangkan sebaik mungkin saat +mengalokasikan penyimpanan untuk menyimpan sesi rekaman. Gunakan +RecordingCallback.onError(RECORDING_ERROR_INSUFFICIENT_SPACE) bila +tidak cukup ruang untuk menyimpan sesi rekaman.

      + +

      Bila pengguna memulai perekaman, Anda harus memulai perekaman data +secepatnya. Untuk memfasilitasinya, selesaikan setiap tugas yang memakan waktu di awal, +seperti mengakses dan mengalokasikan ruang penyimpanan, saat sistem memanggil callback +onCreateRecordingSession(). Hal ini akan memungkinkan Anda memulai +perekaman dengan segera bila callback onStartRecording() +dipicu.

      -- GitLab From dfedca4e436f0aa966a30fa08c9097538ba25381 Mon Sep 17 00:00:00 2001 From: Jaewan Kim Date: Thu, 22 Sep 2016 14:56:33 +0900 Subject: [PATCH 497/809] DO NOT MERGE Fix build Bug: 29833954 Change-Id: Ia814969b516ac7cc0ad7431ebab40cc74fdf2a05 --- .../core/java/com/android/server/media/MediaSessionService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/media/MediaSessionService.java b/services/core/java/com/android/server/media/MediaSessionService.java index ea4c3313861f..dc9350083337 100644 --- a/services/core/java/com/android/server/media/MediaSessionService.java +++ b/services/core/java/com/android/server/media/MediaSessionService.java @@ -701,7 +701,7 @@ public class MediaSessionService extends SystemService implements Monitor { if (isGlobalPriorityActive() && uid != Process.SYSTEM_UID) { // Prevent dispatching key event through reflection while the global priority // session is active. - Slog.i(TAG, "Only the system can dispatch media key event " + Log.w(TAG, "Only the system can dispatch media key event " + "to the global priority session."); return; } -- GitLab From 1e6d77e836f8826fbd8152af3400e40f22f43362 Mon Sep 17 00:00:00 2001 From: Shuo Gao Date: Tue, 1 Mar 2016 13:32:03 +0800 Subject: [PATCH 498/809] Enable shader cache for applications that shared UID with multiple packages too Bug: 31224514 Frameworks supported a mature mechanism for shader cache per each package already, but as a special case such as Settings APP, if there are several packages in this application which means that multiple packages shared the same SharedUserID with it, it won't initialize the graphics disk caches, thereby APP like Settings have to rebuild and relink shader every time during launch, which cause a bad launching performance, so here to enable the GFX and RS cache initialization for multiple shared packages case too. Change-Id: If0f927e3399b775804abf1d9a868887951f471c5 Signed-off-by: Shuo Gao Signed-off-by: Zhiquan Liu (cherry picked from commit 7c69a669a53ad3de05cf429978a3e848070d1391) --- core/java/android/app/ActivityThread.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index 18677dda3b88..1de926b7ca9d 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -5003,9 +5003,7 @@ public final class ActivityThread { int uid = Process.myUid(); String[] packages = getPackageManager().getPackagesForUid(uid); - // If there are several packages in this application we won't - // initialize the graphics disk caches - if (packages != null && packages.length == 1) { + if (packages != null) { ThreadedRenderer.setupDiskCache(cacheDir); RenderScriptCacheDir.setupDiskCache(cacheDir); } -- GitLab From 100ba76d7a45847ffd3ecb1d468c91c0d0652032 Mon Sep 17 00:00:00 2001 From: Adam Powell Date: Thu, 22 Sep 2016 10:47:40 -0700 Subject: [PATCH 499/809] Null check for restoring LoaderManagers Bug 31671195 Test: core/tests/coretests/src/android/app/LoaderLifecycleTest.java Change-Id: Ib553f7611814cc6759488aec505fd126ee664a9d --- core/java/android/app/FragmentHostCallback.java | 6 ++++-- .../coretests/src/android/app/LoaderLifecycleTest.java | 3 +++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/core/java/android/app/FragmentHostCallback.java b/core/java/android/app/FragmentHostCallback.java index b6aad3b15362..d869168e2b6a 100644 --- a/core/java/android/app/FragmentHostCallback.java +++ b/core/java/android/app/FragmentHostCallback.java @@ -340,8 +340,10 @@ public abstract class FragmentHostCallback extends FragmentContainer { } void restoreLoaderNonConfig(ArrayMap loaderManagers) { - for (int i = 0, N = loaderManagers.size(); i < N; i++) { - ((LoaderManagerImpl) loaderManagers.valueAt(i)).updateHostController(this); + if (loaderManagers != null) { + for (int i = 0, N = loaderManagers.size(); i < N; i++) { + ((LoaderManagerImpl) loaderManagers.valueAt(i)).updateHostController(this); + } } mAllLoaderManagers = loaderManagers; } diff --git a/core/tests/coretests/src/android/app/LoaderLifecycleTest.java b/core/tests/coretests/src/android/app/LoaderLifecycleTest.java index a3d51a0a9612..1850d575dfa5 100644 --- a/core/tests/coretests/src/android/app/LoaderLifecycleTest.java +++ b/core/tests/coretests/src/android/app/LoaderLifecycleTest.java @@ -99,6 +99,9 @@ public class LoaderLifecycleTest { final FragmentManager fm2 = fc2.getFragmentManager(); fc2.attachHost(null); + // Make sure nothing blows up on a null here + fc2.restoreLoaderNonConfig(null); + // for real this time fc2.restoreLoaderNonConfig(loaderNonConfig); fc2.restoreAllState(savedState, nonconf); fc2.dispatchCreate(); -- GitLab From 7e2bb3e6dd1e016f74d174eb154ef44b72fe4b4c Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Thu, 22 Sep 2016 11:35:31 -0600 Subject: [PATCH 500/809] Recursively restorecon when SELinux label changes. PackageManager has been pretty aggressive about asking installd to restorecon over app data when it thinks something might have changed. However, in the vast majority of cases these are no-op requests, and we waste a bunch of time recursively walking all private data, easily costing 60+ seconds on dogfooder devices. This change relies on new installd "create_app_data" behavior that kicks off a recursive restorecon if it detects that the top-level SELinux label on the app private data directory changes. This means that PackageManager no longer needs to track restoreconNeeded state. Test: booted, verified that a label change triggered restorecon Bug: 30768146 Change-Id: I0c8d4018cf8ff888d0ae07a82adc3d61a6002aad --- .../server/pm/PackageManagerService.java | 46 +++-------- .../com/android/server/pm/SELinuxMMAC.java | 81 ------------------- 2 files changed, 9 insertions(+), 118 deletions(-) diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index dfcddd2e211a..c360c901d485 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -19781,8 +19781,6 @@ Slog.v(TAG, ":: stepped forward, applying functor at tag " + parser.getName()); final File ceDir = Environment.getDataUserCeDirectory(volumeUuid, userId); final File deDir = Environment.getDataUserDeDirectory(volumeUuid, userId); - boolean restoreconNeeded = false; - // First look for stale data that doesn't belong, and check if things // have changed since we did our last restorecon if ((flags & StorageManager.FLAG_STORAGE_CE) != 0) { @@ -19793,8 +19791,6 @@ Slog.v(TAG, ":: stepped forward, applying functor at tag " + parser.getName()); + " was still locked; this would have caused massive data loss!"); } - restoreconNeeded |= SELinuxMMAC.isRestoreconNeeded(ceDir); - final File[] files = FileUtils.listFilesOrEmpty(ceDir); for (File file : files) { final String packageName = file.getName(); @@ -19812,8 +19808,6 @@ Slog.v(TAG, ":: stepped forward, applying functor at tag " + parser.getName()); } } if ((flags & StorageManager.FLAG_STORAGE_DE) != 0) { - restoreconNeeded |= SELinuxMMAC.isRestoreconNeeded(deDir); - final File[] files = FileUtils.listFilesOrEmpty(deDir); for (File file : files) { final String packageName = file.getName(); @@ -19848,29 +19842,19 @@ Slog.v(TAG, ":: stepped forward, applying functor at tag " + parser.getName()); } if (ps.getInstalled(userId)) { - prepareAppDataLIF(ps.pkg, userId, flags, restoreconNeeded); + prepareAppDataLIF(ps.pkg, userId, flags); if (maybeMigrateAppDataLIF(ps.pkg, userId)) { // We may have just shuffled around app data directories, so // prepare them one more time - prepareAppDataLIF(ps.pkg, userId, flags, restoreconNeeded); + prepareAppDataLIF(ps.pkg, userId, flags); } preparedCount++; } } - if (restoreconNeeded) { - if ((flags & StorageManager.FLAG_STORAGE_CE) != 0) { - SELinuxMMAC.setRestoreconDone(ceDir); - } - if ((flags & StorageManager.FLAG_STORAGE_DE) != 0) { - SELinuxMMAC.setRestoreconDone(deDir); - } - } - - Slog.v(TAG, "reconcileAppsData finished " + preparedCount - + " packages; restoreconNeeded was " + restoreconNeeded); + Slog.v(TAG, "reconcileAppsData finished " + preparedCount + " packages"); } /** @@ -19905,9 +19889,8 @@ Slog.v(TAG, ":: stepped forward, applying functor at tag " + parser.getName()); } if (ps.getInstalled(user.id)) { - // Whenever an app changes, force a restorecon of its data // TODO: when user data is locked, mark that we're still dirty - prepareAppDataLIF(pkg, user.id, flags, true); + prepareAppDataLIF(pkg, user.id, flags); } } } @@ -19920,24 +19903,22 @@ Slog.v(TAG, ":: stepped forward, applying functor at tag " + parser.getName()); * will try recovering system apps by wiping data; third-party app data is * left intact. */ - private void prepareAppDataLIF(PackageParser.Package pkg, int userId, int flags, - boolean restoreconNeeded) { + private void prepareAppDataLIF(PackageParser.Package pkg, int userId, int flags) { if (pkg == null) { Slog.wtf(TAG, "Package was null!", new Throwable()); return; } - prepareAppDataLeafLIF(pkg, userId, flags, restoreconNeeded); + prepareAppDataLeafLIF(pkg, userId, flags); final int childCount = (pkg.childPackages != null) ? pkg.childPackages.size() : 0; for (int i = 0; i < childCount; i++) { - prepareAppDataLeafLIF(pkg.childPackages.get(i), userId, flags, restoreconNeeded); + prepareAppDataLeafLIF(pkg.childPackages.get(i), userId, flags); } } - private void prepareAppDataLeafLIF(PackageParser.Package pkg, int userId, int flags, - boolean restoreconNeeded) { + private void prepareAppDataLeafLIF(PackageParser.Package pkg, int userId, int flags) { if (DEBUG_APP_DATA) { Slog.v(TAG, "prepareAppData for " + pkg.packageName + " u" + userId + " 0x" - + Integer.toHexString(flags) + (restoreconNeeded ? " restoreconNeeded" : "")); + + Integer.toHexString(flags)); } final String volumeUuid = pkg.volumeUuid; @@ -19967,15 +19948,6 @@ Slog.v(TAG, ":: stepped forward, applying functor at tag " + parser.getName()); } } - if (restoreconNeeded) { - try { - mInstaller.restoreconAppData(volumeUuid, packageName, userId, flags, appId, - app.seinfo); - } catch (InstallerException e) { - Slog.e(TAG, "Failed to restorecon for " + packageName + ": " + e); - } - } - if ((flags & StorageManager.FLAG_STORAGE_CE) != 0) { try { // CE storage is unlocked right now, so read out the inode and diff --git a/services/core/java/com/android/server/pm/SELinuxMMAC.java b/services/core/java/com/android/server/pm/SELinuxMMAC.java index 89705560db7d..2176eb164b51 100644 --- a/services/core/java/com/android/server/pm/SELinuxMMAC.java +++ b/services/core/java/com/android/server/pm/SELinuxMMAC.java @@ -19,10 +19,6 @@ package com.android.server.pm; import android.content.pm.PackageParser; import android.content.pm.Signature; import android.os.Environment; -import android.os.SystemProperties; -import android.system.ErrnoException; -import android.system.Os; -import android.system.OsConstants; import android.util.Slog; import android.util.Xml; @@ -34,10 +30,7 @@ import org.xmlpull.v1.XmlPullParserException; import java.io.File; import java.io.FileReader; import java.io.IOException; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; @@ -65,24 +58,10 @@ public final class SELinuxMMAC { // to synchronize access during policy load and access attempts. private static List sPolicies = new ArrayList<>(); - private static final String PROP_FORCE_RESTORECON = "sys.force_restorecon"; - - /** Path to version on rootfs */ - private static final File VERSION_FILE = new File("/selinux_version"); - /** Path to MAC permissions on system image */ private static final File MAC_PERMISSIONS = new File(Environment.getRootDirectory(), "/etc/security/mac_permissions.xml"); - /** Path to app contexts on rootfs */ - private static final File SEAPP_CONTEXTS = new File("/seapp_contexts"); - - /** Calculated hash of {@link #SEAPP_CONTEXTS} */ - private static final byte[] SEAPP_CONTEXTS_HASH = returnHash(SEAPP_CONTEXTS); - - /** Attribute where {@link #SEAPP_CONTEXTS_HASH} is stored */ - private static final String XATTR_SEAPP_HASH = "user.seapp_hash"; - // Append privapp to existing seinfo label private static final String PRIVILEGED_APP_STR = ":privapp"; @@ -313,66 +292,6 @@ public final class SELinuxMMAC { "seinfo=" + pkg.applicationInfo.seinfo); } } - - /** - * Determines if a recursive restorecon on the given package data directory - * is needed. It does this by comparing the SHA-1 of the seapp_contexts file - * against the stored hash in an xattr. - *

      - * Note that the xattr isn't in the 'security' namespace, so this should - * only be run on directories owned by the system. - * - * @return Returns true if the restorecon should occur or false otherwise. - */ - public static boolean isRestoreconNeeded(File file) { - // To investigate boot timing, allow a property to always force restorecon - if (SystemProperties.getBoolean(PROP_FORCE_RESTORECON, false)) { - return true; - } - - try { - final byte[] buf = new byte[20]; - final int len = Os.getxattr(file.getAbsolutePath(), XATTR_SEAPP_HASH, buf); - if ((len == 20) && Arrays.equals(SEAPP_CONTEXTS_HASH, buf)) { - return false; - } - } catch (ErrnoException e) { - if (e.errno != OsConstants.ENODATA) { - Slog.e(TAG, "Failed to read seapp hash for " + file, e); - } - } - - return true; - } - - /** - * Stores the SHA-1 of the seapp_contexts into an xattr. - *

      - * Note that the xattr isn't in the 'security' namespace, so this should - * only be run on directories owned by the system. - */ - public static void setRestoreconDone(File file) { - try { - Os.setxattr(file.getAbsolutePath(), XATTR_SEAPP_HASH, SEAPP_CONTEXTS_HASH, 0); - } catch (ErrnoException e) { - Slog.e(TAG, "Failed to persist seapp hash in " + file, e); - } - } - - /** - * Return the SHA-1 of a file. - * - * @param file The path to the file given as a string. - * @return Returns the SHA-1 of the file as a byte array. - */ - private static byte[] returnHash(File file) { - try { - final byte[] contents = IoUtils.readFileAsByteArray(file.getAbsolutePath()); - return MessageDigest.getInstance("SHA-1").digest(contents); - } catch (IOException | NoSuchAlgorithmException e) { - throw new RuntimeException(e); - } - } } /** -- GitLab From 52f179fd0eebf6452b2ab2844cfe83bd3ec356b8 Mon Sep 17 00:00:00 2001 From: Todd Kennedy Date: Wed, 21 Sep 2016 15:53:50 -0700 Subject: [PATCH 501/809] Pass url to the AIA supervisor The supervisor needs the URL in order to start the correct AIA. Change-Id: Ied9b50031b31f6da07196efbccbb27cacda1355f Fixes: 31664252 Test: manually ran through ephemeral scenario --- services/core/java/com/android/server/am/ActivityStarter.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/am/ActivityStarter.java b/services/core/java/com/android/server/am/ActivityStarter.java index cec37d850e18..06d8e4875e0a 100644 --- a/services/core/java/com/android/server/am/ActivityStarter.java +++ b/services/core/java/com/android/server/am/ActivityStarter.java @@ -544,9 +544,7 @@ class ActivityStarter { ephemeralIntent.setPackage(ephemeralPackage); } else { // Success intent goes back to the installer - // TODO; do we need any extras for the installer? ephemeralIntent = new Intent(launchIntent); - ephemeralIntent.setData(null); } // Intent that is eventually launched if the ephemeral package was @@ -571,7 +569,7 @@ class ActivityStarter { intent.putExtra(Intent.EXTRA_EPHEMERAL_FAILURE, new IntentSender(failureIntentTarget)); intent.putExtra(Intent.EXTRA_EPHEMERAL_SUCCESS, new IntentSender(successIntentTarget)); // TODO: Remove when the platform has fully implemented ephemeral apps - intent.setData(origIntent.getData()); + intent.setData(origIntent.getData().buildUpon().clearQuery().build()); return intent; } -- GitLab From 705442fa7dcbf1bf92595fdaca6cc888810931d8 Mon Sep 17 00:00:00 2001 From: Selim Cinek Date: Tue, 13 Sep 2016 16:02:33 -0700 Subject: [PATCH 502/809] Added Emergency affordance feature Added a service that listens whether emergency affordances are necessary. If the they are needed, it adds an option to the global actions dialog that directly launches the emergency call and also adds a long-press listener to the keyguard emergency button. Test: adb shell settings put global force_emergency_affordance 1 && adb shell settings put global emergency_affordance_number 111112 Fixes: 30404490 Change-Id: Ib96a15da2ef4b568a8d77140ebca6aa6f20f5ddb --- core/java/android/provider/Settings.java | 8 +- .../policy/EmergencyAffordanceManager.java | 101 ++++++ core/res/res/drawable/emergency_icon.xml | 40 +++ core/res/res/values/config.xml | 10 + core/res/res/values/strings.xml | 3 + core/res/res/values/symbols.xml | 6 + .../com/android/keyguard/EmergencyButton.java | 43 +++ .../emergency/EmergencyAffordanceService.java | 312 ++++++++++++++++++ .../android/server/policy/GlobalActions.java | 29 +- .../java/com/android/server/SystemServer.java | 9 +- 10 files changed, 557 insertions(+), 4 deletions(-) create mode 100644 core/java/com/android/internal/policy/EmergencyAffordanceManager.java create mode 100644 core/res/res/drawable/emergency_icon.xml create mode 100644 services/core/java/com/android/server/emergency/EmergencyAffordanceService.java diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 79f11513e798..6b7ccac116fe 100755 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -44,7 +44,6 @@ import android.net.ConnectivityManager; import android.net.Uri; import android.net.wifi.WifiManager; import android.os.BatteryManager; -import android.os.Binder; import android.os.Bundle; import android.os.DropBoxManager; import android.os.IBinder; @@ -8306,6 +8305,13 @@ public final class Settings { */ public static final String CALL_AUTO_RETRY = "call_auto_retry"; + /** + * A setting that can be read whether the emergency affordance is currently needed. + * The value is a boolean (1 or 0). + * @hide + */ + public static final String EMERGENCY_AFFORDANCE_NEEDED = "emergency_affordance_needed"; + /** * See RIL_PreferredNetworkType in ril.h * @hide diff --git a/core/java/com/android/internal/policy/EmergencyAffordanceManager.java b/core/java/com/android/internal/policy/EmergencyAffordanceManager.java new file mode 100644 index 000000000000..bed7c1ba4ed3 --- /dev/null +++ b/core/java/com/android/internal/policy/EmergencyAffordanceManager.java @@ -0,0 +1,101 @@ +/* + * Copyright (C) 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 + */ + +package com.android.internal.policy; + +import android.content.Context; +import android.content.Intent; +import android.net.Uri; +import android.os.Build; +import android.provider.Settings; + +/** + * A class that manages emergency affordances and enables immediate calling to emergency services + */ +public class EmergencyAffordanceManager { + + public static final boolean ENABLED = true; + + /** + * Global setting override with the number to call with the emergency affordance. + * @hide + */ + private static final String EMERGENCY_CALL_NUMBER_SETTING = "emergency_affordance_number"; + + /** + * Global setting, whether the emergency affordance should be shown regardless of device state. + * The value is a boolean (1 or 0). + * @hide + */ + private static final String FORCE_EMERGENCY_AFFORDANCE_SETTING = "force_emergency_affordance"; + + private final Context mContext; + + public EmergencyAffordanceManager(Context context) { + mContext = context; + } + + /** + * perform an emergency call. + */ + public final void performEmergencyCall() { + performEmergencyCall(mContext); + } + + private static Uri getPhoneUri(Context context) { + String number = context.getResources().getString( + com.android.internal.R.string.config_emergency_call_number); + if (Build.IS_DEBUGGABLE) { + String override = Settings.Global.getString( + context.getContentResolver(), EMERGENCY_CALL_NUMBER_SETTING); + if (override != null) { + number = override; + } + } + return Uri.fromParts("tel", number, null); + } + + private static void performEmergencyCall(Context context) { + Intent intent = new Intent(Intent.ACTION_CALL_EMERGENCY); + intent.setData(getPhoneUri(context)); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + context.startActivity(intent); + } + + /** + * @return whether emergency affordance should be active. + */ + public boolean needsEmergencyAffordance() { + if (!ENABLED) { + return false; + } + if (forceShowing()) { + return true; + } + return isEmergencyAffordanceNeeded(); + } + + private boolean isEmergencyAffordanceNeeded() { + return Settings.Global.getInt(mContext.getContentResolver(), + Settings.Global.EMERGENCY_AFFORDANCE_NEEDED, 0) != 0; + } + + + private boolean forceShowing() { + return Settings.Global.getInt(mContext.getContentResolver(), + FORCE_EMERGENCY_AFFORDANCE_SETTING, 0) != 0; + } +} diff --git a/core/res/res/drawable/emergency_icon.xml b/core/res/res/drawable/emergency_icon.xml new file mode 100644 index 000000000000..b2ffa2b4481c --- /dev/null +++ b/core/res/res/drawable/emergency_icon.xml @@ -0,0 +1,40 @@ + + + + + + + + + diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index 004b31f3a3ae..c45452b493be 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -2521,6 +2521,16 @@ false + + 112 + + + + 404 + 405 + + diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml index 39f20c2f5aa9..af21f9202edf 100644 --- a/core/res/res/values/strings.xml +++ b/core/res/res/values/strings.xml @@ -486,6 +486,9 @@ @string/sim_restart_button + + Emergency + Bug report diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index 39127a43f0a3..90f9396b0172 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -2663,6 +2663,10 @@ + + + + @@ -2699,5 +2703,7 @@ + + diff --git a/packages/Keyguard/src/com/android/keyguard/EmergencyButton.java b/packages/Keyguard/src/com/android/keyguard/EmergencyButton.java index 8d411453b5ae..0474df7bd89c 100644 --- a/packages/Keyguard/src/com/android/keyguard/EmergencyButton.java +++ b/packages/Keyguard/src/com/android/keyguard/EmergencyButton.java @@ -28,13 +28,16 @@ import android.os.UserHandle; import android.telecom.TelecomManager; import android.util.AttributeSet; import android.util.Slog; +import android.view.MotionEvent; import android.view.View; +import android.view.ViewConfiguration; import android.widget.Button; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.MetricsProto.MetricsEvent; import com.android.internal.telephony.IccCardConstants.State; import com.android.internal.widget.LockPatternUtils; +import com.android.internal.policy.EmergencyAffordanceManager; /** * This class implements a smart emergency button that updates itself based @@ -51,7 +54,10 @@ public class EmergencyButton extends Button { | Intent.FLAG_ACTIVITY_CLEAR_TOP); private static final String LOG_TAG = "EmergencyButton"; + private final EmergencyAffordanceManager mEmergencyAffordanceManager; + private int mDownX; + private int mDownY; KeyguardUpdateMonitorCallback mInfoCallback = new KeyguardUpdateMonitorCallback() { @Override @@ -64,6 +70,7 @@ public class EmergencyButton extends Button { updateEmergencyCallButton(); } }; + private boolean mLongPressWasDragged; public interface EmergencyButtonCallback { public void onEmergencyButtonClickedWhenInCall(); @@ -86,6 +93,7 @@ public class EmergencyButton extends Button { com.android.internal.R.bool.config_voice_capable); mEnableEmergencyCallWhileSimLocked = mContext.getResources().getBoolean( com.android.internal.R.bool.config_enable_emergency_call_while_sim_locked); + mEmergencyAffordanceManager = new EmergencyAffordanceManager(context); } @Override @@ -110,9 +118,44 @@ public class EmergencyButton extends Button { takeEmergencyCallAction(); } }); + setOnLongClickListener(new OnLongClickListener() { + @Override + public boolean onLongClick(View v) { + if (!mLongPressWasDragged + && mEmergencyAffordanceManager.needsEmergencyAffordance()) { + mEmergencyAffordanceManager.performEmergencyCall(); + return true; + } + return false; + } + }); updateEmergencyCallButton(); } + @Override + public boolean onTouchEvent(MotionEvent event) { + final int x = (int) event.getX(); + final int y = (int) event.getY(); + if (event.getActionMasked() == MotionEvent.ACTION_DOWN) { + mDownX = x; + mDownY = y; + mLongPressWasDragged = false; + } else { + final int xDiff = Math.abs(x - mDownX); + final int yDiff = Math.abs(y - mDownY); + int touchSlop = ViewConfiguration.get(mContext).getScaledTouchSlop(); + if (Math.abs(yDiff) > touchSlop || Math.abs(xDiff) > touchSlop) { + mLongPressWasDragged = true; + } + } + return super.onTouchEvent(event); + } + + @Override + public boolean performLongClick() { + return super.performLongClick(); + } + @Override protected void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); diff --git a/services/core/java/com/android/server/emergency/EmergencyAffordanceService.java b/services/core/java/com/android/server/emergency/EmergencyAffordanceService.java new file mode 100644 index 000000000000..cca9f10c630b --- /dev/null +++ b/services/core/java/com/android/server/emergency/EmergencyAffordanceService.java @@ -0,0 +1,312 @@ +/* + * Copyright (C) 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 + */ + +package com.android.server.emergency; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.os.Handler; +import android.os.HandlerThread; +import android.os.Looper; +import android.os.Message; +import android.provider.Settings; +import android.telephony.CellInfo; +import android.telephony.CellInfoGsm; +import android.telephony.CellInfoLte; +import android.telephony.CellInfoWcdma; +import android.telephony.CellLocation; +import android.telephony.PhoneStateListener; +import android.telephony.SubscriptionInfo; +import android.telephony.SubscriptionManager; +import android.telephony.TelephonyManager; + +import com.android.server.SystemService; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +/** + * A service that listens to connectivity and SIM card changes and determines if the emergency mode + * should be enabled + */ +public class EmergencyAffordanceService extends SystemService { + + private static final String TAG = "EmergencyAffordanceService"; + + private static final int NUM_SCANS_UNTIL_ABORT = 4; + + private static final int INITIALIZE_STATE = 1; + private static final int CELL_INFO_STATE_CHANGED = 2; + private static final int SUBSCRIPTION_CHANGED = 3; + + /** + * Global setting, whether the last scan of the sim cards reveal that a sim was inserted that + * requires the emergency affordance. The value is a boolean (1 or 0). + * @hide + */ + private static final String EMERGENCY_SIM_INSERTED_SETTING = "emergency_sim_inserted_before"; + + private final Context mContext; + private final ArrayList mEmergencyCallMccNumbers; + + private final Object mLock = new Object(); + + private TelephonyManager mTelephonyManager; + private SubscriptionManager mSubscriptionManager; + private boolean mEmergencyAffordanceNeeded; + private MyHandler mHandler; + private int mScansCompleted; + private PhoneStateListener mPhoneStateListener = new PhoneStateListener() { + @Override + public void onCellInfoChanged(List cellInfo) { + if (!isEmergencyAffordanceNeeded()) { + requestCellScan(); + } + } + + @Override + public void onCellLocationChanged(CellLocation location) { + if (!isEmergencyAffordanceNeeded()) { + requestCellScan(); + } + } + }; + private BroadcastReceiver mAirplaneModeReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + if (Settings.Global.getInt(context.getContentResolver(), + Settings.Global.AIRPLANE_MODE_ON, 0) == 0) { + startScanning(); + requestCellScan(); + } + } + }; + private boolean mSimNeedsEmergencyAffordance; + private boolean mNetworkNeedsEmergencyAffordance; + + private void requestCellScan() { + mHandler.obtainMessage(CELL_INFO_STATE_CHANGED).sendToTarget(); + } + + private SubscriptionManager.OnSubscriptionsChangedListener mSubscriptionChangedListener + = new SubscriptionManager.OnSubscriptionsChangedListener() { + @Override + public void onSubscriptionsChanged() { + mHandler.obtainMessage(SUBSCRIPTION_CHANGED).sendToTarget(); + } + }; + + public EmergencyAffordanceService(Context context) { + super(context); + mContext = context; + int[] numbers = context.getResources().getIntArray( + com.android.internal.R.array.config_emergency_mcc_codes); + mEmergencyCallMccNumbers = new ArrayList<>(numbers.length); + for (int i = 0; i < numbers.length; i++) { + mEmergencyCallMccNumbers.add(numbers[i]); + } + } + + private void updateEmergencyAffordanceNeeded() { + synchronized (mLock) { + mEmergencyAffordanceNeeded = mSimNeedsEmergencyAffordance || + mNetworkNeedsEmergencyAffordance; + Settings.Global.putInt(mContext.getContentResolver(), + Settings.Global.EMERGENCY_AFFORDANCE_NEEDED, + mEmergencyAffordanceNeeded ? 1 : 0); + if (mEmergencyAffordanceNeeded) { + stopScanning(); + } + } + } + + private void stopScanning() { + synchronized (mLock) { + mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE); + mScansCompleted = 0; + } + } + + private boolean isEmergencyAffordanceNeeded() { + synchronized (mLock) { + return mEmergencyAffordanceNeeded; + } + } + + @Override + public void onStart() { + } + + @Override + public void onBootPhase(int phase) { + if (phase == PHASE_THIRD_PARTY_APPS_CAN_START) { + mTelephonyManager = mContext.getSystemService(TelephonyManager.class); + mSubscriptionManager = SubscriptionManager.from(mContext); + HandlerThread thread = new HandlerThread(TAG); + thread.start(); + mHandler = new MyHandler(thread.getLooper()); + mHandler.obtainMessage(INITIALIZE_STATE).sendToTarget(); + startScanning(); + IntentFilter filter = new IntentFilter(Intent.ACTION_AIRPLANE_MODE_CHANGED); + mContext.registerReceiver(mAirplaneModeReceiver, filter); + mSubscriptionManager.addOnSubscriptionsChangedListener(mSubscriptionChangedListener); + } + } + + private void startScanning() { + mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CELL_INFO + | PhoneStateListener.LISTEN_CELL_LOCATION); + } + + /** Handler to do the heavier work on */ + private class MyHandler extends Handler { + + public MyHandler(Looper l) { + super(l); + } + + @Override + public void handleMessage(Message msg) { + switch (msg.what) { + case INITIALIZE_STATE: + handleInitializeState(); + break; + case CELL_INFO_STATE_CHANGED: + handleUpdateCellInfo(); + break; + case SUBSCRIPTION_CHANGED: + handleUpdateSimSubscriptionInfo(); + break; + } + } + } + + private void handleInitializeState() { + if (handleUpdateSimSubscriptionInfo()) { + return; + } + if (handleUpdateCellInfo()) { + return; + } + updateEmergencyAffordanceNeeded(); + } + + private boolean handleUpdateSimSubscriptionInfo() { + boolean neededBefore = simNeededAffordanceBefore(); + boolean neededNow = neededBefore; + List activeSubscriptionInfoList = + mSubscriptionManager.getActiveSubscriptionInfoList(); + if (activeSubscriptionInfoList == null) { + return neededNow; + } + for (SubscriptionInfo info : activeSubscriptionInfoList) { + int mcc = info.getMcc(); + if (mccRequiresEmergencyAffordance(mcc)) { + neededNow = true; + break; + } else if (mcc != 0 && mcc != Integer.MAX_VALUE){ + // a Sim with a different mcc code was found + neededNow = false; + } + String simOperator = mTelephonyManager.getSimOperator(info.getSubscriptionId()); + mcc = 0; + if (simOperator != null && simOperator.length() >= 3) { + mcc = Integer.parseInt(simOperator.substring(0, 3)); + } + if (mcc != 0) { + if (mccRequiresEmergencyAffordance(mcc)) { + neededNow = true; + break; + } else { + // a Sim with a different mcc code was found + neededNow = false; + } + } + } + if (neededNow != neededBefore) { + setSimNeedsEmergencyAffordance(neededNow); + } + return neededNow; + } + + private void setSimNeedsEmergencyAffordance(boolean simNeedsEmergencyAffordance) { + mSimNeedsEmergencyAffordance = simNeedsEmergencyAffordance; + Settings.Global.putInt(mContext.getContentResolver(), + EMERGENCY_SIM_INSERTED_SETTING, + simNeedsEmergencyAffordance ? 1 : 0); + updateEmergencyAffordanceNeeded(); + } + + private boolean simNeededAffordanceBefore() { + return Settings.Global.getInt(mContext.getContentResolver(), + "emergency_sim_inserted_before", 0) != 0; + } + + private boolean handleUpdateCellInfo() { + List cellInfos = mTelephonyManager.getAllCellInfo(); + if (cellInfos == null) { + return false; + } + boolean stopScanningAfterScan = false; + for (CellInfo cellInfo : cellInfos) { + int mcc = 0; + if (cellInfo instanceof CellInfoGsm) { + mcc = ((CellInfoGsm) cellInfo).getCellIdentity().getMcc(); + } else if (cellInfo instanceof CellInfoLte) { + mcc = ((CellInfoLte) cellInfo).getCellIdentity().getMcc(); + } else if (cellInfo instanceof CellInfoWcdma) { + mcc = ((CellInfoWcdma) cellInfo).getCellIdentity().getMcc(); + } + if (mccRequiresEmergencyAffordance(mcc)) { + setNetworkNeedsEmergencyAffordance(true); + return true; + } else if (mcc != 0 && mcc != Integer.MAX_VALUE) { + // we found an mcc that isn't in the list, abort + stopScanningAfterScan = true; + } + } + if (stopScanningAfterScan) { + stopScanning(); + } else { + onCellScanFinishedUnsuccessful(); + } + setNetworkNeedsEmergencyAffordance(false); + return false; + } + + private void setNetworkNeedsEmergencyAffordance(boolean needsAffordance) { + synchronized (mLock) { + mNetworkNeedsEmergencyAffordance = needsAffordance; + updateEmergencyAffordanceNeeded(); + } + } + + private void onCellScanFinishedUnsuccessful() { + synchronized (mLock) { + mScansCompleted++; + if (mScansCompleted >= NUM_SCANS_UNTIL_ABORT) { + stopScanning(); + } + } + } + + private boolean mccRequiresEmergencyAffordance(int mcc) { + return mEmergencyCallMccNumbers.contains(mcc); + } +} diff --git a/services/core/java/com/android/server/policy/GlobalActions.java b/services/core/java/com/android/server/policy/GlobalActions.java index bb91f76ecf30..a8bd4d289616 100644 --- a/services/core/java/com/android/server/policy/GlobalActions.java +++ b/services/core/java/com/android/server/policy/GlobalActions.java @@ -20,6 +20,7 @@ import com.android.internal.app.AlertController; import com.android.internal.app.AlertController.AlertParams; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.MetricsProto.MetricsEvent; +import com.android.internal.policy.EmergencyAffordanceManager; import com.android.internal.telephony.TelephonyIntents; import com.android.internal.telephony.TelephonyProperties; import com.android.internal.R; @@ -27,7 +28,6 @@ import com.android.internal.widget.LockPatternUtils; import android.app.ActivityManager; import android.app.ActivityManagerNative; -import android.app.AlertDialog; import android.app.Dialog; import android.content.BroadcastReceiver; import android.content.Context; @@ -125,6 +125,7 @@ class GlobalActions implements DialogInterface.OnDismissListener, DialogInterfac private boolean mHasTelephony; private boolean mHasVibrator; private final boolean mShowSilentToggle; + private final EmergencyAffordanceManager mEmergencyAffordanceManager; /** * @param context everything needs a context :( @@ -159,6 +160,8 @@ class GlobalActions implements DialogInterface.OnDismissListener, DialogInterfac mShowSilentToggle = SHOW_SILENT_TOGGLE && !mContext.getResources().getBoolean( com.android.internal.R.bool.config_useFixedVolume); + + mEmergencyAffordanceManager = new EmergencyAffordanceManager(context); } /** @@ -308,6 +311,10 @@ class GlobalActions implements DialogInterface.OnDismissListener, DialogInterfac addedKeys.add(actionKey); } + if (mEmergencyAffordanceManager.needsEmergencyAffordance()) { + mItems.add(getEmergencyAction()); + } + mAdapter = new MyAdapter(); AlertParams params = new AlertParams(mContext); @@ -493,6 +500,26 @@ class GlobalActions implements DialogInterface.OnDismissListener, DialogInterfac }; } + private Action getEmergencyAction() { + return new SinglePressAction(com.android.internal.R.drawable.emergency_icon, + R.string.global_action_emergency) { + @Override + public void onPress() { + mEmergencyAffordanceManager.performEmergencyCall(); + } + + @Override + public boolean showDuringKeyguard() { + return true; + } + + @Override + public boolean showBeforeProvisioning() { + return true; + } + }; + } + private Action getAssistAction() { return new SinglePressAction(com.android.internal.R.drawable.ic_action_assist_focused, R.string.global_action_assist) { diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java index 97a829ecac46..a18d5e9c569f 100644 --- a/services/java/com/android/server/SystemServer.java +++ b/services/java/com/android/server/SystemServer.java @@ -16,7 +16,6 @@ package com.android.server; -import android.app.ActivityManagerNative; import android.app.ActivityThread; import android.app.INotificationManager; import android.app.usage.UsageStatsManagerInternal; @@ -32,7 +31,6 @@ import android.os.Build; import android.os.Environment; import android.os.FactoryTest; import android.os.FileUtils; -import android.os.IPowerManager; import android.os.Looper; import android.os.PowerManager; import android.os.RemoteException; @@ -55,6 +53,7 @@ import com.android.internal.app.NightDisplayController; import com.android.internal.os.BinderInternal; import com.android.internal.os.SamplingProfilerIntegration; import com.android.internal.os.ZygoteInit; +import com.android.internal.policy.EmergencyAffordanceManager; import com.android.internal.widget.ILockSettings; import com.android.server.accessibility.AccessibilityManagerService; import com.android.server.am.ActivityManagerService; @@ -66,6 +65,7 @@ import com.android.server.devicepolicy.DevicePolicyManagerService; import com.android.server.display.DisplayManagerService; import com.android.server.display.NightDisplayService; import com.android.server.dreams.DreamManagerService; +import com.android.server.emergency.EmergencyAffordanceService; import com.android.server.fingerprint.FingerprintService; import com.android.server.hdmi.HdmiControlService; import com.android.server.input.InputManagerService; @@ -1080,6 +1080,11 @@ public final class SystemServer { Trace.traceEnd(Trace.TRACE_TAG_SYSTEM_SERVER); } + if (!disableNetwork && !disableNonCoreServices && EmergencyAffordanceManager.ENABLED) { + // EmergencyMode sevice + mSystemServiceManager.startService(EmergencyAffordanceService.class); + } + if (!disableNonCoreServices) { // Dreams (interactive idle-time views, a/k/a screen savers, and doze mode) mSystemServiceManager.startService(DreamManagerService.class); -- GitLab From bd53a314f454e37687ceebe0dc5574bd49c47254 Mon Sep 17 00:00:00 2001 From: Winson Date: Wed, 21 Sep 2016 12:13:32 -0700 Subject: [PATCH 503/809] Defer launching next task until after first layout. Bug: 30192607 Change-Id: I04cd182a795ea9600c9782056dc0adbe9a288af6 --- .../systemui/recents/views/TaskStackView.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java index 24e75ac981cf..2715971db9c3 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java +++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java @@ -164,6 +164,8 @@ public class TaskStackView extends FrameLayout implements TaskStack.TaskStackCal @ViewDebug.ExportedProperty(category="recents") private boolean mAwaitingFirstLayout = true; @ViewDebug.ExportedProperty(category="recents") + private boolean mLaunchNextAfterFirstMeasure = false; + @ViewDebug.ExportedProperty(category="recents") @InitialStateAction private int mInitialState = INITIAL_STATE_UPDATE_ALL; @ViewDebug.ExportedProperty(category="recents") @@ -336,6 +338,7 @@ public class TaskStackView extends FrameLayout implements TaskStack.TaskStackCal // Since we always animate to the same place in (the initial state), always reset the stack // to the initial state when resuming mAwaitingFirstLayout = true; + mLaunchNextAfterFirstMeasure = false; mInitialState = INITIAL_STATE_UPDATE_ALL; requestLayout(); } @@ -1223,6 +1226,12 @@ public class TaskStackView extends FrameLayout implements TaskStack.TaskStackCal mInitialState = INITIAL_STATE_UPDATE_NONE; } } + // If we got the launch-next event before the first layout pass, then re-send it after the + // initial state has been updated + if (mLaunchNextAfterFirstMeasure) { + mLaunchNextAfterFirstMeasure = false; + EventBus.getDefault().post(new LaunchNextTaskRequestEvent()); + } // Rebind all the views, including the ignore ones bindVisibleTaskViews(mStackScroller.getStackScroll(), false /* ignoreTaskOverrides */); @@ -1665,6 +1674,11 @@ public class TaskStackView extends FrameLayout implements TaskStack.TaskStackCal } public final void onBusEvent(LaunchNextTaskRequestEvent event) { + if (mAwaitingFirstLayout) { + mLaunchNextAfterFirstMeasure = true; + return; + } + int launchTaskIndex = mStack.indexOfStackTask(mStack.getLaunchTarget()); if (launchTaskIndex != -1) { launchTaskIndex = Math.max(0, launchTaskIndex - 1); -- GitLab From 96f78f50464a0f394802ff0709ba7276976ef275 Mon Sep 17 00:00:00 2001 From: Winson Date: Wed, 21 Sep 2016 12:14:16 -0700 Subject: [PATCH 504/809] Fixing RTL issues with transition and screen pinning. Bug: 31367531 Change-Id: Id790293cc5246535d6fb829ec57e4ee640fea1a2 --- packages/SystemUI/res/layout/recents_task_view.xml | 4 ++-- .../src/com/android/systemui/recents/RecentsImpl.java | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/SystemUI/res/layout/recents_task_view.xml b/packages/SystemUI/res/layout/recents_task_view.xml index 1978a930b199..c8e5b6124196 100644 --- a/packages/SystemUI/res/layout/recents_task_view.xml +++ b/packages/SystemUI/res/layout/recents_task_view.xml @@ -30,8 +30,8 @@ android:id="@+id/lock_to_app_fab" android:layout_width="@dimen/recents_lock_to_app_size" android:layout_height="@dimen/recents_lock_to_app_size" - android:layout_gravity="bottom|right" - android:layout_marginRight="15dp" + android:layout_gravity="bottom|end" + android:layout_marginEnd="15dp" android:layout_marginBottom="15dp" android:translationZ="4dp" android:contentDescription="@string/recents_lock_to_app_button_label" diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java index ab4c811f6a06..a4129660da84 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java +++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java @@ -205,9 +205,17 @@ public class RecentsImpl implements ActivityOptions.OnAnimationFinishedListener } public void onConfigurationChanged() { + Resources res = mContext.getResources(); reloadResources(); mDummyStackView.reloadOnConfigurationChange(); + // Update the header bar direction directly as it is not attached to anything and does not + // layout except in updateHeaderBarLayout() + mHeaderBar.setLayoutDirection(res.getConfiguration().getLayoutDirection()); mHeaderBar.onConfigurationChanged(); + mHeaderBar.forceLayout(); + mHeaderBar.measure( + MeasureSpec.makeMeasureSpec(mHeaderBar.getMeasuredWidth(), MeasureSpec.EXACTLY), + MeasureSpec.makeMeasureSpec(mHeaderBar.getMeasuredHeight(), MeasureSpec.EXACTLY)); } /** @@ -626,6 +634,7 @@ public class RecentsImpl implements ActivityOptions.OnAnimationFinishedListener synchronized (mHeaderBarLock) { if (mHeaderBar.getMeasuredWidth() != taskViewWidth || mHeaderBar.getMeasuredHeight() != mTaskBarHeight) { + mHeaderBar.forceLayout(); mHeaderBar.measure( MeasureSpec.makeMeasureSpec(taskViewWidth, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(mTaskBarHeight, MeasureSpec.EXACTLY)); -- GitLab From ffaf07fed04dfdaa4f28eebb7345a286752ebbf0 Mon Sep 17 00:00:00 2001 From: Winson Date: Wed, 21 Sep 2016 12:13:55 -0700 Subject: [PATCH 505/809] Fixing index bounds exception when TaskViews are added while dismissing. Bug: 31518216 Change-Id: I749aa45f54d80d524f069922ac09d2f781c87f86 --- .../systemui/recents/views/TaskStackViewTouchHandler.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackViewTouchHandler.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackViewTouchHandler.java index 67a2595c90cd..d44aa844003f 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackViewTouchHandler.java +++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackViewTouchHandler.java @@ -634,6 +634,12 @@ class TaskStackViewTouchHandler implements SwipeHelper.Callback { } int taskIndex = mCurrentTasks.indexOf(task); + if (taskIndex == -1) { + // If a task was added to the stack view after the start of the dismiss gesture, + // just ignore it + continue; + } + TaskViewTransform fromTransform = mCurrentTaskTransforms.get(taskIndex); TaskViewTransform toTransform = mFinalTaskTransforms.get(taskIndex); -- GitLab From c7dda10ee987377053781bf809e68c15e513cab0 Mon Sep 17 00:00:00 2001 From: Pavlin Radoslavov Date: Wed, 21 Sep 2016 17:28:11 -0700 Subject: [PATCH 506/809] Removed MESSAGE_BIND_PROFILE_SERVICE messages on unbind Add a missing call to remove all MESSAGE_BIND_PROFILE_SERVICE message when unbinding and finishing. Bug: 31442739 Test: manual, and "frameworks/base/core/tests/bluetoothtests" unit tests Change-Id: I7e9a8f79a38d4eb8ab8b53be04650226fc72732e (cherry picked from commit 2bbe13ebccb163c03fd6e74c4450dfd3a43b3984) --- .../core/java/com/android/server/BluetoothManagerService.java | 1 + 1 file changed, 1 insertion(+) diff --git a/services/core/java/com/android/server/BluetoothManagerService.java b/services/core/java/com/android/server/BluetoothManagerService.java index 89fdfaf30559..0f8db2e65659 100644 --- a/services/core/java/com/android/server/BluetoothManagerService.java +++ b/services/core/java/com/android/server/BluetoothManagerService.java @@ -707,6 +707,7 @@ class BluetoothManagerService extends IBluetoothManager.Stub { if (mUnbinding) return; mUnbinding = true; mHandler.removeMessages(MESSAGE_BLUETOOTH_STATE_CHANGE); + mHandler.removeMessages(MESSAGE_BIND_PROFILE_SERVICE); if (mBluetooth != null) { //Unregister callback object try { -- GitLab From f5d1e35316fcd027e60655b7ca6ca6341ed1e0ec Mon Sep 17 00:00:00 2001 From: Wale Ogunwale Date: Thu, 22 Sep 2016 08:34:42 -0700 Subject: [PATCH 507/809] Don't take app screenshot in minimize docked stack. When the docked stack is minimized its app windows are cropped significantly so any screenshot taken will not display the apps contain. So, we avoid taking a screenshot in that case. This situation is going to be improve some in O when we switch recents to also use saved surfaces in which cases it will be able to display the last app content the user saw vs. just the app's background color. Bug: 29830173 Change-Id: I003aa074126ddcb57d5ff6dda756293146646196 --- .../com/android/server/am/ActivityStack.java | 40 ++++++++++++------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/services/core/java/com/android/server/am/ActivityStack.java b/services/core/java/com/android/server/am/ActivityStack.java index 60d3d1ec349b..1b552b5375e7 100644 --- a/services/core/java/com/android/server/am/ActivityStack.java +++ b/services/core/java/com/android/server/am/ActivityStack.java @@ -29,6 +29,7 @@ import static android.content.pm.ActivityInfo.CONFIG_SMALLEST_SCREEN_SIZE; import static android.content.pm.ActivityInfo.FLAG_RESUME_WHILE_PAUSING; import static android.content.pm.ActivityInfo.FLAG_SHOW_FOR_ALL_USERS; import static android.content.res.Configuration.SCREENLAYOUT_UNDEFINED; +import static android.view.Display.DEFAULT_DISPLAY; import static com.android.server.am.ActivityManagerDebugConfig.DEBUG_ADD_REMOVE; import static com.android.server.am.ActivityManagerDebugConfig.DEBUG_ALL; import static com.android.server.am.ActivityManagerDebugConfig.DEBUG_APP; @@ -68,6 +69,7 @@ import static com.android.server.am.ActivityManagerDebugConfig.POSTFIX_VISIBILIT import static com.android.server.am.ActivityManagerDebugConfig.TAG_AM; import static com.android.server.am.ActivityManagerDebugConfig.TAG_WITH_CLASS_NAME; import static com.android.server.am.ActivityManagerService.LOCK_SCREEN_SHOWN; +import static com.android.server.am.ActivityManagerService.TAKE_FULLSCREEN_SCREENSHOTS; import static com.android.server.am.ActivityRecord.APPLICATION_ACTIVITY_TYPE; import static com.android.server.am.ActivityRecord.HOME_ACTIVITY_TYPE; import static com.android.server.am.ActivityRecord.STARTING_WINDOW_REMOVED; @@ -669,7 +671,7 @@ final class ActivityStack { final boolean isOnHomeDisplay() { return isAttached() && - mActivityContainer.mActivityDisplay.mDisplayId == Display.DEFAULT_DISPLAY; + mActivityContainer.mActivityDisplay.mDisplayId == DEFAULT_DISPLAY; } void moveToFront(String reason) { @@ -1041,22 +1043,32 @@ final class ActivityStack { int w = mService.mThumbnailWidth; int h = mService.mThumbnailHeight; + + if (w <= 0) { + Slog.e(TAG, "\tInvalid thumbnail dimensions: " + w + "x" + h); + return null; + } + + if (mStackId == DOCKED_STACK_ID && mStackSupervisor.mIsDockMinimized) { + // When the docked stack is minimized its app windows are cropped significantly so any + // screenshot taken will not display the apps contain. So, we avoid taking a screenshot + // in that case. + if (DEBUG_SCREENSHOTS) Slog.e(TAG, "\tIn minimized docked stack"); + return null; + } + float scale = 1f; - if (w > 0) { - if (DEBUG_SCREENSHOTS) Slog.d(TAG_SCREENSHOTS, "\tTaking screenshot"); + if (DEBUG_SCREENSHOTS) Slog.d(TAG_SCREENSHOTS, "\tTaking screenshot"); - // When this flag is set, we currently take the fullscreen screenshot of the activity - // but scaled to half the size. This gives us a "good-enough" fullscreen thumbnail to - // use within SystemUI while keeping memory usage low. - if (ActivityManagerService.TAKE_FULLSCREEN_SCREENSHOTS) { - w = h = -1; - scale = mService.mFullscreenThumbnailScale; - } - return mWindowManager.screenshotApplications(who.appToken, Display.DEFAULT_DISPLAY, - w, h, scale); + // When this flag is set, we currently take the fullscreen screenshot of the activity but + // scaled to half the size. This gives us a "good-enough" fullscreen thumbnail to use within + // SystemUI while keeping memory usage low. + if (TAKE_FULLSCREEN_SCREENSHOTS) { + w = h = -1; + scale = mService.mFullscreenThumbnailScale; } - Slog.e(TAG, "Invalid thumbnail dimensions: " + w + "x" + h); - return null; + + return mWindowManager.screenshotApplications(who.appToken, DEFAULT_DISPLAY, w, h, scale); } /** -- GitLab From a2bd512034f17ca2a6309ff80bc5ed0ba8660182 Mon Sep 17 00:00:00 2001 From: Christopher Tate Date: Thu, 22 Sep 2016 13:18:05 -0700 Subject: [PATCH 508/809] Fix crash in clearWallpaper() The underlying clearWallpaper() service method demands that only a single kind of wallpaper be specified as the target; but a recent patch attempted to expand the client-side legacy method to apply to all kinds of wallpaper, incorrectly. This patch corrects that client- side code to do things properly. Bug 30456015 Change-Id: I0a881957b881206e5eb775c6879ba90f10f9ffb0 --- core/java/android/app/WallpaperManager.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/java/android/app/WallpaperManager.java b/core/java/android/app/WallpaperManager.java index a7ad6193b0dc..aa0eaaebf975 100644 --- a/core/java/android/app/WallpaperManager.java +++ b/core/java/android/app/WallpaperManager.java @@ -1393,7 +1393,8 @@ public class WallpaperManager { */ @SystemApi public void clearWallpaper() { - clearWallpaper(FLAG_SYSTEM | FLAG_LOCK, mContext.getUserId()); + clearWallpaper(FLAG_LOCK, mContext.getUserId()); + clearWallpaper(FLAG_SYSTEM, mContext.getUserId()); } /** -- GitLab From c67c2a91dde9983d17fbfa582a8fae7d7ba83c8a Mon Sep 17 00:00:00 2001 From: Robert Carr Date: Thu, 22 Sep 2016 13:25:45 -0700 Subject: [PATCH 509/809] Don't halt movement notifications when display is frozen. Halting movement notifications while the display is frozen can result in failure to deliver them in rotation scenarios. Bug: 31313118 Change-Id: I41708ceb10d193fda95cdd715dde0509102dcbbf --- .../core/java/com/android/server/wm/WindowState.java | 2 +- .../com/android/server/wm/WindowSurfacePlacer.java | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java index 1fa0783e0cab..55bf39472b7b 100644 --- a/services/core/java/com/android/server/wm/WindowState.java +++ b/services/core/java/com/android/server/wm/WindowState.java @@ -1418,7 +1418,7 @@ final class WindowState implements WindowManagerPolicy.WindowState { */ boolean hasMoved() { return mHasSurface && (mContentChanged || mMovedByResize) - && !mAnimatingExit && mService.okToDisplay() + && !mAnimatingExit && (mFrame.top != mLastFrame.top || mFrame.left != mLastFrame.left) && (mAttachedWindow == null || !mAttachedWindow.hasMoved()); } diff --git a/services/core/java/com/android/server/wm/WindowSurfacePlacer.java b/services/core/java/com/android/server/wm/WindowSurfacePlacer.java index 5a79da938c60..b8a388d964fd 100644 --- a/services/core/java/com/android/server/wm/WindowSurfacePlacer.java +++ b/services/core/java/com/android/server/wm/WindowSurfacePlacer.java @@ -717,11 +717,13 @@ class WindowSurfacePlacer { final boolean adjustedForMinimizedDockOrIme = task != null && (task.mStack.isAdjustedForMinimizedDockedStack() || task.mStack.isAdjustedForIme()); - if ((w.mAttrs.privateFlags & PRIVATE_FLAG_NO_MOVE_ANIMATION) == 0 - && !w.isDragResizing() && !adjustedForMinimizedDockOrIme - && (task == null || w.getTask().mStack.hasMovementAnimations()) - && !w.mWinAnimator.mLastHidden) { - winAnimator.setMoveAnimation(left, top); + if (mService.okToDisplay()) { + if ((w.mAttrs.privateFlags & PRIVATE_FLAG_NO_MOVE_ANIMATION) == 0 + && !w.isDragResizing() && !adjustedForMinimizedDockOrIme + && (task == null || w.getTask().mStack.hasMovementAnimations()) + && !w.mWinAnimator.mLastHidden) { + winAnimator.setMoveAnimation(left, top); + } } //TODO (multidisplay): Accessibility supported only for the default display. -- GitLab From e2d4f5fc313ecb4ba587b20fff6d346f8cd51775 Mon Sep 17 00:00:00 2001 From: Todd Kennedy Date: Thu, 22 Sep 2016 13:25:46 -0700 Subject: [PATCH 510/809] Force APKs to be streamed When using the new "cmd" command, APKs must be streamed instead of specifying a file. Change-Id: I977cd817ac545d7c5293f53b9fa4b155bea7449e Fixes: 31251489 Test: manually installed packages using 'adb install', 'adb shell cmd package install' and 'adb shell pm install' --- .../server/pm/PackageManagerShellCommand.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java index e5ddfd09d82b..b6cecc94aecb 100644 --- a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java +++ b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java @@ -1147,14 +1147,15 @@ class PackageManagerShellCommand extends ShellCommand { private int doWriteSplit(int sessionId, String inPath, long sizeBytes, String splitName, boolean logSuccess) throws RemoteException { final PrintWriter pw = getOutPrintWriter(); - if ("-".equals(inPath)) { - inPath = null; - } else if (inPath != null) { - final File file = new File(inPath); - if (file.isFile()) { - sizeBytes = file.length(); - } + if (sizeBytes <= 0) { + pw.println("Error: must specify a APK size"); + return 1; + } + if (inPath != null && !"-".equals(inPath)) { + pw.println("Error: APK content must be streamed"); + return 1; } + inPath = null; final SessionInfo info = mInterface.getPackageInstaller().getSessionInfo(sessionId); -- GitLab From fc7086ef652dcf014c87c0cc38bd99de18a5c905 Mon Sep 17 00:00:00 2001 From: Selim Cinek Date: Thu, 22 Sep 2016 14:03:41 -0700 Subject: [PATCH 511/809] Fixed an issue where the inline controls where not usable Because the calculation whether a touch is on a view was incorrect the inline controlls would always close on tablets when interacting with them. Change-Id: I68dcba411b34def32a044f5a4d73b396f74e9730 Fixes: 31502625 --- .../statusbar/stack/NotificationStackScrollLayout.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java index d1de38c7b9e4..9bded7944d37 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java @@ -4139,13 +4139,11 @@ public class NotificationStackScrollLayout extends ViewGroup final int rx = (int) ev.getRawX(); final int ry = (int) ev.getRawY(); - getLocationOnScreen(mTempInt2); - int[] location = new int[2]; - view.getLocationOnScreen(location); - final int x = location[0] - mTempInt2[0]; - final int y = location[1] - mTempInt2[1]; + view.getLocationOnScreen(mTempInt2); + final int x = mTempInt2[0]; + final int y = mTempInt2[1]; Rect rect = new Rect(x, y, x + view.getWidth(), y + height); - if (!rect.contains((int) rx, (int) ry)) { + if (!rect.contains(rx, ry)) { // Touch was outside visible guts / gear notification, close what's visible mPhoneStatusBar.dismissPopups(-1, -1, true /* resetGear */, true /* animate */); } -- GitLab From f955d4cd9f796bebdd93c1c79e4f0ac6d46b221a Mon Sep 17 00:00:00 2001 From: Andrew Solovay Date: Thu, 22 Sep 2016 14:24:57 -0700 Subject: [PATCH 512/809] docs: Removed two images that were moved to Piper in April Scott had migrated these graphics to Piper in April, but they've stayed in Gerrit. These graphics had been updated in Gerrit since then, so they got out of sync with Piper. Set up Critique CL cr/133998971 to migrate the latest versions to Piper (and sent to Scott for review); setting up a separate CL here to remove the files, so they won't accidentally get edited in the wrong place again. Change-Id: Ice9dda71ae3604b1fc3aab15746dc41e759b80a6 --- .../images/tools/sdk-manager-support-libs.png | Bin 91414 -> 0 bytes .../tools/studio-sdk-manager-packages.png | Bin 762634 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs/html/images/tools/sdk-manager-support-libs.png delete mode 100644 docs/html/images/tools/studio-sdk-manager-packages.png diff --git a/docs/html/images/tools/sdk-manager-support-libs.png b/docs/html/images/tools/sdk-manager-support-libs.png deleted file mode 100644 index cb4cea5795a6318fd772413e8c220f5b658dec69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 91414 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[kO&mK;&=gr#`BxUuQR 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�#E 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 z

      JJZuS%+UjCAP9fmTpWjE^CFJs# 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 diff --git a/docs/html/images/tools/studio-sdk-manager-packages.png b/docs/html/images/tools/studio-sdk-manager-packages.png deleted file mode 100644 index 79ea912e183a0ed0e8f93280f1f0063a06a252ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 762634 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%0A>Ly%ss%4`LHTdYXCzI_zq7x+qaZp+-37B2F_ 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 yK#| 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

      k<-EH(T2Oelv&9O~a&{qWo*X;c?;7 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

      WE~wJVfCeF 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 Mn&=CZ@Qb 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 ZgOSoXi8{xtLGbM9Qj$}bt&uhl{XZ)XPNV<; -- GitLab From d220683d339256790813348beedabe061aca643c Mon Sep 17 00:00:00 2001 From: Todd Kennedy Date: Thu, 22 Sep 2016 13:25:46 -0700 Subject: [PATCH 513/809] Force APKs to be streamed When using the new "cmd" command, APKs must be streamed instead of specifying a file. Change-Id: I977cd817ac545d7c5293f53b9fa4b155bea7449e Fixes: 31251489 Test: manually installed packages using 'adb install', 'adb shell cmd package install' and 'adb shell pm install' --- .../server/pm/PackageManagerShellCommand.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java index 07dc404e08db..251b2773aa6b 100644 --- a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java +++ b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java @@ -1146,14 +1146,15 @@ class PackageManagerShellCommand extends ShellCommand { private int doWriteSplit(int sessionId, String inPath, long sizeBytes, String splitName, boolean logSuccess) throws RemoteException { final PrintWriter pw = getOutPrintWriter(); - if ("-".equals(inPath)) { - inPath = null; - } else if (inPath != null) { - final File file = new File(inPath); - if (file.isFile()) { - sizeBytes = file.length(); - } + if (sizeBytes <= 0) { + pw.println("Error: must specify a APK size"); + return 1; + } + if (inPath != null && !"-".equals(inPath)) { + pw.println("Error: APK content must be streamed"); + return 1; } + inPath = null; final SessionInfo info = mInterface.getPackageInstaller().getSessionInfo(sessionId); -- GitLab From dd7f1a9ac371821fd6607177347474a8ea6ea4fd Mon Sep 17 00:00:00 2001 From: Adam Powell Date: Thu, 22 Sep 2016 10:47:40 -0700 Subject: [PATCH 514/809] Null check for restoring LoaderManagers Bug 31671195 Test: core/tests/coretests/src/android/app/LoaderLifecycleTest.java Change-Id: Ib553f7611814cc6759488aec505fd126ee664a9d (cherry picked from commit 100ba76d7a45847ffd3ecb1d468c91c0d0652032) --- core/java/android/app/FragmentHostCallback.java | 6 ++++-- .../coretests/src/android/app/LoaderLifecycleTest.java | 3 +++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/core/java/android/app/FragmentHostCallback.java b/core/java/android/app/FragmentHostCallback.java index b6aad3b15362..d869168e2b6a 100644 --- a/core/java/android/app/FragmentHostCallback.java +++ b/core/java/android/app/FragmentHostCallback.java @@ -340,8 +340,10 @@ public abstract class FragmentHostCallback extends FragmentContainer { } void restoreLoaderNonConfig(ArrayMap loaderManagers) { - for (int i = 0, N = loaderManagers.size(); i < N; i++) { - ((LoaderManagerImpl) loaderManagers.valueAt(i)).updateHostController(this); + if (loaderManagers != null) { + for (int i = 0, N = loaderManagers.size(); i < N; i++) { + ((LoaderManagerImpl) loaderManagers.valueAt(i)).updateHostController(this); + } } mAllLoaderManagers = loaderManagers; } diff --git a/core/tests/coretests/src/android/app/LoaderLifecycleTest.java b/core/tests/coretests/src/android/app/LoaderLifecycleTest.java index a3d51a0a9612..1850d575dfa5 100644 --- a/core/tests/coretests/src/android/app/LoaderLifecycleTest.java +++ b/core/tests/coretests/src/android/app/LoaderLifecycleTest.java @@ -99,6 +99,9 @@ public class LoaderLifecycleTest { final FragmentManager fm2 = fc2.getFragmentManager(); fc2.attachHost(null); + // Make sure nothing blows up on a null here + fc2.restoreLoaderNonConfig(null); + // for real this time fc2.restoreLoaderNonConfig(loaderNonConfig); fc2.restoreAllState(savedState, nonconf); fc2.dispatchCreate(); -- GitLab From d26e1ff2de354896781c44143d9dfc7b8a350acd Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Thu, 22 Sep 2016 16:42:55 -0600 Subject: [PATCH 515/809] Limit LOCALE_CHANGED broadcast when init'ing. Immediately when a device finishes booting, retrieveSettings() will read out the current configuration details, including locale. At that point mProcessesReady has been set, meaning third-party apps can be launched. But we haven't started persistent apps yet! If you have a persistent app (like com.android.phone) which also has a somewhat related app (like com.android.stk) merged into the same process, the LOCALE_CHANGED broadcast could start the process pointing at an unexpected code/data location. This change avoids this by only sending LOCALE_CHANGED broadcasts to registered receivers (no manifest receivers) when the locale is being read for the first time (initLocale). Test: booted device with locked SIM Bug: 31665819 Change-Id: I977a596501c6ba492005f98a2367e4b9f67e2dba --- .../core/java/com/android/server/am/ActivityManagerService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 7ca38609e29b..b623bc790139 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -19040,7 +19040,7 @@ public final class ActivityManagerService extends ActivityManagerNative if ((changes&ActivityInfo.CONFIG_LOCALE) != 0) { intent = new Intent(Intent.ACTION_LOCALE_CHANGED); intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND); - if (!mProcessesReady) { + if (initLocale || !mProcessesReady) { intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY); } broadcastIntentLocked(null, null, intent, -- GitLab From b10a6dc963245dff04177223d956105a31b31d9d Mon Sep 17 00:00:00 2001 From: Kevin Hufnagle Date: Thu, 22 Sep 2016 16:14:27 -0700 Subject: [PATCH 516/809] docs: Fixed misspelling in "Address" class overview. Bug: 30608455 Change-Id: Ic7d8492b15eeffe32393c018f3512101d5f0bcae --- location/java/android/location/Address.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/location/java/android/location/Address.java b/location/java/android/location/Address.java index b152f48a3e9e..335ad5ebcde5 100644 --- a/location/java/android/location/Address.java +++ b/location/java/android/location/Address.java @@ -28,7 +28,7 @@ import android.os.Parcelable; /** * A class representing an Address, i.e, a set of Strings describing a location. * - * The addres format is a simplified version of xAL (eXtensible Address Language) + * The address format is a simplified version of xAL (eXtensible Address Language) * http://www.oasis-open.org/committees/ciq/ciq.html#6 */ public class Address implements Parcelable { -- GitLab From 3334a182a66ec05e6c87b3c98210a28ee51c835f Mon Sep 17 00:00:00 2001 From: Selim Cinek Date: Thu, 22 Sep 2016 16:19:42 -0700 Subject: [PATCH 517/809] Fixed a bug where the dimmed background could be invisible Test: Notification group with 2 children on shade locked. Swipe 1 away and go to lockscreen Change-Id: If7c3a55e220579eb27036f31d59b222371d2bf8e Fixes: 31524202 --- .../systemui/statusbar/ActivatableNotificationView.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ActivatableNotificationView.java b/packages/SystemUI/src/com/android/systemui/statusbar/ActivatableNotificationView.java index e35ef4469773..bc4654823f77 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/ActivatableNotificationView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/ActivatableNotificationView.java @@ -593,6 +593,9 @@ public abstract class ActivatableNotificationView extends ExpandableOutlineView public void onAnimationEnd(Animator animation) { updateBackground(); mBackgroundAnimator = null; + if (mFadeInFromDarkAnimator == null) { + mDimmedBackgroundFadeInAmount = -1; + } } }); mBackgroundAnimator.addUpdateListener(mBackgroundVisibilityUpdater); -- GitLab From e20b3d78e34a1a3a46c279aeb83012b98784ce9a Mon Sep 17 00:00:00 2001 From: Kevin Hufnagle Date: Thu, 22 Sep 2016 18:33:57 -0700 Subject: [PATCH 518/809] docs: Removed all instances of "i.e." in IntentFilter parameter descriptions. Bug: 5877117 Change-Id: Iccb16589a72d3180330f13ec224578a0c5ad81c6 --- core/java/android/content/IntentFilter.java | 22 ++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/core/java/android/content/IntentFilter.java b/core/java/android/content/IntentFilter.java index 22ab43bbb429..ec76f2d5229e 100644 --- a/core/java/android/content/IntentFilter.java +++ b/core/java/android/content/IntentFilter.java @@ -124,7 +124,7 @@ import java.util.Set; * Note that authority matching here is case sensitive, unlike * formal RFC host names! You should thus always use lower case letters * for your authority. - * + * *

      Data Path matches if any of the given values match the * Intent's data path and both a scheme and authority in the filter * has matched against the Intent, or no paths were supplied in the @@ -358,8 +358,8 @@ public class IntentFilter implements Parcelable { * the {@link MalformedMimeTypeException} exception that the constructor * can call and turns it into a runtime exception. * - * @param action The action to match, i.e. Intent.ACTION_VIEW. - * @param dataType The type to match, i.e. "vnd.android.cursor.dir/person". + * @param action The action to match, such as Intent.ACTION_VIEW. + * @param dataType The type to match, such as "vnd.android.cursor.dir/person". * * @return A new IntentFilter for the given action and type. * @@ -386,7 +386,7 @@ public class IntentFilter implements Parcelable { * no data characteristics are subsequently specified, then the * filter will only match intents that contain no data. * - * @param action The action to match, i.e. Intent.ACTION_MAIN. + * @param action The action to match, such as Intent.ACTION_MAIN. */ public IntentFilter(String action) { mPriority = 0; @@ -406,8 +406,8 @@ public class IntentFilter implements Parcelable { *

      Throws {@link MalformedMimeTypeException} if the given MIME type is * not syntactically correct. * - * @param action The action to match, i.e. Intent.ACTION_VIEW. - * @param dataType The type to match, i.e. "vnd.android.cursor.dir/person". + * @param action The action to match, such as Intent.ACTION_VIEW. + * @param dataType The type to match, such as "vnd.android.cursor.dir/person". * */ public IntentFilter(String action, String dataType) @@ -640,7 +640,7 @@ public class IntentFilter implements Parcelable { * in the filter, then an Intent's action must be one of those values for * it to match. If no actions are included, the Intent action is ignored. * - * @param action Name of the action to match, i.e. Intent.ACTION_VIEW. + * @param action Name of the action to match, such as Intent.ACTION_VIEW. */ public final void addAction(String action) { if (!mActions.contains(action)) { @@ -709,7 +709,7 @@ public class IntentFilter implements Parcelable { *

      Throws {@link MalformedMimeTypeException} if the given MIME type is * not syntactically correct. * - * @param type Name of the data type to match, i.e. "vnd.android.cursor.dir/person". + * @param type Name of the data type to match, such as "vnd.android.cursor.dir/person". * * @see #matchData */ @@ -786,7 +786,7 @@ public class IntentFilter implements Parcelable { * and any schemes you receive from outside of Android should be * converted to lower case before supplying them here.

      * - * @param scheme Name of the scheme to match, i.e. "http". + * @param scheme Name of the scheme to match, such as "http". * * @see #matchData */ @@ -897,7 +897,7 @@ public class IntentFilter implements Parcelable { * Determine whether this AuthorityEntry matches the given data Uri. * Note that this comparison is case-sensitive, unlike formal * RFC host names. You thus should always normalize to lower-case. - * + * * @param data The Uri to match. * @return Returns either {@link IntentFilter#NO_MATCH_DATA}, * {@link IntentFilter#MATCH_CATEGORY_PORT}, or @@ -1352,7 +1352,7 @@ public class IntentFilter implements Parcelable { * filter has no impact on matching unless that category is specified in * the intent. * - * @param category Name of category to match, i.e. Intent.CATEGORY_EMBED. + * @param category Name of category to match, such as Intent.CATEGORY_EMBED. */ public final void addCategory(String category) { if (mCategories == null) mCategories = new ArrayList(); -- GitLab From fbe9b1ad6fe6a8d22193c5d04c85e372f56fae03 Mon Sep 17 00:00:00 2001 From: Lorenzo Colitti Date: Thu, 28 Jul 2016 17:14:11 +0900 Subject: [PATCH 519/809] Restrict access to background networks to CHANGE_NETWORK_STATE. When a network goes into the background, tell netd to set the network's permission to NETWORK. Also, close all TCP sockets on that network, to prevent long-lived TCP connections from staying on it and possibly continuing to use metered data. Bug: 23113288 Change-Id: Ie89c1940b6739160e25c6e9022b8b977afb3e16e --- .../java/android/net/ConnectivityManager.java | 10 +++++ .../android/server/ConnectivityService.java | 37 ++++++++++++++----- 2 files changed, 37 insertions(+), 10 deletions(-) diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java index b9e9b283106f..0afb546aa4e4 100644 --- a/core/java/android/net/ConnectivityManager.java +++ b/core/java/android/net/ConnectivityManager.java @@ -1825,6 +1825,16 @@ public class ConnectivityManager { return (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); } + /* TODO: These permissions checks don't belong in client-side code. Move them to + * services.jar, possibly in com.android.server.net. */ + + /** {@hide} */ + public static final boolean checkChangePermission(Context context) { + int uid = Binder.getCallingUid(); + return Settings.checkAndNoteChangeNetworkStateOperation(context, uid, Settings + .getPackageNameForUid(context, uid), false /* throwException */); + } + /** {@hide} */ public static final void enforceChangePermission(Context context) { int uid = Binder.getCallingUid(); diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index 92cb3e690461..524c3cc87c8b 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -4330,8 +4330,17 @@ public class ConnectivityService extends IConnectivityManager.Stub enforceAccessPermission(); } - NetworkRequest networkRequest = new NetworkRequest( - new NetworkCapabilities(networkCapabilities), TYPE_NONE, nextNetworkRequestId(), + NetworkCapabilities nc = new NetworkCapabilities(networkCapabilities); + if (!ConnectivityManager.checkChangePermission(mContext)) { + // Apps without the CHANGE_NETWORK_STATE permission can't use background networks, so + // make all their listens include NET_CAPABILITY_FOREGROUND. That way, they will get + // onLost and onAvailable callbacks when networks move in and out of the background. + // There is no need to do this for requests because an app without CHANGE_NETWORK_STATE + // can't request networks. + nc.addCapability(NET_CAPABILITY_FOREGROUND); + } + + NetworkRequest networkRequest = new NetworkRequest(nc, TYPE_NONE, nextNetworkRequestId(), NetworkRequest.Type.LISTEN); NetworkRequestInfo nri = new NetworkRequestInfo(messenger, networkRequest, binder); if (VDBG) log("listenForNetwork for " + nri); @@ -4646,6 +4655,17 @@ public class ConnectivityService extends IConnectivityManager.Stub mNumDnsEntries = last; } + private String getNetworkPermission(NetworkCapabilities nc) { + // TODO: make these permission strings AIDL constants instead. + if (!nc.hasCapability(NET_CAPABILITY_NOT_RESTRICTED)) { + return NetworkManagementService.PERMISSION_SYSTEM; + } + if (!nc.hasCapability(NET_CAPABILITY_FOREGROUND)) { + return NetworkManagementService.PERMISSION_NETWORK; + } + return null; + } + /** * Update the NetworkCapabilities for {@code networkAgent} to {@code networkCapabilities} * augmented with any stateful capabilities implied from {@code networkAgent} @@ -4684,12 +4704,11 @@ public class ConnectivityService extends IConnectivityManager.Stub if (Objects.equals(nai.networkCapabilities, networkCapabilities)) return; - if (nai.networkCapabilities.hasCapability(NET_CAPABILITY_NOT_RESTRICTED) != - networkCapabilities.hasCapability(NET_CAPABILITY_NOT_RESTRICTED)) { + final String oldPermission = getNetworkPermission(nai.networkCapabilities); + final String newPermission = getNetworkPermission(networkCapabilities); + if (!Objects.equals(oldPermission, newPermission) && nai.created && !nai.isVPN()) { try { - mNetd.setNetworkPermission(nai.network.netId, - networkCapabilities.hasCapability(NET_CAPABILITY_NOT_RESTRICTED) ? - null : NetworkManagementService.PERMISSION_SYSTEM); + mNetd.setNetworkPermission(nai.network.netId, newPermission); } catch (RemoteException e) { loge("Exception in setNetworkPermission: " + e); } @@ -5259,9 +5278,7 @@ public class ConnectivityService extends IConnectivityManager.Stub !networkAgent.networkMisc.allowBypass)); } else { mNetd.createPhysicalNetwork(networkAgent.network.netId, - networkAgent.networkCapabilities.hasCapability( - NET_CAPABILITY_NOT_RESTRICTED) ? - null : NetworkManagementService.PERMISSION_SYSTEM); + getNetworkPermission(networkAgent.networkCapabilities)); } } catch (Exception e) { loge("Error creating network " + networkAgent.network.netId + ": " -- GitLab From 5d937fc95f2f40c6f920d73fb56f6aef03804441 Mon Sep 17 00:00:00 2001 From: Salvador Martinez Date: Fri, 23 Sep 2016 08:54:20 -0700 Subject: [PATCH 520/809] Updated summary logic for wifi Wifi summary claimed it would not reconnect under conditions where it should. This has been changed to properly say when an AP will automatically be reconnected to. Test: make RunSettingsLibRoboTests Bug: 29973023 Change-Id: I2ffb4ec3b83e93c3df9ee179fc6a6bf59acec42e --- packages/SettingsLib/res/values/strings.xml | 4 +++- .../src/com/android/settingslib/wifi/AccessPoint.java | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/SettingsLib/res/values/strings.xml b/packages/SettingsLib/res/values/strings.xml index 682af8bd536f..08e5164fb252 100644 --- a/packages/SettingsLib/res/values/strings.xml +++ b/packages/SettingsLib/res/values/strings.xml @@ -64,8 +64,10 @@ Authentication problem Not in range + + No Internet Access Detected, won\'t automatically reconnect. - No Internet Access Detected, won\'t automatically reconnect. + No Internet Access. Saved by %1$s diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java index 92f1b18c9444..b63752c22521 100644 --- a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java +++ b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java @@ -409,7 +409,10 @@ public class AccessPoint implements Comparable { String format = mContext.getString(R.string.available_via_passpoint); summary.append(String.format(format, config.providerFriendlyName)); } else if (config != null && config.hasNoInternetAccess()) { - summary.append(mContext.getString(R.string.wifi_no_internet)); + int messageID = config.getNetworkSelectionStatus().isNetworkPermanentlyDisabled() + ? R.string.wifi_no_internet_no_reconnect + : R.string.wifi_no_internet; + summary.append(mContext.getString(messageID)); } else if (config != null && !config.getNetworkSelectionStatus().isNetworkEnabled()) { WifiConfiguration.NetworkSelectionStatus networkStatus = config.getNetworkSelectionStatus(); -- GitLab From 2366ff12a2f251e33412a6e65e4f5642c3a7d59c Mon Sep 17 00:00:00 2001 From: Adam Powell Date: Fri, 23 Sep 2016 10:32:04 -0700 Subject: [PATCH 521/809] ResolverComparator transitivity Fix a bug where ResolverComparator's results were not consistent for targets that cross profile boundaries. Bug: 31640894 Change-Id: Ic6bf9512d2c2eb6f8fb7851e18eb9a347db29755 --- core/java/com/android/internal/app/ResolverComparator.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/core/java/com/android/internal/app/ResolverComparator.java b/core/java/com/android/internal/app/ResolverComparator.java index 03a3a3821f6a..4d4c7ceb1655 100644 --- a/core/java/com/android/internal/app/ResolverComparator.java +++ b/core/java/com/android/internal/app/ResolverComparator.java @@ -157,7 +157,10 @@ class ResolverComparator implements Comparator { // We want to put the one targeted to another user at the end of the dialog. if (lhs.targetUserId != UserHandle.USER_CURRENT) { - return 1; + return rhs.targetUserId != UserHandle.USER_CURRENT ? 0 : 1; + } + if (rhs.targetUserId != UserHandle.USER_CURRENT) { + return -1; } if (mHttp) { -- GitLab From ed29365c9e169dbf05857bf9ca5125175a6dbe44 Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Fri, 23 Sep 2016 17:54:11 +0000 Subject: [PATCH 522/809] Revert "Change bang to x for indication of no internet" This reverts commit d67fbe62018c9a0c30d69091a17e32aaff215734. Fixes: 31271895 Change-Id: Ief00046dde1309fb66e3284b1c57264882297ad9 --- .../SystemUI/res/drawable/ic_qs_signal_0.xml | 20 +++++++------- .../SystemUI/res/drawable/ic_qs_signal_1.xml | 24 +++++++++-------- .../SystemUI/res/drawable/ic_qs_signal_2.xml | 24 +++++++++-------- .../SystemUI/res/drawable/ic_qs_signal_3.xml | 24 +++++++++-------- .../SystemUI/res/drawable/ic_qs_signal_4.xml | 19 ++++++++------ .../SystemUI/res/drawable/ic_qs_wifi_0.xml | 22 +++++++++------- .../SystemUI/res/drawable/ic_qs_wifi_1.xml | 26 ++++++++++--------- .../SystemUI/res/drawable/ic_qs_wifi_2.xml | 26 ++++++++++--------- .../SystemUI/res/drawable/ic_qs_wifi_3.xml | 26 ++++++++++--------- .../SystemUI/res/drawable/ic_qs_wifi_4.xml | 21 ++++++++------- .../res/drawable/stat_sys_signal_0.xml | 19 ++++++++------ .../res/drawable/stat_sys_signal_1.xml | 23 +++++++++------- .../res/drawable/stat_sys_signal_2.xml | 23 +++++++++------- .../res/drawable/stat_sys_signal_3.xml | 23 +++++++++------- .../res/drawable/stat_sys_signal_4.xml | 20 ++++++++------ .../res/drawable/stat_sys_wifi_signal_0.xml | 19 ++++++++------ .../res/drawable/stat_sys_wifi_signal_1.xml | 23 +++++++++------- .../res/drawable/stat_sys_wifi_signal_2.xml | 23 +++++++++------- .../res/drawable/stat_sys_wifi_signal_3.xml | 23 +++++++++------- .../res/drawable/stat_sys_wifi_signal_4.xml | 19 ++++++++------ 20 files changed, 250 insertions(+), 197 deletions(-) diff --git a/packages/SystemUI/res/drawable/ic_qs_signal_0.xml b/packages/SystemUI/res/drawable/ic_qs_signal_0.xml index b78d3bf1c35d..f63dfb12e203 100644 --- a/packages/SystemUI/res/drawable/ic_qs_signal_0.xml +++ b/packages/SystemUI/res/drawable/ic_qs_signal_0.xml @@ -1,7 +1,7 @@ + android:fillColor="#FFFFFFFF" + android:pathData="M19.700001,20.000000l2.000000,0.000000l0.000000,2.000000l-2.000000,0.000000z"/> + android:fillColor="#FFFFFFFF" + android:pathData="M19.700001,10.000000l2.000000,0.000000l0.000000,8.100000l-2.000000,0.000000z"/> + diff --git a/packages/SystemUI/res/drawable/ic_qs_signal_1.xml b/packages/SystemUI/res/drawable/ic_qs_signal_1.xml index e055de77ebe5..7fb423e5fc84 100644 --- a/packages/SystemUI/res/drawable/ic_qs_signal_1.xml +++ b/packages/SystemUI/res/drawable/ic_qs_signal_1.xml @@ -1,7 +1,7 @@ + android:fillColor="#FFFFFFFF" + android:pathData="M19.7,20.0l2.0,0.0l0.0,2.0l-2.0,0.0z"/> + android:fillColor="#FFFFFFFF" + android:pathData="M19.7,10.0l2.0,0.0l0.0,8.1l-2.0,0.0z"/> + android:fillColor="#4DFFFFFF" + android:pathData="M17.7,8.0l4.299999,0.0 0.0,-6.0 -20.0,20.0 15.700001,0.0z"/> + diff --git a/packages/SystemUI/res/drawable/ic_qs_signal_2.xml b/packages/SystemUI/res/drawable/ic_qs_signal_2.xml index 8a488170e438..3358d65b68e6 100644 --- a/packages/SystemUI/res/drawable/ic_qs_signal_2.xml +++ b/packages/SystemUI/res/drawable/ic_qs_signal_2.xml @@ -1,7 +1,7 @@ + android:fillColor="#FFFFFFFF" + android:pathData="M19.700001,20.000000l2.000000,0.000000l0.000000,2.000000l-2.000000,0.000000z"/> + android:fillColor="#FFFFFFFF" + android:pathData="M19.700001,10.000000l2.000000,0.000000l0.000000,8.100000l-2.000000,0.000000z"/> + android:fillColor="#FFFFFFFF" + android:pathData="M13.900000,10.000000l-11.900000,12.000000 11.900000,0.000000z"/> + diff --git a/packages/SystemUI/res/drawable/ic_qs_signal_3.xml b/packages/SystemUI/res/drawable/ic_qs_signal_3.xml index 39cc94cad4db..63838a93c686 100644 --- a/packages/SystemUI/res/drawable/ic_qs_signal_3.xml +++ b/packages/SystemUI/res/drawable/ic_qs_signal_3.xml @@ -1,7 +1,7 @@ + android:fillColor="#FFFFFFFF" + android:pathData="M19.700001,19.900000l2.000000,0.000000l0.000000,2.000000l-2.000000,0.000000z"/> + android:fillColor="#FFFFFFFF" + android:pathData="M19.700001,9.900000l2.000000,0.000000l0.000000,8.100000l-2.000000,0.000000z"/> + android:fillColor="#FFFFFFFF" + android:pathData="M16.700001,7.200000l-14.700001,14.700000 14.700001,0.000000z"/> + diff --git a/packages/SystemUI/res/drawable/ic_qs_signal_4.xml b/packages/SystemUI/res/drawable/ic_qs_signal_4.xml index 012e95e985ce..76690cc2adce 100644 --- a/packages/SystemUI/res/drawable/ic_qs_signal_4.xml +++ b/packages/SystemUI/res/drawable/ic_qs_signal_4.xml @@ -1,7 +1,7 @@ + android:fillColor="#FFFFFFFF" + android:pathData="M19.700001,20.000000l2.000000,0.000000l0.000000,2.000000l-2.000000,0.000000z"/> + android:fillColor="#FFFFFFFF" + android:pathData="M19.700001,10.000000l2.000000,0.000000l0.000000,8.100000l-2.000000,0.000000z"/> + diff --git a/packages/SystemUI/res/drawable/ic_qs_wifi_0.xml b/packages/SystemUI/res/drawable/ic_qs_wifi_0.xml index e6f929265709..50c427e24c9b 100644 --- a/packages/SystemUI/res/drawable/ic_qs_wifi_0.xml +++ b/packages/SystemUI/res/drawable/ic_qs_wifi_0.xml @@ -1,7 +1,7 @@ + android:fillColor="#4DFFFFFF" + android:pathData="M19.000000,8.000000l5.300000,0.000000l1.200000,-1.500000C25.100000,6.100000 20.299999,2.100000 13.000000,2.100000S0.900000,6.100000 0.400000,6.500000L13.000000,22.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l6.000000,-7.400000L19.000000,8.000000z"/> + android:fillColor="#FFFFFFFF" + android:pathData="M21.000000,20.000000l2.000000,0.000000l0.000000,2.000000l-2.000000,0.000000z"/> + diff --git a/packages/SystemUI/res/drawable/ic_qs_wifi_1.xml b/packages/SystemUI/res/drawable/ic_qs_wifi_1.xml index d423ccb2d5e2..a2d11a09aab8 100644 --- a/packages/SystemUI/res/drawable/ic_qs_wifi_1.xml +++ b/packages/SystemUI/res/drawable/ic_qs_wifi_1.xml @@ -1,7 +1,7 @@ + android:fillColor="#4DFFFFFF" + android:pathData="M19.000000,8.000000l5.300000,0.000000l1.300000,-1.600000C25.100000,6.000000 20.299999,2.000000 13.000000,2.000000S0.900000,6.000000 0.400000,6.400000L13.000000,22.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l6.000000,-7.400000L19.000000,8.000000z"/> + android:fillColor="#FFFFFFFF" + android:pathData="M13.000000,22.000000l5.500000,-6.800000c-0.200000,-0.200000 -2.300000,-1.900000 -5.500000,-1.900000s-5.300000,1.800000 -5.500000,1.900000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000z"/> + android:fillColor="#FFFFFFFF" + android:pathData="M21.000000,20.000000l2.000000,0.000000l0.000000,2.000000l-2.000000,0.000000z"/> + diff --git a/packages/SystemUI/res/drawable/ic_qs_wifi_2.xml b/packages/SystemUI/res/drawable/ic_qs_wifi_2.xml index 1982130fb1c6..f2043fc4bcaf 100644 --- a/packages/SystemUI/res/drawable/ic_qs_wifi_2.xml +++ b/packages/SystemUI/res/drawable/ic_qs_wifi_2.xml @@ -1,7 +1,7 @@ + android:fillColor="#4DFFFFFF" + android:pathData="M19.000000,8.000000l5.300000,0.000000l1.300000,-1.600000C25.100000,6.000000 20.299999,2.000000 13.000000,2.000000S0.900000,6.000000 0.400000,6.400000L13.000000,22.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l6.000000,-7.400000L19.000000,8.000000z"/> + android:fillColor="#FFFFFFFF" + android:pathData="M19.000000,11.600000c-1.300000,-0.700000 -3.400000,-1.600000 -6.000000,-1.600000c-4.400000,0.000000 -7.300000,2.400000 -7.600000,2.700000L13.000000,22.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l6.000000,-7.400000L19.000000,11.600000z"/> + android:fillColor="#FFFFFFFF" + android:pathData="M21.000000,20.000000l2.000000,0.000000l0.000000,2.000000l-2.000000,0.000000z"/> + diff --git a/packages/SystemUI/res/drawable/ic_qs_wifi_3.xml b/packages/SystemUI/res/drawable/ic_qs_wifi_3.xml index b35011181a86..b7a4f4c81ec8 100644 --- a/packages/SystemUI/res/drawable/ic_qs_wifi_3.xml +++ b/packages/SystemUI/res/drawable/ic_qs_wifi_3.xml @@ -1,7 +1,7 @@ + android:fillColor="#4DFFFFFF" + android:pathData="M19.000000,8.000000l5.300000,0.000000l1.300000,-1.600000C25.100000,6.000000 20.299999,2.000000 13.000000,2.000000S0.900000,6.000000 0.400000,6.400000L13.000000,22.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l6.000000,-7.400000L19.000000,8.000000z"/> + android:fillColor="#FFFFFFFF" + android:pathData="M19.000000,8.600000c-1.600000,-0.700000 -3.600000,-1.300000 -6.000000,-1.300000c-5.300000,0.000000 -8.900000,3.000000 -9.200000,3.200000L13.000000,22.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l6.000000,-7.400000L19.000000,8.600000z"/> + android:fillColor="#FFFFFFFF" + android:pathData="M21.000000,20.000000l2.000000,0.000000l0.000000,2.000000l-2.000000,0.000000z"/> + diff --git a/packages/SystemUI/res/drawable/ic_qs_wifi_4.xml b/packages/SystemUI/res/drawable/ic_qs_wifi_4.xml index 136a00435430..35a9138b31d2 100644 --- a/packages/SystemUI/res/drawable/ic_qs_wifi_4.xml +++ b/packages/SystemUI/res/drawable/ic_qs_wifi_4.xml @@ -1,7 +1,7 @@ + android:fillColor="#FFFFFFFF" + android:pathData="M19.000000,8.000000l5.300000,0.000000l1.300000,-1.600000C25.100000,6.000000 20.299999,2.000000 13.000000,2.000000S0.900000,6.000000 0.400000,6.400000L13.000000,22.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l6.000000,-7.400000L19.000000,8.000000z"/> + android:fillColor="#FFFFFFFF" + android:pathData="M21.000000,20.000000l2.000000,0.000000l0.000000,2.000000l-2.000000,0.000000z"/> + diff --git a/packages/SystemUI/res/drawable/stat_sys_signal_0.xml b/packages/SystemUI/res/drawable/stat_sys_signal_0.xml index 8bc872a99951..643c4f919d1b 100644 --- a/packages/SystemUI/res/drawable/stat_sys_signal_0.xml +++ b/packages/SystemUI/res/drawable/stat_sys_signal_0.xml @@ -1,7 +1,7 @@ + android:fillColor="?attr/singleToneColor" + android:pathData="M19.700001,20.000000l2.000000,0.000000l0.000000,2.000000l-2.000000,0.000000z"/> + + android:pathData="M17.700001,8.000000l4.299999,0.000000 0.000000,-6.000000 -20.000000,20.000000 15.700001,0.000000z" + android:fillColor="?attr/backgroundColor"/> diff --git a/packages/SystemUI/res/drawable/stat_sys_signal_1.xml b/packages/SystemUI/res/drawable/stat_sys_signal_1.xml index 8fa7630b0fae..64781c367227 100644 --- a/packages/SystemUI/res/drawable/stat_sys_signal_1.xml +++ b/packages/SystemUI/res/drawable/stat_sys_signal_1.xml @@ -1,7 +1,7 @@ + android:fillColor="?attr/singleToneColor" + android:pathData="M19.7,20.0l2.0,0.0l0.0,2.0l-2.0,0.0z"/> + android:fillColor="?attr/singleToneColor" + android:pathData="M19.7,10.0l2.0,0.0l0.0,8.1l-2.0,0.0z"/> + android:fillColor="?attr/backgroundColor" + android:pathData="M17.7,8.0l4.299999,0.0 0.0,-6.0 -20.0,20.0 15.700001,0.0z"/> + diff --git a/packages/SystemUI/res/drawable/stat_sys_signal_2.xml b/packages/SystemUI/res/drawable/stat_sys_signal_2.xml index 2a660a39d510..eb2be08af5f1 100644 --- a/packages/SystemUI/res/drawable/stat_sys_signal_2.xml +++ b/packages/SystemUI/res/drawable/stat_sys_signal_2.xml @@ -1,7 +1,7 @@ + android:fillColor="?attr/singleToneColor" + android:pathData="M19.700001,20.000000l2.000000,0.000000l0.000000,2.000000l-2.000000,0.000000z"/> + android:fillColor="?attr/singleToneColor" + android:pathData="M19.700001,10.000000l2.000000,0.000000l0.000000,8.100000l-2.000000,0.000000z"/> + + android:pathData="M17.700001,8.000000l4.299999,0.000000 0.000000,-6.000000 -20.000000,20.000000 15.700001,0.000000z" + android:fillColor="?attr/backgroundColor"/> diff --git a/packages/SystemUI/res/drawable/stat_sys_signal_3.xml b/packages/SystemUI/res/drawable/stat_sys_signal_3.xml index 9e0a43353eea..22afad085231 100644 --- a/packages/SystemUI/res/drawable/stat_sys_signal_3.xml +++ b/packages/SystemUI/res/drawable/stat_sys_signal_3.xml @@ -1,7 +1,7 @@ + android:fillColor="?attr/singleToneColor" + android:pathData="M19.700001,19.900000l2.000000,0.000000l0.000000,2.000000l-2.000000,0.000000z"/> + + android:fillColor="?attr/fillColor" + android:pathData="M16.700001,7.200000l-14.700001,14.700000 14.700001,0.000000z"/> + android:pathData="M17.700001,7.900000l4.299999,0.000000 0.000000,-6.000000 -20.000000,20.000000 15.700001,0.000000z" + android:fillColor="?attr/backgroundColor"/> diff --git a/packages/SystemUI/res/drawable/stat_sys_signal_4.xml b/packages/SystemUI/res/drawable/stat_sys_signal_4.xml index 01f670311750..d1e866dfefb3 100644 --- a/packages/SystemUI/res/drawable/stat_sys_signal_4.xml +++ b/packages/SystemUI/res/drawable/stat_sys_signal_4.xml @@ -1,7 +1,7 @@ + + + android:fillColor="?attr/singleToneColor" + android:pathData="M19.700001,10.000000l2.000000,0.000000l0.000000,8.100000l-2.000000,0.000000z"/> + android:fillColor="?attr/singleToneColor" + android:pathData="M2.000000,22.000000l15.700001,0.000000 0.000000,-14.000000 4.299999,0.000000 0.000000,-6.000000z"/> diff --git a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_0.xml b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_0.xml index 2de2e3640879..7f1b715e9a78 100644 --- a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_0.xml +++ b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_0.xml @@ -1,7 +1,7 @@ + android:fillColor="?attr/backgroundColor" + android:pathData="M19.000000,8.000000l5.300000,0.000000l1.200000,-1.500000C25.100000,6.100000 20.299999,2.100000 13.000000,2.100000S0.900000,6.100000 0.400000,6.500000L13.000000,22.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l6.000000,-7.400000L19.000000,8.000000z"/> + android:fillColor="?attr/fillColor" + android:pathData="M21.000000,20.000000l2.000000,0.000000l0.000000,2.000000l-2.000000,0.000000z"/> + diff --git a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_1.xml b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_1.xml index 144a7c1074e0..acd89bea9ea8 100644 --- a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_1.xml +++ b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_1.xml @@ -1,7 +1,7 @@ + android:fillColor="?attr/backgroundColor" + android:pathData="M19.000000,8.000000l5.300000,0.000000l1.300000,-1.600000C25.100000,6.000000 20.299999,2.000000 13.000000,2.000000S0.900000,6.000000 0.400000,6.400000L13.000000,22.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l6.000000,-7.400000L19.000000,8.000000z"/> + android:fillColor="?attr/fillColor" + android:pathData="M13.000000,22.000000l5.500000,-6.800000c-0.200000,-0.200000 -2.300000,-1.900000 -5.500000,-1.900000s-5.300000,1.800000 -5.500000,1.900000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000L13.000000,22.000000z"/> + android:fillColor="?attr/fillColor" + android:pathData="M21.000000,20.000000l2.000000,0.000000l0.000000,2.000000l-2.000000,0.000000z"/> + diff --git a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_2.xml b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_2.xml index 6b7f71268162..f33b25c6261b 100644 --- a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_2.xml +++ b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_2.xml @@ -1,7 +1,7 @@ + android:fillColor="?attr/backgroundColor" + android:pathData="M19.000000,8.000000l5.300000,0.000000l1.300000,-1.600000C25.100000,6.000000 20.299999,2.000000 13.000000,2.000000S0.900000,6.000000 0.400000,6.400000L13.000000,22.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l6.000000,-7.400000L19.000000,8.000000z"/> + android:fillColor="?attr/fillColor" + android:pathData="M19.000000,11.600000c-1.300000,-0.700000 -3.400000,-1.600000 -6.000000,-1.600000c-4.400000,0.000000 -7.300000,2.400000 -7.600000,2.700000L13.000000,22.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l6.000000,-7.400000L19.000000,11.600000z"/> + android:fillColor="?attr/fillColor" + android:pathData="M21.000000,20.000000l2.000000,0.000000l0.000000,2.000000l-2.000000,0.000000z"/> + diff --git a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_3.xml b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_3.xml index d34b4debc5ee..09d2e5037bc9 100644 --- a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_3.xml +++ b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_3.xml @@ -1,7 +1,7 @@ + android:fillColor="?attr/backgroundColor" + android:pathData="M19.000000,8.000000l5.300000,0.000000l1.300000,-1.600000C25.100000,6.000000 20.299999,2.000000 13.000000,2.000000S0.900000,6.000000 0.400000,6.400000L13.000000,22.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l6.000000,-7.400000L19.000000,8.000000z"/> + android:fillColor="?attr/fillColor" + android:pathData="M19.000000,8.600000c-1.600000,-0.700000 -3.600000,-1.300000 -6.000000,-1.300000c-5.300000,0.000000 -8.900000,3.000000 -9.200000,3.200000L13.000000,22.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l6.000000,-7.400000L19.000000,8.600000z"/> + android:fillColor="?attr/fillColor" + android:pathData="M21.000000,20.000000l2.000000,0.000000l0.000000,2.000000l-2.000000,0.000000z"/> + diff --git a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_4.xml b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_4.xml index 570135639183..fb1f584250e4 100644 --- a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_4.xml +++ b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_4.xml @@ -1,7 +1,7 @@ + android:fillColor="?attr/singleToneColor" + android:pathData="M19.000000,8.000000l5.300000,0.000000l1.300000,-1.600000C25.100000,6.000000 20.299999,2.000000 13.000000,2.000000S0.900000,6.000000 0.400000,6.400000L13.000000,22.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l0.000000,0.000000l6.000000,-7.400000L19.000000,8.000000z"/> + android:fillColor="?attr/singleToneColor" + android:pathData="M21.000000,20.000000l2.000000,0.000000l0.000000,2.000000l-2.000000,0.000000z"/> + -- GitLab From a03c641c60b41a0ca0220e891eb96bbbebe49856 Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Fri, 23 Sep 2016 14:18:19 -0400 Subject: [PATCH 523/809] QS: Don't show graph or warning text when not present Change-Id: Ic2cfcc0716a70a3d577d17e5af9c5d1f7f8fd4c6 Fixes: 30694497 Fixes: 30898011 --- .../com/android/systemui/qs/tiles/DataUsageDetailView.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/DataUsageDetailView.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/DataUsageDetailView.java index a63eabc8ad85..c7b6aea9c392 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/DataUsageDetailView.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/DataUsageDetailView.java @@ -115,6 +115,12 @@ public class DataUsageDetailView extends LinearLayout { final TextView infoBottom = (TextView) findViewById(R.id.usage_info_bottom_text); infoBottom.setVisibility(bottom != null ? View.VISIBLE : View.GONE); infoBottom.setText(bottom); + boolean showLevel = info.warningLevel > 0 || info.limitLevel > 0; + graph.setVisibility(showLevel ? View.VISIBLE : View.GONE); + if (!showLevel) { + infoTop.setVisibility(View.GONE); + } + } private String formatBytes(long bytes) { -- GitLab From c5109b3f6e98b00518f00f5965479542c9bde394 Mon Sep 17 00:00:00 2001 From: Vadim Tryshev Date: Thu, 22 Sep 2016 18:26:09 -0700 Subject: [PATCH 524/809] Update/correct Drag and Drop docs. This CL reflects the N MR1 behavior and fixes some bugs. Defining the compatibility behavior will be done separately. Bug: 31702571 Change-Id: I2a79871f47849f9f5a9c3377a3061208488e6ecb --- core/java/android/view/DragEvent.java | 36 ++++++++++++++++---------- docs/html/guide/topics/ui/drag-drop.jd | 25 +++++++++++------- 2 files changed, 38 insertions(+), 23 deletions(-) diff --git a/core/java/android/view/DragEvent.java b/core/java/android/view/DragEvent.java index 691a385be9da..2baa0b4691ab 100644 --- a/core/java/android/view/DragEvent.java +++ b/core/java/android/view/DragEvent.java @@ -153,12 +153,16 @@ public class DragEvent implements Parcelable { * if it can accept a drop. The onDragEvent() or onDrag() methods usually inspect the metadata * from {@link #getClipDescription()} to determine if they can accept the data contained in * this drag. For an operation that doesn't represent data transfer, these methods may - * perform other actions to determine whether or not the View should accept the drag. + * perform other actions to determine whether or not the View should accept the data. * If the View wants to indicate that it is a valid drop target, it can also react by * changing its appearance. *

      - * A View only receives further drag events if it returns {@code true} in response to - * ACTION_DRAG_STARTED. + * Views added or becoming visible for the first time during a drag operation receive this + * event when they are added or becoming visible. + *

      + *

      + * A View only receives further drag events if it returns {@code true} in response to + * ACTION_DRAG_STARTED. *

      * @see #ACTION_DRAG_ENDED * @see #getX() @@ -177,9 +181,10 @@ public class DragEvent implements Parcelable { *

      *

      * The system stops sending ACTION_DRAG_LOCATION events to a View once the user moves the - * drag shadow out of the View object's bounding box. If the user moves the drag shadow back - * into the View object's bounding box, the View receives an ACTION_DRAG_ENTERED again before - * receiving any more ACTION_DRAG_LOCATION events. + * drag shadow out of the View object's bounding box or into a descendant view that can accept + * the data. If the user moves the drag shadow back into the View object's bounding box or out + * of a descendant view that can accept the data, the View receives an ACTION_DRAG_ENTERED again + * before receiving any more ACTION_DRAG_LOCATION events. *

      * @see #ACTION_DRAG_ENTERED * @see #getX() @@ -189,7 +194,8 @@ public class DragEvent implements Parcelable { /** * Action constant returned by {@link #getAction()}: Signals to a View that the user - * has released the drag shadow, and the drag point is within the bounding box of the View. + * has released the drag shadow, and the drag point is within the bounding box of the View and + * not within a descendant view that can accept the data. * The View should retrieve the data from the DragEvent by calling {@link #getClipData()}. * The methods {@link #getX()} and {@link #getY()} return the X and Y position of the drop point * within the View object's bounding box. @@ -212,8 +218,10 @@ public class DragEvent implements Parcelable { * operation has concluded. A View that changed its appearance during the operation should * return to its usual drawing state in response to this event. *

      - * All views that received an ACTION_DRAG_STARTED event will receive the - * ACTION_DRAG_ENDED event even if they are not currently visible when the drag ends. + * All views with listeners that returned boolean true for the ACTION_DRAG_STARTED + * event will receive the ACTION_DRAG_ENDED event even if they are not currently visible when + * the drag ends. Views removed during the drag operation won't receive the ACTION_DRAG_ENDED + * event. *

      *

      * The View object can call {@link #getResult()} to see the result of the operation. @@ -234,9 +242,10 @@ public class DragEvent implements Parcelable { * drop target. *

      * The system stops sending ACTION_DRAG_LOCATION events to a View once the user moves the - * drag shadow out of the View object's bounding box. If the user moves the drag shadow back - * into the View object's bounding box, the View receives an ACTION_DRAG_ENTERED again before - * receiving any more ACTION_DRAG_LOCATION events. + * drag shadow out of the View object's bounding box or into a descendant view that can accept + * the data. If the user moves the drag shadow back into the View object's bounding box or out + * of a descendant view that can accept the data, the View receives an ACTION_DRAG_ENTERED again + * before receiving any more ACTION_DRAG_LOCATION events. *

      * @see #ACTION_DRAG_ENTERED * @see #ACTION_DRAG_LOCATION @@ -245,7 +254,8 @@ public class DragEvent implements Parcelable { /** * Action constant returned by {@link #getAction()}: Signals that the user has moved the - * drag shadow outside the bounding box of the View. + * drag shadow out of the bounding box of the View or into a descendant view that can accept + * the data. * The View can react by changing its appearance in a way that tells the user that * View is no longer the immediate drop target. *
      The user releases the drag shadow within the bounding box of a View that can accept the - data. The system sends the View object's listener a drag event with action type + data, but not within its descendant view that can accept the data. The system sends the View + object's listener a drag event with action type {@link android.view.DragEvent#ACTION_DROP}. The drag event contains the data that was passed to the system in the call to {@link android.view.View#startDrag(ClipData,View.DragShadowBuilder,Object,int) startDrag()} @@ -317,6 +318,10 @@ DraggableDot.java in A View object's drag event listener receives this event action type when the drag shadow has just entered the bounding box of the View. This is the first event action type the - listener receives when the drag shadow enters the bounding box. If the listener wants to - continue receiving drag events for this operation, it must return boolean - true to the system. + listener receives when the drag shadow enters the bounding box. @@ -334,7 +337,8 @@ DraggableDot.java in @@ -711,8 +716,7 @@ imageView.setOnLongClickListener(new View.OnLongClickListener() { If the listener can accept a drop, it should return true. This tells the system to continue to send drag events to the listener. If it can't accept a drop, it should return false, and the system - will stop sending drag events until it sends out - {@link android.view.DragEvent#ACTION_DRAG_ENDED}. + will stop sending drag events for the current drag operation.

      diff --git a/docs/html/guide/topics/ui/drag-drop.jd b/docs/html/guide/topics/ui/drag-drop.jd index 8871c87f4f25..092271b5caa9 100644 --- a/docs/html/guide/topics/ui/drag-drop.jd +++ b/docs/html/guide/topics/ui/drag-drop.jd @@ -152,7 +152,7 @@ DraggableDot.java in

    @@ -754,7 +758,8 @@ imageView.setOnLongClickListener(new View.OnLongClickListener() {

  • {@link android.view.DragEvent#ACTION_DRAG_EXITED}: This event is sent to a listener that previously received {@link android.view.DragEvent#ACTION_DRAG_ENTERED}, after - the drag shadow is no longer within the bounding box of the listener's View. + the drag shadow is no longer within the bounding box of the listener's View or it's within + the bounding box of a descendant view that can accept the data.

-- GitLab From 2c25e4a96bf5fd4439f11ab1c4319c8fc2240247 Mon Sep 17 00:00:00 2001 From: Meng Wang Date: Mon, 19 Sep 2016 14:18:05 -0700 Subject: [PATCH 525/809] Support WFC roaming preference Added keys in CarrierConfig and Settings.Global Bug: 31492826 Change-Id: Ice33f6ee5c42b92ed2f7258ff8b28c50510cde31 --- core/java/android/provider/Settings.java | 11 ++++++- .../telephony/CarrierConfigManager.java | 30 +++++++++++++++++-- 2 files changed, 37 insertions(+), 4 deletions(-) diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 8f626df8d580..e27e00571ad5 100755 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -8666,7 +8666,7 @@ public final class Settings { public static final String WFC_IMS_ENABLED = "wfc_ims_enabled"; /** - * WFC Mode. + * WFC mode on home/non-roaming network. *

* Type: int - 2=Wi-Fi preferred, 1=Cellular preferred, 0=Wi-Fi only * @@ -8674,6 +8674,15 @@ public final class Settings { */ public static final String WFC_IMS_MODE = "wfc_ims_mode"; + /** + * WFC mode on roaming network. + *

+ * Type: int - see {@link WFC_IMS_MODE} for values + * + * @hide + */ + public static final String WFC_IMS_ROAMING_MODE = "wfc_ims_roaming_mode"; + /** * Whether WFC roaming is enabled *

diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java index 4d946dc365ad..eae82c943ceb 100644 --- a/telephony/java/android/telephony/CarrierConfigManager.java +++ b/telephony/java/android/telephony/CarrierConfigManager.java @@ -286,13 +286,23 @@ public class CarrierConfigManager { "carrier_wfc_supports_wifi_only_bool"; /** - * Default WFC_IMS_mode 0: WIFI_ONLY - * 1: CELLULAR_PREFERRED - * 2: WIFI_PREFERRED + * Default WFC_IMS_MODE for home network 0: WIFI_ONLY + * 1: CELLULAR_PREFERRED + * 2: WIFI_PREFERRED * @hide */ public static final String KEY_CARRIER_DEFAULT_WFC_IMS_MODE_INT = "carrier_default_wfc_ims_mode_int"; + + /** + * Default WFC_IMS_MODE for roaming + * See {@link KEY_CARRIER_DEFAULT_WFC_IMS_MODE_INT} for valid values. + * + * @hide + */ + public static final String KEY_CARRIER_DEFAULT_WFC_IMS_ROAMING_MODE_INT = + "carrier_default_wfc_ims_roaming_mode_int"; + /** * Default WFC_IMS_enabled: true VoWiFi by default is on * false VoWiFi by default is off @@ -957,6 +967,18 @@ public class CarrierConfigManager { */ public static final String FILTERED_CNAP_NAMES_STRING_ARRAY = "filtered_cnap_names_string_array"; + /** + * Determine whether user can change Wi-Fi Calling preference in roaming. + * {@code false} - roaming preference {@link KEY_CARRIER_DEFAULT_WFC_IMS_ROAMING_MODE_INT} is + * the same as home preference {@link KEY_CARRIER_DEFAULT_WFC_IMS_MODE_INT} + * and cannot be changed. + * {@code true} - roaming preference can be changed by user independently. + * + * @hide + */ + public static final String KEY_EDITABLE_WFC_ROAMING_MODE_BOOL = + "editable_wfc_roaming_mode_bool"; + /** The default value for every variable. */ private final static PersistableBundle sDefaults; @@ -979,6 +1001,7 @@ public class CarrierConfigManager { sDefaults.putBoolean(KEY_CARRIER_DEFAULT_WFC_IMS_ROAMING_ENABLED_BOOL, false); sDefaults.putBoolean(KEY_CARRIER_PROMOTE_WFC_ON_CALL_FAIL_BOOL, false); sDefaults.putInt(KEY_CARRIER_DEFAULT_WFC_IMS_MODE_INT, 2); + sDefaults.putInt(KEY_CARRIER_DEFAULT_WFC_IMS_ROAMING_MODE_INT, 2); sDefaults.putBoolean(KEY_CARRIER_FORCE_DISABLE_ETWS_CMAS_TEST_BOOL, false); sDefaults.putBoolean(KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL, false); sDefaults.putBoolean(KEY_CARRIER_VOLTE_TTY_SUPPORTED_BOOL, true); @@ -1129,6 +1152,7 @@ public class CarrierConfigManager { sDefaults.putBoolean(KEY_ENHANCED_4G_LTE_TITLE_VARIANT_BOOL, false); sDefaults.putBoolean(KEY_NOTIFY_VT_HANDOVER_TO_WIFI_FAILURE_BOOL, false); sDefaults.putStringArray(FILTERED_CNAP_NAMES_STRING_ARRAY, null); + sDefaults.putBoolean(KEY_EDITABLE_WFC_ROAMING_MODE_BOOL, false); } /** -- GitLab From 3629af022fd55cc968e47a05c4b07a2980950d77 Mon Sep 17 00:00:00 2001 From: Will Harmon Date: Wed, 21 Sep 2016 17:55:01 -0700 Subject: [PATCH 526/809] Remove location tile from the list of default-enabled QuickSettings tiles Fixes: 31708103 Change-Id: I0218beee23199df2e6969e3e858294e65db6c0f8 --- packages/SystemUI/res/values/config.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml index 8d44048b9582..71f40f1ac4dc 100644 --- a/packages/SystemUI/res/values/config.xml +++ b/packages/SystemUI/res/values/config.xml @@ -100,7 +100,7 @@ - wifi,cell,battery,dnd,flashlight,rotation,bt,airplane,location + wifi,cell,battery,dnd,flashlight,rotation,bt,airplane -- GitLab From dd8611fc5a374220b3c2b07814dd072d3fe73cca Mon Sep 17 00:00:00 2001 From: "dongwan0605.kim" Date: Fri, 16 Sep 2016 16:26:57 +0900 Subject: [PATCH 527/809] Fix RTL issue of ImageFloatingTextView Sometimes, makeSingleLayout() can be invoked before layout direction is resolved. When not resolved, it indents in LTR layout although it should be RTL. So, to guarantee the exact indenting, we should re-build the text layout when the layout direction is changed. Test: manual - Test BigTextStyle notifications with LargeIcon under RTL configurations. Fixes: 31633875 Change-Id: Idc6c5d7d41632cb9e1b70d9c67c13852e3f25023 --- .../internal/widget/ImageFloatingTextView.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/core/java/com/android/internal/widget/ImageFloatingTextView.java b/core/java/com/android/internal/widget/ImageFloatingTextView.java index 926ebd158b50..358be604f847 100644 --- a/core/java/com/android/internal/widget/ImageFloatingTextView.java +++ b/core/java/com/android/internal/widget/ImageFloatingTextView.java @@ -40,6 +40,9 @@ public class ImageFloatingTextView extends TextView { /** Number of lines from the top to indent */ private int mIndentLines; + /** Resolved layout direction */ + private int mResolvedDirection = LAYOUT_DIRECTION_UNDEFINED; + public ImageFloatingTextView(Context context) { this(context, null); } @@ -82,7 +85,7 @@ public class ImageFloatingTextView extends TextView { margins[i] = endMargin; } } - if (getLayoutDirection() == LAYOUT_DIRECTION_RTL) { + if (mResolvedDirection == LAYOUT_DIRECTION_RTL) { builder.setIndents(margins, null); } else { builder.setIndents(null, margins); @@ -91,6 +94,19 @@ public class ImageFloatingTextView extends TextView { return builder.build(); } + @Override + public void onRtlPropertiesChanged(int layoutDirection) { + super.onRtlPropertiesChanged(layoutDirection); + + if (layoutDirection != mResolvedDirection && isLayoutDirectionResolved()) { + mResolvedDirection = layoutDirection; + if (mIndentLines > 0) { + // Invalidate layout. + setHint(getHint()); + } + } + } + @RemotableViewMethod public void setHasImage(boolean hasImage) { setNumIndentLines(hasImage ? 2 : 0); -- GitLab From b926666a76d25b7d1b693025ffa7e0118fad547e Mon Sep 17 00:00:00 2001 From: Dong-wan Kim Date: Wed, 21 Sep 2016 13:08:30 -0700 Subject: [PATCH 528/809] Fix DismissView cannot be clicked sometimes after boot mActivePointerId should be initialized to INVALID_POINTER. Otherwise, the click event to DismissView can be intercepted by onInterceptTouchEventScroll() due to wrong calculated value of yDiff when mActivePointerId is not intialized. This issue can be reproduced at the first click to DismissView while user have not touched any notification views ever after boot. And that click event must contains some MOVE events. Test: manual - Check whether user always can click DismissView after boot. Fixes: 31649735 Change-Id: If9baf6db1b891a58e17153806d52d395ddd661df --- .../systemui/statusbar/stack/NotificationStackScrollLayout.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java index d1de38c7b9e4..9552f0501b5e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java @@ -130,7 +130,7 @@ public class NotificationStackScrollLayout extends ViewGroup private boolean mIsBeingDragged; private int mLastMotionY; private int mDownX; - private int mActivePointerId; + private int mActivePointerId = INVALID_POINTER; private boolean mTouchIsClick; private float mInitialTouchX; private float mInitialTouchY; -- GitLab From 572d710ba3088f291c285978b2589850534ab6dc Mon Sep 17 00:00:00 2001 From: Andrew Solovay Date: Fri, 23 Sep 2016 13:56:11 -0700 Subject: [PATCH 529/809] docs: Redirect for /preview/setup-sdk.html Forgot to add a redirect for this one when N released. Redirects were staged to http://go/dods-stage Change-Id: I333fbe9a51ae4d105e35ef4b86f36e576032f9fe --- docs/html/_redirects.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/html/_redirects.yaml b/docs/html/_redirects.yaml index d2abe2174c42..f9657c4d70d9 100644 --- a/docs/html/_redirects.yaml +++ b/docs/html/_redirects.yaml @@ -817,8 +817,11 @@ redirects: to: https://code.google.com/p/android/issues/list?can=2&q=label%3ADevPreview-N - from: /preview/bugreports/... to: https://code.google.com/p/android/issues/list?can=2&q=label%3ADevPreview-N +- from: /preview/setup-sdk.html + to: /studio/index.html - from: /2016/03/first-preview-of-android-n-developer.html to: http://android-developers.blogspot.com/2016/03/first-preview-of-android-n-developer.html + - from: /reference/org/apache/http/... to: /about/versions/marshmallow/android-6.0-changes.html#behavior-apache-http-client - from: /shareables/... @@ -1280,4 +1283,4 @@ redirects: - from: /preview/features/background-optimization.html to: /topic/performance/background-optimization.html - from: /preview/features/data-saver.html - to: /training/basics/network-ops/data-saver.html \ No newline at end of file + to: /training/basics/network-ops/data-saver.html -- GitLab From 7f6a7bc75a0e4866267895e84424068cfbfd3c9f Mon Sep 17 00:00:00 2001 From: Suprabh Shukla Date: Fri, 23 Sep 2016 13:43:09 -0700 Subject: [PATCH 530/809] Enabling wifi on new demo session A customer may switch off wifi in a retail environment, which will lead to no internet connectivity in the following sessions, which is not desirable. Fixing it by enabling wifi at the beginning of every new demo session. Bug: 31689469 Change-Id: Ie7eb17bfe8fbee185d5bfe6ac7a590ca5dabdc29 --- .../android/server/retaildemo/RetailDemoModeService.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/services/retaildemo/java/com/android/server/retaildemo/RetailDemoModeService.java b/services/retaildemo/java/com/android/server/retaildemo/RetailDemoModeService.java index 6b273210263d..6197c42d0146 100644 --- a/services/retaildemo/java/com/android/server/retaildemo/RetailDemoModeService.java +++ b/services/retaildemo/java/com/android/server/retaildemo/RetailDemoModeService.java @@ -44,6 +44,7 @@ import android.hardware.camera2.CameraManager; import android.media.AudioManager; import android.media.AudioSystem; import android.net.Uri; +import android.net.wifi.WifiManager; import android.os.Environment; import android.os.FileUtils; import android.os.Handler; @@ -117,6 +118,7 @@ public class RetailDemoModeService extends SystemService { private ServiceThread mHandlerThread; private PendingIntent mResetDemoPendingIntent; private CameraManager mCameraManager; + private WifiManager mWifiManager; private String[] mCameraIdsWithFlash; private Configuration mSystemUserConfiguration; private PreloadAppsInstaller mPreloadAppsInstaller; @@ -491,6 +493,7 @@ public class RetailDemoModeService extends SystemService { PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, TAG); mNm = NotificationManager.from(getContext()); + mWifiManager = (WifiManager) getContext().getSystemService(Context.WIFI_SERVICE); mCameraManager = (CameraManager) getContext() .getSystemService(Context.CAMERA_SERVICE); mCameraIdsWithFlash = getCameraIdsWithFlash(); @@ -528,6 +531,9 @@ public class RetailDemoModeService extends SystemService { mAmi.updatePersistentConfigurationForUser(getSystemUsersConfiguration(), userId); turnOffAllFlashLights(); muteVolumeStreams(); + if (!mWifiManager.isWifiEnabled()) { + mWifiManager.setWifiEnabled(true); + } // Disable lock screen for demo users. LockPatternUtils lockPatternUtils = new LockPatternUtils(getContext()); lockPatternUtils.setLockScreenDisabled(true, userId); -- GitLab From 75bf3fd73b5a75698f41f1593e384a9a3a3afb74 Mon Sep 17 00:00:00 2001 From: Eric Laurent Date: Fri, 23 Sep 2016 13:10:18 -0700 Subject: [PATCH 531/809] DO NOT MERGE - fix truncated boot sound Wait for audioserver service initialization to complete before playing the sound Bug: 31651778 Change-Id: I988de549d20468a090c939a1c624ee47d4036cd3 --- cmds/bootanimation/Android.mk | 3 ++- cmds/bootanimation/AudioPlayer.cpp | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/cmds/bootanimation/Android.mk b/cmds/bootanimation/Android.mk index 7c8842ca0231..7f3fe22f4cf5 100644 --- a/cmds/bootanimation/Android.mk +++ b/cmds/bootanimation/Android.mk @@ -23,7 +23,8 @@ LOCAL_SHARED_LIBRARIES := \ libEGL \ libGLESv1_CM \ libgui \ - libtinyalsa + libtinyalsa \ + libmedia LOCAL_MODULE:= bootanimation diff --git a/cmds/bootanimation/AudioPlayer.cpp b/cmds/bootanimation/AudioPlayer.cpp index 293213008d58..f5acac485c81 100644 --- a/cmds/bootanimation/AudioPlayer.cpp +++ b/cmds/bootanimation/AudioPlayer.cpp @@ -23,6 +23,7 @@ #include #include #include +#include #define ID_RIFF 0x46464952 #define ID_WAVE 0x45564157 @@ -143,6 +144,9 @@ bool AudioPlayer::init(const char* config) struct mixer* mixer = NULL; char name[MAX_LINE_LENGTH]; + // Fake call to wait for audio HAL initialization completion + AudioSystem::getParameters(String8("")); + for (;;) { const char* endl = strstr(config, "\n"); if (!endl) break; -- GitLab From 74fa2d684612fbd75a827c64ef4d144cdccbc6ef Mon Sep 17 00:00:00 2001 From: Ajay Panicker Date: Fri, 23 Sep 2016 12:39:43 -0700 Subject: [PATCH 532/809] Prevent NPE if someone creates a bad BluetoothHealthAppConfig object Bug: 28271086 Change-Id: Ic8ebe3152e2b06c070316acc7e6a1f89763cd2a3 --- .../android/bluetooth/BluetoothHealthAppConfiguration.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/java/android/bluetooth/BluetoothHealthAppConfiguration.java b/core/java/android/bluetooth/BluetoothHealthAppConfiguration.java index 15a9101452ed..1717a1e36e1f 100644 --- a/core/java/android/bluetooth/BluetoothHealthAppConfiguration.java +++ b/core/java/android/bluetooth/BluetoothHealthAppConfiguration.java @@ -68,7 +68,9 @@ public final class BluetoothHealthAppConfiguration implements Parcelable { public boolean equals(Object o) { if (o instanceof BluetoothHealthAppConfiguration) { BluetoothHealthAppConfiguration config = (BluetoothHealthAppConfiguration) o; - // config.getName() can never be NULL + + if (mName == null) return false; + return mName.equals(config.getName()) && mDataType == config.getDataType() && mRole == config.getRole() && -- GitLab From 9ede1d260284bbf0b47ca6f0315e943058624520 Mon Sep 17 00:00:00 2001 From: Adrian Roos Date: Fri, 23 Sep 2016 14:08:09 -0700 Subject: [PATCH 533/809] Fix wake lock logic during Dream startup Fixes a crash that would happen in all dreams that did not have permission to acquire wake locks. Instead moves the wake lock logic into the system process. Also fixes a bug in DozeService where the wake lock was not held until dozing was actually properly initialized. Fixes: 31612287 Bug: 31044352 Related-CL: I85955a2b7d6bad5171accbc336117a9660b1b198 Test: adb shell settings put secure screensaver_components com.android.dreams.basic/.Colors; adb shell service call dreams 1 Change-Id: Idb3f921ee71b6da6c2ab0c44c332ef91f93ddbc0 --- .../android/service/dreams/DreamService.java | 179 ++++++++---------- .../android/service/dreams/IDreamService.aidl | 4 +- .../android/systemui/doze/DozeService.java | 17 +- .../server/dreams/DreamController.java | 47 +++-- 4 files changed, 123 insertions(+), 124 deletions(-) diff --git a/core/java/android/service/dreams/DreamService.java b/core/java/android/service/dreams/DreamService.java index e958fbef563d..94505d37310d 100644 --- a/core/java/android/service/dreams/DreamService.java +++ b/core/java/android/service/dreams/DreamService.java @@ -27,6 +27,7 @@ import android.graphics.PixelFormat; import android.graphics.drawable.ColorDrawable; import android.os.Handler; import android.os.IBinder; +import android.os.IRemoteCallback; import android.os.PowerManager; import android.os.RemoteException; import android.os.ServiceManager; @@ -192,9 +193,6 @@ public class DreamService extends Service implements Window.Callback { private boolean mDebug = false; - private PowerManager.WakeLock mWakeLock; - private boolean mWakeLockAcquired; - public DreamService() { mSandman = IDreamManager.Stub.asInterface(ServiceManager.getService(DREAM_SERVICE)); } @@ -789,8 +787,6 @@ public class DreamService extends Service implements Window.Callback { public void onCreate() { if (mDebug) Slog.v(TAG, "onCreate()"); super.onCreate(); - mWakeLock = getSystemService(PowerManager.class) - .newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "DreamService"); } /** @@ -830,21 +826,9 @@ public class DreamService extends Service implements Window.Callback { @Override public final IBinder onBind(Intent intent) { if (mDebug) Slog.v(TAG, "onBind() intent = " + intent); - - // Need to stay awake until we dispatch onDreamingStarted. This is released either in - // attach() or onDestroy(). - mWakeLock.acquire(5000); - mWakeLockAcquired = true; return new DreamServiceWrapper(); } - private void releaseWakeLockIfNeeded() { - if (mWakeLockAcquired) { - mWakeLock.release(); - mWakeLockAcquired = false; - } - } - /** * Stops the dream and detaches from the window. *

@@ -921,8 +905,6 @@ public class DreamService extends Service implements Window.Callback { detach(); super.onDestroy(); - - releaseWakeLockIfNeeded(); // for acquire in onBind() } // end public api @@ -961,90 +943,94 @@ public class DreamService extends Service implements Window.Callback { * Must run on mHandler. * * @param windowToken A window token that will allow a window to be created in the correct layer. + * @param started A callback that will be invoked once onDreamingStarted has completed. */ - private final void attach(IBinder windowToken, boolean canDoze) { - try { - if (mWindowToken != null) { - Slog.e(TAG, "attach() called when already attached with token=" + mWindowToken); - return; - } - if (mFinished || mWaking) { - Slog.w(TAG, "attach() called after dream already finished"); - try { - mSandman.finishSelf(windowToken, true /*immediate*/); - } catch (RemoteException ex) { - // system server died - } - return; + private final void attach(IBinder windowToken, boolean canDoze, IRemoteCallback started) { + if (mWindowToken != null) { + Slog.e(TAG, "attach() called when already attached with token=" + mWindowToken); + return; + } + if (mFinished || mWaking) { + Slog.w(TAG, "attach() called after dream already finished"); + try { + mSandman.finishSelf(windowToken, true /*immediate*/); + } catch (RemoteException ex) { + // system server died } + return; + } - mWindowToken = windowToken; - mCanDoze = canDoze; - if (mWindowless && !mCanDoze) { - throw new IllegalStateException("Only doze dreams can be windowless"); - } - if (!mWindowless) { - mWindow = new PhoneWindow(this); - mWindow.setCallback(this); - mWindow.requestFeature(Window.FEATURE_NO_TITLE); - mWindow.setBackgroundDrawable(new ColorDrawable(0xFF000000)); - mWindow.setFormat(PixelFormat.OPAQUE); - - if (mDebug) { - Slog.v(TAG, String.format("Attaching window token: %s to window of type %s", - windowToken, WindowManager.LayoutParams.TYPE_DREAM)); - } + mWindowToken = windowToken; + mCanDoze = canDoze; + if (mWindowless && !mCanDoze) { + throw new IllegalStateException("Only doze dreams can be windowless"); + } + if (!mWindowless) { + mWindow = new PhoneWindow(this); + mWindow.setCallback(this); + mWindow.requestFeature(Window.FEATURE_NO_TITLE); + mWindow.setBackgroundDrawable(new ColorDrawable(0xFF000000)); + mWindow.setFormat(PixelFormat.OPAQUE); - WindowManager.LayoutParams lp = mWindow.getAttributes(); - lp.type = WindowManager.LayoutParams.TYPE_DREAM; - lp.token = windowToken; - lp.windowAnimations = com.android.internal.R.style.Animation_Dream; - lp.flags |= (WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN - | WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR - | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED - | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD - | WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON - | (mFullscreen ? WindowManager.LayoutParams.FLAG_FULLSCREEN : 0) - | (mScreenBright ? WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON : 0) - ); - mWindow.setAttributes(lp); - // Workaround: Currently low-profile and in-window system bar backgrounds don't go - // along well. Dreams usually don't need such bars anyways, so disable them by default. - mWindow.clearFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); - mWindow.setWindowManager(null, windowToken, "dream", true); - - applySystemUiVisibilityFlags( - (mLowProfile ? View.SYSTEM_UI_FLAG_LOW_PROFILE : 0), - View.SYSTEM_UI_FLAG_LOW_PROFILE); + if (mDebug) Slog.v(TAG, String.format("Attaching window token: %s to window of type %s", + windowToken, WindowManager.LayoutParams.TYPE_DREAM)); - try { - getWindowManager().addView(mWindow.getDecorView(), mWindow.getAttributes()); - } catch (WindowManager.BadTokenException ex) { - // This can happen because the dream manager service will remove the token - // immediately without necessarily waiting for the dream to start. - // We should receive a finish message soon. - Slog.i(TAG, "attach() called after window token already removed, dream will " - + "finish soon"); - mWindow = null; - return; - } + WindowManager.LayoutParams lp = mWindow.getAttributes(); + lp.type = WindowManager.LayoutParams.TYPE_DREAM; + lp.token = windowToken; + lp.windowAnimations = com.android.internal.R.style.Animation_Dream; + lp.flags |= ( WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN + | WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR + | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED + | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD + | WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON + | (mFullscreen ? WindowManager.LayoutParams.FLAG_FULLSCREEN : 0) + | (mScreenBright ? WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON : 0) + ); + mWindow.setAttributes(lp); + // Workaround: Currently low-profile and in-window system bar backgrounds don't go + // along well. Dreams usually don't need such bars anyways, so disable them by default. + mWindow.clearFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); + mWindow.setWindowManager(null, windowToken, "dream", true); + + applySystemUiVisibilityFlags( + (mLowProfile ? View.SYSTEM_UI_FLAG_LOW_PROFILE : 0), + View.SYSTEM_UI_FLAG_LOW_PROFILE); + + try { + getWindowManager().addView(mWindow.getDecorView(), mWindow.getAttributes()); + } catch (WindowManager.BadTokenException ex) { + // This can happen because the dream manager service will remove the token + // immediately without necessarily waiting for the dream to start. + // We should receive a finish message soon. + Slog.i(TAG, "attach() called after window token already removed, dream will " + + "finish soon"); + mWindow = null; + return; } - // We need to defer calling onDreamingStarted until after onWindowAttached, - // which is posted to the handler by addView, so we post onDreamingStarted - // to the handler also. Need to watch out here in case detach occurs before - // this callback is invoked. - mHandler.post(mWakeLock.wrap(() -> { + } + // We need to defer calling onDreamingStarted until after onWindowAttached, + // which is posted to the handler by addView, so we post onDreamingStarted + // to the handler also. Need to watch out here in case detach occurs before + // this callback is invoked. + mHandler.post(new Runnable() { + @Override + public void run() { if (mWindow != null || mWindowless) { - if (mDebug) { - Slog.v(TAG, "Calling onDreamingStarted()"); - } + if (mDebug) Slog.v(TAG, "Calling onDreamingStarted()"); mStarted = true; - onDreamingStarted(); + try { + onDreamingStarted(); + } finally { + try { + started.sendResult(null); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } } - })); - } finally { - releaseWakeLockIfNeeded(); // for acquire in onBind - } + } + }); } private boolean getWindowFlagValue(int flag, boolean defaultValue) { @@ -1116,11 +1102,12 @@ public class DreamService extends Service implements Window.Callback { private final class DreamServiceWrapper extends IDreamService.Stub { @Override - public void attach(final IBinder windowToken, final boolean canDoze) { + public void attach(final IBinder windowToken, final boolean canDoze, + IRemoteCallback started) { mHandler.post(new Runnable() { @Override public void run() { - DreamService.this.attach(windowToken, canDoze); + DreamService.this.attach(windowToken, canDoze, started); } }); } diff --git a/core/java/android/service/dreams/IDreamService.aidl b/core/java/android/service/dreams/IDreamService.aidl index 9bb18044e3ea..ce0435498917 100644 --- a/core/java/android/service/dreams/IDreamService.aidl +++ b/core/java/android/service/dreams/IDreamService.aidl @@ -16,11 +16,13 @@ package android.service.dreams; +import android.os.IRemoteCallback; + /** * @hide */ oneway interface IDreamService { - void attach(IBinder windowToken, boolean canDoze); + void attach(IBinder windowToken, boolean canDoze, IRemoteCallback started); void detach(); void wakeUp(); } diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeService.java b/packages/SystemUI/src/com/android/systemui/doze/DozeService.java index ec4f447d3a38..4edcb4b337ae 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeService.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeService.java @@ -159,18 +159,15 @@ public class DozeService extends DreamService { // Ask the host to get things ready to start dozing. // Once ready, we call startDozing() at which point the CPU may suspend // and we will need to acquire a wakelock to do work. - mHost.startDozing(new Runnable() { - @Override - public void run() { - if (mDreaming) { - startDozing(); + mHost.startDozing(mWakeLock.wrap(() -> { + if (mDreaming) { + startDozing(); - // From this point until onDreamingStopped we will need to hold a - // wakelock whenever we are doing work. Note that we never call - // stopDozing because can we just keep dozing until the bitter end. - } + // From this point until onDreamingStopped we will need to hold a + // wakelock whenever we are doing work. Note that we never call + // stopDozing because can we just keep dozing until the bitter end. } - }); + })); } @Override diff --git a/services/core/java/com/android/server/dreams/DreamController.java b/services/core/java/com/android/server/dreams/DreamController.java index 9fa93f4b8a6c..3072f4387fb9 100644 --- a/services/core/java/com/android/server/dreams/DreamController.java +++ b/services/core/java/com/android/server/dreams/DreamController.java @@ -24,8 +24,10 @@ import android.content.Context; import android.content.Intent; import android.content.ServiceConnection; import android.os.Binder; +import android.os.Bundle; import android.os.Handler; import android.os.IBinder; +import android.os.IRemoteCallback; import android.os.PowerManager; import android.os.RemoteException; import android.os.IBinder.DeathRecipient; @@ -253,7 +255,8 @@ final class DreamController { private void attach(IDreamService service) { try { service.asBinder().linkToDeath(mCurrentDream, 0); - service.attach(mCurrentDream.mToken, mCurrentDream.mCanDoze); + service.attach(mCurrentDream.mToken, mCurrentDream.mCanDoze, + mCurrentDream.mDreamingStartedCallback); } catch (RemoteException ex) { Slog.e(TAG, "The dream service died unexpectedly.", ex); stopDream(true /*immediate*/); @@ -298,10 +301,10 @@ final class DreamController { mCanDoze = canDoze; mUserId = userId; mWakeLock = wakeLock; - // Hold the lock while we're waiting for the service to connect. Released either when - // DreamService connects (and is then responsible for keeping the device awake) or - // dreaming stops. + // Hold the lock while we're waiting for the service to connect and start dreaming. + // Released after the service has started dreaming, we stop dreaming, or it timed out. mWakeLock.acquire(); + mHandler.postDelayed(mReleaseWakeLockIfNeeded, 10000); } // May be called on any thread. @@ -324,25 +327,17 @@ final class DreamController { mHandler.post(new Runnable() { @Override public void run() { - try { - mConnected = true; - if (mCurrentDream == DreamRecord.this && mService == null) { - attach(IDreamService.Stub.asInterface(service)); - } - } finally { + mConnected = true; + if (mCurrentDream == DreamRecord.this && mService == null) { + attach(IDreamService.Stub.asInterface(service)); + // Wake lock will be released once dreaming starts. + } else { releaseWakeLockIfNeeded(); } } }); } - private void releaseWakeLockIfNeeded() { - if (mWakeLock != null) { - mWakeLock.release(); - mWakeLock = null; - } - } - // May be called on any thread. @Override public void onServiceDisconnected(ComponentName name) { @@ -356,5 +351,23 @@ final class DreamController { } }); } + + void releaseWakeLockIfNeeded() { + if (mWakeLock != null) { + mWakeLock.release(); + mWakeLock = null; + mHandler.removeCallbacks(mReleaseWakeLockIfNeeded); + } + } + + final Runnable mReleaseWakeLockIfNeeded = this::releaseWakeLockIfNeeded; + + final IRemoteCallback mDreamingStartedCallback = new IRemoteCallback.Stub() { + // May be called on any thread. + @Override + public void sendResult(Bundle data) throws RemoteException { + mHandler.post(mReleaseWakeLockIfNeeded); + } + }; } } \ No newline at end of file -- GitLab From 06b9b60c6dc7c3c4ed65e64a8151d6cff618cffa Mon Sep 17 00:00:00 2001 From: Vadim Tryshev Date: Fri, 23 Sep 2016 15:32:33 -0700 Subject: [PATCH 534/809] Adding compatibility note for drag/drop in N. Bug: 31702571 Change-Id: Ib4b839eec21ea8e1c2b3686595a45642eb8285ba --- core/java/android/os/Build.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/core/java/android/os/Build.java b/core/java/android/os/Build.java index 3d3dc9cc3418..151239bed02b 100644 --- a/core/java/android/os/Build.java +++ b/core/java/android/os/Build.java @@ -709,6 +709,14 @@ public class Build { * {@link android.widget.LinearLayout.LayoutParams LinearLayout.LayoutParams} to * {@link android.widget.RelativeLayout.LayoutParams RelativeLayout.LayoutParams}). *

  • Your application processes will not be killed when the device density changes.
  • + *
  • Drag and drop. After a view receives the + * {@link android.view.DragEvent#ACTION_DRAG_ENTERED} event, when the drag shadow moves into + * a descendant view that can accept the data, the view receives the + * {@link android.view.DragEvent#ACTION_DRAG_EXITED} event and won’t receive + * {@link android.view.DragEvent#ACTION_DRAG_LOCATION} and + * {@link android.view.DragEvent#ACTION_DROP} events while the drag shadow is within that + * descendant view, even if the descendant view returns false from its handler + * for these events.
  • * */ public static final int N = 24; -- GitLab From aa5a72920c93a524f60456e889827056ce4171cf Mon Sep 17 00:00:00 2001 From: Adrian Roos Date: Fri, 23 Sep 2016 14:08:09 -0700 Subject: [PATCH 535/809] Fix wake lock logic during Dream startup Fixes a crash that would happen in all dreams that did not have permission to acquire wake locks. Instead moves the wake lock logic into the system process. Also fixes a bug in DozeService where the wake lock was not held until dozing was actually properly initialized. Fixes: 31612287 Bug: 31044352 Related-CL: I85955a2b7d6bad5171accbc336117a9660b1b198 Test: adb shell settings put secure screensaver_components com.android.dreams.basic/.Colors; adb shell service call dreams 1 Change-Id: Idb3f921ee71b6da6c2ab0c44c332ef91f93ddbc0 (cherry picked from commit 9ede1d260284bbf0b47ca6f0315e943058624520) --- .../android/service/dreams/DreamService.java | 179 ++++++++---------- .../android/service/dreams/IDreamService.aidl | 4 +- .../android/systemui/doze/DozeService.java | 17 +- .../server/dreams/DreamController.java | 47 +++-- 4 files changed, 123 insertions(+), 124 deletions(-) diff --git a/core/java/android/service/dreams/DreamService.java b/core/java/android/service/dreams/DreamService.java index e958fbef563d..94505d37310d 100644 --- a/core/java/android/service/dreams/DreamService.java +++ b/core/java/android/service/dreams/DreamService.java @@ -27,6 +27,7 @@ import android.graphics.PixelFormat; import android.graphics.drawable.ColorDrawable; import android.os.Handler; import android.os.IBinder; +import android.os.IRemoteCallback; import android.os.PowerManager; import android.os.RemoteException; import android.os.ServiceManager; @@ -192,9 +193,6 @@ public class DreamService extends Service implements Window.Callback { private boolean mDebug = false; - private PowerManager.WakeLock mWakeLock; - private boolean mWakeLockAcquired; - public DreamService() { mSandman = IDreamManager.Stub.asInterface(ServiceManager.getService(DREAM_SERVICE)); } @@ -789,8 +787,6 @@ public class DreamService extends Service implements Window.Callback { public void onCreate() { if (mDebug) Slog.v(TAG, "onCreate()"); super.onCreate(); - mWakeLock = getSystemService(PowerManager.class) - .newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "DreamService"); } /** @@ -830,21 +826,9 @@ public class DreamService extends Service implements Window.Callback { @Override public final IBinder onBind(Intent intent) { if (mDebug) Slog.v(TAG, "onBind() intent = " + intent); - - // Need to stay awake until we dispatch onDreamingStarted. This is released either in - // attach() or onDestroy(). - mWakeLock.acquire(5000); - mWakeLockAcquired = true; return new DreamServiceWrapper(); } - private void releaseWakeLockIfNeeded() { - if (mWakeLockAcquired) { - mWakeLock.release(); - mWakeLockAcquired = false; - } - } - /** * Stops the dream and detaches from the window. *

    @@ -921,8 +905,6 @@ public class DreamService extends Service implements Window.Callback { detach(); super.onDestroy(); - - releaseWakeLockIfNeeded(); // for acquire in onBind() } // end public api @@ -961,90 +943,94 @@ public class DreamService extends Service implements Window.Callback { * Must run on mHandler. * * @param windowToken A window token that will allow a window to be created in the correct layer. + * @param started A callback that will be invoked once onDreamingStarted has completed. */ - private final void attach(IBinder windowToken, boolean canDoze) { - try { - if (mWindowToken != null) { - Slog.e(TAG, "attach() called when already attached with token=" + mWindowToken); - return; - } - if (mFinished || mWaking) { - Slog.w(TAG, "attach() called after dream already finished"); - try { - mSandman.finishSelf(windowToken, true /*immediate*/); - } catch (RemoteException ex) { - // system server died - } - return; + private final void attach(IBinder windowToken, boolean canDoze, IRemoteCallback started) { + if (mWindowToken != null) { + Slog.e(TAG, "attach() called when already attached with token=" + mWindowToken); + return; + } + if (mFinished || mWaking) { + Slog.w(TAG, "attach() called after dream already finished"); + try { + mSandman.finishSelf(windowToken, true /*immediate*/); + } catch (RemoteException ex) { + // system server died } + return; + } - mWindowToken = windowToken; - mCanDoze = canDoze; - if (mWindowless && !mCanDoze) { - throw new IllegalStateException("Only doze dreams can be windowless"); - } - if (!mWindowless) { - mWindow = new PhoneWindow(this); - mWindow.setCallback(this); - mWindow.requestFeature(Window.FEATURE_NO_TITLE); - mWindow.setBackgroundDrawable(new ColorDrawable(0xFF000000)); - mWindow.setFormat(PixelFormat.OPAQUE); - - if (mDebug) { - Slog.v(TAG, String.format("Attaching window token: %s to window of type %s", - windowToken, WindowManager.LayoutParams.TYPE_DREAM)); - } + mWindowToken = windowToken; + mCanDoze = canDoze; + if (mWindowless && !mCanDoze) { + throw new IllegalStateException("Only doze dreams can be windowless"); + } + if (!mWindowless) { + mWindow = new PhoneWindow(this); + mWindow.setCallback(this); + mWindow.requestFeature(Window.FEATURE_NO_TITLE); + mWindow.setBackgroundDrawable(new ColorDrawable(0xFF000000)); + mWindow.setFormat(PixelFormat.OPAQUE); - WindowManager.LayoutParams lp = mWindow.getAttributes(); - lp.type = WindowManager.LayoutParams.TYPE_DREAM; - lp.token = windowToken; - lp.windowAnimations = com.android.internal.R.style.Animation_Dream; - lp.flags |= (WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN - | WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR - | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED - | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD - | WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON - | (mFullscreen ? WindowManager.LayoutParams.FLAG_FULLSCREEN : 0) - | (mScreenBright ? WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON : 0) - ); - mWindow.setAttributes(lp); - // Workaround: Currently low-profile and in-window system bar backgrounds don't go - // along well. Dreams usually don't need such bars anyways, so disable them by default. - mWindow.clearFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); - mWindow.setWindowManager(null, windowToken, "dream", true); - - applySystemUiVisibilityFlags( - (mLowProfile ? View.SYSTEM_UI_FLAG_LOW_PROFILE : 0), - View.SYSTEM_UI_FLAG_LOW_PROFILE); + if (mDebug) Slog.v(TAG, String.format("Attaching window token: %s to window of type %s", + windowToken, WindowManager.LayoutParams.TYPE_DREAM)); - try { - getWindowManager().addView(mWindow.getDecorView(), mWindow.getAttributes()); - } catch (WindowManager.BadTokenException ex) { - // This can happen because the dream manager service will remove the token - // immediately without necessarily waiting for the dream to start. - // We should receive a finish message soon. - Slog.i(TAG, "attach() called after window token already removed, dream will " - + "finish soon"); - mWindow = null; - return; - } + WindowManager.LayoutParams lp = mWindow.getAttributes(); + lp.type = WindowManager.LayoutParams.TYPE_DREAM; + lp.token = windowToken; + lp.windowAnimations = com.android.internal.R.style.Animation_Dream; + lp.flags |= ( WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN + | WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR + | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED + | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD + | WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON + | (mFullscreen ? WindowManager.LayoutParams.FLAG_FULLSCREEN : 0) + | (mScreenBright ? WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON : 0) + ); + mWindow.setAttributes(lp); + // Workaround: Currently low-profile and in-window system bar backgrounds don't go + // along well. Dreams usually don't need such bars anyways, so disable them by default. + mWindow.clearFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); + mWindow.setWindowManager(null, windowToken, "dream", true); + + applySystemUiVisibilityFlags( + (mLowProfile ? View.SYSTEM_UI_FLAG_LOW_PROFILE : 0), + View.SYSTEM_UI_FLAG_LOW_PROFILE); + + try { + getWindowManager().addView(mWindow.getDecorView(), mWindow.getAttributes()); + } catch (WindowManager.BadTokenException ex) { + // This can happen because the dream manager service will remove the token + // immediately without necessarily waiting for the dream to start. + // We should receive a finish message soon. + Slog.i(TAG, "attach() called after window token already removed, dream will " + + "finish soon"); + mWindow = null; + return; } - // We need to defer calling onDreamingStarted until after onWindowAttached, - // which is posted to the handler by addView, so we post onDreamingStarted - // to the handler also. Need to watch out here in case detach occurs before - // this callback is invoked. - mHandler.post(mWakeLock.wrap(() -> { + } + // We need to defer calling onDreamingStarted until after onWindowAttached, + // which is posted to the handler by addView, so we post onDreamingStarted + // to the handler also. Need to watch out here in case detach occurs before + // this callback is invoked. + mHandler.post(new Runnable() { + @Override + public void run() { if (mWindow != null || mWindowless) { - if (mDebug) { - Slog.v(TAG, "Calling onDreamingStarted()"); - } + if (mDebug) Slog.v(TAG, "Calling onDreamingStarted()"); mStarted = true; - onDreamingStarted(); + try { + onDreamingStarted(); + } finally { + try { + started.sendResult(null); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } } - })); - } finally { - releaseWakeLockIfNeeded(); // for acquire in onBind - } + } + }); } private boolean getWindowFlagValue(int flag, boolean defaultValue) { @@ -1116,11 +1102,12 @@ public class DreamService extends Service implements Window.Callback { private final class DreamServiceWrapper extends IDreamService.Stub { @Override - public void attach(final IBinder windowToken, final boolean canDoze) { + public void attach(final IBinder windowToken, final boolean canDoze, + IRemoteCallback started) { mHandler.post(new Runnable() { @Override public void run() { - DreamService.this.attach(windowToken, canDoze); + DreamService.this.attach(windowToken, canDoze, started); } }); } diff --git a/core/java/android/service/dreams/IDreamService.aidl b/core/java/android/service/dreams/IDreamService.aidl index 9bb18044e3ea..ce0435498917 100644 --- a/core/java/android/service/dreams/IDreamService.aidl +++ b/core/java/android/service/dreams/IDreamService.aidl @@ -16,11 +16,13 @@ package android.service.dreams; +import android.os.IRemoteCallback; + /** * @hide */ oneway interface IDreamService { - void attach(IBinder windowToken, boolean canDoze); + void attach(IBinder windowToken, boolean canDoze, IRemoteCallback started); void detach(); void wakeUp(); } diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeService.java b/packages/SystemUI/src/com/android/systemui/doze/DozeService.java index ec4f447d3a38..4edcb4b337ae 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeService.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeService.java @@ -159,18 +159,15 @@ public class DozeService extends DreamService { // Ask the host to get things ready to start dozing. // Once ready, we call startDozing() at which point the CPU may suspend // and we will need to acquire a wakelock to do work. - mHost.startDozing(new Runnable() { - @Override - public void run() { - if (mDreaming) { - startDozing(); + mHost.startDozing(mWakeLock.wrap(() -> { + if (mDreaming) { + startDozing(); - // From this point until onDreamingStopped we will need to hold a - // wakelock whenever we are doing work. Note that we never call - // stopDozing because can we just keep dozing until the bitter end. - } + // From this point until onDreamingStopped we will need to hold a + // wakelock whenever we are doing work. Note that we never call + // stopDozing because can we just keep dozing until the bitter end. } - }); + })); } @Override diff --git a/services/core/java/com/android/server/dreams/DreamController.java b/services/core/java/com/android/server/dreams/DreamController.java index 9fa93f4b8a6c..3072f4387fb9 100644 --- a/services/core/java/com/android/server/dreams/DreamController.java +++ b/services/core/java/com/android/server/dreams/DreamController.java @@ -24,8 +24,10 @@ import android.content.Context; import android.content.Intent; import android.content.ServiceConnection; import android.os.Binder; +import android.os.Bundle; import android.os.Handler; import android.os.IBinder; +import android.os.IRemoteCallback; import android.os.PowerManager; import android.os.RemoteException; import android.os.IBinder.DeathRecipient; @@ -253,7 +255,8 @@ final class DreamController { private void attach(IDreamService service) { try { service.asBinder().linkToDeath(mCurrentDream, 0); - service.attach(mCurrentDream.mToken, mCurrentDream.mCanDoze); + service.attach(mCurrentDream.mToken, mCurrentDream.mCanDoze, + mCurrentDream.mDreamingStartedCallback); } catch (RemoteException ex) { Slog.e(TAG, "The dream service died unexpectedly.", ex); stopDream(true /*immediate*/); @@ -298,10 +301,10 @@ final class DreamController { mCanDoze = canDoze; mUserId = userId; mWakeLock = wakeLock; - // Hold the lock while we're waiting for the service to connect. Released either when - // DreamService connects (and is then responsible for keeping the device awake) or - // dreaming stops. + // Hold the lock while we're waiting for the service to connect and start dreaming. + // Released after the service has started dreaming, we stop dreaming, or it timed out. mWakeLock.acquire(); + mHandler.postDelayed(mReleaseWakeLockIfNeeded, 10000); } // May be called on any thread. @@ -324,25 +327,17 @@ final class DreamController { mHandler.post(new Runnable() { @Override public void run() { - try { - mConnected = true; - if (mCurrentDream == DreamRecord.this && mService == null) { - attach(IDreamService.Stub.asInterface(service)); - } - } finally { + mConnected = true; + if (mCurrentDream == DreamRecord.this && mService == null) { + attach(IDreamService.Stub.asInterface(service)); + // Wake lock will be released once dreaming starts. + } else { releaseWakeLockIfNeeded(); } } }); } - private void releaseWakeLockIfNeeded() { - if (mWakeLock != null) { - mWakeLock.release(); - mWakeLock = null; - } - } - // May be called on any thread. @Override public void onServiceDisconnected(ComponentName name) { @@ -356,5 +351,23 @@ final class DreamController { } }); } + + void releaseWakeLockIfNeeded() { + if (mWakeLock != null) { + mWakeLock.release(); + mWakeLock = null; + mHandler.removeCallbacks(mReleaseWakeLockIfNeeded); + } + } + + final Runnable mReleaseWakeLockIfNeeded = this::releaseWakeLockIfNeeded; + + final IRemoteCallback mDreamingStartedCallback = new IRemoteCallback.Stub() { + // May be called on any thread. + @Override + public void sendResult(Bundle data) throws RemoteException { + mHandler.post(mReleaseWakeLockIfNeeded); + } + }; } } \ No newline at end of file -- GitLab From bdb308a059b64ed7fec1fb46a379d2fce9974c8d Mon Sep 17 00:00:00 2001 From: Kevin Hufnagle Date: Fri, 23 Sep 2016 15:54:42 -0700 Subject: [PATCH 536/809] docs: Added min/max values and descriptions for alpha getter/setter in ImageView Bug: 12644483 Change-Id: I269d63b50412ecea5269acb99fc09c8110e404b4 --- core/java/android/widget/ImageView.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/core/java/android/widget/ImageView.java b/core/java/android/widget/ImageView.java index 222a040d2b3c..ddebaead67a8 100644 --- a/core/java/android/widget/ImageView.java +++ b/core/java/android/widget/ImageView.java @@ -1419,7 +1419,9 @@ public class ImageView extends View { /** * Returns the alpha that will be applied to the drawable of this ImageView. * - * @return the alpha that will be applied to the drawable of this ImageView + * @return the alpha value that will be applied to the drawable of this + * ImageView (between 0 and 255 inclusive, with 0 being transparent and + * 255 being opaque) * * @see #setImageAlpha(int) */ @@ -1430,7 +1432,8 @@ public class ImageView extends View { /** * Sets the alpha value that should be applied to the image. * - * @param alpha the alpha value that should be applied to the image + * @param alpha the alpha value that should be applied to the image (between + * 0 and 255 inclusive, with 0 being transparent and 255 being opaque) * * @see #getImageAlpha() */ -- GitLab From b4bab2d0ee39e0e78506f1b46643d776944d5299 Mon Sep 17 00:00:00 2001 From: Hemal Patel Date: Mon, 15 Aug 2016 14:31:42 -0700 Subject: [PATCH 537/809] Docs: Added contents for Vector Drawables Added contents to give an overview of VectorDrawables and AnimatedVectorDrawables. For better understanding, added two graphic files to explain the overall working of the XML file and the graphic that is rendered as an output of the XML file. Bug: 28072772 Change-Id: I9b6513c4b6e5aec59f45155963ff732fdd7b5784 --- .../html/guide/topics/graphics/2d-graphics.jd | 371 +++++++++++++++--- .../ic_battery_charging_80_black_24dp.png | Bin 0 -> 1322 bytes .../guide/topics/graphics/vectorpath.png | Bin 0 -> 15338 bytes 3 files changed, 321 insertions(+), 50 deletions(-) create mode 100644 docs/html/images/guide/topics/graphics/ic_battery_charging_80_black_24dp.png create mode 100644 docs/html/images/guide/topics/graphics/vectorpath.png diff --git a/docs/html/guide/topics/graphics/2d-graphics.jd b/docs/html/guide/topics/graphics/2d-graphics.jd index 9cae53c06910..d7dd0381f2a8 100644 --- a/docs/html/guide/topics/graphics/2d-graphics.jd +++ b/docs/html/guide/topics/graphics/2d-graphics.jd @@ -21,6 +21,7 @@ parent.link=index.html

  • Shape Drawable
  • Nine-patch
  • +
  • Vector Drawables
  • See also

    @@ -428,58 +429,66 @@ state of the object it's attached to. --> -

    Nine-patch

    - -

    A {@link android.graphics.drawable.NinePatchDrawable} graphic is a stretchable bitmap -image, which Android - will automatically resize to accommodate the contents of the View in which you have -placed it as the background. - An example use of a NinePatch is the backgrounds used by standard Android buttons — - buttons must stretch to accommodate strings of various lengths. A NinePatch drawable is a -standard PNG - image that includes an extra 1-pixel-wide border. It must be saved with the extension - .9.png, - and saved into the res/drawable/ directory of your project. -

    -

    - The border is used to define the stretchable and static areas of - the image. You indicate a stretchable section by drawing one (or more) 1-pixel-wide - black line(s) in the left and top part of the border (the other border pixels should - be fully transparent or white). You can have as many stretchable sections as you want: - their relative size stays the same, so the largest sections always remain the largest. -

    -

    - You can also define an optional drawable section of the image (effectively, - the padding lines) by drawing a line on the right and bottom lines. - If a View object sets the NinePatch as its background and then specifies the - View's text, it will stretch itself so that all the text fits inside only - the area designated by the right and bottom lines (if included). If the - padding lines are not included, Android uses the left and top lines to - define this drawable area. -

    -

    To clarify the difference between the different lines, the left and top lines define - which pixels of the image are allowed to be replicated in order to stretch the image. - The bottom and right lines define the relative area within the image that the contents - of the View are allowed to lie within.

    -

    - Here is a sample NinePatch file used to define a button: -

    - - -

    This NinePatch defines one stretchable area with the left and top lines - and the drawable area with the bottom and right lines. In the top image, the dotted grey - lines identify the regions of the image that will be replicated in order to stretch the -image. The pink - rectangle in the bottom image identifies the region in which the contents of the View are -allowed. - If the contents don't fit in this region, then the image will be stretched so that they -do. +

    Nine-patch

    + +

    + A {@link android.graphics.drawable.NinePatchDrawable} graphic is a + stretchable bitmap image, which Android will automatically resize to + accommodate the contents of the View in which you have placed it as the + background. An example use of a NinePatch is the backgrounds used by + standard Android buttons — buttons must stretch to accommodate strings of + various lengths. A NinePatch drawable is a standard PNG image that includes + an extra 1-pixel-wide border. It must be saved with the extension + .9.png, and saved into the res/drawable/ directory + of your project.

    -

    The Draw 9-patch tool offers - an extremely handy way to create your NinePatch images, using a WYSIWYG graphics editor. It -even raises warnings if the region you've defined for the stretchable area is at risk of -producing drawing artifacts as a result of the pixel replication. +

    + The border is used to define the stretchable and static areas of the image. + You indicate a stretchable section by drawing one (or more) 1-pixel-wide + black line(s) in the left and top part of the border (the other border + pixels should be fully transparent or white). You can have as many + stretchable sections as you want: their relative size stays the same, so the + largest sections always remain the largest. +

    + +

    + You can also define an optional drawable section of the image (effectively, + the padding lines) by drawing a line on the right and bottom lines. If a + View object sets the NinePatch as its background and then specifies the + View's text, it will stretch itself so that all the text fits inside only + the area designated by the right and bottom lines (if included). If the + padding lines are not included, Android uses the left and top lines to + define this drawable area. +

    + +

    + To clarify the difference between the different lines, the left and top + lines define which pixels of the image are allowed to be replicated in order + to stretch the image. The bottom and right lines define the relative area + within the image that the contents of the View are allowed to lie within. +

    + +

    + Here is a sample NinePatch file used to define a button: +

    + +

    + This NinePatch defines one stretchable area with the left and top lines and + the drawable area with the bottom and right lines. In the top image, the + dotted grey lines identify the regions of the image that will be replicated + in order to stretch the image. The pink rectangle in the bottom image + identifies the region in which the contents of the View are allowed. If the + contents don't fit in this region, then the image will be stretched so that + they do. +

    + +

    + The Draw 9-patch tool + offers an extremely handy way to create your NinePatch images, using a + WYSIWYG graphics editor. It even raises warnings if the region you've + defined for the stretchable area is at risk of producing drawing artifacts + as a result of the pixel replication.

    Example XML

    @@ -516,3 +525,265 @@ stretches to accommodate it.

    + +

    + Vector Drawables +

    + +

    + A {@link android.graphics.drawable.VectorDrawable} graphic replaces multiple + PNG assets with a single vector graphic. The vector graphic is defined in an + XML file as a set of points, lines, and curves along with its associated + color information. +

    + +

    + The major advantage of using a vector graphic is image scalability. Using + vector graphics resizes the same file for different screen densities without + loss of image quality. This results in smaller APK files and less developer + maintenance. You can also use vector images for animation by using multiple + XML files instead of multiple images for each display resolution. +

    + +

    + Let's go through an example to understand the benefits. An image of size 100 + x 100 dp may render good quality on a smaller display resolution. On larger + devices, the app might want to use a 400 x 400 dp version of the image. + Normally, developers create multiple versions of an asset to cater to + different screen densities. This approach consumes more development efforts, + and results in a larger APK, which takes more space on the device. +

    + +

    + As of Android 5.0 (API level 21), there are two classes that support vector + graphics as a drawable resource: {@link + android.graphics.drawable.VectorDrawable} and {@link + android.graphics.drawable.AnimatedVectorDrawable}. For more information + about using the VectorDrawable and the AnimatedVectorDrawable classes, read + the About VectorDrawable class and + About AnimatedVectorDrawable + class sections. +

    + +

    About VectorDrawable class

    +

    + {@link android.graphics.drawable.VectorDrawable} defines a static drawable + object. Similar to the SVG format, each vector graphic is defined as a tree + hierachy, which is made up of path and group objects. + Each path contains the geometry of the object's outline and + group contains details for transformation. All paths are drawn + in the same order as they appear in the XML file. +

    + + +

    + Figure 1. Sample hierarchy of a vector drawable asset +

    + + +

    + The Vector Asset + Studio tool offers a simple way to add a vector graphic to the project + as an XML file. +

    + +

    + Example XML +

    + +

    + Here is a sample VectorDrawable XML file that renders an image + of a battery in the charging mode. +

    + +
    +<!-- res/drawable/battery_charging.xml -->
    +<vector xmlns:android="http://schemas.android.com/apk/res/android"
    +    <!-- intrinsic size of the drawable -->
    +    android:height="24dp"
    +    android:width="24dp"
    +    <!-- size of the virtual canvas -->
    +    android:viewportWidth="24.0"
    +    android:viewportHeight="24.0">
    +   <group
    +         android:name="rotationGroup"
    +         android:pivotX="10.0"
    +         android:pivotY="10.0"
    +         android:rotation="15.0" >
    +      <path
    +        android:name="vect"
    +        android:fillColor="#FF000000"
    +        android:pathData="M15.67,4H14V2h-4v2H8.33C7.6,4 7,4.6 7,5.33V9h4.93L13,7v2h4V5.33C17,4.6 16.4,4 15.67,4z"
    +        android:fillAlpha=".3"/>
    +      <path
    +        android:name="draw"
    +        android:fillColor="#FF000000"
    +        android:pathData="M13,12.5h2L11,20v-5.5H9L11.93,9H7v11.67C7,21.4 7.6,22 8.33,22h7.33c0.74,0 1.34,-0.6 1.34,-1.33V9h-4v3.5z"/>
    +   </group>
    +</vector>
    +
    + +

    This XML renders the following image: +

    + + + +

    + About AnimatedVectorDrawable class +

    + +

    + {@link android.graphics.drawable.AnimatedVectorDrawable + AnimatedVectorDrawable} adds animation to the properties of a vector + graphic. You can define an animated vector graphic as three separate + resource files or as a single XML file defining the entire drawable. Let's + look at both the approaches for better understanding: Multiple XML files and Single + XML file. +

    + +

    + Multiple XML files +

    +

    + By using this approach, you can define three separate XML files: + +

      +
    • A {@link android.graphics.drawable.VectorDrawable} XML file. +
    • + +
    • + An {@link android.graphics.drawable.AnimatedVectorDrawable} XML file that +defines the target {@link android.graphics.drawable.VectorDrawable}, the +target paths and groups to animate, the properties, and the animations defined +as {@link android.animation.ObjectAnimator ObjectAnimator} objects or {@link +android.animation.AnimatorSet AnimatorSet} objects. +
    • + +
    • An animator XML file. +
    • +
    +

    + +
    + Example of multiple XML files +
    +

    + The following XML files demonstrate the animation of a vector graphic. + +

      +
    • VectorDrawable's XML file: vd.xml +
    • + +
    • +
      +<vector xmlns:android="http://schemas.android.com/apk/res/android"
      +   android:height="64dp"
      +   android:width="64dp"
      +   android:viewportHeight="600"
      +   android:viewportWidth="600" >
      +   <group
      +      android:name="rotationGroup"
      +      android:pivotX="300.0"
      +      android:pivotY="300.0"
      +      android:rotation="45.0" >
      +      <path
      +         android:name="vectorPath"
      +         android:fillColor="#000000"
      +         android:pathData="M300,70 l 0,-70 70,70 0,0 -70,70z" />
      +   </group>
      +</vector>
      +
      +
    • + +
    • AnimatedVectorDrawable's XML file: avd.xml +
    • + +
    • +
      +<animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
      +   android:drawable="@drawable/vd" >
      +     <target
      +         android:name="rotationGroup"
      +         android:animation="@anim/rotation" />
      +     <target
      +         android:name="vectorPath"
      +         android:animation="@anim/path_morph" />
      +</animated-vector>
      +
      +
    • + +
    • Animator XML files that are used in the AnimatedVectorDrawable's XML + file: rotation.xml and path_morph.xml +
    • + +
    • +
      +<objectAnimator
      +   android:duration="6000"
      +   android:propertyName="rotation"
      +   android:valueFrom="0"
      +   android:valueTo="360" />
      +
      + +
      +<set xmlns:android="http://schemas.android.com/apk/res/android">
      +   <objectAnimator
      +      android:duration="3000"
      +      android:propertyName="pathData"
      +      android:valueFrom="M300,70 l 0,-70 70,70 0,0   -70,70z"
      +      android:valueTo="M300,70 l 0,-70 70,0  0,140 -70,0 z"
      +      android:valueType="pathType"/>
      +</set>
      +
      +
    • +
    +

    +

    + Single XML file +

    + +

    + By using this approach, you can merge the related XML files into a single + XML file through the XML Bundle Format. At the time of building the app, the + aapt tag creates separate resources and references them in the + animated vector. This approach requires Build Tools 24 or higher, and the + output is backward compatible. +

    + +
    + Example of a single XML file +
    +
    +<animated-vector
    +    xmlns:android="http://schemas.android.com/apk/res/android"
    +    xmlns:aapt="http://schemas.android.com/aapt">
    +    <aapt:attr name="android:drawable">
    +        <vector
    +            android:width="24dp"
    +            android:height="24dp"
    +            android:viewportWidth="24"
    +            android:viewportHeight="24">
    +            <path
    +                android:name="root"
    +                android:strokeWidth="2"
    +                android:strokeLineCap="square"
    +                android:strokeColor="?android:colorControlNormal"
    +                android:pathData="M4.8,13.4 L9,17.6 M10.4,16.2 L19.6,7" />
    +        </vector>
    +    </aapt:attr>
    +    <target android:name="root">
    +        <aapt:attr name="android:animation">
    +            <objectAnimator
    +                android:propertyName="pathData"
    +                android:valueFrom="M4.8,13.4 L9,17.6 M10.4,16.2 L19.6,7"
    +                android:valueTo="M6.4,6.4 L17.6,17.6 M6.4,17.6 L17.6,6.4"
    +                android:duration="300"
    +                android:interpolator="@android:interpolator/fast_out_slow_in"
    +                android:valueType="pathType" />
    +        </aapt:attr>
    +    </target>
    +</animated-vector>
    +
    \ No newline at end of file diff --git a/docs/html/images/guide/topics/graphics/ic_battery_charging_80_black_24dp.png b/docs/html/images/guide/topics/graphics/ic_battery_charging_80_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..44a4e8688e87a41595eb004ad387d8d951552e9d GIT binary patch literal 1322 zcmV+_1=aeAP)NklA2% z2m}IwKp+qZ1OkD;633AB$Vy~PeekNYjGh`pK zROF(^(HsVN*{%(#(z8e4h;x<(cv&wJ21kjb_=@{Q#`V~NY({oyfz;O~WKD(|UPE9& znMl6=fqE&2U~Rf=?A1oOh<{$Xq&1Wph)>NUB75*|hJuwM`x@FeSbR0xwuVF5pHFj|| zpbEn8;p+(kJGP6lQRD~YOXQsp#4pl;o6B`hbFTl3$kjA{N4`fsLf&)`O>NSv(+)9k z-{3jORs33y_?h?>`389(?6w$7^ccGdW>N)L0|pEXNaqT27Wo3%hrE(OEEVXbZ?HEK zJiysT)YFy*c=-dFL_S5{(Bj8EW4P|H9p@^3F>=|_fOIaw|A(teLCy>LqLom5Wn@c+ zF>WJYBOm&dD-*`K8t{bBfU7=ZBt0g5LXIHsA+JHi&kIcxiQkoFj9*!PPyOsI@-gz3 zj{!|w#V;qS|9x4;Xtuo8H{I?&Kwj4d)NnPRhd}&iImQ@txVCC{KXdN?#~j6fWiZB! z;~4W%iXUt^4!Pg|itD>LY?Il>4}P2gvzPDMLw>kNvi>La;>`rl3Dyw+QVoWb9~_7Ls}1do-ej7S+g z^dlQTEa*jAZ3tt>44*$E5--a{}!58Pd6%s{sQ92IN|ZH8_gTI(|rj`vNQ*4#S^)1D7$_ z#t#+Xel%n_%k`@X))%bfhfV@<{Gw@9v*&^4Y$@CNAJ);3axlyFDN5X?hO0;^AMs~_ z?pXUUSMjTX{%DAr4M{@r6igh_k0_~@wxUvEw2z4^K zMfdizc@%#R1pi8udJ$rDgG<$rNS_%Aoy|-U4SzC-U6e^yg#Z8m07*qoM6N<$f?&&K`v3p{ literal 0 HcmV?d00001 diff --git a/docs/html/images/guide/topics/graphics/vectorpath.png b/docs/html/images/guide/topics/graphics/vectorpath.png new file mode 100644 index 0000000000000000000000000000000000000000..592bab67ecd933e7a7006a855ad3c189b111bf5b GIT binary patch literal 15338 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 Date: Fri, 23 Sep 2016 16:44:03 -0700 Subject: [PATCH 538/809] docs: Added note in getCacheDir() that developers can use directory obtained from getExternalCacheDir() to store app caches larger than 1 MB. Bug: 22505268 Change-Id: I9972ba5ef7b43a135c00ac48a2e5ccb1fcc5b103 --- core/java/android/content/Context.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java index bdf888f59715..a1a1ace14646 100644 --- a/core/java/android/content/Context.java +++ b/core/java/android/content/Context.java @@ -1130,7 +1130,9 @@ public abstract class Context { * Note: you should not rely on the system deleting these * files for you; you should always have a reasonable maximum, such as 1 MB, * for the amount of space you consume with cache files, and prune those - * files when exceeding that space. + * files when exceeding that space.
    If your app requires a larger + * cache (larger than 1 MB), you should use {@link #getExternalCacheDir()} + * instead. *

    * The returned path may change over time if the calling app is moved to an * adopted storage device, so only relative paths should be persisted. @@ -1142,6 +1144,7 @@ public abstract class Context { * @see #openFileOutput * @see #getFileStreamPath * @see #getDir + * @see #getExternalCacheDir */ public abstract File getCacheDir(); @@ -1190,7 +1193,7 @@ public abstract class Context { * *

    * If a shared storage device is emulated (as determined by - * {@link Environment#isExternalStorageEmulated(File)}), it's contents are + * {@link Environment#isExternalStorageEmulated(File)}), its contents are * backed by a private user data partition, which means there is little * benefit to storing data here instead of the private directory returned by * {@link #getCacheDir()}. -- GitLab From dd6629ef86158cde10ab50a306ab73a0892386e0 Mon Sep 17 00:00:00 2001 From: Chien-Yu Chen Date: Thu, 22 Sep 2016 15:29:53 -0700 Subject: [PATCH 539/809] Camera2: Support early finished tasks Add support to track finished tasks before it starts. Bug: 30117138 Change-Id: I42eb0377f719d57d820d9c1b2484600116c8807a --- .../hardware/camera2/utils/TaskDrainer.java | 29 ++++++++++++++----- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/core/java/android/hardware/camera2/utils/TaskDrainer.java b/core/java/android/hardware/camera2/utils/TaskDrainer.java index 7c46e502501b..ed30ff34afc8 100644 --- a/core/java/android/hardware/camera2/utils/TaskDrainer.java +++ b/core/java/android/hardware/camera2/utils/TaskDrainer.java @@ -29,8 +29,9 @@ import static com.android.internal.util.Preconditions.*; * (and new ones won't begin). * *

    The initial state is to allow all tasks to be started and finished. A task may only be started - * once, after which it must be finished before starting again. Likewise, finishing a task - * that hasn't been started is also not allowed.

    + * once, after which it must be finished before starting again. Likewise, a task may only be + * finished once, after which it must be started before finishing again. It is okay to finish a + * task before starting it due to different threads handling starting and finishing.

    * *

    When draining begins, no more new tasks can be started. This guarantees that at some * point when all the tasks are finished there will be no more collective new tasks, @@ -60,6 +61,11 @@ public class TaskDrainer { /** Set of tasks which have been started but not yet finished with #taskFinished */ private final Set mTaskSet = new HashSet(); + /** + * Set of tasks which have been finished but not yet started with #taskStarted. This may happen + * if taskStarted and taskFinished are called from two different threads. + */ + private final Set mEarlyFinishedTaskSet = new HashSet(); private final Object mLock = new Object(); private boolean mDraining = false; @@ -118,8 +124,12 @@ public class TaskDrainer { throw new IllegalStateException("Can't start more tasks after draining has begun"); } - if (!mTaskSet.add(task)) { - throw new IllegalStateException("Task " + task + " was already started"); + // Try to remove the task from the early finished set. + if (!mEarlyFinishedTaskSet.remove(task)) { + // The task is not finished early. Add it to the started set. + if (!mTaskSet.add(task)) { + throw new IllegalStateException("Task " + task + " was already started"); + } } } } @@ -128,8 +138,7 @@ public class TaskDrainer { /** * Mark an asynchronous task as having finished. * - *

    A task cannot be finished if it hasn't started. Once finished, a task - * cannot be finished again (unless it's started again).

    + *

    A task cannot be finished more than once without first having started.

    * * @param task a key to identify a task * @@ -137,7 +146,7 @@ public class TaskDrainer { * @see #beginDrain * * @throws IllegalStateException - * If attempting to start a task which is already finished (and not re-started), + * If attempting to finish a task which is already finished (and not started), */ public void taskFinished(T task) { synchronized (mLock) { @@ -145,8 +154,12 @@ public class TaskDrainer { Log.v(TAG + "[" + mName + "]", "taskFinished " + task); } + // Try to remove the task from started set. if (!mTaskSet.remove(task)) { - throw new IllegalStateException("Task " + task + " was already finished"); + // Task is not started yet. Add it to the early finished set. + if (!mEarlyFinishedTaskSet.add(task)) { + throw new IllegalStateException("Task " + task + " was already finished"); + } } // If this is the last finished task and draining has already begun, fire #onDrained -- GitLab From 316bf544843ae581336fa157355c76774e0e0cbc Mon Sep 17 00:00:00 2001 From: Adrian Roos Date: Tue, 23 Aug 2016 17:53:07 +0200 Subject: [PATCH 540/809] Show PLMN on CryptKeeper Also shows the state only once radio is enabled. Fixes: 30301831 Change-Id: Iaf3b96c3622e20d8ada6e1f6391d6065101fb281 --- .../keyguard/KeyguardUpdateMonitor.java | 2 +- .../res/layout/emergency_cryptkeeper_text.xml | 28 ++++ packages/SystemUI/res/layout/status_bar.xml | 7 + .../statusbar/phone/PhoneStatusBar.java | 46 ++++++- .../policy/EmergencyCryptkeeperText.java | 124 ++++++++++++++++++ .../statusbar/policy/EncryptionHelper.java | 32 +++++ .../statusbar/policy/NetworkController.java | 18 +-- .../policy/NetworkControllerImpl.java | 8 ++ 8 files changed, 251 insertions(+), 14 deletions(-) create mode 100644 packages/SystemUI/res/layout/emergency_cryptkeeper_text.xml create mode 100644 packages/SystemUI/src/com/android/systemui/statusbar/policy/EmergencyCryptkeeperText.java create mode 100644 packages/SystemUI/src/com/android/systemui/statusbar/policy/EncryptionHelper.java diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java index dccb1a921489..3758c2bfe2cf 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java @@ -390,7 +390,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } /** @return List of SubscriptionInfo records, maybe empty but never null */ - List getSubscriptionInfo(boolean forceReload) { + public List getSubscriptionInfo(boolean forceReload) { List sil = mSubscriptionInfo; if (sil == null || forceReload) { sil = mSubscriptionManager.getActiveSubscriptionInfoList(); diff --git a/packages/SystemUI/res/layout/emergency_cryptkeeper_text.xml b/packages/SystemUI/res/layout/emergency_cryptkeeper_text.xml new file mode 100644 index 000000000000..0a1730a72920 --- /dev/null +++ b/packages/SystemUI/res/layout/emergency_cryptkeeper_text.xml @@ -0,0 +1,28 @@ + + + + \ No newline at end of file diff --git a/packages/SystemUI/res/layout/status_bar.xml b/packages/SystemUI/res/layout/status_bar.xml index 39c16d711897..63af3e0c9f30 100644 --- a/packages/SystemUI/res/layout/status_bar.xml +++ b/packages/SystemUI/res/layout/status_bar.xml @@ -77,4 +77,11 @@ + + diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java index 9251f32099a7..e809c3394e82 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -174,12 +174,14 @@ import com.android.systemui.statusbar.policy.BatteryControllerImpl; import com.android.systemui.statusbar.policy.BluetoothControllerImpl; import com.android.systemui.statusbar.policy.BrightnessMirrorController; import com.android.systemui.statusbar.policy.CastControllerImpl; +import com.android.systemui.statusbar.policy.EncryptionHelper; import com.android.systemui.statusbar.policy.FlashlightController; import com.android.systemui.statusbar.policy.HeadsUpManager; import com.android.systemui.statusbar.policy.HotspotControllerImpl; import com.android.systemui.statusbar.policy.KeyguardMonitor; import com.android.systemui.statusbar.policy.KeyguardUserSwitcher; import com.android.systemui.statusbar.policy.LocationControllerImpl; +import com.android.systemui.statusbar.policy.NetworkController; import com.android.systemui.statusbar.policy.NetworkControllerImpl; import com.android.systemui.statusbar.policy.NextAlarmController; import com.android.systemui.statusbar.policy.PreviewInflater; @@ -895,6 +897,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, initSignalCluster(mStatusBarView); initSignalCluster(mKeyguardStatusBar); + initEmergencyCryptkeeperText(); mFlashlightController = new FlashlightController(mContext); mKeyguardBottomArea.setFlashlightController(mFlashlightController); @@ -1013,6 +1016,24 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, return mStatusBarView; } + private void initEmergencyCryptkeeperText() { + View emergencyViewStub = mStatusBarWindow.findViewById(R.id.emergency_cryptkeeper_text); + if (mNetworkController.hasEmergencyCryptKeeperText()) { + if (emergencyViewStub != null) { + ((ViewStub) emergencyViewStub).inflate(); + } + mNetworkController.addSignalCallback(new NetworkController.SignalCallback() { + @Override + public void setIsAirplaneMode(NetworkController.IconState icon) { + recomputeDisableFlags(true /* animate */); + } + }); + } else if (emergencyViewStub != null) { + ViewGroup parent = (ViewGroup) emergencyViewStub.getParent(); + parent.removeView(emergencyViewStub); + } + } + protected BatteryController createBatteryController() { return new BatteryControllerImpl(mContext); } @@ -2337,6 +2358,14 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, state |= StatusBarManager.DISABLE_NOTIFICATION_ICONS; state |= StatusBarManager.DISABLE_SYSTEM_INFO; } + if (mNetworkController != null && EncryptionHelper.IS_DATA_ENCRYPTED) { + if (mNetworkController.hasEmergencyCryptKeeperText()) { + state |= StatusBarManager.DISABLE_NOTIFICATION_ICONS; + } + if (!mNetworkController.isRadioOn()) { + state |= StatusBarManager.DISABLE_SYSTEM_INFO; + } + } return state; } @@ -2441,6 +2470,15 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, } } + /** + * Reapplies the disable flags as last requested by StatusBarManager. + * + * This needs to be called if state used by {@link #adjustDisableFlags} changes. + */ + private void recomputeDisableFlags(boolean animate) { + disable(mDisabledUnmodified1, mDisabledUnmodified2, animate); + } + @Override protected BaseStatusBar.H createHandler() { return new PhoneStatusBar.H(); @@ -2734,7 +2772,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, visibilityChanged(true); mWaitingForKeyguardExit = false; - disable(mDisabledUnmodified1, mDisabledUnmodified2, !force /* animate */); + recomputeDisableFlags(!force /* animate */); setInteracting(StatusBarManager.WINDOW_STATUS_BAR, true); } @@ -2876,7 +2914,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, runPostCollapseRunnables(); setInteracting(StatusBarManager.WINDOW_STATUS_BAR, false); showBouncer(); - disable(mDisabledUnmodified1, mDisabledUnmodified2, true /* animate */); + recomputeDisableFlags(true /* animate */); // Trimming will happen later if Keyguard is showing - doing it here might cause a jank in // the bouncer appear animation. @@ -4254,7 +4292,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, startTime + fadeoutDuration - StatusBarIconController.DEFAULT_TINT_ANIMATION_DURATION, StatusBarIconController.DEFAULT_TINT_ANIMATION_DURATION); - disable(mDisabledUnmodified1, mDisabledUnmodified2, fadeoutDuration > 0 /* animate */); + recomputeDisableFlags(fadeoutDuration > 0 /* animate */); } public boolean isKeyguardFadingAway() { @@ -4739,7 +4777,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, public void setBouncerShowing(boolean bouncerShowing) { super.setBouncerShowing(bouncerShowing); mStatusBarView.setBouncerShowing(bouncerShowing); - disable(mDisabledUnmodified1, mDisabledUnmodified2, true /* animate */); + recomputeDisableFlags(true /* animate */); } public void onStartedGoingToSleep() { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/EmergencyCryptkeeperText.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/EmergencyCryptkeeperText.java new file mode 100644 index 000000000000..8abfb89b3f69 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/EmergencyCryptkeeperText.java @@ -0,0 +1,124 @@ +/* + * Copyright (C) 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 + */ + +package com.android.systemui.statusbar.policy; + +import android.annotation.Nullable; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.net.ConnectivityManager; +import android.provider.Settings; +import android.telephony.ServiceState; +import android.telephony.SubscriptionInfo; +import android.text.TextUtils; +import android.util.AttributeSet; +import android.util.Log; +import android.view.ViewGroup; +import android.view.ViewParent; +import android.widget.TextView; + +import com.android.internal.telephony.IccCardConstants; +import com.android.internal.telephony.TelephonyIntents; +import com.android.keyguard.KeyguardUpdateMonitor; +import com.android.keyguard.KeyguardUpdateMonitorCallback; + +import java.util.List; + +public class EmergencyCryptkeeperText extends TextView { + + private KeyguardUpdateMonitor mKeyguardUpdateMonitor; + private KeyguardUpdateMonitorCallback mCallback = new KeyguardUpdateMonitorCallback() { + @Override + public void onPhoneStateChanged(int phoneState) { + update(); + } + }; + + public EmergencyCryptkeeperText(Context context, @Nullable AttributeSet attrs) { + super(context, attrs); + setVisibility(GONE); + } + + @Override + protected void onAttachedToWindow() { + super.onAttachedToWindow(); + mKeyguardUpdateMonitor = KeyguardUpdateMonitor.getInstance(mContext); + mKeyguardUpdateMonitor.registerCallback(mCallback); + update(); + } + + @Override + protected void onDetachedFromWindow() { + super.onDetachedFromWindow(); + if (mKeyguardUpdateMonitor != null) { + mKeyguardUpdateMonitor.removeCallback(mCallback); + } + } + + public void update() { + boolean hasMobile = ConnectivityManager.from(mContext) + .isNetworkSupported(ConnectivityManager.TYPE_MOBILE); + boolean airplaneMode = (Settings.Global.getInt(mContext.getContentResolver(), + Settings.Global.AIRPLANE_MODE_ON, 0) == 1); + + if (!hasMobile || airplaneMode) { + setText(null); + setVisibility(GONE); + return; + } + + boolean allSimsMissing = true; + CharSequence displayText = null; + + List subs = mKeyguardUpdateMonitor.getSubscriptionInfo(false); + final int N = subs.size(); + for (int i = 0; i < N; i++) { + int subId = subs.get(i).getSubscriptionId(); + IccCardConstants.State simState = mKeyguardUpdateMonitor.getSimState(subId); + CharSequence carrierName = subs.get(i).getCarrierName(); + if (simState.iccCardExist() && !TextUtils.isEmpty(carrierName)) { + allSimsMissing = false; + displayText = carrierName; + } + } + if (allSimsMissing) { + if (N != 0) { + // Shows "Emergency calls only" on devices that are voice-capable. + // This depends on mPlmn containing the text "Emergency calls only" when the radio + // has some connectivity. Otherwise it should show "No service" + // Grab the first subscription, because they all should contain the emergency text, + // described above. + displayText = subs.get(0).getCarrierName(); + } else { + // We don't have a SubscriptionInfo to get the emergency calls only from. + // Grab it from the old sticky broadcast if possible instead. We can use it + // here because no subscriptions are active, so we don't have + // to worry about MSIM clashing. + displayText = getContext().getText( + com.android.internal.R.string.emergency_calls_only); + Intent i = getContext().registerReceiver(null, + new IntentFilter(TelephonyIntents.SPN_STRINGS_UPDATED_ACTION)); + if (i != null) { + displayText = i.getStringExtra(TelephonyIntents.EXTRA_PLMN); + } + } + } + + setText(displayText); + setVisibility(TextUtils.isEmpty(displayText) ? GONE : VISIBLE); + } +} diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/EncryptionHelper.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/EncryptionHelper.java new file mode 100644 index 000000000000..639e50cf4e58 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/EncryptionHelper.java @@ -0,0 +1,32 @@ +/* + * Copyright (C) 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 + */ + +package com.android.systemui.statusbar.policy; + +import android.os.SystemProperties; + +/** + * Helper for determining whether the phone is decrypted yet. + */ +public class EncryptionHelper { + + public static final boolean IS_DATA_ENCRYPTED = isDataEncrypted(); + + private static boolean isDataEncrypted() { + String voldState = SystemProperties.get("vold.decrypt"); + return "1".equals(voldState) || "trigger_restart_min_framework".equals(voldState); + } +} diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java index 348e0b003997..5f1b8719c9b0 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkController.java @@ -41,20 +41,20 @@ public interface NetworkController { void removeEmergencyListener(EmergencyListener listener); public interface SignalCallback { - void setWifiIndicators(boolean enabled, IconState statusIcon, IconState qsIcon, - boolean activityIn, boolean activityOut, String description); + default void setWifiIndicators(boolean enabled, IconState statusIcon, IconState qsIcon, + boolean activityIn, boolean activityOut, String description) {} - void setMobileDataIndicators(IconState statusIcon, IconState qsIcon, int statusType, + default void setMobileDataIndicators(IconState statusIcon, IconState qsIcon, int statusType, int qsType, boolean activityIn, boolean activityOut, String typeContentDescription, - String description, boolean isWide, int subId); - void setSubs(List subs); - void setNoSims(boolean show); + String description, boolean isWide, int subId) {} + default void setSubs(List subs) {} + default void setNoSims(boolean show) {} - void setEthernetIndicators(IconState icon); + default void setEthernetIndicators(IconState icon) {} - void setIsAirplaneMode(IconState icon); + default void setIsAirplaneMode(IconState icon) {} - void setMobileDataEnabled(boolean enabled); + default void setMobileDataEnabled(boolean enabled) {} } public interface EmergencyListener { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java index 7893a1a0880a..37e6a2ab8ead 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java @@ -819,6 +819,14 @@ public class NetworkControllerImpl extends BroadcastReceiver return info; } + public boolean hasEmergencyCryptKeeperText() { + return EncryptionHelper.IS_DATA_ENCRYPTED; + } + + public boolean isRadioOn() { + return !mAirplaneMode; + } + private class SubListener extends OnSubscriptionsChangedListener { @Override public void onSubscriptionsChanged() { -- GitLab From 32bfb594af7f5dc0be608393200060458cd84631 Mon Sep 17 00:00:00 2001 From: Svet Ganov Date: Fri, 23 Sep 2016 21:30:19 -0700 Subject: [PATCH 541/809] [DO NOT MERGE] Use tokens instead of account access trackers We keep track which process saw and account to whitelist the app for future access as an optimization to avoid prompting the user for account access approval. Some apps use SefeParcelable where the parcels are marshalled which does not allow the parcel to contain IBinders. To avoid this we are switching from account tracker remote objects to unforgeable tokens. bug:31162498 Change-Id: I3b52bff720655f695ad0c58d420eb35ef93161b9 --- Android.mk | 1 - core/java/android/accounts/Account.java | 26 ++++--- .../java/android/accounts/AccountManager.java | 22 +++--- .../accounts/IAccountAccessTracker.aidl | 26 ------- .../android/accounts/IAccountManager.aidl | 2 + .../accounts/AccountManagerService.java | 67 +++++++++---------- 6 files changed, 58 insertions(+), 86 deletions(-) delete mode 100644 core/java/android/accounts/IAccountAccessTracker.aidl diff --git a/Android.mk b/Android.mk index d765e9c56849..6f3eb21617ee 100644 --- a/Android.mk +++ b/Android.mk @@ -63,7 +63,6 @@ LOCAL_SRC_FILES += \ core/java/android/accessibilityservice/IAccessibilityServiceClient.aidl \ core/java/android/accounts/IAccountManager.aidl \ core/java/android/accounts/IAccountManagerResponse.aidl \ - core/java/android/accounts/IAccountAccessTracker.aidl \ core/java/android/accounts/IAccountAuthenticator.aidl \ core/java/android/accounts/IAccountAuthenticatorResponse.aidl \ core/java/android/app/IActivityContainer.aidl \ diff --git a/core/java/android/accounts/Account.java b/core/java/android/accounts/Account.java index 6c16e322e978..b6e85f18a695 100644 --- a/core/java/android/accounts/Account.java +++ b/core/java/android/accounts/Account.java @@ -18,9 +18,11 @@ package android.accounts; import android.annotation.NonNull; import android.annotation.Nullable; +import android.content.Context; import android.os.Parcelable; import android.os.Parcel; import android.os.RemoteException; +import android.os.ServiceManager; import android.text.TextUtils; import android.util.ArraySet; import android.util.Log; @@ -41,7 +43,7 @@ public class Account implements Parcelable { public final String name; public final String type; - private final @Nullable IAccountAccessTracker mAccessTracker; + private final @Nullable String accessId; public boolean equals(Object o) { if (o == this) return true; @@ -64,14 +66,14 @@ public class Account implements Parcelable { /** * @hide */ - public Account(@NonNull Account other, @Nullable IAccountAccessTracker accessTracker) { - this(other.name, other.type, accessTracker); + public Account(@NonNull Account other, @NonNull String accessId) { + this(other.name, other.type, accessId); } /** * @hide */ - public Account(String name, String type, IAccountAccessTracker accessTracker) { + public Account(String name, String type, String accessId) { if (TextUtils.isEmpty(name)) { throw new IllegalArgumentException("the name must not be empty: " + name); } @@ -80,18 +82,20 @@ public class Account implements Parcelable { } this.name = name; this.type = type; - this.mAccessTracker = accessTracker; + this.accessId = accessId; } public Account(Parcel in) { this.name = in.readString(); this.type = in.readString(); - this.mAccessTracker = IAccountAccessTracker.Stub.asInterface(in.readStrongBinder()); - if (mAccessTracker != null) { + this.accessId = in.readString(); + if (accessId != null) { synchronized (sAccessedAccounts) { if (sAccessedAccounts.add(this)) { try { - mAccessTracker.onAccountAccessed(); + IAccountManager accountManager = IAccountManager.Stub.asInterface( + ServiceManager.getService(Context.ACCOUNT_SERVICE)); + accountManager.onAccountAccessed(accessId); } catch (RemoteException e) { Log.e(TAG, "Error noting account access", e); } @@ -101,8 +105,8 @@ public class Account implements Parcelable { } /** @hide */ - public IAccountAccessTracker getAccessTracker() { - return mAccessTracker; + public String getAccessId() { + return accessId; } public int describeContents() { @@ -112,7 +116,7 @@ public class Account implements Parcelable { public void writeToParcel(Parcel dest, int flags) { dest.writeString(name); dest.writeString(type); - dest.writeStrongInterface(mAccessTracker); + dest.writeString(accessId); } public static final Creator CREATOR = new Creator() { diff --git a/core/java/android/accounts/AccountManager.java b/core/java/android/accounts/AccountManager.java index 0a9dc3a18375..72707b7f6663 100644 --- a/core/java/android/accounts/AccountManager.java +++ b/core/java/android/accounts/AccountManager.java @@ -179,12 +179,12 @@ public class AccountManager { public static final String KEY_ACCOUNT_TYPE = "accountType"; /** - * Bundle key used for the {@link IAccountAccessTracker} account access tracker - * used for noting the account was accessed when unmarshalled from a parcel. + * Bundle key used for the account access id used for noting the + * account was accessed when unmarshalled from a parcel. * * @hide */ - public static final String KEY_ACCOUNT_ACCESS_TRACKER = "accountAccessTracker"; + public static final String KEY_ACCOUNT_ACCESS_ID = "accountAccessId"; /** * Bundle key used for the auth token value in results @@ -821,9 +821,8 @@ public class AccountManager { public Account bundleToResult(Bundle bundle) throws AuthenticatorException { String name = bundle.getString(KEY_ACCOUNT_NAME); String type = bundle.getString(KEY_ACCOUNT_TYPE); - IAccountAccessTracker tracker = IAccountAccessTracker.Stub.asInterface( - bundle.getBinder(KEY_ACCOUNT_ACCESS_TRACKER)); - return new Account(name, type, tracker); + String accessId = bundle.getString(KEY_ACCOUNT_ACCESS_ID); + return new Account(name, type, accessId); } }.start(); } @@ -2279,7 +2278,7 @@ public class AccountManager { result.putString(KEY_ACCOUNT_NAME, null); result.putString(KEY_ACCOUNT_TYPE, null); result.putString(KEY_AUTHTOKEN, null); - result.putBinder(KEY_ACCOUNT_ACCESS_TRACKER, null); + result.putBinder(KEY_ACCOUNT_ACCESS_ID, null); try { mResponse.onResult(result); } catch (RemoteException e) { @@ -2306,9 +2305,7 @@ public class AccountManager { Account account = new Account( value.getString(KEY_ACCOUNT_NAME), value.getString(KEY_ACCOUNT_TYPE), - IAccountAccessTracker.Stub.asInterface( - value.getBinder( - KEY_ACCOUNT_ACCESS_TRACKER))); + value.getString(KEY_ACCOUNT_ACCESS_ID)); mFuture = getAuthToken(account, mAuthTokenType, mLoginOptions, mActivity, mMyCallback, mHandler); @@ -2358,9 +2355,8 @@ public class AccountManager { setException(new AuthenticatorException("account not in result")); return; } - final IAccountAccessTracker tracker = IAccountAccessTracker.Stub.asInterface( - result.getBinder(KEY_ACCOUNT_ACCESS_TRACKER)); - final Account account = new Account(accountName, accountType, tracker); + final String accessId = result.getString(KEY_ACCOUNT_ACCESS_ID); + final Account account = new Account(accountName, accountType, accessId); mNumAccounts = 1; getAuthToken(account, mAuthTokenType, null /* options */, mActivity, mMyCallback, mHandler); diff --git a/core/java/android/accounts/IAccountAccessTracker.aidl b/core/java/android/accounts/IAccountAccessTracker.aidl deleted file mode 100644 index e12b3d1e21c7..000000000000 --- a/core/java/android/accounts/IAccountAccessTracker.aidl +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (C) 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. - */ - -package android.accounts; - -/** - * Interface to track which apps accessed an account - * - * @hide - */ -oneway interface IAccountAccessTracker { - void onAccountAccessed(); -} diff --git a/core/java/android/accounts/IAccountManager.aidl b/core/java/android/accounts/IAccountManager.aidl index 56a6488088b5..c271e7ebc52c 100644 --- a/core/java/android/accounts/IAccountManager.aidl +++ b/core/java/android/accounts/IAccountManager.aidl @@ -110,4 +110,6 @@ interface IAccountManager { /* Crate an intent to request account access for package and a given user id */ IntentSender createRequestAccountAccessIntentSenderAsUser(in Account account, String packageName, in UserHandle userHandle); + + void onAccountAccessed(String token); } diff --git a/services/core/java/com/android/server/accounts/AccountManagerService.java b/services/core/java/com/android/server/accounts/AccountManagerService.java index 82605c62472d..a7a79cd5b3eb 100644 --- a/services/core/java/com/android/server/accounts/AccountManagerService.java +++ b/services/core/java/com/android/server/accounts/AccountManagerService.java @@ -26,7 +26,6 @@ import android.accounts.AccountManagerInternal; import android.accounts.AuthenticatorDescription; import android.accounts.CantAddAccountActivity; import android.accounts.GrantCredentialsPermissionActivity; -import android.accounts.IAccountAccessTracker; import android.accounts.IAccountAuthenticator; import android.accounts.IAccountAuthenticatorResponse; import android.accounts.IAccountManager; @@ -89,7 +88,6 @@ import android.os.UserManager; import android.os.storage.StorageManager; import android.text.TextUtils; import android.util.Log; -import android.util.PackageUtils; import android.util.Pair; import android.util.Slog; import android.util.SparseArray; @@ -128,6 +126,8 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; +import java.util.Objects; +import java.util.UUID; import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; @@ -692,7 +692,7 @@ public class AccountManagerService final Account[] accountsForType = new Account[accountNames.size()]; for (int i = 0; i < accountsForType.length; i++) { accountsForType[i] = new Account(accountNames.get(i), accountType, - new AccountAccessTracker()); + UUID.randomUUID().toString()); } accounts.accountCache.put(accountType, accountsForType); } @@ -1502,8 +1502,8 @@ public class AccountManagerService Bundle result = new Bundle(); result.putString(AccountManager.KEY_ACCOUNT_NAME, resultingAccount.name); result.putString(AccountManager.KEY_ACCOUNT_TYPE, resultingAccount.type); - result.putBinder(AccountManager.KEY_ACCOUNT_ACCESS_TRACKER, - resultingAccount.getAccessTracker().asBinder()); + result.putString(AccountManager.KEY_ACCOUNT_ACCESS_ID, + resultingAccount.getAccessId()); try { response.onResult(result); } catch (RemoteException e) { @@ -4079,6 +4079,30 @@ public class AccountManagerService } } + @Override + public void onAccountAccessed(String token) throws RemoteException { + final int uid = Binder.getCallingUid(); + if (UserHandle.getAppId(uid) == Process.SYSTEM_UID) { + return; + } + final int userId = UserHandle.getCallingUserId(); + final long identity = Binder.clearCallingIdentity(); + try { + for (Account account : getAccounts(userId, mContext.getOpPackageName())) { + if (Objects.equals(account.getAccessId(), token)) { + // An app just accessed the account. At this point it knows about + // it and there is not need to hide this account from the app. + if (!hasAccountAccess(account, null, uid)) { + updateAppPermission(account, AccountManager.ACCOUNT_ACCESS_TOKEN_TYPE, + uid, true); + } + } + } + } finally { + Binder.restoreCallingIdentity(identity); + } + } + private abstract class Session extends IAccountAuthenticatorResponse.Stub implements IBinder.DeathRecipient, ServiceConnection { IAccountManagerResponse mResponse; @@ -5714,9 +5738,9 @@ public class AccountManagerService if (accountsForType != null) { System.arraycopy(accountsForType, 0, newAccountsForType, 0, oldLength); } - IAccountAccessTracker accessTracker = account.getAccessTracker() != null - ? account.getAccessTracker() : new AccountAccessTracker(); - newAccountsForType[oldLength] = new Account(account, accessTracker); + String token = account.getAccessId() != null ? account.getAccessId() + : UUID.randomUUID().toString(); + newAccountsForType[oldLength] = new Account(account, token); accounts.accountCache.put(account.type, newAccountsForType); return newAccountsForType[oldLength]; } @@ -5961,33 +5985,6 @@ public class AccountManagerService } } - private final class AccountAccessTracker extends IAccountAccessTracker.Stub { - @Override - public void onAccountAccessed() throws RemoteException { - final int uid = Binder.getCallingUid(); - if (UserHandle.getAppId(uid) == Process.SYSTEM_UID) { - return; - } - final int userId = UserHandle.getCallingUserId(); - final long identity = Binder.clearCallingIdentity(); - try { - for (Account account : getAccounts(userId, mContext.getOpPackageName())) { - IAccountAccessTracker accountTracker = account.getAccessTracker(); - if (accountTracker != null && asBinder() == accountTracker.asBinder()) { - // An app just accessed the account. At this point it knows about - // it and there is not need to hide this account from the app. - if (!hasAccountAccess(account, null, uid)) { - updateAppPermission(account, AccountManager.ACCOUNT_ACCESS_TOKEN_TYPE, - uid, true); - } - } - } - } finally { - Binder.restoreCallingIdentity(identity); - } - } - } - private final class AccountManagerInternalImpl extends AccountManagerInternal { private final Object mLock = new Object(); -- GitLab From 8f05e634172d9b632a583bda88570274cd06e9d9 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Mon, 26 Sep 2016 09:09:57 -0700 Subject: [PATCH 542/809] Import translations. DO NOT MERGE Change-Id: I34fa8bbc66ae81ab88950aa01e31523bb1dce657 Auto-generated-cl: translation import --- packages/SettingsLib/res/values-af/strings.xml | 5 ++++- packages/SettingsLib/res/values-am/strings.xml | 5 ++++- packages/SettingsLib/res/values-ar/strings.xml | 7 +++++-- packages/SettingsLib/res/values-az-rAZ/strings.xml | 5 ++++- .../SettingsLib/res/values-b+sr+Latn/strings.xml | 5 ++++- packages/SettingsLib/res/values-be-rBY/strings.xml | 5 ++++- packages/SettingsLib/res/values-bg/strings.xml | 5 ++++- packages/SettingsLib/res/values-bn-rBD/strings.xml | 5 ++++- packages/SettingsLib/res/values-bs-rBA/strings.xml | 5 ++++- packages/SettingsLib/res/values-ca/strings.xml | 5 ++++- packages/SettingsLib/res/values-cs/strings.xml | 5 ++++- packages/SettingsLib/res/values-da/strings.xml | 5 ++++- packages/SettingsLib/res/values-de/strings.xml | 5 ++++- packages/SettingsLib/res/values-el/strings.xml | 5 ++++- packages/SettingsLib/res/values-en-rAU/strings.xml | 5 ++++- packages/SettingsLib/res/values-en-rGB/strings.xml | 5 ++++- packages/SettingsLib/res/values-en-rIN/strings.xml | 5 ++++- packages/SettingsLib/res/values-es-rUS/strings.xml | 5 ++++- packages/SettingsLib/res/values-es/strings.xml | 7 +++++-- packages/SettingsLib/res/values-et-rEE/strings.xml | 5 ++++- packages/SettingsLib/res/values-eu-rES/strings.xml | 5 ++++- packages/SettingsLib/res/values-fa/strings.xml | 7 +++++-- packages/SettingsLib/res/values-fi/strings.xml | 5 ++++- packages/SettingsLib/res/values-fr-rCA/strings.xml | 5 ++++- packages/SettingsLib/res/values-fr/strings.xml | 5 ++++- packages/SettingsLib/res/values-gl-rES/strings.xml | 5 ++++- packages/SettingsLib/res/values-gu-rIN/strings.xml | 5 ++++- packages/SettingsLib/res/values-hi/strings.xml | 5 ++++- packages/SettingsLib/res/values-hr/strings.xml | 5 ++++- packages/SettingsLib/res/values-hu/strings.xml | 5 ++++- packages/SettingsLib/res/values-hy-rAM/strings.xml | 5 ++++- packages/SettingsLib/res/values-in/strings.xml | 5 ++++- packages/SettingsLib/res/values-is-rIS/strings.xml | 5 ++++- packages/SettingsLib/res/values-it/strings.xml | 7 +++++-- packages/SettingsLib/res/values-iw/strings.xml | 5 ++++- packages/SettingsLib/res/values-ja/strings.xml | 5 ++++- packages/SettingsLib/res/values-ka-rGE/strings.xml | 5 ++++- packages/SettingsLib/res/values-kk-rKZ/strings.xml | 5 ++++- packages/SettingsLib/res/values-km-rKH/strings.xml | 5 ++++- packages/SettingsLib/res/values-kn-rIN/strings.xml | 9 ++++++--- packages/SettingsLib/res/values-ko/strings.xml | 5 ++++- packages/SettingsLib/res/values-ky-rKG/strings.xml | 5 ++++- packages/SettingsLib/res/values-lo-rLA/strings.xml | 5 ++++- packages/SettingsLib/res/values-lt/strings.xml | 5 ++++- packages/SettingsLib/res/values-lv/strings.xml | 5 ++++- packages/SettingsLib/res/values-mk-rMK/strings.xml | 5 ++++- packages/SettingsLib/res/values-ml-rIN/strings.xml | 5 ++++- packages/SettingsLib/res/values-mn-rMN/strings.xml | 5 ++++- packages/SettingsLib/res/values-mr-rIN/strings.xml | 5 ++++- packages/SettingsLib/res/values-ms-rMY/strings.xml | 5 ++++- packages/SettingsLib/res/values-my-rMM/strings.xml | 5 ++++- packages/SettingsLib/res/values-nb/strings.xml | 5 ++++- packages/SettingsLib/res/values-ne-rNP/strings.xml | 5 ++++- packages/SettingsLib/res/values-nl/strings.xml | 5 ++++- packages/SettingsLib/res/values-pa-rIN/strings.xml | 5 ++++- packages/SettingsLib/res/values-pl/strings.xml | 5 ++++- packages/SettingsLib/res/values-pt-rBR/strings.xml | 5 ++++- packages/SettingsLib/res/values-pt-rPT/strings.xml | 5 ++++- packages/SettingsLib/res/values-pt/strings.xml | 5 ++++- packages/SettingsLib/res/values-ro/strings.xml | 5 ++++- packages/SettingsLib/res/values-ru/strings.xml | 5 ++++- packages/SettingsLib/res/values-si-rLK/strings.xml | 5 ++++- packages/SettingsLib/res/values-sk/strings.xml | 13 ++++++++----- packages/SettingsLib/res/values-sl/strings.xml | 5 ++++- packages/SettingsLib/res/values-sq-rAL/strings.xml | 5 ++++- packages/SettingsLib/res/values-sr/strings.xml | 5 ++++- packages/SettingsLib/res/values-sv/strings.xml | 5 ++++- packages/SettingsLib/res/values-sw/strings.xml | 5 ++++- packages/SettingsLib/res/values-ta-rIN/strings.xml | 5 ++++- packages/SettingsLib/res/values-te-rIN/strings.xml | 5 ++++- packages/SettingsLib/res/values-th/strings.xml | 5 ++++- packages/SettingsLib/res/values-tl/strings.xml | 11 +++++++---- packages/SettingsLib/res/values-tr/strings.xml | 5 ++++- packages/SettingsLib/res/values-uk/strings.xml | 5 ++++- packages/SettingsLib/res/values-ur-rPK/strings.xml | 5 ++++- packages/SettingsLib/res/values-uz-rUZ/strings.xml | 5 ++++- packages/SettingsLib/res/values-vi/strings.xml | 5 ++++- packages/SettingsLib/res/values-zh-rCN/strings.xml | 7 +++++-- packages/SettingsLib/res/values-zh-rHK/strings.xml | 5 ++++- packages/SettingsLib/res/values-zh-rTW/strings.xml | 5 ++++- packages/SettingsLib/res/values-zu/strings.xml | 5 ++++- 81 files changed, 338 insertions(+), 95 deletions(-) diff --git a/packages/SettingsLib/res/values-af/strings.xml b/packages/SettingsLib/res/values-af/strings.xml index 11235efbaf0f..81af9415531b 100644 --- a/packages/SettingsLib/res/values-af/strings.xml +++ b/packages/SettingsLib/res/values-af/strings.xml @@ -28,7 +28,10 @@ "WiFi-verbinding het misluk" "Stawingsprobleem" "Nie binne ontvangs nie" - "Geen internettoegang bespeur nie, sal nie outomaties herkoppel nie." + + + + "Gestoor deur %1$s" "Gekoppel via Wi-Fi-assistent" "Gekoppel via %1$s" diff --git a/packages/SettingsLib/res/values-am/strings.xml b/packages/SettingsLib/res/values-am/strings.xml index dbfd5d85ec38..792c4349e442 100644 --- a/packages/SettingsLib/res/values-am/strings.xml +++ b/packages/SettingsLib/res/values-am/strings.xml @@ -28,7 +28,10 @@ "የWiFi ግንኙነት መሰናከል" "የማረጋገጫ ችግር" "በክልል ውስጥ የለም" - "ምንም የበይነ መረብ መዳረሻ ተፈልጎ አልተገኘም፣ በራስ-ሰር እንደገና እንዲገናኝ አይደረግም።" + + + + "የተቀመጠው በ%1$s" "በWi‑Fi ረዳት አማካኝነት ተገናኝቷል" "በ%1$s በኩል መገናኘት" diff --git a/packages/SettingsLib/res/values-ar/strings.xml b/packages/SettingsLib/res/values-ar/strings.xml index 092cf63c6791..db9afeebeefd 100644 --- a/packages/SettingsLib/res/values-ar/strings.xml +++ b/packages/SettingsLib/res/values-ar/strings.xml @@ -28,7 +28,10 @@ "‏أخفق اتصال WiFi" "حدثت مشكلة في المصادقة" "ليست في النطاق" - "لم يتم اكتشاف اتصال بالإنترنت." + + + + "تم الحفظ بواسطة %1$s" "‏تم التوصيل عبر مساعد Wi-Fi" "‏تم الاتصال عبر %1$s" @@ -329,7 +332,7 @@ "الشاشة الرئيسية للإعدادات" "٠‏٪" - "٪۵۰" + "٥٠٪" "٪۱۰۰" "قبل %1$s" diff --git a/packages/SettingsLib/res/values-az-rAZ/strings.xml b/packages/SettingsLib/res/values-az-rAZ/strings.xml index 2e58ae9b4e4e..130cd7534924 100644 --- a/packages/SettingsLib/res/values-az-rAZ/strings.xml +++ b/packages/SettingsLib/res/values-az-rAZ/strings.xml @@ -28,7 +28,10 @@ "WiFi Bağlantı Uğursuzluğu" "Autentifikasiya problemi" "Diapazonda deyil" - "İnternet bağlantısı tapılmadı, avtomatik olaraq yenidən qoşulmayacaq." + + + + "%1$s tərəfindən saxlandı" "Wi‑Fi köməkçisi vasitəsilə qoşulub" "%1$s vasitəsilə qoşuludur" diff --git a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml index 1f0ed53be45c..5d7e852bf882 100644 --- a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml +++ b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml @@ -28,7 +28,10 @@ "Wi-Fi veza je otkazala" "Problem sa potvrdom autentičnosti" "Nije u opsegu" - "Pristup internetu nije otkriven, automatsko povezivanje nije moguće." + + + + "Sačuvao/la je %1$s" "Povezano preko Wi‑Fi pomoćnika" "Veza je uspostavljena preko pristupne tačke %1$s" diff --git a/packages/SettingsLib/res/values-be-rBY/strings.xml b/packages/SettingsLib/res/values-be-rBY/strings.xml index b8de297a9437..a8428f26c5e3 100644 --- a/packages/SettingsLib/res/values-be-rBY/strings.xml +++ b/packages/SettingsLib/res/values-be-rBY/strings.xml @@ -28,7 +28,10 @@ "Збой падлучэння Wi-Fi" "Праблема аўтэнтыфікацыі" "Не ў зоне дасягальнасці" - "Доступ да інтэрнэту не выяўлены, аўтаматычнае перападлучэнне не адбудзецца." + + + + "Хто захаваў: %1$s" "Падлучана праз памочніка Wi‑Fi" "Падлучана праз %1$s" diff --git a/packages/SettingsLib/res/values-bg/strings.xml b/packages/SettingsLib/res/values-bg/strings.xml index 683a4d9d6b98..b356766cb68f 100644 --- a/packages/SettingsLib/res/values-bg/strings.xml +++ b/packages/SettingsLib/res/values-bg/strings.xml @@ -28,7 +28,10 @@ "Неуспешна връзка с Wi-Fi" "Проблем при удостоверяването" "Извън обхват" - "Не е открит достъп до интернет. Няма да се свърже отново автоматично." + + + + "Запазено от %1$s" "Установена е връзка чрез помощника за Wi-Fi" "Установена е връзка през „%1$s“" diff --git a/packages/SettingsLib/res/values-bn-rBD/strings.xml b/packages/SettingsLib/res/values-bn-rBD/strings.xml index 9ba656f78c33..40895629e6ad 100644 --- a/packages/SettingsLib/res/values-bn-rBD/strings.xml +++ b/packages/SettingsLib/res/values-bn-rBD/strings.xml @@ -28,7 +28,10 @@ "WiFi সংযোগের ব্যর্থতা" "প্রমাণীকরণ সমস্যা" "পরিসরের মধ্যে নয়" - "কোনো ইন্টারনেট অ্যাক্সেস শনাক্ত হয়নি, স্বয়ংক্রিয়ভাবে পুনরায় সংযোগ স্থাপন করবে না৷" + + + + "%1$s দ্বারা সংরক্ষিত" "ওয়াই-ফাই সহায়ক-এর মাধ্যমে সংযুক্ত হয়েছে" "%1$s মাধ্যমে সংযুক্ত হয়েছে" diff --git a/packages/SettingsLib/res/values-bs-rBA/strings.xml b/packages/SettingsLib/res/values-bs-rBA/strings.xml index f2c73232a59f..5115bbd41592 100644 --- a/packages/SettingsLib/res/values-bs-rBA/strings.xml +++ b/packages/SettingsLib/res/values-bs-rBA/strings.xml @@ -28,7 +28,10 @@ "Greška pri povezivanju na Wi-Fi" "Problem pri provjeri vjerodostojnosti." "Nije u dometu" - "Pristup internetu nije pronađen. Neće se ponovo povezivati automatski." + + + + "Sačuvao %1$s" "Povezani preko Wi-Fi pomoćnika" "Povezani preko %1$s" diff --git a/packages/SettingsLib/res/values-ca/strings.xml b/packages/SettingsLib/res/values-ca/strings.xml index 332daf3e5e96..abc9390c7184 100644 --- a/packages/SettingsLib/res/values-ca/strings.xml +++ b/packages/SettingsLib/res/values-ca/strings.xml @@ -28,7 +28,10 @@ "Error de connexió Wi-Fi" "Problema d\'autenticació" "Fora de l\'abast" - "No s\'ha detectat accés a Internet, no s\'hi tornarà a connectar automàticament." + + + + "Desat per %1$s" "Connectat mitjançant l\'assistent de Wi‑Fi" "Connectada mitjançant %1$s" diff --git a/packages/SettingsLib/res/values-cs/strings.xml b/packages/SettingsLib/res/values-cs/strings.xml index d0dbe748e0bf..edc53ed5be37 100644 --- a/packages/SettingsLib/res/values-cs/strings.xml +++ b/packages/SettingsLib/res/values-cs/strings.xml @@ -28,7 +28,10 @@ "Selhání připojení Wi-Fi" "Problém s ověřením" "Mimo dosah" - "Nebyl zjištěn žádný přístup k internetu, připojení nebude automaticky obnoveno." + + + + "Uloženo uživatelem %1$s" "Připojeno pomocí asistenta připojení Wi-Fi" "Připojeno prostřednictvím %1$s" diff --git a/packages/SettingsLib/res/values-da/strings.xml b/packages/SettingsLib/res/values-da/strings.xml index 3c4b95508277..571490174e62 100644 --- a/packages/SettingsLib/res/values-da/strings.xml +++ b/packages/SettingsLib/res/values-da/strings.xml @@ -28,7 +28,10 @@ "Wi-Fi-forbindelsesfejl" "Problem med godkendelse" "Ikke inden for rækkevidde" - "Der blev ikke fundet nogen internetadgang. Forbindelsen bliver ikke automatisk genoprettet." + + + + "Gemt af %1$s" "Forbindelse via Wi-Fi-assistent" "Tilsluttet via %1$s" diff --git a/packages/SettingsLib/res/values-de/strings.xml b/packages/SettingsLib/res/values-de/strings.xml index 0fca8b9ad4b2..406523e7986d 100644 --- a/packages/SettingsLib/res/values-de/strings.xml +++ b/packages/SettingsLib/res/values-de/strings.xml @@ -28,7 +28,10 @@ "WLAN-Verbindungsfehler" "Authentifizierungsproblem" "Nicht in Reichweite" - "Keine Internetverbindung erkannt, es kann nicht automatisch eine Verbindung hergestellt werden." + + + + "Gespeichert von %1$s" "Über WLAN-Assistenten verbunden" "Über %1$s verbunden" diff --git a/packages/SettingsLib/res/values-el/strings.xml b/packages/SettingsLib/res/values-el/strings.xml index da1b03c8dc5c..117b9fed65c9 100644 --- a/packages/SettingsLib/res/values-el/strings.xml +++ b/packages/SettingsLib/res/values-el/strings.xml @@ -28,7 +28,10 @@ "Αποτυχία σύνδεσης Wi-Fi" "Πρόβλημα ελέγχου ταυτότητας" "Εκτός εμβέλειας" - "Δεν εντοπίστηκε καμία πρόσβαση στο διαδίκτυο, δεν θα γίνει αυτόματη επανασύνδεση." + + + + "Αποθηκεύτηκε από %1$s" "Σύνδεση μέσω βοηθού Wi‑Fi" "Συνδέθηκε μέσω %1$s" diff --git a/packages/SettingsLib/res/values-en-rAU/strings.xml b/packages/SettingsLib/res/values-en-rAU/strings.xml index 70fa5017488e..35ec15b6d564 100644 --- a/packages/SettingsLib/res/values-en-rAU/strings.xml +++ b/packages/SettingsLib/res/values-en-rAU/strings.xml @@ -28,7 +28,10 @@ "Wi-Fi Connection Failure" "Authentication problem" "Not in range" - "No Internet Access Detected, won\'t automatically reconnect." + + + + "Saved by %1$s" "Connected via Wi‑Fi assistant" "Connected via %1$s" diff --git a/packages/SettingsLib/res/values-en-rGB/strings.xml b/packages/SettingsLib/res/values-en-rGB/strings.xml index 70fa5017488e..35ec15b6d564 100644 --- a/packages/SettingsLib/res/values-en-rGB/strings.xml +++ b/packages/SettingsLib/res/values-en-rGB/strings.xml @@ -28,7 +28,10 @@ "Wi-Fi Connection Failure" "Authentication problem" "Not in range" - "No Internet Access Detected, won\'t automatically reconnect." + + + + "Saved by %1$s" "Connected via Wi‑Fi assistant" "Connected via %1$s" diff --git a/packages/SettingsLib/res/values-en-rIN/strings.xml b/packages/SettingsLib/res/values-en-rIN/strings.xml index 70fa5017488e..35ec15b6d564 100644 --- a/packages/SettingsLib/res/values-en-rIN/strings.xml +++ b/packages/SettingsLib/res/values-en-rIN/strings.xml @@ -28,7 +28,10 @@ "Wi-Fi Connection Failure" "Authentication problem" "Not in range" - "No Internet Access Detected, won\'t automatically reconnect." + + + + "Saved by %1$s" "Connected via Wi‑Fi assistant" "Connected via %1$s" diff --git a/packages/SettingsLib/res/values-es-rUS/strings.xml b/packages/SettingsLib/res/values-es-rUS/strings.xml index 63a5d873dc03..2874e61fbb4f 100644 --- a/packages/SettingsLib/res/values-es-rUS/strings.xml +++ b/packages/SettingsLib/res/values-es-rUS/strings.xml @@ -28,7 +28,10 @@ "Error de conexión Wi-Fi" "Problema de autenticación" "Fuera de alcance" - "No se detectó el acceso a Internet. No se volverá a conectar de forma automática." + + + + "Guardadas por %1$s" "Conexión por asistente de Wi-Fi" "Conexión a través de %1$s" diff --git a/packages/SettingsLib/res/values-es/strings.xml b/packages/SettingsLib/res/values-es/strings.xml index 6b67b1194e04..7d0097a9e9f3 100644 --- a/packages/SettingsLib/res/values-es/strings.xml +++ b/packages/SettingsLib/res/values-es/strings.xml @@ -28,7 +28,10 @@ "Error de conexión Wi-Fi" "Error de autenticación" "Fuera de rango" - "No se ha detectado acceso a Internet, no se volverá a conectar automáticamente." + + + + "Guardadas por %1$s" "Conectado a través de asistente Wi‑Fi" "Conectado a través de %1$s" @@ -173,7 +176,7 @@ "Aumentar el nivel de logging de Wi-Fi, mostrar por SSID RSSI en el selector Wi-Fi" "Si está habilitada, la conexión Wi‑Fi será más agresiva al transferir la conexión de datos al móvil (si la señal Wi‑Fi no es estable)" "Permitir/No permitir búsquedas de Wi-Fi basadas en la cantidad de tráfico de datos presente en la interfaz" - "Tamaños del búfer de Logger" + "Tamaños de búfer de registrador" "Elige el tamaño del Logger por búfer" "¿Borrar almacenamiento continuo del registrador?" "Cuando ya no supervisamos la actividad con el registrador de forma continua, estamos obligados a borrar los datos del registrador almacenados en el dispositivo." diff --git a/packages/SettingsLib/res/values-et-rEE/strings.xml b/packages/SettingsLib/res/values-et-rEE/strings.xml index de9255ae46d4..97fe73f192a3 100644 --- a/packages/SettingsLib/res/values-et-rEE/strings.xml +++ b/packages/SettingsLib/res/values-et-rEE/strings.xml @@ -28,7 +28,10 @@ "WiFi-ühenduse viga" "Autentimise probleem" "Pole vahemikus" - "Interneti-ühendust ei tuvastatud, seadet ei ühendata automaatselt." + + + + "Salvestas: %1$s" "Ühendatud WiFi-abi kaudu" "Ühendatud üksuse %1$s kaudu" diff --git a/packages/SettingsLib/res/values-eu-rES/strings.xml b/packages/SettingsLib/res/values-eu-rES/strings.xml index bd8c11ddde81..9234f24600b2 100644 --- a/packages/SettingsLib/res/values-eu-rES/strings.xml +++ b/packages/SettingsLib/res/values-eu-rES/strings.xml @@ -28,7 +28,10 @@ "Ezin izan da konektatu Wi-Fi sarera" "Autentifikazio-arazoa" "Urrunegi" - "Ez da hauteman Interneterako sarbiderik. Ez da automatikoki berriro konektatuko." + + + + "%1$s aplikazioak gorde du" "Wi‑Fi laguntzailearen bidez konektatuta" "%1$s bidez konektatuta" diff --git a/packages/SettingsLib/res/values-fa/strings.xml b/packages/SettingsLib/res/values-fa/strings.xml index 027987fe8453..bb2e16662555 100644 --- a/packages/SettingsLib/res/values-fa/strings.xml +++ b/packages/SettingsLib/res/values-fa/strings.xml @@ -28,7 +28,10 @@ "‏اتصال Wi-Fi برقرار نشد" "مشکل احراز هویت" "در محدوده نیست" - "دسترسی به اینترنت شناسایی نشد، به صورت خودکار وصل نمی‌شود." + + + + "ذخیره‌شده توسط %1$s" "‏متصل شده از طریق دستیار Wi-Fi" "‏متصل از طریق %1$s" @@ -183,7 +186,7 @@ "‏انتخاب پیکربندی USB" "مکان‌های کاذب مجاز هستند" "مکان‌های کاذب مجاز هستند" - "فعال کردن بازبینی ویژگی بازدید" + "فعال کردن نمایش بازبینی ویژگی" "‏داده سلولی همیشه فعال نگه داشته می‌شود، حتی وقتی Wi-Fi فعال است (برای جابه‌جایی سریع شبکه)." "‏اشکال‌زدایی USB انجام شود؟" "‏اشکال‌زدایی USB فقط برای اهداف برنامه‌نویسی در نظر گرفته شده است. از آن برای رونوشت‌برداری داده بین رایانه و دستگاهتان، نصب برنامه‌ها در دستگاهتان بدون اعلان و خواندن داده‌های گزارش استفاده کنید." diff --git a/packages/SettingsLib/res/values-fi/strings.xml b/packages/SettingsLib/res/values-fi/strings.xml index a988ccf109dc..c04c97045786 100644 --- a/packages/SettingsLib/res/values-fi/strings.xml +++ b/packages/SettingsLib/res/values-fi/strings.xml @@ -28,7 +28,10 @@ "Wi-Fi-yhteysvirhe" "Todennusvirhe" "Ei kantoalueella" - "Internetyhteyttä ei havaittu, yhteyttä ei muodosteta automaattisesti uudelleen." + + + + "Tallentaja: %1$s" "Yhteys muodostettu Wi‑Fi-apurin kautta" "Yhdistetty seuraavan kautta: %1$s" diff --git a/packages/SettingsLib/res/values-fr-rCA/strings.xml b/packages/SettingsLib/res/values-fr-rCA/strings.xml index e22e93824f10..1b3490426403 100644 --- a/packages/SettingsLib/res/values-fr-rCA/strings.xml +++ b/packages/SettingsLib/res/values-fr-rCA/strings.xml @@ -28,7 +28,10 @@ "Échec de connexion Wi-Fi" "Problème d\'authentification" "Hors de portée" - "Aucun accès à Internet détecté, reconnexion automatique impossible" + + + + "Enregistrés par %1$s" "Connecté à l\'aide de l\'assistant Wi-Fi" "Connecté par %1$s" diff --git a/packages/SettingsLib/res/values-fr/strings.xml b/packages/SettingsLib/res/values-fr/strings.xml index e4a34d6d4f23..07398f3d87c1 100644 --- a/packages/SettingsLib/res/values-fr/strings.xml +++ b/packages/SettingsLib/res/values-fr/strings.xml @@ -28,7 +28,10 @@ "Échec de la connexion Wi-Fi" "Problème d\'authentification." "Hors de portée" - "Aucun accès à Internet détecté, reconnexion automatique impossible" + + + + "Enregistré par %1$s" "Connecté via l\'assistant Wi‑Fi" "Connecté via %1$s" diff --git a/packages/SettingsLib/res/values-gl-rES/strings.xml b/packages/SettingsLib/res/values-gl-rES/strings.xml index 10a395766604..5207a731b8d9 100644 --- a/packages/SettingsLib/res/values-gl-rES/strings.xml +++ b/packages/SettingsLib/res/values-gl-rES/strings.xml @@ -28,7 +28,10 @@ "Erro na conexión wifi" "Problema de autenticación" "Non está dentro da zona de cobertura" - "Non se detectou acceso a Internet e non se volverá conectar automaticamente." + + + + "Redes gardadas por %1$s" "Conectado ao asistente de wifi" "Conectado a través de %1$s" diff --git a/packages/SettingsLib/res/values-gu-rIN/strings.xml b/packages/SettingsLib/res/values-gu-rIN/strings.xml index 0f3079d36a0e..3d0a02bf9ae7 100644 --- a/packages/SettingsLib/res/values-gu-rIN/strings.xml +++ b/packages/SettingsLib/res/values-gu-rIN/strings.xml @@ -28,7 +28,10 @@ "WiFi કનેક્શન નિષ્ફળ" "પ્રમાણીકરણ સમસ્યા" "રેન્જમાં નથી" - "કોઈ ઇન્ટરનેટ અ‍ૅક્સેસ શોધાયું નથી, આપમેળે ફરીથી કનેક્ટ કરશે નહીં." + + + + "%1$s દ્વારા સચવાયું" "Wi-Fi સહાયક દ્વારા કનેક્ટ થયું" "%1$s દ્વારા કનેક્ટ થયેલ" diff --git a/packages/SettingsLib/res/values-hi/strings.xml b/packages/SettingsLib/res/values-hi/strings.xml index 5407c215be95..329a67082904 100644 --- a/packages/SettingsLib/res/values-hi/strings.xml +++ b/packages/SettingsLib/res/values-hi/strings.xml @@ -28,7 +28,10 @@ "वाईफ़ाई कनेक्‍शन विफलता" "प्रमाणीकरण समस्या" "रेंज में नहीं" - "किसी इंटरनेट कनेक्‍शन का पता नहीं चला, अपने आप पुन: कनेक्‍ट नहीं हो सकता." + + + + "%1$s के द्वारा सहेजा गया" "वाई-फ़ाई सहायक के द्वारा कनेक्‍ट है" "%1$s के द्वारा उपलब्ध" diff --git a/packages/SettingsLib/res/values-hr/strings.xml b/packages/SettingsLib/res/values-hr/strings.xml index e52f44160d47..89b06530cd8c 100644 --- a/packages/SettingsLib/res/values-hr/strings.xml +++ b/packages/SettingsLib/res/values-hr/strings.xml @@ -28,7 +28,10 @@ "Povezivanje s Wi-Fi-jem nije uspjelo" "Problem u autentifikaciji" "Nije u rasponu" - "Pristup internetu nije otkriven. Nema automatskog ponovnog povezivanja." + + + + "Spremljeno: %1$s" "Povezani putem pomoćnika za Wi-Fi" "Povezano putem %1$s" diff --git a/packages/SettingsLib/res/values-hu/strings.xml b/packages/SettingsLib/res/values-hu/strings.xml index ac4a43c46f47..c33943a3c3fb 100644 --- a/packages/SettingsLib/res/values-hu/strings.xml +++ b/packages/SettingsLib/res/values-hu/strings.xml @@ -28,7 +28,10 @@ "Wi-Fi-kapcsolati hiba" "Azonosítási probléma" "Hatókörön kívül" - "Nincs érzékelhető internet-hozzáférés, ezért nem kapcsolódik újra automatikusan." + + + + "Mentette: %1$s" "Csatlakozva Wi‑Fi-segéddel" "Csatlakozva a következőn keresztül: %1$s" diff --git a/packages/SettingsLib/res/values-hy-rAM/strings.xml b/packages/SettingsLib/res/values-hy-rAM/strings.xml index e26d4cb62a21..32b0dd6e6c94 100644 --- a/packages/SettingsLib/res/values-hy-rAM/strings.xml +++ b/packages/SettingsLib/res/values-hy-rAM/strings.xml @@ -28,7 +28,10 @@ "WiFi կապի ձախողում" "Նույնականացման խնդիր" "Ընդգրկույթից դուրս է" - "Ինտերնետի հասանելիություն չկա. ավտոմատ կերպով կրկին չի միանա:" + + + + "Պահել է հետևյալ օգտվողը՝ %1$s" "Կապակցված է Wi‑Fi Օգնականի միջոցով" "Կապակցված է %1$s-ի միջոցով" diff --git a/packages/SettingsLib/res/values-in/strings.xml b/packages/SettingsLib/res/values-in/strings.xml index 5711ea704a41..33df1fe141be 100644 --- a/packages/SettingsLib/res/values-in/strings.xml +++ b/packages/SettingsLib/res/values-in/strings.xml @@ -28,7 +28,10 @@ "Kegagalan Sambungan Wi-Fi" "Masalah autentikasi" "Tidak dalam jangkauan" - "Akses Internet Tidak Terdeteksi, tidak akan menyambung ulang secara otomatis." + + + + "Disimpan oleh %1$s" "Terhubung melalui Asisten Wi-Fi" "Terhubung melalui %1$s" diff --git a/packages/SettingsLib/res/values-is-rIS/strings.xml b/packages/SettingsLib/res/values-is-rIS/strings.xml index 44226ee35e15..8cc408f0c4e3 100644 --- a/packages/SettingsLib/res/values-is-rIS/strings.xml +++ b/packages/SettingsLib/res/values-is-rIS/strings.xml @@ -28,7 +28,10 @@ "WiFi-tengingarvilla" "Vandamál við auðkenningu" "Ekkert samband" - "Enginn netaðgangur fannst; endurtengist ekki sjálfkrafa." + + + + "%1$s vistaði" "Tengt í gegnum Wi-Fi aðstoð" "Tengt í gegnum %1$s" diff --git a/packages/SettingsLib/res/values-it/strings.xml b/packages/SettingsLib/res/values-it/strings.xml index 6df553b7b6b3..0bb26e199d2f 100644 --- a/packages/SettingsLib/res/values-it/strings.xml +++ b/packages/SettingsLib/res/values-it/strings.xml @@ -28,7 +28,10 @@ "Errore connessione Wi-Fi" "Problema di autenticazione" "Fuori portata" - "Nessun accesso a Internet rilevato, non verrà eseguita la riconnessione automatica." + + + + "Salvata da %1$s" "Connesso tramite assistente Wi‑Fi" "Collegato tramite %1$s" @@ -191,7 +194,7 @@ "Consentire impostazioni di sviluppo?" "Queste impostazioni sono utilizzabili solo a scopo di sviluppo. Possono causare l\'arresto o il comportamento anomalo del dispositivo e delle applicazioni su di esso." "Verifica app tramite USB" - "Controlla che le applicazioni installate tramite ADB/ADT non abbiano un comportamento dannoso." + "Controlla che le app installate tramite ADB/ADT non abbiano un comportamento dannoso." "Consente di disattivare la funzione del volume assoluto Bluetooth in caso di problemi con il volume dei dispositivi remoti, ad esempio un volume troppo alto o la mancanza di controllo." "Terminale locale" "Abilita l\'app Terminale che offre l\'accesso alla shell locale" diff --git a/packages/SettingsLib/res/values-iw/strings.xml b/packages/SettingsLib/res/values-iw/strings.xml index 6f7460a6639d..75109114168d 100644 --- a/packages/SettingsLib/res/values-iw/strings.xml +++ b/packages/SettingsLib/res/values-iw/strings.xml @@ -28,7 +28,10 @@ "‏כשל בחיבור Wi-Fi" "בעיית אימות" "מחוץ לטווח" - "אין גישה לאינטרנט. לא יתבצע חיבור מחדש באופן אוטומטי." + + + + "נשמר על ידי %1$s" "‏מחובר באמצעות אסיסטנט ה-Wi-Fi" "‏מחובר דרך %1$s" diff --git a/packages/SettingsLib/res/values-ja/strings.xml b/packages/SettingsLib/res/values-ja/strings.xml index 025b7fde4ed1..812f53d28456 100644 --- a/packages/SettingsLib/res/values-ja/strings.xml +++ b/packages/SettingsLib/res/values-ja/strings.xml @@ -28,7 +28,10 @@ "WiFi接続エラー" "認証に問題" "圏外" - "インターネットアクセスを検出できないため、自動的に再接続されません。" + + + + "%1$sで保存" "Wi‑Fiアシスタント経由で接続" "%1$s経由で接続" diff --git a/packages/SettingsLib/res/values-ka-rGE/strings.xml b/packages/SettingsLib/res/values-ka-rGE/strings.xml index 0eda6a94d1fc..f349c4f9657b 100644 --- a/packages/SettingsLib/res/values-ka-rGE/strings.xml +++ b/packages/SettingsLib/res/values-ka-rGE/strings.xml @@ -28,7 +28,10 @@ "WiFi კავშირის შეფერხება" "ავთენტიკაციის პრობლემა" "არ არის დიაპაზონში" - "ინტერნეტთან წვდომის ამოცნობა ვერ მოხერხდა. ავტომატურად ხელახლა დაკავშირება არ განხორციელდება." + + + + "შენახული %1$s-ის მიერ" "დაკავშირებულია Wi-Fi თანაშემწით" "%1$s-ით დაკავშირებული" diff --git a/packages/SettingsLib/res/values-kk-rKZ/strings.xml b/packages/SettingsLib/res/values-kk-rKZ/strings.xml index 369a10f3b3b0..1141fcacb794 100644 --- a/packages/SettingsLib/res/values-kk-rKZ/strings.xml +++ b/packages/SettingsLib/res/values-kk-rKZ/strings.xml @@ -28,7 +28,10 @@ "Wi-Fi байланысының қатесі" "Растау мәселесі" "Аумақта жоқ" - "Интернетке қатынас анықталмады, автоматты түрде қайта қосылу орындалмайды." + + + + "%1$s сақтаған" "Wi‑Fi көмекшісі арқылы қосылу орындалды" "%1$s арқылы қосылған" diff --git a/packages/SettingsLib/res/values-km-rKH/strings.xml b/packages/SettingsLib/res/values-km-rKH/strings.xml index 3e934bab59a3..7d1c7979b1e3 100644 --- a/packages/SettingsLib/res/values-km-rKH/strings.xml +++ b/packages/SettingsLib/res/values-km-rKH/strings.xml @@ -28,7 +28,10 @@ "ការ​ភ្ជាប់​ WiFi បរាជ័យ" "បញ្ហា​ក្នុង​ការ​ផ្ទៀងផ្ទាត់" "នៅ​ក្រៅ​តំបន់" - "រក​មិន​ឃើញ​ការ​ចូល​ដំណើរការ​អ៊ីនធឺណិត, នឹង​មិន​ភ្ជាប់​ឡើង​វិញ​ដោយ​ស្វ័យ​ប្រវត្តិ​ទេ។" + + + + "បានរក្សាទុកដោយ %1$s" "បានភ្ជាប់តាមរយៈជំនួយការ Wi‑Fi" "បានភ្ជាប់តាមរយៈ %1$s" diff --git a/packages/SettingsLib/res/values-kn-rIN/strings.xml b/packages/SettingsLib/res/values-kn-rIN/strings.xml index 5a8d53cfe11a..9039e258b086 100644 --- a/packages/SettingsLib/res/values-kn-rIN/strings.xml +++ b/packages/SettingsLib/res/values-kn-rIN/strings.xml @@ -28,7 +28,10 @@ "WiFi ಸಂಪರ್ಕ ವಿಫಲತೆ" "ಪ್ರಮಾಣೀಕರಣ ಸಮಸ್ಯೆ" "ವ್ಯಾಪ್ತಿಯಲ್ಲಿಲ್ಲ" - "ಯಾವುದೇ ಇಂಟರ್ನೆಟ್‌ ಪ್ರವೇಶ ಪತ್ತೆಯಾಗಿಲ್ಲ, ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಮರುಸಂಪರ್ಕಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ." + + + + "%1$s ರಿಂದ ಉಳಿಸಲಾಗಿದೆ" "Wi‑Fi ಸಹಾಯಕದ ಮೂಲಕ ಸಂಪರ್ಕಿತಗೊಳಿಸಲಾಗಿದೆ" "%1$s ಮೂಲಕ ಸಂಪರ್ಕಗೊಂಡಿದೆ" @@ -93,7 +96,7 @@ "ಟೆಥರಿಂಗ್ & ಪೋರ್ಟಬಲ್ ಹಾಟ್‌ಸ್ಪಾಟ್" "ಎಲ್ಲ ಕೆಲಸದ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು" "ಅತಿಥಿ" - "ಅಜ್ಞಾತ" + "ಅಪರಿಚಿತ" "ಬಳಕೆದಾರ: %1$s" "ಕೆಲವು ಡೀಫಾಲ್ಟ್‌ಗಳನ್ನು ಹೊಂದಿಸಲಾಗಿದೆ" "ಡೀಫಾಲ್ಟ್‌ಗಳನ್ನು ಹೊಂದಿಸಲಾಗಿಲ್ಲ" @@ -312,7 +315,7 @@ "%1$s - %2$s" "%1$s - %2$s ವೈರ್‌‌ಲೆಸ್‌ನಿಂದ ಪೂರ್ಣವಾಗುವವರೆಗೆ" "%1$s - %2$s" - "ಅಜ್ಞಾತ" + "ಅಪರಿಚಿತ" "ಚಾರ್ಜ್ ಆಗುತ್ತಿದೆ" "AC ನಲ್ಲಿ ಚಾರ್ಜ್‌" "ಚಾರ್ಜ್ ಆಗುತ್ತಿದೆ" diff --git a/packages/SettingsLib/res/values-ko/strings.xml b/packages/SettingsLib/res/values-ko/strings.xml index bd9633491ade..e33b989ee26b 100644 --- a/packages/SettingsLib/res/values-ko/strings.xml +++ b/packages/SettingsLib/res/values-ko/strings.xml @@ -28,7 +28,10 @@ "Wi-Fi 연결 실패" "인증 문제" "범위 내에 없음" - "감지된 인터넷 액세스가 없으며 자동으로 다시 연결되지 않습니다." + + + + "%1$s(으)로 저장됨" "Wi‑Fi 도우미를 통해 연결됨" "%1$s을(를) 통해 연결됨" diff --git a/packages/SettingsLib/res/values-ky-rKG/strings.xml b/packages/SettingsLib/res/values-ky-rKG/strings.xml index 5ca4e7c3fb21..22622dd009fc 100644 --- a/packages/SettingsLib/res/values-ky-rKG/strings.xml +++ b/packages/SettingsLib/res/values-ky-rKG/strings.xml @@ -28,7 +28,10 @@ "WiFi туташуусу бузулду" "Аутентификация маселеси бар" "Тейлөө аймагында эмес" - "Интернетке кирүү мүмкүнчүлүгү табылган жок, андыктан автоматтык түрдө кайра туташпайт." + + + + "%1$s тарабынан сакталды" "Wi‑Fi жардамчысы аркылуу туташып турат" "%1$s аркылуу жеткиликтүү" diff --git a/packages/SettingsLib/res/values-lo-rLA/strings.xml b/packages/SettingsLib/res/values-lo-rLA/strings.xml index b47629af0445..716ee6fe3a57 100644 --- a/packages/SettingsLib/res/values-lo-rLA/strings.xml +++ b/packages/SettingsLib/res/values-lo-rLA/strings.xml @@ -28,7 +28,10 @@ "​ການ​ເຊື່ອມ​ຕໍ່ WiFi ລົ້ມ​ເຫຼວ" "ບັນຫາການພິສູດຢືນຢັນ" "ບໍ່ຢູ່ໃນໄລຍະທີ່ເຊື່ອມຕໍ່ໄດ້" - "​ບໍ່​ພົບ​ການ​ເຊື່ອມ​ຕໍ່​ອິນ​ເຕີ​ເນັດ​, ຈະ​ບໍ່​ຖືກ​ເຊື່ອມ​ຕໍ່​ໃໝ່​ໂດຍ​ອັດ​ຕະ​ໂນ​ມັດ." + + + + "ບັນທຶກ​​​ໂດຍ %1$s" "ເຊື່ອມ​ຕໍ່​ຜ່ານ Wi‑Fi ຕົວ​ຊ່ວຍ​ແລ້ວ" "​ເຊື່ອມຕໍ່​ຜ່ານ %1$s ​ແລ້ວ" diff --git a/packages/SettingsLib/res/values-lt/strings.xml b/packages/SettingsLib/res/values-lt/strings.xml index 7ac54a8e925c..167e7568be37 100644 --- a/packages/SettingsLib/res/values-lt/strings.xml +++ b/packages/SettingsLib/res/values-lt/strings.xml @@ -28,7 +28,10 @@ "„Wi-Fi“ ryšio triktis" "Autentifikavimo problema" "Ne diapazone" - "Neaptikta jokia prieiga prie interneto, nebus automatiškai iš naujo prisijungta." + + + + "Išsaugojo %1$s" "Prisijungta naudojant „Wi‑Fi“ pagelbiklį" "Prisijungta naudojant „%1$s“" diff --git a/packages/SettingsLib/res/values-lv/strings.xml b/packages/SettingsLib/res/values-lv/strings.xml index 933d37447775..7f5e111a741f 100644 --- a/packages/SettingsLib/res/values-lv/strings.xml +++ b/packages/SettingsLib/res/values-lv/strings.xml @@ -28,7 +28,10 @@ "Wi-Fi savienojuma kļūme" "Autentificēšanas problēma" "Nav diapazona ietvaros" - "Nevar noteikt interneta savienojumu. Savienojums netiks izveidots vēlreiz automātiski." + + + + "Saglabāja: %1$s" "Izveidots savienojums ar Wi‑Fi palīgu" "Savienots, izmantojot %1$s" diff --git a/packages/SettingsLib/res/values-mk-rMK/strings.xml b/packages/SettingsLib/res/values-mk-rMK/strings.xml index 1e1c857e1212..2a454d228257 100644 --- a/packages/SettingsLib/res/values-mk-rMK/strings.xml +++ b/packages/SettingsLib/res/values-mk-rMK/strings.xml @@ -28,7 +28,10 @@ "Поврзувањето преку Wi-Fi не успеа" "Проблем со автентикација" "Надвор од опсег" - "Не е откриен пристап до интернет, нема автоматски повторно да се поврзете." + + + + "Зачувано од %1$s" "Поврзано преку помошник за Wi-Fismile" "Поврзано преку %1$s" diff --git a/packages/SettingsLib/res/values-ml-rIN/strings.xml b/packages/SettingsLib/res/values-ml-rIN/strings.xml index 6f758860fbe3..56d14779322f 100644 --- a/packages/SettingsLib/res/values-ml-rIN/strings.xml +++ b/packages/SettingsLib/res/values-ml-rIN/strings.xml @@ -28,7 +28,10 @@ "WiFi കണക്ഷൻ പരാജയം" "ആധികാരികമാക്കുന്നതിലെ പ്രശ്‌നം" "പരിധിയിലില്ല" - "ഇന്റർനെറ്റ് ആക്സസ്സൊന്നും കണ്ടെത്താത്തതിനാൽ സ്വയം വീണ്ടും കണക്‌റ്റുചെയ്യില്ല." + + + + "%1$s സംരക്ഷിച്ചത്" "വൈഫൈ അസിസ്റ്റന്റ് മുഖേന കണക്‌റ്റുചെയ്തു" "%1$s വഴി ബന്ധിപ്പിച്ചു" diff --git a/packages/SettingsLib/res/values-mn-rMN/strings.xml b/packages/SettingsLib/res/values-mn-rMN/strings.xml index bf7d7cebc775..9848caedf814 100644 --- a/packages/SettingsLib/res/values-mn-rMN/strings.xml +++ b/packages/SettingsLib/res/values-mn-rMN/strings.xml @@ -28,7 +28,10 @@ "WiFi холболт амжилтгүй" "Гэрчлэлийн асуудал" "Хүрээнд байхгүй" - "Интернэт холболт илэрсэнгүй, автоматаар дахин холболт хийгдэхгүй" + + + + "%1$s хадгалсан" "Wi-Fi туслагчаар дамжуулан холбогдлоо" "%1$s-р холбогдсон" diff --git a/packages/SettingsLib/res/values-mr-rIN/strings.xml b/packages/SettingsLib/res/values-mr-rIN/strings.xml index a1123bcbdb35..83ae6634430c 100644 --- a/packages/SettingsLib/res/values-mr-rIN/strings.xml +++ b/packages/SettingsLib/res/values-mr-rIN/strings.xml @@ -28,7 +28,10 @@ "WiFi कनेक्शन अयशस्वी" "प्रमाणीकरण समस्या" "परिक्षेत्रामध्ये नाही" - "कोणताही इंटरनेट प्रवेश आढळला नाही, स्वयंचलितपणे रीकनेक्ट करणार नाही." + + + + "%1$s द्वारे जतन केले" "Wi‑Fi सहाय्यक द्वारे कनेक्ट केले" "%1$s द्वारे कनेक्‍ट केले" diff --git a/packages/SettingsLib/res/values-ms-rMY/strings.xml b/packages/SettingsLib/res/values-ms-rMY/strings.xml index 8f115890ca7e..217d82acef53 100644 --- a/packages/SettingsLib/res/values-ms-rMY/strings.xml +++ b/packages/SettingsLib/res/values-ms-rMY/strings.xml @@ -28,7 +28,10 @@ "Kegagalan Sambungan WiFi" "Masalah pengesahan" "Tidak dalam liputan" - "Tiada Akses Internet Dikesan, tidak akan menyambung secara automatik." + + + + "Diselamatkan oleh %1$s" "Disambungkan melalui Pembantu Wi-Fi" "Disambungkan melalui %1$s" diff --git a/packages/SettingsLib/res/values-my-rMM/strings.xml b/packages/SettingsLib/res/values-my-rMM/strings.xml index cfba5dadb43f..fc977a9649df 100644 --- a/packages/SettingsLib/res/values-my-rMM/strings.xml +++ b/packages/SettingsLib/res/values-my-rMM/strings.xml @@ -28,7 +28,10 @@ "WiFi ချိတ်ဆက်မှု မအောင်မြင်ပါ" "စစ်မှန်ကြောင်းအတည်ပြုရန်၌ ပြသနာရှိခြင်း" "စက်ကွင်းထဲတွင် မဟုတ်ပါ" - "မည်သည့် အင်တာနက်မျှမရှိပါ၊ အလိုအလျောက် ပြန်လည်မချိတ်ဆက်ပါ။" + + + + "%1$s မှသိမ်းဆည်းခဲ့သည်" "ကြိုးမဲ့ကူညီသူမှတဆင့် ချိတ်ဆက်၏" "%1$s မှတစ်ဆင့် ချိတ်ဆက်ထားသည်" diff --git a/packages/SettingsLib/res/values-nb/strings.xml b/packages/SettingsLib/res/values-nb/strings.xml index 2da378aee46a..bd6ae05766d0 100644 --- a/packages/SettingsLib/res/values-nb/strings.xml +++ b/packages/SettingsLib/res/values-nb/strings.xml @@ -28,7 +28,10 @@ "Wi-Fi-tilkoblingsfeil" "Autentiseringsproblem" "Utenfor område" - "Ingen Internett-tilgang ble funnet. Kan ikke koble til på nytt automatisk." + + + + "Lagret av %1$s" "Koblet til via en Wi-Fi-assistent" "Tilkoblet via %1$s" diff --git a/packages/SettingsLib/res/values-ne-rNP/strings.xml b/packages/SettingsLib/res/values-ne-rNP/strings.xml index a56b65573357..c671f90fca9c 100644 --- a/packages/SettingsLib/res/values-ne-rNP/strings.xml +++ b/packages/SettingsLib/res/values-ne-rNP/strings.xml @@ -28,7 +28,10 @@ "वाईफाई जडान असफल" "प्रमाणीकरण समस्या" "दायराभित्र छैन" - "कुनै इन्टरनेट पहुँच पाईएन, स्वचालित रूपमा पुन: जडान छैन।" + + + + "%1$s द्वारा सुरक्षित गरियो" "Wi-Fi सहायक द्वारा जोडिएको" "%1$s मार्फत जडित" diff --git a/packages/SettingsLib/res/values-nl/strings.xml b/packages/SettingsLib/res/values-nl/strings.xml index 11d92e516113..330eb3072cd4 100644 --- a/packages/SettingsLib/res/values-nl/strings.xml +++ b/packages/SettingsLib/res/values-nl/strings.xml @@ -28,7 +28,10 @@ "Wifi-verbinding mislukt" "Authenticatieprobleem" "Niet binnen bereik" - "Geen internettoegang gevonden. Er wordt niet automatisch opnieuw verbinding gemaakt." + + + + "Opgeslagen door %1$s" "Verbonden via wifi-assistent" "Verbonden via %1$s" diff --git a/packages/SettingsLib/res/values-pa-rIN/strings.xml b/packages/SettingsLib/res/values-pa-rIN/strings.xml index d526064b0132..982602364186 100644 --- a/packages/SettingsLib/res/values-pa-rIN/strings.xml +++ b/packages/SettingsLib/res/values-pa-rIN/strings.xml @@ -28,7 +28,10 @@ "WiFi ਕਨੈਕਸ਼ਨ ਅਸਫਲਤਾ" "ਪ੍ਰਮਾਣੀਕਰਨ ਸਮੱਸਿਆ" "ਰੇਂਜ ਵਿੱਚ ਨਹੀਂ ਹੈ" - "ਕੋਈ ਇੰਟਰਨੈਟ ਪਹੁੰਚ ਨਹੀਂ ਮਿਲੀ, ਆਟੋਮੈਟਿਕਲੀ ਰੀਕਨੈਕਟ ਨਹੀਂ ਕੀਤਾ ਜਾਏਗਾ।" + + + + "%1$s ਵੱਲੋਂ ਸੁਰੱਖਿਅਤ ਕੀਤਾ" "Wi‑Fi ਸਹਾਇਕ ਰਾਹੀਂ ਕਨੈਕਟ ਕੀਤਾ" "%1$s ਰਾਹੀਂ ਕਨੈਕਟ ਕੀਤਾ" diff --git a/packages/SettingsLib/res/values-pl/strings.xml b/packages/SettingsLib/res/values-pl/strings.xml index dcbb934cea6c..4dce1a4d0ac5 100644 --- a/packages/SettingsLib/res/values-pl/strings.xml +++ b/packages/SettingsLib/res/values-pl/strings.xml @@ -28,7 +28,10 @@ "Błąd połączenia Wi-Fi" "Problem z uwierzytelnianiem" "Poza zasięgiem" - "Nie wykryto dostępu do internetu. Nie można automatycznie przywrócić połączenia." + + + + "Zapisane przez: %1$s" "Połączono przez Asystenta Wi‑Fi" "Połączono przez %1$s" diff --git a/packages/SettingsLib/res/values-pt-rBR/strings.xml b/packages/SettingsLib/res/values-pt-rBR/strings.xml index fc2222542324..27332f909155 100644 --- a/packages/SettingsLib/res/values-pt-rBR/strings.xml +++ b/packages/SettingsLib/res/values-pt-rBR/strings.xml @@ -28,7 +28,10 @@ "Falha de conexão Wi-Fi" "Problema de autenticação" "Fora do alcance" - "Nenhum acesso à Internet detectado. O dispositivo não conectará automaticamente." + + + + "Salvas por %1$s" "Conectado via assistente de Wi‑Fi" "Conectado via %1$s" diff --git a/packages/SettingsLib/res/values-pt-rPT/strings.xml b/packages/SettingsLib/res/values-pt-rPT/strings.xml index c297de5d0121..c48ccbad5e97 100644 --- a/packages/SettingsLib/res/values-pt-rPT/strings.xml +++ b/packages/SettingsLib/res/values-pt-rPT/strings.xml @@ -28,7 +28,10 @@ "Falha de ligação Wi-Fi" "Problema de autenticação" "Fora do alcance" - "Nenhum acesso à Internet detetado; não será efetuada uma nova ligação automaticamente." + + + + "Guardada por %1$s" "Ligado através do Assistente de Wi‑Fi" "Ligado através de %1$s" diff --git a/packages/SettingsLib/res/values-pt/strings.xml b/packages/SettingsLib/res/values-pt/strings.xml index fc2222542324..27332f909155 100644 --- a/packages/SettingsLib/res/values-pt/strings.xml +++ b/packages/SettingsLib/res/values-pt/strings.xml @@ -28,7 +28,10 @@ "Falha de conexão Wi-Fi" "Problema de autenticação" "Fora do alcance" - "Nenhum acesso à Internet detectado. O dispositivo não conectará automaticamente." + + + + "Salvas por %1$s" "Conectado via assistente de Wi‑Fi" "Conectado via %1$s" diff --git a/packages/SettingsLib/res/values-ro/strings.xml b/packages/SettingsLib/res/values-ro/strings.xml index 70912f9eb9d7..8458557dfa00 100644 --- a/packages/SettingsLib/res/values-ro/strings.xml +++ b/packages/SettingsLib/res/values-ro/strings.xml @@ -28,7 +28,10 @@ "Eroare de conexiune Wi-Fi" "Problemă la autentificare" "În afara ariei de acoperire" - "Nu s-a detectat acces la internet, nu se va efectua reconectarea automată." + + + + "Salvată de %1$s" "Conexiune realizată printr-un asistent Wi-Fi" "Conectată prin %1$s" diff --git a/packages/SettingsLib/res/values-ru/strings.xml b/packages/SettingsLib/res/values-ru/strings.xml index 4af530dd83bb..a89c5536de3c 100644 --- a/packages/SettingsLib/res/values-ru/strings.xml +++ b/packages/SettingsLib/res/values-ru/strings.xml @@ -28,7 +28,10 @@ "Ошибка подключения Wi-Fi" "Ошибка аутентификации" "Недоступна" - "Подключение к Интернету отсутствует и не будет восстановлено автоматически." + + + + "Кто сохранил: %1$s" "Установлено подключение через Ассистента Wi-Fi" "Подключено к %1$s" diff --git a/packages/SettingsLib/res/values-si-rLK/strings.xml b/packages/SettingsLib/res/values-si-rLK/strings.xml index d9fed962bac6..c8a0bad22bc1 100644 --- a/packages/SettingsLib/res/values-si-rLK/strings.xml +++ b/packages/SettingsLib/res/values-si-rLK/strings.xml @@ -28,7 +28,10 @@ "WiFi සම්බන්ධතාව අසාර්ථකයි" "සත්‍යාපනයේ ගැටලුවකි" "පරාසයේ නැත" - "අන්තර්ජාල ප්‍රවේශය අනාවරණය වුයේ නැත, ස්වයංක්‍රිය නැවත සම්බන්ධ වීම වූ නැත" + + + + "%1$s විසින් සුරකින ලදී" "Wi‑Fi සහායක හරහා සම්බන්ධ කරන ලදි" "%1$s හරහා සම්බන්ධ විය" diff --git a/packages/SettingsLib/res/values-sk/strings.xml b/packages/SettingsLib/res/values-sk/strings.xml index 951d9fb995cf..958bae645f51 100644 --- a/packages/SettingsLib/res/values-sk/strings.xml +++ b/packages/SettingsLib/res/values-sk/strings.xml @@ -28,7 +28,10 @@ "Zlyhanie pripojenia Wi-Fi" "Problém s overením totožnosti" "Mimo dosah" - "Nenašiel sa žiadny prístup k internetu, preto nedôjde k automatickému opätovnému pripojeniu" + + + + "Uložil(a) %1$s" "Pripojené pomocou Asistenta Wi-Fi" "Pripojené prostredníctvom %1$s" @@ -173,8 +176,8 @@ "Zvýšiť úroveň denníkov Wi-Fi, zobrazovať podľa SSID RSSI pri výbere siete Wi-Fi" "Keď túto možnosť zapnete, Wi-Fi bude agresívnejšie odovzdávať dát. pripoj. na mob. sieť vtedy, keď bude slabý signál Wi-Fi" "Povoliť alebo zakázať funkciu Wifi Roam Scans na základe objemu prenosu údajov v rozhraní" - "Veľkosti vyrovnávacej pamäte denníka" - "Veľkosť na vyrovnávaciu pamäť nástroja denníkov" + "Vyrovnávacia pamäť nástroja denníkov" + "Veľkosť vyrovnávacej pamäte nástroja denníkov" "Vymazať trvalé úložisko zapisovača do denníka?" "Keď prestaneme monitorovať pomocou trvalého zapisovača do denníka, musíme vymazať jeho dáta, ktoré sa nachádzajú vo vašom zariadení." "Natrvalo ukladať dáta zapisovača do denníka na zariadení" @@ -186,8 +189,8 @@ "Kontrola atribútov zobrazenia" "Vždy ponechávať mobilné dáta aktívne, dokonca aj pri aktívnej sieti Wi‑Fi (na rýchle prepínanie sietí)" "Povoliť ladenie cez USB?" - "Ladenie prostredníctvom USB je určené iba na účely vývoja. Použite ho na kopírovanie dát medzi počítačom a zariadením, inštaláciu aplikácií do zariadenia bez upozornenia a čítanie údajov denníka." - "Chcete odvolať prístup k ladeniu cez USB zo všetkých počítačov, ktoré ste predtým autorizovali?" + "Ladenie cez USB je určené iba na účely vývoja. Možno ho použiť na kopírovanie dát medzi počítačom a zariadením, inštaláciu aplikácií do zariadenia bez upozornenia a čítanie dát denníka." + "Chcete všetkým v minulosti autorizovaným počítačom odvolať prístup k ladeniu cez USB?" "Povoliť nastavenia pre vývojárov?" "Tieto nastavenia sú určené len pre vývojárov. Môžu spôsobiť poruchu alebo nesprávne fungovanie zariadenia a nainštalovaných aplikácií." "Overovať aplikácie z USB" diff --git a/packages/SettingsLib/res/values-sl/strings.xml b/packages/SettingsLib/res/values-sl/strings.xml index 2428076f637c..d4ad8022e34c 100644 --- a/packages/SettingsLib/res/values-sl/strings.xml +++ b/packages/SettingsLib/res/values-sl/strings.xml @@ -28,7 +28,10 @@ "Povezava prek Wi-Fi-ja ni uspela" "Težava s preverjanjem pristnosti" "Ni v obsegu" - "Ni zaznanega dostopa do interneta; samodejna vnovična vzpostavitev povezave se ne bo izvedla." + + + + "Shranil(-a): %1$s" "Povezava vzpostavljena prek pomočnika za Wi-Fi" "Vzpostavljena povezava prek: %1$s" diff --git a/packages/SettingsLib/res/values-sq-rAL/strings.xml b/packages/SettingsLib/res/values-sq-rAL/strings.xml index 1645f10732fa..ba5d2833c71f 100644 --- a/packages/SettingsLib/res/values-sq-rAL/strings.xml +++ b/packages/SettingsLib/res/values-sq-rAL/strings.xml @@ -28,7 +28,10 @@ "Dështim i lidhjes WiFi" "Problem me vërtetimin" "Nuk është brenda rrezes" - "Nuk u diktua qasje në internet. Lidhja nuk do të realizohet automatikisht." + + + + "E ruajtur nga %1$s" "I lidhur nëpërmjet ndihmësit të Wi‑Fi" "E lidhur përmes %1$s" diff --git a/packages/SettingsLib/res/values-sr/strings.xml b/packages/SettingsLib/res/values-sr/strings.xml index 04dfb24c0c54..b04a4c2a1e53 100644 --- a/packages/SettingsLib/res/values-sr/strings.xml +++ b/packages/SettingsLib/res/values-sr/strings.xml @@ -28,7 +28,10 @@ "Wi-Fi веза је отказала" "Проблем са потврдом аутентичности" "Није у опсегу" - "Приступ интернету није откривен, аутоматско повезивање није могуће." + + + + "Сачувао/ла је %1$s" "Повезано преко Wi‑Fi помоћника" "Веза је успостављена преко приступне тачке %1$s" diff --git a/packages/SettingsLib/res/values-sv/strings.xml b/packages/SettingsLib/res/values-sv/strings.xml index 4b42db50a999..7562ee08606a 100644 --- a/packages/SettingsLib/res/values-sv/strings.xml +++ b/packages/SettingsLib/res/values-sv/strings.xml @@ -28,7 +28,10 @@ "Wi-Fi-anslutningsfel" "Autentiseringsproblem" "Utom räckhåll" - "Ingen internetåtkomst hittades. Det går inte att återansluta automatiskt." + + + + "Sparades av %1$s" "Ansluten via Wi-Fi-assistent" "Anslutet via %1$s" diff --git a/packages/SettingsLib/res/values-sw/strings.xml b/packages/SettingsLib/res/values-sw/strings.xml index f70a1fa557db..9e64b9169a27 100644 --- a/packages/SettingsLib/res/values-sw/strings.xml +++ b/packages/SettingsLib/res/values-sw/strings.xml @@ -28,7 +28,10 @@ "Haikuweza Kuunganisha kwenye WiFi" "Tatizo la uthibitishaji" "Haiko karibu" - "Hakuna Ufikiaji kwa Intaneti Uliogunduliwa, haitaweza kuunganisha kiotomatiki." + + + + "Ilihifadhiwa na %1$s" "Imeunganishwa kupitia Kisaidizi cha Wi-Fi" "Imeunganishwa kupitia %1$s" diff --git a/packages/SettingsLib/res/values-ta-rIN/strings.xml b/packages/SettingsLib/res/values-ta-rIN/strings.xml index 5f6b1215226b..b9ff6bc9f2dc 100644 --- a/packages/SettingsLib/res/values-ta-rIN/strings.xml +++ b/packages/SettingsLib/res/values-ta-rIN/strings.xml @@ -28,7 +28,10 @@ "வைஃபை இணைப்பில் தோல்வி" "அங்கீகரிப்புச் சிக்கல்" "தொடர்பு எல்லையில் இல்லை" - "இணைய அணுகல் இல்லை, மீண்டும் தானாக இணையாது." + + + + "%1$s சேமித்தது" "வைஃபை அசிஸ்டண்ட் மூலம் இணைக்கப்பட்டது" "%1$s வழியாக இணைக்கப்பட்டது" diff --git a/packages/SettingsLib/res/values-te-rIN/strings.xml b/packages/SettingsLib/res/values-te-rIN/strings.xml index ff8b8550cda7..08bcbdaef593 100644 --- a/packages/SettingsLib/res/values-te-rIN/strings.xml +++ b/packages/SettingsLib/res/values-te-rIN/strings.xml @@ -28,7 +28,10 @@ "WiFi కనెక్షన్ వైఫల్యం" "ప్రామాణీకరణ సమస్య" "పరిధిలో లేదు" - "ఇంటర్నెట్ ప్రాప్యత కనుగొనబడలేదు, స్వయంచాలకంగా మళ్లీ కనెక్ట్ చేయబడదు." + + + + "%1$s ద్వారా సేవ్ చేయబడింది" "Wi‑Fi సహాయకం ద్వారా కనెక్ట్ చేయబడింది" "%1$s ద్వారా కనెక్ట్ చేయబడింది" diff --git a/packages/SettingsLib/res/values-th/strings.xml b/packages/SettingsLib/res/values-th/strings.xml index 4d0a2e4ead46..bd9d8d52f40f 100644 --- a/packages/SettingsLib/res/values-th/strings.xml +++ b/packages/SettingsLib/res/values-th/strings.xml @@ -28,7 +28,10 @@ "การเชื่อมต่อ Wi-Fi ล้มเหลว" "ปัญหาในการตรวจสอบสิทธิ์" "ไม่อยู่ในพื้นที่ให้บริการ" - "ไม่พบการเข้าถึงอินเทอร์เน็ต ระบบจะไม่เชื่อมต่อใหม่โดยอัตโนมัติ" + + + + "บันทึกโดย %1$s แล้ว" "เชื่อมต่อผ่านตัวช่วย Wi-Fi อยู่" "เชื่อมต่อผ่าน %1$s แล้ว" diff --git a/packages/SettingsLib/res/values-tl/strings.xml b/packages/SettingsLib/res/values-tl/strings.xml index 95897a325136..9c952f594abc 100644 --- a/packages/SettingsLib/res/values-tl/strings.xml +++ b/packages/SettingsLib/res/values-tl/strings.xml @@ -28,7 +28,10 @@ "Pagkabigo ng Koneksyon sa WiFi" "Problema sa pagpapatotoo" "Wala sa sakop" - "Walang Natukoy na Access sa Internet, hindi awtomatikong muling kumonekta." + + + + "Na-save ni %1$s" "Nakakonekta sa pamamagitan ng Wi‑Fi assistant" "Nakakonekta sa pamamagitan ng %1$s" @@ -146,7 +149,7 @@ "Hindi available ang mga setting ng VPN para sa user na ito" "Hindi available ang mga setting ng pagte-theter para sa user na ito" "Hindi available ang mga setting ng Access Point Name para sa user na ito" - "Pagde-debug ng USB" + "Pag-debug ng USB" "Debug mode kapag nakakonekta ang USB" "Bawiin ang mga pahintulot sa pag-debug ng USB" "Shortcut ng ulat sa bug" @@ -186,8 +189,8 @@ "I-enable ang pagsisiyasat sa attribute na view" "Palaging panatilihing aktibo ang mobile data, kahit na aktibo ang Wi‑Fi (para sa mabilis na paglipat ng network)." "Payagan ang pag-debug ng USB?" - "Ang pag-debug ng USB ay nilalayon para sa mga layuning pagpapabuti lamang. Gamitin ito upang kumopya ng data sa pagitan ng iyong computer at iyong device, mag-install ng apps sa iyong device nang walang notification, at magbasa ng data ng log." - "Bawiin ang access sa pagde-debug ng USB mula sa lahat ng computer na dati mong pinahintulutan?" + "Ang pag-debug ng USB ay para lang sa mga layuning pag-develop. Gamitin ito upang kumopya ng data sa pagitan ng iyong computer at iyong device, mag-install ng mga app sa iyong device nang walang notification, at magbasa ng data ng log." + "Bawiin ang access sa pag-debug ng USB mula sa lahat ng computer na dati mong pinahintulutan?" "Payagan ang mga setting ng pag-develop?" "Nilalayon ang mga setting na ito para sa paggamit sa pag-develop lamang. Maaaring magsanhi ang mga ito ng pagkasira o hindi paggana nang maayos ng iyong device at mga application na nandito." "I-verify ang mga app sa USB" diff --git a/packages/SettingsLib/res/values-tr/strings.xml b/packages/SettingsLib/res/values-tr/strings.xml index 3c5b46d46bbe..889b6317d7e8 100644 --- a/packages/SettingsLib/res/values-tr/strings.xml +++ b/packages/SettingsLib/res/values-tr/strings.xml @@ -28,7 +28,10 @@ "Kablosuz Bağlantı Hatası" "Kimlik doğrulama sorunu" "Kapsama alanı dışında" - "İnternet Erişimi algılanmadı, otomatik olarak tekrar bağlanmayacak." + + + + "%1$s tarafından kaydedildi" "Kablosuz bağlantı yardımcısıyla bağlandı" "%1$s üzerinden bağlı" diff --git a/packages/SettingsLib/res/values-uk/strings.xml b/packages/SettingsLib/res/values-uk/strings.xml index ef30a69a3eb4..cdf725f17465 100644 --- a/packages/SettingsLib/res/values-uk/strings.xml +++ b/packages/SettingsLib/res/values-uk/strings.xml @@ -28,7 +28,10 @@ "Помилка з’єднання Wi-Fi" "Проблема з автентифікацією" "Не в діапазоні" - "Немає доступу до Інтернету. Спроба під’єднання не здійснюватиметься автоматично." + + + + "Збережено додатком %1$s" "Під’єднано через Диспетчер Wi-Fi-з’єднання" "Під’єднано через %1$s" diff --git a/packages/SettingsLib/res/values-ur-rPK/strings.xml b/packages/SettingsLib/res/values-ur-rPK/strings.xml index 57b0b63e37e9..c5aaaab7a9a5 100644 --- a/packages/SettingsLib/res/values-ur-rPK/strings.xml +++ b/packages/SettingsLib/res/values-ur-rPK/strings.xml @@ -28,7 +28,10 @@ "‏WiFi کنکشن کی ناکامی" "توثیق کا مسئلہ" "رینج میں نہیں ہے" - "انٹرنیٹ تک کسی رسائی کا پتہ نہیں چلا، خود بخود دوبارہ منسلک نہیں ہوگا۔" + + + + "%1$s کی جانب سے محفوظ کردہ" "‏Wi‑Fi اسسٹنٹ کے ذریعے منسلک ہے" "‏منسلک بذریعہ ‎%1$s" diff --git a/packages/SettingsLib/res/values-uz-rUZ/strings.xml b/packages/SettingsLib/res/values-uz-rUZ/strings.xml index b4e05052ce16..e2c58a414509 100644 --- a/packages/SettingsLib/res/values-uz-rUZ/strings.xml +++ b/packages/SettingsLib/res/values-uz-rUZ/strings.xml @@ -28,7 +28,10 @@ "Wi-Fi ulanishini o‘rnatib bo‘lmadi" "Tasdiqdan o‘tishda muammo" "Aloqada emas" - "Internetga ulanish aniqlanmadi, avtomatik ravishda qayta ulana olmaydi." + + + + "%1$s tomonidan saqlangan" "Wi‑Fi yordamchisi orqali ulangan" "%1$s orqali ulangan" diff --git a/packages/SettingsLib/res/values-vi/strings.xml b/packages/SettingsLib/res/values-vi/strings.xml index 494cb7cfd23c..fa4174b37046 100644 --- a/packages/SettingsLib/res/values-vi/strings.xml +++ b/packages/SettingsLib/res/values-vi/strings.xml @@ -28,7 +28,10 @@ "Lỗi kết nối WiFi" "Sự cố xác thực" "Ngoài vùng phủ sóng" - "Không phát hiện thấy truy cập Internet nào, mạng sẽ không được tự động kết nối lại." + + + + "Được lưu bởi %1$s" "Được kết nối qua trình hỗ trợ Wi‑Fi" "Được kết nối qua %1$s" diff --git a/packages/SettingsLib/res/values-zh-rCN/strings.xml b/packages/SettingsLib/res/values-zh-rCN/strings.xml index 1c58a1145c08..63199e8f84c3 100644 --- a/packages/SettingsLib/res/values-zh-rCN/strings.xml +++ b/packages/SettingsLib/res/values-zh-rCN/strings.xml @@ -28,7 +28,10 @@ "WLAN 连接失败" "身份验证出现问题" "不在范围内" - "未检测到任何互联网连接,因此不会自动重新连接。" + + + + "已通过%1$s保存" "已连接(通过 WLAN 助手)" "已通过%1$s连接" @@ -186,7 +189,7 @@ "启用视图属性检查功能" "始终开启移动数据网络,即使 WLAN 网络已开启(便于快速切换网络)。" "是否允许USB调试?" - "USB调试仅适用于开发工作。该功能可用于在您的计算机和设备之间复制数据、在您的设备上安装应用而不发送通知以及读取日志数据。" + "USB 调试仅用于开发目的。该功能可用于在您的计算机和设备之间复制数据、在您的设备上安装应用(事先不发通知)以及读取日志数据。" "是否针对您之前授权的所有计算机撤消USB调试的访问权限?" "允许开发设置?" "这些设置仅适用于开发工作。一旦启用,会导致您的设备以及设备上的应用崩溃或出现异常。" diff --git a/packages/SettingsLib/res/values-zh-rHK/strings.xml b/packages/SettingsLib/res/values-zh-rHK/strings.xml index 45918f0a5583..edbffc19503b 100644 --- a/packages/SettingsLib/res/values-zh-rHK/strings.xml +++ b/packages/SettingsLib/res/values-zh-rHK/strings.xml @@ -28,7 +28,10 @@ "WiFi 連線失敗" "驗證問題" "超出可用範圍" - "未能偵測到互聯網連線,因此不會自動重新連線。" + + + + "%1$s 的儲存" "已透過 Wi-Fi 小幫手連線" "已透過 %1$s 連線" diff --git a/packages/SettingsLib/res/values-zh-rTW/strings.xml b/packages/SettingsLib/res/values-zh-rTW/strings.xml index b2e0d12bf98d..b1c5f0632a66 100644 --- a/packages/SettingsLib/res/values-zh-rTW/strings.xml +++ b/packages/SettingsLib/res/values-zh-rTW/strings.xml @@ -28,7 +28,10 @@ "WiFi 連線失敗" "驗證問題" "不在有效範圍內" - "未偵測到可用的網際網路連線,系統無法為您自動重新連線。" + + + + "由%1$s儲存" "已透過 Wi‑Fi 小幫手連線" "已透過 %1$s 連線" diff --git a/packages/SettingsLib/res/values-zu/strings.xml b/packages/SettingsLib/res/values-zu/strings.xml index d1379086c302..e4f0d59bfc15 100644 --- a/packages/SettingsLib/res/values-zu/strings.xml +++ b/packages/SettingsLib/res/values-zu/strings.xml @@ -28,7 +28,10 @@ "Ukwehlulekla koxhumo le-WiFi" "Inkinga yokufakazela ubuqiniso" "Ayikho ebubanzini" - "Ukufinyeela okungekhona kwe-inthanethi kutholakele, ngeke kuxhumeke ngokuzenzakalelayo." + + + + "Kulondolozwe ngu-%1$s" "Ixhunywe ngomsizi we-Wi-FI" "Kuxhumeke nge-%1$s" -- GitLab From 01569c41e7e5f3c3d1c045d13bad2bca1974d6e6 Mon Sep 17 00:00:00 2001 From: "smain@google.com" Date: Mon, 26 Sep 2016 10:23:13 -0700 Subject: [PATCH 543/809] switch utm_medium to utm_source fix a couple hashes update the test recorder URL from TAC to DAC Change-Id: Ia57823559e3629320e9562a585972ccb148fe07e --- docs/html/_redirects.yaml | 72 +++++++++++++++++++-------------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/docs/html/_redirects.yaml b/docs/html/_redirects.yaml index d2abe2174c42..0f117ae57d2d 100644 --- a/docs/html/_redirects.yaml +++ b/docs/html/_redirects.yaml @@ -1164,81 +1164,81 @@ redirects: # Android Studio help button redirects - from: /r/studio-ui/vector-asset-studio.html - to: /studio/write/vector-asset-studio.html?utm_medium=android-studio + to: /studio/write/vector-asset-studio.html?utm_source=android-studio - from: /r/studio-ui/image-asset-studio.html - to: /studio/write/image-asset-studio.html?utm_medium=android-studio + to: /studio/write/image-asset-studio.html?utm_source=android-studio - from: /r/studio-ui/project-structure.html - to: /studio/projects/index.html?utm_medium=android-studio + to: /studio/projects/index.html?utm_source=android-studio - from: /r/studio-ui/android-monitor.html - to: /studio/profile/android-monitor.html?utm_medium=android-studio + to: /studio/profile/android-monitor.html?utm_source=android-studio - from: /r/studio-ui/am-logcat.html - to: /studio/debug/am-logcat.html?utm_medium=android-studio + to: /studio/debug/am-logcat.html?utm_source=android-studio - from: /r/studio-ui/am-memory.html - to: /studio/profile/am-memory.html?utm_medium=android-studio + to: /studio/profile/am-memory.html?utm_source=android-studio - from: /r/studio-ui/am-cpu.html - to: /studio/profile/am-cpu.html?utm_medium=android-studio + to: /studio/profile/am-cpu.html?utm_source=android-studio - from: /r/studio-ui/am-gpu.html - to: /studio/profile/am-gpu.html?utm_medium=android-studio + to: /studio/profile/am-gpu.html?utm_source=android-studio - from: /r/studio-ui/am-network.html - to: /studio/profile/am-network.html?utm_medium=android-studio + to: /studio/profile/am-network.html?utm_source=android-studio - from: /r/studio-ui/am-hprof.html - to: /studio/profile/am-hprof.html?utm_medium=android-studio + to: /studio/profile/am-hprof.html?utm_source=android-studio - from: /r/studio-ui/am-allocation.html - to: /studio/profile/am-allocation.html?utm_medium=android-studio + to: /studio/profile/am-allocation.html?utm_source=android-studio - from: /r/studio-ui/am-methodtrace.html - to: /studio/profile/am-methodtrace.html?utm_medium=android-studio + to: /studio/profile/am-methodtrace.html?utm_source=android-studio - from: /r/studio-ui/am-sysinfo.html - to: /studio/profile/am-sysinfo.html?utm_medium=android-studio + to: /studio/profile/am-sysinfo.html?utm_source=android-studio - from: /r/studio-ui/am-screenshot.html - to: /studio/debug/am-screenshot.html?utm_medium=android-studio + to: /studio/debug/am-screenshot.html?utm_source=android-studio - from: /r/studio-ui/am-video.html - to: /studio/debug/am-video.html?utm_medium=android-studio + to: /studio/debug/am-video.html?utm_source=android-studio - from: /r/studio-ui/avd-manager.html - to: /studio/run/managing-avds.html?utm_medium=android-studio + to: /studio/run/managing-avds.html?utm_source=android-studio - from: /r/studio-ui/rundebugconfig.html - to: /studio/run/rundebugconfig.html?utm_medium=android-studio + to: /studio/run/rundebugconfig.html?utm_source=android-studio - from: /r/studio-ui/devicechooser.html - to: /studio/run/emulator.html?utm_medium=android-studio + to: /studio/run/emulator.html?utm_source=android-studio - from: /r/studio-ui/virtualdeviceconfig.html - to: /studio/run/managing-avds.html?utm_medium=android-studio + to: /studio/run/managing-avds.html?utm_source=android-studio - from: /r/studio-ui/emulator.html - to: /studio/run/emulator.html?utm_medium=android-studio + to: /studio/run/emulator.html?utm_source=android-studio - from: /r/studio-ui/instant-run.html - to: /studio/run/index.html?utm_medium=android-studio#instant-run + to: /studio/run/index.html?utm_source=android-studio#instant-run - from: /r/studio-ui/test-recorder.html - to: http://tools.android.com/tech-docs/test-recorder + to: /studio/test/espresso-test-recorder.html?utm_source=android-studio - from: /r/studio-ui/export-licenses.html to: http://tools.android.com/tech-docs/new-build-system/license - from: /r/studio-ui/experimental-to-stable-gradle.html to: http://tools.android.com/tech-docs/new-build-system/gradle-experimental/experimental-to-stable-gradle - from: /r/studio-ui/sdk-manager.html - to: /studio/intro/update.html?utm_medium=android-studio#sdk-manager + to: /studio/intro/update.html?utm_source=android-studio#sdk-manager - from: /r/studio-ui/newjclass.html - to: /studio/write/create-java-class.html?utm_medium=android-studio + to: /studio/write/create-java-class.html?utm_source=android-studio - from: /r/studio-ui/menu-help.html - to: /studio/intro/index.html?utm_medium=android-studio + to: /studio/intro/index.html?utm_source=android-studio - from: /r/studio-ui/menu-start.html - to: /training/index.html?utm_medium=android-studio + to: /training/index.html?utm_source=android-studio - from: /r/studio-ui/run-with-work-profile.html - to: /studio/run/index.html#ir-work-profile?utm_medium=android-studio + to: /studio/run/index.html?utm_source=android-studio#ir-work-profile - from: /r/studio-ui/am-gpu-debugger.html - to: /studio/profile/am-gpu.html?utm_medium=android-studio + to: /studio/profile/am-gpu.html?utm_source=android-studio - from: /r/studio-ui/theme-editor.html - to: /studio/write/theme-editor.html?utm_medium=android-studio + to: /studio/write/theme-editor.html?utm_source=android-studio - from: /r/studio-ui/translations-editor.html - to: /studio/write/translations-editor.html?utm_medium=android-studio + to: /studio/write/translations-editor.html?utm_source=android-studio - from: /r/studio-ui/debug.html - to: /studio/debug/index.html?utm_medium=android-studio + to: /studio/debug/index.html?utm_source=android-studio - from: /r/studio-ui/run.html - to: /studio/run/index.html?utm_medium=android-studio + to: /studio/run/index.html?utm_source=android-studio - from: /r/studio-ui/layout-editor.html - to: /studio/write/layout-editor.html?utm_medium=android-studio + to: /studio/write/layout-editor.html?utm_source=android-studio - from: /r/studio-ui/project-window.html - to: /studio/projects/index.html?utm_medium=android-studio + to: /studio/projects/index.html?utm_source=android-studio - from: /r/studio-ui/lint-inspection-results.html - to: /studio/write/lint.html?utm_medium=android-studio + to: /studio/write/lint.html?utm_source=android-studio - from: /r/studio-ui/gradle-console.html - to: /studio/run/index.html#gradle-console?utm_medium=android-studio + to: /studio/run/index.html?utm_source=android-studio#gradle-console # Redirects from (removed) N Preview documentation - from: /preview/features/afw.html -- GitLab From 469e65e37f04fa3aa46e5116b6028cd7113308b3 Mon Sep 17 00:00:00 2001 From: Hidenari Koshimae Date: Fri, 5 Feb 2016 18:13:17 +0900 Subject: [PATCH 544/809] Increase priority for broadcast intent triggered by HW key Add the FLAG_RECEIVER_FOREGROUND flag to the broadcast intent triggered by hardware key. This prevents the framework from delaying the delivery of the intent to its recipients, and improves the response for hardware key event under heavy load on the system. Bug: 28735973 Change-Id: Ib7f219845be34794f4c7545927e53cc6c2b504a3 --- .../com/android/internal/policy/PhoneFallbackEventHandler.java | 1 + 1 file changed, 1 insertion(+) diff --git a/core/java/com/android/internal/policy/PhoneFallbackEventHandler.java b/core/java/com/android/internal/policy/PhoneFallbackEventHandler.java index 2cb9c250d2d1..fb0edea398ce 100644 --- a/core/java/com/android/internal/policy/PhoneFallbackEventHandler.java +++ b/core/java/com/android/internal/policy/PhoneFallbackEventHandler.java @@ -150,6 +150,7 @@ public class PhoneFallbackEventHandler implements FallbackEventHandler { sendCloseSystemWindows(); // Broadcast an intent that the Camera button was longpressed Intent intent = new Intent(Intent.ACTION_CAMERA_BUTTON, null); + intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND); intent.putExtra(Intent.EXTRA_KEY_EVENT, event); mContext.sendOrderedBroadcastAsUser(intent, UserHandle.CURRENT_OR_SELF, null, null, null, 0, null, null); -- GitLab From 0f146711b7b226af1ae03c020863c6f63c6641be Mon Sep 17 00:00:00 2001 From: Vadim Tryshev Date: Mon, 26 Sep 2016 10:50:06 -0700 Subject: [PATCH 545/809] Fixing drag/drop docs for DRAG_START. The docs mentioned that only X coordinate was reported for DRAG_START Bug: 31702571 Change-Id: Id80360fe5f494b86ea47d7592c46dc9c884df932 --- docs/html/guide/topics/ui/drag-drop.jd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/html/guide/topics/ui/drag-drop.jd b/docs/html/guide/topics/ui/drag-drop.jd index 092271b5caa9..4a87cd4938cb 100644 --- a/docs/html/guide/topics/ui/drag-drop.jd +++ b/docs/html/guide/topics/ui/drag-drop.jd @@ -400,7 +400,7 @@ DraggableDot.java in X X X -   + X     -- GitLab From 8ddfa9ccf6eb03c860cff31e73ccb4a6dba1020b Mon Sep 17 00:00:00 2001 From: "smain@google.com" Date: Thu, 22 Sep 2016 14:54:53 -0700 Subject: [PATCH 546/809] update landing page banner for studio 2.2 Change-Id: Ibd22a8ac7e7d716ee169a6c8ddc67bb8f54e9337 --- docs/html/develop/index.jd | 10 +++++----- docs/html/index.jd | 19 ++++++++++++------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/docs/html/develop/index.jd b/docs/html/develop/index.jd index b1d738832b3a..46eac7186ca9 100644 --- a/docs/html/develop/index.jd +++ b/docs/html/develop/index.jd @@ -23,12 +23,12 @@ excludeFromSuggestions=true Android Studio 2.2 is here!

    The latest version of Android Studio includes a -rewritten layout editor with the new constraint layout, -helping you build rich UI with less work.

    +rewritten layout editor with the new constraint layout, helping you build rich +UI with less work.

    - -

    With over 20 new features, Android Studio -2.2 helps you code faster and smarter.

    +

    +There are 20+ new features in Android Studio 2.2, helping you code faster +and smarter.

    diff --git a/docs/html/index.jd b/docs/html/index.jd index 39e3d73439ee..6dcce924d41a 100644 --- a/docs/html/index.jd +++ b/docs/html/index.jd @@ -74,13 +74,18 @@ nonavpage=true

    Android Studio 2.2!

    -

    The latest update is -packed with over 20 new features, like a rewritten layout editor with the -new constraint layout, support for Android 7.0 Nougat, Espresso test recording, -enhanced Jack compiler / Java 8 support, expanded C++ support with CMake and -NDK-Build, and much more!

    -

    Android Studio 2.2 -helps you code faster and smarter.

    + +

    Packed with 20+ new +features, Android Studio 2.2 focuses on speed, smarts, and Android platform +support.

    + +

    Develop faster with +features such as the new Layout Editor, and develop smarter with the new APK +analyzer, expanded code analysis and more.

    + +

    Plus, this update +includes support for all the latest developer features in Android 7.0 Nougat, +with an updated emulator to test them all out.

    -- GitLab From a3252f103d93d9c3a29365a144fa680f3c8ba297 Mon Sep 17 00:00:00 2001 From: "smain@google.com" Date: Mon, 26 Sep 2016 12:18:30 -0700 Subject: [PATCH 547/809] revise Develop landing page banner for Studio 2.2 Change-Id: I7eec3b72d09b87a56dfebd5391f9eac55dc26853 --- docs/html/develop/index.jd | 21 +++++++++++------- .../images/develop/hero-layout-editor.png | Bin 0 -> 22517 bytes .../images/develop/hero-layout-editor_2x.png | Bin 7018 -> 64702 bytes 3 files changed, 13 insertions(+), 8 deletions(-) create mode 100644 docs/html/images/develop/hero-layout-editor.png diff --git a/docs/html/develop/index.jd b/docs/html/develop/index.jd index 46eac7186ca9..c6fb319a5f60 100644 --- a/docs/html/develop/index.jd +++ b/docs/html/develop/index.jd @@ -15,20 +15,25 @@ excludeFromSuggestions=true

    + src="/images/develop/hero-layout-editor_2x.png" + srcset="/images/develop/hero-layout-editor_2x.png 2x, + /images/develop/hero-layout-editor.png 1x">

    - Android Studio 2.2 is here!

    + Android Studio 2.2! -

    The latest version of Android Studio includes a -rewritten layout editor with the new constraint layout, helping you build rich -UI with less work.

    +

    There are 20+ new features in this release +focused on helping you code faster and smarter. With Android Studio 2.2 you +can:

    -

    -There are 20+ new features in Android Studio 2.2, helping you code faster -and smarter.

    +
      +
    • Develop your app user interface faster with the new Layout Editor & + Constraint Layout
    • +
    • Develop smarter with the APK analyzer & expanded code analysis
    • +
    • Develop with the the latest Android 7.0 Nougat APIs & features
    • +

    diff --git a/docs/html/images/develop/hero-layout-editor.png b/docs/html/images/develop/hero-layout-editor.png new file mode 100644 index 0000000000000000000000000000000000000000..195150e77c191aad1a3de80c6f022f77b3929d64 GIT binary patch literal 22517 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 z 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 -- GitLab From 7e2657c30374dfc89993aa7cde8d96ae60a13d0a Mon Sep 17 00:00:00 2001 From: Salvador Martinez Date: Mon, 26 Sep 2016 12:49:31 -0700 Subject: [PATCH 548/809] Changed themes for core activities Many activities in core were using the material theme which would result in teal colors on all devices. These themes have all been changed to DeviceDefault so that the color will be more suited to whatever device the user has. Test: Manual Inspection Bug: 31623421 Change-Id: I6847023c4fb57a1c3384a1f8e483cd740229458f --- .../ChooseTypeAndAccountActivity.java | 2 +- core/res/AndroidManifest.xml | 22 +++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/core/java/android/accounts/ChooseTypeAndAccountActivity.java b/core/java/android/accounts/ChooseTypeAndAccountActivity.java index 133df2bfa16a..aed7a3693717 100644 --- a/core/java/android/accounts/ChooseTypeAndAccountActivity.java +++ b/core/java/android/accounts/ChooseTypeAndAccountActivity.java @@ -399,7 +399,7 @@ public class ChooseTypeAndAccountActivity extends Activity * useless. */ private void setNonLabelThemeAndCallSuperCreate(Bundle savedInstanceState) { - setTheme(R.style.Theme_Material_Light_Dialog_NoActionBar); + setTheme(R.style.Theme_DeviceDefault_Light_Dialog_NoActionBar); super.onCreate(savedInstanceState); } diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index 6c6fd9005083..a2759bacb2f8 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -3117,7 +3117,7 @@ android:killAfterRestore="false" android:icon="@drawable/ic_launcher_android" android:supportsRtl="true" - android:theme="@style/Theme.Material.Light.DarkActionBar" + android:theme="@style/Theme.DeviceDefault.Light.DarkActionBar" android:defaultToDeviceProtectedStorage="true" android:directBootAware="true"> @@ -3195,14 +3195,14 @@ @@ -3210,19 +3210,19 @@ @@ -3242,7 +3242,7 @@ @@ -3263,7 +3263,7 @@ + android:theme="@style/Theme.DeviceDefault.Light.Dialog.Alert"> @@ -3271,7 +3271,7 @@ -- GitLab From 65873fbaeea3328f9c0d974dbfc4c932e927ad48 Mon Sep 17 00:00:00 2001 From: "smain@google.com" Date: Mon, 26 Sep 2016 12:49:52 -0700 Subject: [PATCH 549/809] change the Studio banner link from release notes to features Change-Id: I40cd1a4256f143957703d92b8a524bf8444dc56a --- docs/html/develop/index.jd | 6 +++--- docs/html/index.jd | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/html/develop/index.jd b/docs/html/develop/index.jd index c6fb319a5f60..564dbf943e4a 100644 --- a/docs/html/develop/index.jd +++ b/docs/html/develop/index.jd @@ -22,7 +22,7 @@ excludeFromSuggestions=true

    - Android Studio 2.2!

    + Android Studio 2.2

    There are 20+ new features in this release focused on helping you code faster and smarter. With Android Studio 2.2 you @@ -41,9 +41,9 @@ can:

    Get Android Studio 2.2      - + - See the release notes + See more features

    diff --git a/docs/html/index.jd b/docs/html/index.jd index 6dcce924d41a..78fc84852f7c 100644 --- a/docs/html/index.jd +++ b/docs/html/index.jd @@ -73,7 +73,7 @@ nonavpage=true
    -

    Android Studio 2.2!

    +

    Android Studio 2.2

    Packed with 20+ new features, Android Studio 2.2 focuses on speed, smarts, and Android platform @@ -93,9 +93,9 @@ with an updated emulator to test them all out.

    Get Android Studio 2.2      - + - See the release notes + See more features

    -- GitLab From 4d04b1a446cb8c3dc5b42ddd58f82a6127521622 Mon Sep 17 00:00:00 2001 From: Doris Liu Date: Mon, 26 Sep 2016 15:12:46 -0700 Subject: [PATCH 550/809] Allow null target in ObjectAnimator if the target has never been set BUG: 31684571 Test: http://ag/1484115 Change-Id: I867fc3f93ddf70c58ae4387317ac875c5bafbebe --- core/java/android/animation/ObjectAnimator.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/core/java/android/animation/ObjectAnimator.java b/core/java/android/animation/ObjectAnimator.java index 9a2aa302a4ba..0c21c4ff55e7 100644 --- a/core/java/android/animation/ObjectAnimator.java +++ b/core/java/android/animation/ObjectAnimator.java @@ -977,8 +977,9 @@ public final class ObjectAnimator extends ValueAnimator { @Override void animateValue(float fraction) { final Object target = getTarget(); - if (target == null) { - // We lost the target reference, cancel and clean up. + if (mTarget != null && target == null) { + // We lost the target reference, cancel and clean up. Note: we allow null target if the + /// target has never been set. cancel(); return; } -- GitLab From 2dbf44ab766634ad9e4ddb4e077fda132a4fd140 Mon Sep 17 00:00:00 2001 From: Kevin Hufnagle Date: Mon, 19 Sep 2016 13:43:34 -0700 Subject: [PATCH 551/809] docs: Removed obsolete links to Android N Preview Reference. Bug: 31484654 Change-Id: I3607f8ef4ea84273b8762eb36e7bdf1f57fbc0e7 --- .../html/about/versions/nougat/android-7.0.jd | 68 ++++++++----------- 1 file changed, 30 insertions(+), 38 deletions(-) diff --git a/docs/html/about/versions/nougat/android-7.0.jd b/docs/html/about/versions/nougat/android-7.0.jd index 1ca540c9c389..8ef8bd68e0b3 100644 --- a/docs/html/about/versions/nougat/android-7.0.jd +++ b/docs/html/about/versions/nougat/android-7.0.jd @@ -44,7 +44,7 @@ page.image=images/cards/card-n-apis_2x.png
  • VR Support
  • Print Service Enhancements
  • Virtual Files
  • -
  • FrameMetricsListener API
  • +
  • Frame Metrics API
  • @@ -434,9 +434,8 @@ displayed — users can add or move tiles just by dragging and dropping them

    - For information about creating an app tile, see the documentation for - android.service.quicksettings.Tile in the downloadable API Reference. + For information about creating an app tile, see the reference documentation + for {@link android.service.quicksettings.Tile Tile}.

    @@ -465,9 +464,8 @@ for the user in order to stop unwanted calls and texts from reaching the user through any medium, such as a VOIP endpoint or forwarding phones.

    - For more information, see android.provider.BlockedNumberContract - in the downloadable API - Reference. + For more information, see the reference documentation for + {@link android.provider.BlockedNumberContract BlockedNumberContract}.

    Call Screening

    @@ -486,9 +484,8 @@ through any medium, such as a VOIP endpoint or forwarding phones.

    - For more information, see android.telecom.CallScreeningService - in the downloadable API - Reference. + For more information, see the reference documentation for + {@link android.telecom.CallScreeningService CallScreeningService}.

    @@ -780,8 +777,9 @@ impairments to touch the screen. The new API allows building services with features such as face-tracking, eye-tracking, point scanning, and so on, to meet the needs of those users.

    -

    For more information, see android.accessibilityservice.GestureDescription - in the downloadable API Reference.

    +

    For more information, see the reference documentation for +{@link android.accessibilityservice.GestureDescription GestureDescription}. +

    Direct Boot

    @@ -972,9 +970,8 @@ Directory Access developer documentation.

    from the system and from the app in focus. The system retrieves these shortcuts automatically from the app’s menu if the shortcuts exist. You can also provide your own fine-tuned shortcuts lists for the screen. You can do - this by overriding the new Activity.onProvideKeyboardShortcuts() - method, described in the downloadable API Reference. + this by overriding the {@link android.view.Window.Callback#onProvideKeyboardShortcuts + onProvideKeyboardShortcuts()} method.

    @@ -986,7 +983,8 @@ Directory Access developer documentation.

    To trigger Keyboard Shortcuts Helper from anywhere in your app, call - {@code Activity.requestKeyboardShortcutsHelper()} for the relevant activity. + {@link android.app.Activity#requestShowKeyboardShortcuts requestShowKeyboardShortcuts()} + from the relevant activity.

    @@ -1062,37 +1060,32 @@ see the Google VR SDK for An
    • You can set an icon from a resource ID by calling - PrinterInfo.Builder.setResourceIconId() + {@link android.print.PrinterInfo.Builder#setIconResourceId setIconResourceId()}.
    • You can show an icon from the network by calling - PrinterInfo.Builder.setHasCustomPrinterIcon(), and setting a - callback for when the icon is requested using - android.printservice.PrinterDiscoverySession.onRequestCustomPrinterIcon() + {@link android.print.PrinterInfo.Builder#setHasCustomPrinterIcon setHasCustomPrinterIcon()}, + and setting a callback for when the icon is requested using + {@link android.printservice.PrinterDiscoverySession#onRequestCustomPrinterIcon onRequestCustomPrinterIcon()}.

    In addition, you can provide a per-printer activity to display additional - information by calling PrinterInfo.Builder.setInfoIntent(). + information by calling {@link android.print.PrinterInfo.Builder#setInfoIntent setInfoIntent()}.

    You can indicate the progress and status of print jobs in the print job notification by calling - android.printservice.PrintJob.setProgress() and - android.printservice.PrintJob.setStatus(), respectively. -

    - -

    - For more information about these methods, see the downloadable API Reference. + {@link android.printservice.PrintJob#setProgress setProgress()} and + {@link android.printservice.PrintJob#setStatus setStatus()}, respectively.

    -

    FrameMetricsListener API

    +

    Frame Metrics API

    -The FrameMetricsListener API allows an app to monitor its UI rendering +The Frame Metrics API allows an app to monitor its UI rendering performance. The API provides this capability by exposing a streaming Pub/Sub API to transfer frame timing info for the app's current window. The data returned is equivalent to that which adb shell @@ -1100,7 +1093,7 @@ dumpsys gfxinfo framestats displays, but is not limited to the past 120 f

    -You can use FrameMetricsListener to measure interaction-level UI +You can use the Frame Metrics API to measure interaction-level UI performance in production, without a USB connection. This API allows collection of data at a much higher granularity than does {@code adb shell dumpsys gfxinfo}. This higher granularity is possible because @@ -1112,16 +1105,15 @@ for real use cases within an app.

    -To monitor a window, implement the FrameMetricsListener.onMetricsAvailable() -callback method and register it on that window. For more information, refer to -the {@code FrameMetricsListener} class documentation in -the downloadable API Reference. +To monitor a window, implement the +{@link android.view.Window.OnFrameMetricsAvailableListener#onFrameMetricsAvailable OnFrameMetricsAvailableListener.onFrameMetricsAvailable()} +callback method and register it on that window.

    -The API provides a {@code FrameMetrics} object, which contains timing data that -the rendering subsystem reports for various milestones in a frame lifecycle. -The supported metrics are: {@code UNKNOWN_DELAY_DURATION}, +The API provides a {@link android.view.FrameMetrics FrameMetrics} object, which +contains timing data that the rendering subsystem reports for various milestones +in a frame lifecycle. The supported metrics are: {@code UNKNOWN_DELAY_DURATION}, {@code INPUT_HANDLING_DURATION}, {@code ANIMATION_DURATION}, {@code LAYOUT_MEASURE_DURATION}, {@code DRAW_DURATION}, {@code SYNC_DURATION}, {@code COMMAND_ISSUE_DURATION}, {@code SWAP_BUFFERS_DURATION}, -- GitLab From b960272cc43e3c9c35e93ea7300799ac32b29099 Mon Sep 17 00:00:00 2001 From: Kevin Hufnagle Date: Mon, 26 Sep 2016 16:50:35 -0700 Subject: [PATCH 552/809] docs: Fixed broken link to "Picture-in-Picture" training guide within "Multi-Window Support" page. Bug: 31750518 Change-Id: Ib23093a88a7c5df13cce04e6b2ea55f2d8547910 --- docs/html/guide/topics/ui/multi-window.jd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/html/guide/topics/ui/multi-window.jd b/docs/html/guide/topics/ui/multi-window.jd index dede557ecc9a..bab582dd0b8c 100644 --- a/docs/html/guide/topics/ui/multi-window.jd +++ b/docs/html/guide/topics/ui/multi-window.jd @@ -215,7 +215,7 @@ android:resizeableActivity=["true" | "false"] Set this attribute in your manifest's <activity> node to indicate whether the activity supports Picture-in-Picture + "{@docRoot}training/tv/playback/picture-in-picture.html">Picture-in-Picture display. This attribute is ignored if android:resizeableActivity is false.

    -- GitLab From 1ca93650e9303cb9aeb51307356d088730596456 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Mon, 26 Sep 2016 18:07:15 -0700 Subject: [PATCH 553/809] Import translations. DO NOT MERGE Change-Id: I3f602d071e22761d6da37a7ffc41a0d6bd5e6537 Auto-generated-cl: translation import --- core/res/res/values-af/strings.xml | 2 ++ core/res/res/values-am/strings.xml | 2 ++ core/res/res/values-ar/strings.xml | 2 ++ core/res/res/values-az-rAZ/strings.xml | 2 ++ core/res/res/values-b+sr+Latn/strings.xml | 6 ++++-- core/res/res/values-be-rBY/strings.xml | 2 ++ core/res/res/values-bg/strings.xml | 2 ++ core/res/res/values-bn-rBD/strings.xml | 2 ++ core/res/res/values-bs-rBA/strings.xml | 2 ++ core/res/res/values-ca/strings.xml | 2 ++ core/res/res/values-cs/strings.xml | 2 ++ core/res/res/values-da/strings.xml | 2 ++ core/res/res/values-de/strings.xml | 2 ++ core/res/res/values-el/strings.xml | 2 ++ core/res/res/values-en-rAU/strings.xml | 2 ++ core/res/res/values-en-rGB/strings.xml | 2 ++ core/res/res/values-en-rIN/strings.xml | 2 ++ core/res/res/values-es-rUS/strings.xml | 2 ++ core/res/res/values-es/strings.xml | 2 ++ core/res/res/values-et-rEE/strings.xml | 2 ++ core/res/res/values-eu-rES/strings.xml | 2 ++ core/res/res/values-fa/strings.xml | 2 ++ core/res/res/values-fi/strings.xml | 2 ++ core/res/res/values-fr-rCA/strings.xml | 2 ++ core/res/res/values-fr/strings.xml | 2 ++ core/res/res/values-gl-rES/strings.xml | 2 ++ core/res/res/values-gu-rIN/strings.xml | 2 ++ core/res/res/values-hi/strings.xml | 2 ++ core/res/res/values-hr/strings.xml | 2 ++ core/res/res/values-hu/strings.xml | 2 ++ core/res/res/values-hy-rAM/strings.xml | 2 ++ core/res/res/values-in/strings.xml | 2 ++ core/res/res/values-is-rIS/strings.xml | 2 ++ core/res/res/values-it/strings.xml | 2 ++ core/res/res/values-iw/strings.xml | 2 ++ core/res/res/values-ja/strings.xml | 2 ++ core/res/res/values-ka-rGE/strings.xml | 2 ++ core/res/res/values-kk-rKZ/strings.xml | 2 ++ core/res/res/values-km-rKH/strings.xml | 2 ++ core/res/res/values-kn-rIN/strings.xml | 6 ++++-- core/res/res/values-ko/strings.xml | 2 ++ core/res/res/values-ky-rKG/strings.xml | 2 ++ core/res/res/values-lo-rLA/strings.xml | 2 ++ core/res/res/values-lt/strings.xml | 2 ++ core/res/res/values-lv/strings.xml | 2 ++ core/res/res/values-mk-rMK/strings.xml | 2 ++ core/res/res/values-ml-rIN/strings.xml | 2 ++ core/res/res/values-mn-rMN/strings.xml | 2 ++ core/res/res/values-mr-rIN/strings.xml | 2 ++ core/res/res/values-ms-rMY/strings.xml | 2 ++ core/res/res/values-my-rMM/strings.xml | 2 ++ core/res/res/values-nb/strings.xml | 2 ++ core/res/res/values-ne-rNP/strings.xml | 2 ++ core/res/res/values-nl/strings.xml | 2 ++ core/res/res/values-pa-rIN/strings.xml | 2 ++ core/res/res/values-pl/strings.xml | 2 ++ core/res/res/values-pt-rBR/strings.xml | 2 ++ core/res/res/values-pt-rPT/strings.xml | 2 ++ core/res/res/values-pt/strings.xml | 2 ++ core/res/res/values-ro/strings.xml | 2 ++ core/res/res/values-ru/strings.xml | 2 ++ core/res/res/values-si-rLK/strings.xml | 2 ++ core/res/res/values-sk/strings.xml | 4 +++- core/res/res/values-sl/strings.xml | 2 ++ core/res/res/values-sq-rAL/strings.xml | 2 ++ core/res/res/values-sr/strings.xml | 6 ++++-- core/res/res/values-sv/strings.xml | 6 ++++-- core/res/res/values-sw/strings.xml | 2 ++ core/res/res/values-ta-rIN/strings.xml | 2 ++ core/res/res/values-te-rIN/strings.xml | 2 ++ core/res/res/values-th/strings.xml | 2 ++ core/res/res/values-tl/strings.xml | 4 +++- core/res/res/values-tr/strings.xml | 2 ++ core/res/res/values-uk/strings.xml | 2 ++ core/res/res/values-ur-rPK/strings.xml | 2 ++ core/res/res/values-uz-rUZ/strings.xml | 2 ++ core/res/res/values-vi/strings.xml | 2 ++ core/res/res/values-zh-rCN/strings.xml | 2 ++ core/res/res/values-zh-rHK/strings.xml | 2 ++ core/res/res/values-zh-rTW/strings.xml | 2 ++ core/res/res/values-zu/strings.xml | 2 ++ 81 files changed, 172 insertions(+), 10 deletions(-) diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml index 866230afcfd7..b04de2319fec 100644 --- a/core/res/res/values-af/strings.xml +++ b/core/res/res/values-af/strings.xml @@ -214,6 +214,8 @@ "Foonopsies" "Skermslot" "Sit af" + + "Foutverslag" "Neem foutverslag" "Dit sal inligting oor die huidige toestand van jou toestel insamel om as \'n e-posboodskap te stuur. Dit sal \'n tydjie neem vandat die foutverslag begin is totdat dit reg is om gestuur te word; wees asseblief geduldig." diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml index 76beebefae19..9ae303908c5d 100644 --- a/core/res/res/values-am/strings.xml +++ b/core/res/res/values-am/strings.xml @@ -214,6 +214,8 @@ "የስልክ አማራጮች" "ማያ ቆልፍ" "ኃይል አጥፋ" + + "የሳንካ ሪፖርት" "የሳንካ ሪፖርት ውሰድ" "ይሄ እንደ የኢሜይል መልዕክት አድርጎ የሚልከውን ስለመሣሪያዎ የአሁኑ ሁኔታ መረጃ ይሰበስባል። የሳንካ ሪፖርቱን ከመጀመር ጀምሮ እስኪላክ ድረስ ትንሽ ጊዜ ይወስዳል፤ እባክዎ ይታገሱ።" diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml index c7cb09525891..43731b5f0788 100644 --- a/core/res/res/values-ar/strings.xml +++ b/core/res/res/values-ar/strings.xml @@ -222,6 +222,8 @@ "خيارات الهاتف" "تأمين الشاشة" "إيقاف التشغيل" + + "تقرير الأخطاء" "إعداد تقرير بالأخطاء" "سيجمع هذا معلومات حول حالة جهازك الحالي لإرسالها كرسالة إلكترونية، ولكنه سيستغرق وقتًا قليلاً من بدء عرض تقرير بالأخطاء. وحتى يكون جاهزًا للإرسال، الرجاء الانتظار." diff --git a/core/res/res/values-az-rAZ/strings.xml b/core/res/res/values-az-rAZ/strings.xml index 94b7d271df32..f6371c7c6011 100644 --- a/core/res/res/values-az-rAZ/strings.xml +++ b/core/res/res/values-az-rAZ/strings.xml @@ -214,6 +214,8 @@ "Telefon seçimləri" "Ekran kilidi" "Söndür" + + "Baq hesabatı" "Baqı xəbər verin" "Bu, sizin hazırkı cihaz durumu haqqında məlumat toplayacaq ki, elektron məktub şəklində göndərsin. Baq raportuna başlamaq üçün bir az vaxt lazım ola bilər, bir az səbr edin." diff --git a/core/res/res/values-b+sr+Latn/strings.xml b/core/res/res/values-b+sr+Latn/strings.xml index 2224fa4870a6..13395cdc104e 100644 --- a/core/res/res/values-b+sr+Latn/strings.xml +++ b/core/res/res/values-b+sr+Latn/strings.xml @@ -216,6 +216,8 @@ "Opcije telefona" "Zaključaj ekran" "Isključi" + + "Izveštaj o grešci" "Napravi izveštaj o grešci" "Ovim će se prikupiti informacije o trenutnom stanju uređaja kako bi bile poslate u poruci e-pošte. Od započinjanja izveštaja o grešci do trenutka za njegovo slanje proći će neko vreme; budite strpljivi." @@ -256,9 +258,9 @@ "Skladište" "pristupa slikama, medijima i datotekama na uređaju" "Mikrofon" - "snima audio snimke" + "snima audio" "Kamera" - "snima slike i video snimke" + "snima slike i video" "Telefon" "upućuje telefonske pozive i upravlja njima" "Senzori za telo" diff --git a/core/res/res/values-be-rBY/strings.xml b/core/res/res/values-be-rBY/strings.xml index 49033b435509..e2e46e56e0c4 100644 --- a/core/res/res/values-be-rBY/strings.xml +++ b/core/res/res/values-be-rBY/strings.xml @@ -218,6 +218,8 @@ "Параметры тэлефона" "Блакіроўка экрана" "Выключыць" + + "Справаздача пра памылкі" "Справаздача пра памылку" "Будзе збiрацца iнфармацыя пра бягучы стан прылады, якая будзе адпраўляцца на электронную пошту. Стварэнне справаздачы пра памылкi зойме некаторы час." diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml index 9d77598ba58f..b43b5eeee15f 100644 --- a/core/res/res/values-bg/strings.xml +++ b/core/res/res/values-bg/strings.xml @@ -214,6 +214,8 @@ "Опции на телефона" "Заключване на екрана" "Изключване" + + "Сигнал за програмна грешка" "Сигнал за програмна грешка" "По този начин ще се събере информация за текущото състояние на устройството ви, която да се изпрати като имейл съобщение. След стартирането на процеса ще мине известно време, докато сигналът за програмна грешка бъде готов за подаване. Моля, имайте търпение." diff --git a/core/res/res/values-bn-rBD/strings.xml b/core/res/res/values-bn-rBD/strings.xml index 206aef83d59a..44b7b104aedc 100644 --- a/core/res/res/values-bn-rBD/strings.xml +++ b/core/res/res/values-bn-rBD/strings.xml @@ -214,6 +214,8 @@ "ফোন বিকল্পগুলি" "স্ক্রীণ লক" "পাওয়ার বন্ধ করুন" + + "ত্রুটির প্রতিবেদন" "ত্রুটির অভিযোগ করুন" "এটি একটি ই-মেল বার্তা পাঠানোর জন্য আপনার ডিভাইসের বর্তমান অবস্থা সম্পর্কে তথ্য সংগ্রহ করবে৷ ত্রুটির প্রতিবেদন শুরুর সময় থেকে এটি পাঠানোর জন্য প্রস্তুত হতে কিছুটা সময় নেবে; দয়া করে ধৈর্য রাখুন৷" diff --git a/core/res/res/values-bs-rBA/strings.xml b/core/res/res/values-bs-rBA/strings.xml index 540348b0bbfd..e72091294abc 100644 --- a/core/res/res/values-bs-rBA/strings.xml +++ b/core/res/res/values-bs-rBA/strings.xml @@ -216,6 +216,8 @@ "Opcije telefona" "Zaključavanje ekrana" "Isključi telefon" + + "Izvještaj o greškama" "Kreirajte izvještaj o greškama" "Ovim će se prikupljati informacije o trenutnom stanju uređaja, koji će biti poslani kao poruka e-pošte. Može malo potrajati dok se izvještaj o greškama ne kreira i bude spreman za slanje. Budite strpljivi." diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml index 87832a7e2c29..675c889a93af 100644 --- a/core/res/res/values-ca/strings.xml +++ b/core/res/res/values-ca/strings.xml @@ -214,6 +214,8 @@ "Opcions del telèfon" "Bloqueig de pantalla" "Apaga" + + "Informe d\'error" "Crea informe d\'errors" "Es recopilarà informació sobre l\'estat actual del dispositiu i se t\'enviarà per correu electrònic. Passaran uns quants minuts des de l\'inici de l\'informe d\'errors fins al seu enviament, per la qual cosa et recomanem que tinguis paciència." diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml index 9ef816ef5af4..d4f1baff7c7b 100644 --- a/core/res/res/values-cs/strings.xml +++ b/core/res/res/values-cs/strings.xml @@ -218,6 +218,8 @@ "Možnosti telefonu" "Zámek obrazovky" "Vypnout" + + "Hlášení chyb" "Vytvořit chybové hlášení" "Shromažďuje informace o aktuálním stavu zařízení. Tyto informace je následně možné poslat v e-mailové zprávě, chvíli však potrvá, než bude hlášení o chybě připraveno k odeslání. Buďte prosím trpěliví." diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml index b6539b188a7c..3ede198995dd 100644 --- a/core/res/res/values-da/strings.xml +++ b/core/res/res/values-da/strings.xml @@ -214,6 +214,8 @@ "Indstillinger for telefon" "Skærmlås" "Sluk" + + "Fejlrapport" "Lav fejlrapport" "Der indsamles oplysninger om din enheds aktuelle status, der efterfølgende sendes i en e-mail. Der går lidt tid, fra fejlrapporten påbegyndes, til den er klar til at blive sendt. Tak for tålmodigheden." diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml index 4a58c3dfdd31..e35ff6be8e3a 100644 --- a/core/res/res/values-de/strings.xml +++ b/core/res/res/values-de/strings.xml @@ -214,6 +214,8 @@ "Telefonoptionen" "Displaysperre" "Ausschalten" + + "Fehlerbericht" "Fehlerbericht abrufen" "Bei diesem Fehlerbericht werden Daten zum aktuellen Status deines Geräts erfasst und als E-Mail versandt. Vom Start des Berichts bis zu seinem Versand kann es eine Weile dauern. Bitte habe etwas Geduld." diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml index ee7b8b6b3462..f03750261a76 100644 --- a/core/res/res/values-el/strings.xml +++ b/core/res/res/values-el/strings.xml @@ -214,6 +214,8 @@ "Επιλογές τηλεφώνου" "Κλείδωμα οθόνης" "Απενεργοποίηση" + + "Αναφορά σφαλμάτων" "Λήψη αναφοράς σφάλματος" "Θα συλλέξει πληροφορίες σχετικά με την τρέχουσα κατάσταση της συσκευής σας και θα τις στείλει μέσω μηνύματος ηλεκτρονικού ταχυδρομείου. Απαιτείται λίγος χρόνος για τη σύνταξη της αναφοράς σφάλματος και την αποστολή της. Κάντε λίγη υπομονή." diff --git a/core/res/res/values-en-rAU/strings.xml b/core/res/res/values-en-rAU/strings.xml index 5926a88af894..5b5d50eb58fb 100644 --- a/core/res/res/values-en-rAU/strings.xml +++ b/core/res/res/values-en-rAU/strings.xml @@ -214,6 +214,8 @@ "Phone options" "Screen lock" "Power off" + + "Bug report" "Take bug report" "This will collect information about your current device state, to send as an email message. It will take a little time from starting the bug report until it is ready to be sent. Please be patient." diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml index 5926a88af894..5b5d50eb58fb 100644 --- a/core/res/res/values-en-rGB/strings.xml +++ b/core/res/res/values-en-rGB/strings.xml @@ -214,6 +214,8 @@ "Phone options" "Screen lock" "Power off" + + "Bug report" "Take bug report" "This will collect information about your current device state, to send as an email message. It will take a little time from starting the bug report until it is ready to be sent. Please be patient." diff --git a/core/res/res/values-en-rIN/strings.xml b/core/res/res/values-en-rIN/strings.xml index 5926a88af894..5b5d50eb58fb 100644 --- a/core/res/res/values-en-rIN/strings.xml +++ b/core/res/res/values-en-rIN/strings.xml @@ -214,6 +214,8 @@ "Phone options" "Screen lock" "Power off" + + "Bug report" "Take bug report" "This will collect information about your current device state, to send as an email message. It will take a little time from starting the bug report until it is ready to be sent. Please be patient." diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml index 6f41692a0b51..25cfbb113a7c 100644 --- a/core/res/res/values-es-rUS/strings.xml +++ b/core/res/res/values-es-rUS/strings.xml @@ -214,6 +214,8 @@ "Opciones de dispositivo" "Bloqueo de pantalla" "Apagar" + + "Informe de errores" "Iniciar informe de errores" "Se recopilará información sobre el estado actual de tu dispositivo, que se enviará por correo. Pasarán unos minutos desde que se inicie el informe de errores hasta que se envíe, por lo que te recomendamos que tengas paciencia." diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml index 0b32a7fc6414..9355f0627715 100644 --- a/core/res/res/values-es/strings.xml +++ b/core/res/res/values-es/strings.xml @@ -214,6 +214,8 @@ "Opciones del teléfono" "Bloqueo de pantalla" "Apagar" + + "Informe de error" "Crear informe de errores" "Se recopilará información sobre el estado actual de tu dispositivo y se enviará por correo electrónico. Pasarán unos minutos desde que empiece a generarse el informe de errores hasta que se envíe." diff --git a/core/res/res/values-et-rEE/strings.xml b/core/res/res/values-et-rEE/strings.xml index e1516b7f2435..cce09099d09f 100644 --- a/core/res/res/values-et-rEE/strings.xml +++ b/core/res/res/values-et-rEE/strings.xml @@ -214,6 +214,8 @@ "Telefonivalikud" "Ekraanilukk" "Lülita välja" + + "Veaaruanne" "Veaaruande võtmine" "Nii kogutakse teavet teie seadme praeguse oleku kohta, et saata see meilisõnumina. Enne kui saate veaaruande ära saata, võtab selle loomine natuke aega; varuge kannatust." diff --git a/core/res/res/values-eu-rES/strings.xml b/core/res/res/values-eu-rES/strings.xml index 1482b8aec8ed..8e737acd676c 100644 --- a/core/res/res/values-eu-rES/strings.xml +++ b/core/res/res/values-eu-rES/strings.xml @@ -214,6 +214,8 @@ "Telefonoaren aukerak" "Pantailaren blokeoa" "Itzali" + + "Akatsen txostena" "Sortu akatsen txostena" "Gailuaren uneko egoerari buruzko informazioa bilduko da, mezu elektroniko gisa bidaltzeko. Minutu batzuk igaroko dira akatsen txostena sortzen hasten denetik bidaltzeko prest egon arte. Itxaron, mesedez." diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml index bb61954657a6..17ab00d36ce9 100644 --- a/core/res/res/values-fa/strings.xml +++ b/core/res/res/values-fa/strings.xml @@ -214,6 +214,8 @@ "گزینه‌های تلفن" "قفل صفحه" "خاموش کردن" + + "گزارش اشکال" "گرفتن گزارش اشکال" "این گزارش اطلاعات مربوط به وضعیت دستگاه کنونی شما را جمع‌آوری می‌کند تا به صورت یک پیام رایانامه ارسال شود. از زمان شروع گزارش اشکال تا آماده شدن برای ارسال اندکی زمان می‌برد؛ لطفاً شکیبا باشید." diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml index 92de423e3b70..77d7be24f653 100644 --- a/core/res/res/values-fi/strings.xml +++ b/core/res/res/values-fi/strings.xml @@ -214,6 +214,8 @@ "Puhelimen asetukset" "Näytön lukitus" "Katkaise virta" + + "Virheraportti" "Luo virheraportti" "Toiminto kerää tietoja laitteen tilasta ja lähettää ne sähköpostitse. Virheraportti on valmis lähetettäväksi hetken kuluttua - kiitos kärsivällisyydestäsi." diff --git a/core/res/res/values-fr-rCA/strings.xml b/core/res/res/values-fr-rCA/strings.xml index 2b1da8975037..30ff36c9cdee 100644 --- a/core/res/res/values-fr-rCA/strings.xml +++ b/core/res/res/values-fr-rCA/strings.xml @@ -214,6 +214,8 @@ "Options du téléphone" "Verrouillage de l\'écran" "Éteindre" + + "Rapport de bogue" "Créer un rapport de bogue" "Cela permet de recueillir des informations concernant l\'état actuel de votre appareil. Ces informations sont ensuite envoyées sous forme de courriel. Merci de patienter pendant la préparation du rapport de bogue. Cette opération peut prendre quelques instants." diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml index c839f2003716..8ca2f83a59b4 100644 --- a/core/res/res/values-fr/strings.xml +++ b/core/res/res/values-fr/strings.xml @@ -214,6 +214,8 @@ "Options du téléphone" "Verrouillage de l\'écran" "Éteindre" + + "Rapport de bug" "Créer un rapport de bug" "Cela permet de recueillir des informations concernant l\'état actuel de votre appareil. Ces informations sont ensuite envoyées sous forme d\'e-mail. Merci de patienter pendant la préparation du rapport de bug. Cette opération peut prendre quelques instants." diff --git a/core/res/res/values-gl-rES/strings.xml b/core/res/res/values-gl-rES/strings.xml index b8d64a03a15c..e9a79d42f0f6 100644 --- a/core/res/res/values-gl-rES/strings.xml +++ b/core/res/res/values-gl-rES/strings.xml @@ -214,6 +214,8 @@ "Opcións de teléfono" "Bloqueo da pantalla" "Apagar" + + "Informe de erros" "Crear informe de erros" "Este informe recompilará información acerca do estado actual do teu dispositivo para enviala en forma de mensaxe de correo electrónico. O informe de erros tardará un pouco en completarse desde o seu inicio ata que estea preparado para enviarse, polo que che recomendamos que teñas paciencia." diff --git a/core/res/res/values-gu-rIN/strings.xml b/core/res/res/values-gu-rIN/strings.xml index c71391b5b171..4809b2cacc9a 100644 --- a/core/res/res/values-gu-rIN/strings.xml +++ b/core/res/res/values-gu-rIN/strings.xml @@ -214,6 +214,8 @@ "ફોન વિકલ્પો" "સ્ક્રીન લૉક" "પાવર બંધ" + + "બગ રિપોર્ટ" "બગ રિપોર્ટ લો" "આ, એક ઇ-મેઇલ સંદેશ તરીકે મોકલવા માટે, તમારા વર્તમાન ઉપકરણ સ્થિતિ વિશેની માહિતી એકત્રિત કરશે. એક બગ રિપોર્ટ પ્રારંભ કરીને તે મોકલવા માટે તૈયાર ન થઈ જાય ત્યાં સુધી તેમાં થોડો સમય લાગશે; કૃપા કરીને ધીરજ રાખો." diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml index 98b17d7986ae..35d66f260976 100644 --- a/core/res/res/values-hi/strings.xml +++ b/core/res/res/values-hi/strings.xml @@ -214,6 +214,8 @@ "फ़ोन विकल्‍प" "स्‍क्रीन लॉक" "पावर बंद" + + "बग रिपोर्ट" "बग रिपोर्ट प्राप्त करें" "ईमेल संदेश के रूप में भेजने के लिए, इसके द्वारा आपके डिवाइस की वर्तमान स्थिति के बारे में जानकारी एकत्र की जाएगी. बग रिपोर्ट प्रारंभ करने से लेकर भेजने के लिए तैयार होने तक कुछ समय लगेगा; कृपया धैर्य रखें." diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml index 115a97ea55e2..e2fa2fa464c3 100644 --- a/core/res/res/values-hr/strings.xml +++ b/core/res/res/values-hr/strings.xml @@ -216,6 +216,8 @@ "Opcije telefona" "Zaključavanje zaslona" "Isključi" + + "Izvješće o bugovima" "Izvješće o programskoj pogrešci" "Time će se prikupiti podaci o trenutačnom stanju vašeg uređaja koje ćete nam poslati u e-poruci. Za pripremu izvješća o programskoj pogrešci potrebno je nešto vremena pa vas molimo za strpljenje." diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml index 54980618f998..afee13833826 100644 --- a/core/res/res/values-hu/strings.xml +++ b/core/res/res/values-hu/strings.xml @@ -214,6 +214,8 @@ "Telefonbeállítások" "Képernyő lezárása" "Kikapcsolás" + + "Programhiba bejelentése" "Hibajelentés készítése" "Ezzel információt fog gyűjteni az eszköz jelenlegi állapotáról, amelyet a rendszer e-mailben fog elküldeni. Kérjük, legyen türelemmel, amíg a hibajelentés elkészül, és küldhető állapotba kerül." diff --git a/core/res/res/values-hy-rAM/strings.xml b/core/res/res/values-hy-rAM/strings.xml index 2b59f7e13210..1ab372680cb6 100644 --- a/core/res/res/values-hy-rAM/strings.xml +++ b/core/res/res/values-hy-rAM/strings.xml @@ -214,6 +214,8 @@ "Հեռախոսի ընտրանքներ" "Էկրանի փական" "Անջատել" + + "Վրիպակի զեկույց" "Գրել սխալի զեկույց" "Սա տեղեկություններ կհավաքագրի ձեր սարքի առկա կարգավիճակի մասին և կուղարկի այն էլեկտրոնային նամակով: Որոշակի ժամանակ կպահանջվի վրիպակի մասին զեկուցելու պահից սկսած մինչ ուղարկելը: Խնդրում ենք փոքր-ինչ համբերատար լինել:" diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml index a817b32a911a..a0982f5a578d 100644 --- a/core/res/res/values-in/strings.xml +++ b/core/res/res/values-in/strings.xml @@ -214,6 +214,8 @@ "Opsi telepon" "Kunci layar" "Matikan daya" + + "Laporan bug" "Ambil laporan bug" "Ini akan mengumpulkan informasi status perangkat Anda saat ini, untuk dikirimkan sebagai pesan email. Harap bersabar, mungkin perlu waktu untuk memulai laporan bug hingga siap dikirim." diff --git a/core/res/res/values-is-rIS/strings.xml b/core/res/res/values-is-rIS/strings.xml index 339ee6aeba2d..bc56da8afa68 100644 --- a/core/res/res/values-is-rIS/strings.xml +++ b/core/res/res/values-is-rIS/strings.xml @@ -214,6 +214,8 @@ "Valkostir síma" "Skjálás" "Slökkva" + + "Villutilkynning" "Útbúa villutilkynningu" "Þetta safnar upplýsingum um núverandi stöðu tækisins til að senda með tölvupósti. Það tekur smástund frá því villutilkynningin er ræst og þar til hún er tilbúin til sendingar – sýndu biðlund." diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml index 1c909b792d65..00694eee1e6a 100644 --- a/core/res/res/values-it/strings.xml +++ b/core/res/res/values-it/strings.xml @@ -214,6 +214,8 @@ "Opzioni telefono" "Blocco schermo" "Spegni" + + "Segnalazione di bug" "Apri segnalazione bug" "Verranno raccolte informazioni sullo stato corrente del dispositivo che saranno inviate sotto forma di messaggio email. Passerà un po\' di tempo prima che la segnalazione di bug aperta sia pronta per essere inviata; ti preghiamo di avere pazienza." diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml index 1f873ac0095a..b7fe6d8f336c 100644 --- a/core/res/res/values-iw/strings.xml +++ b/core/res/res/values-iw/strings.xml @@ -218,6 +218,8 @@ "אפשרויות טלפון" "נעילת מסך" "כיבוי" + + "דיווח על באג" "שלח דיווח על באג" "פעולה זו תאסוף מידע על מצב המכשיר הנוכחי שלך על מנת לשלוח אותו כהודעת אימייל. היא תימשך זמן קצר מרגע פתיחת דיווח הבאג ועד לשליחת ההודעה בפועל. אנא המתן בסבלנות." diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml index 682766bfbf42..8abcf86b429f 100644 --- a/core/res/res/values-ja/strings.xml +++ b/core/res/res/values-ja/strings.xml @@ -214,6 +214,8 @@ "携帯電話オプション" "画面ロック" "電源を切る" + + "バグレポート" "バグレポートを取得" "現在の端末の状態に関する情報が収集され、その内容がメールで送信されます。バグレポートが開始してから送信可能な状態となるまでには多少の時間がかかりますのでご了承ください。" diff --git a/core/res/res/values-ka-rGE/strings.xml b/core/res/res/values-ka-rGE/strings.xml index 5cbf001c5296..ad90af38b6b8 100644 --- a/core/res/res/values-ka-rGE/strings.xml +++ b/core/res/res/values-ka-rGE/strings.xml @@ -214,6 +214,8 @@ "ტელეფონის პარამეტრები" "ეკრანის დაბლოკვა" "კვების გამორთვა" + + "ხარვეზის შესახებ ანგარიში" "შექმენით შეცდომის ანგარიში" "იგი შეაგროვებს ინფორმაციას თქვენი მოწყობილობის ამჟამინდელი მდგომარეობის შესახებ, რათა ის ელფოსტის შეტყობინების სახით გააგზავნოს. ხარვეზის ანგარიშის მომზადებასა და შეტყობინების გაგზავნას გარკვეული დრო სჭირდება. გთხოვთ, მოითმინოთ." diff --git a/core/res/res/values-kk-rKZ/strings.xml b/core/res/res/values-kk-rKZ/strings.xml index c7c91afe19d1..5d9014fb6dc1 100644 --- a/core/res/res/values-kk-rKZ/strings.xml +++ b/core/res/res/values-kk-rKZ/strings.xml @@ -214,6 +214,8 @@ "Телефон опциялары" "Экранды құлыптау" "Өшіру" + + "Вирус туралы хабарлау" "Қате туралы есеп құру" "Құрылғының қазіргі күйі туралы ақпаратты жинап, электрондық хабармен жібереді. Есеп әзір болғанша біраз уақыт кетеді, шыдай тұрыңыз." diff --git a/core/res/res/values-km-rKH/strings.xml b/core/res/res/values-km-rKH/strings.xml index 8cea0ff10898..18157094f2b1 100644 --- a/core/res/res/values-km-rKH/strings.xml +++ b/core/res/res/values-km-rKH/strings.xml @@ -214,6 +214,8 @@ "ជម្រើស​ទូរស័ព្ទ" "ចាក់​សោ​អេក្រង់" "បិទ" + + "របាយការណ៍​កំហុស" "យក​របាយការណ៍​កំហុស" "វា​នឹង​​ប្រមូល​ព័ត៌មាន​អំពី​ស្ថានភាព​ឧបករណ៍​របស់​អ្នក ដើម្បី​ផ្ញើ​ជា​សារ​អ៊ីមែល។ វា​នឹង​ចំណាយ​ពេល​តិច​ពី​ពេល​ចាប់ផ្ដើម​របាយការណ៍​រហូត​ដល់​ពេល​វា​រួចរាល់​ដើម្បី​ផ្ញើ សូម​អត់ធ្មត់។" diff --git a/core/res/res/values-kn-rIN/strings.xml b/core/res/res/values-kn-rIN/strings.xml index 0ff0bcaf4e51..cc2c34745841 100644 --- a/core/res/res/values-kn-rIN/strings.xml +++ b/core/res/res/values-kn-rIN/strings.xml @@ -214,6 +214,8 @@ "ಫೋನ್ ಆಯ್ಕೆಗಳು" "ಸ್ಕ್ರೀನ್ ಲಾಕ್" "ಪವರ್ ಆಫ್ ಮಾಡು" + + "ದೋಷದ ವರದಿ" "ದೋಷ ವರದಿ ರಚಿಸಿ" "ನಿಮ್ಮ ಸಾಧನದ ಪ್ರಸ್ತುತ ಸ್ಥಿತಿಯ ಕುರಿತು ಮಾಹಿತಿಯನ್ನು ಸಂಗ್ರಹಿಸಿಕೊಳ್ಳುವುದರ ಜೊತೆ ಇ-ಮೇಲ್ ರೂಪದಲ್ಲಿ ನಿಮಗೆ ರವಾನಿಸುತ್ತದೆ. ಇದು ದೋಷ ವರದಿಯನ್ನು ಪ್ರಾರಂಭಿಸಿದ ಸಮಯದಿಂದ ಅದನ್ನು ಕಳುಹಿಸುವವರೆಗೆ ಸ್ವಲ್ಪ ಸಮಯವನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ; ದಯವಿಟ್ಟು ತಾಳ್ಮೆಯಿಂದಿರಿ." @@ -979,8 +981,8 @@ "ಇದನ್ನು ಬಳಸಿಕೊಂಡು ಕಳುಹಿಸಿ" "%1$s ಬಳಸಿಕೊಂಡು ಕಳುಹಿಸಿ" "ಕಳುಹಿಸು" - "ಹೋಮ್‌ ಅಪ್ಲಿಕೇಶನ್‌ ಆಯ್ಕೆಮಾಡಿ" - "ಹೋಮ್‌ ಎಂಬಂತೆ %1$s ಅನ್ನು ಬಳಸಿ" + "ಮುಖಪುಟ‌ ಅಪ್ಲಿಕೇಶನ್‌ ಆಯ್ಕೆಮಾಡಿ" + "ಮುಖಪುಟ‌ ಎಂಬಂತೆ %1$s ಅನ್ನು ಬಳಸಿ" "ಚಿತ್ರ ಕ್ಯಾಪ್ಚರ್ ಮಾಡಿ" "ಇದರ ಜೊತೆಗೆ ಚಿತ್ರ ಕ್ಯಾಪ್ಚರ್ ಮಾಡಿ" "%1$s ಜೊತೆ ಚಿತ್ರ ಕ್ಯಾಪ್ಚರ್ ಮಾಡಿ" diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml index f1d78a08a0cd..cceb7118d2a7 100644 --- a/core/res/res/values-ko/strings.xml +++ b/core/res/res/values-ko/strings.xml @@ -214,6 +214,8 @@ "휴대전화 옵션" "화면 잠금" "종료" + + "버그 신고" "버그 신고" "현재 기기 상태에 대한 정보를 수집하여 이메일 메시지로 전송합니다. 버그 신고를 시작하여 전송할 준비가 되려면 약간 시간이 걸립니다." diff --git a/core/res/res/values-ky-rKG/strings.xml b/core/res/res/values-ky-rKG/strings.xml index 87c5015a37f6..cf1461a02665 100644 --- a/core/res/res/values-ky-rKG/strings.xml +++ b/core/res/res/values-ky-rKG/strings.xml @@ -214,6 +214,8 @@ "Телефон мүмкүнчүлүктөрү" "Экран кулпусу" "Кубатын өчүрүү" + + "Ката тууралуу билдирүү" "Ката тууралуу билдирүү түзүү" "Бул сиздин түзмөгүңүздүн учурдагы абалын эмейл билдирүүсү катары жөнөтүш максатында маалымат чогултат. Ката тууралуу билдирүү түзүлүп башталып, жөнөтүлгөнгө чейин бир аз убакыт керек болот; сураныч, бир аз күтө туруңуз." diff --git a/core/res/res/values-lo-rLA/strings.xml b/core/res/res/values-lo-rLA/strings.xml index eb25c9750dbc..94258335ca15 100644 --- a/core/res/res/values-lo-rLA/strings.xml +++ b/core/res/res/values-lo-rLA/strings.xml @@ -214,6 +214,8 @@ "ໂຕເລືອກໂທລະສັບ" "ລັອກໜ້າຈໍ" "ປິດ" + + "ລາຍງານຂໍ້ຜິດພາດ" "ໃຊ້ລາຍງານຂໍ້ບົກພ່ອງ" "ນີ້ຈະເປັນການເກັບກຳຂໍ້ມູນກ່ຽວກັບ ສະຖານະປັດຈຸບັນຂອງອຸປະກອນທ່ານ ເພື່ອສົ່ງເປັນຂໍ້ຄວາມທາງອີເມວ. ມັນຈະໃຊ້ເວລາໜ້ອຍນຶ່ງ ໃນການເລີ່ມຕົ້ນການລາຍງານຂໍ້ຜິດພາດ ຈົນກວ່າຈະພ້ອມທີ່ຈະສົ່ງໄດ້, ກະລຸນາລໍຖ້າ." diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml index 0406ee1881cc..d4098c2f7bb4 100644 --- a/core/res/res/values-lt/strings.xml +++ b/core/res/res/values-lt/strings.xml @@ -218,6 +218,8 @@ "Telefono parinktys" "Ekrano užraktas" "Išjungiamas maitinimas" + + "Pranešimas apie riktą" "Pranešti apie riktą" "Bus surinkta informacija apie dabartinę įrenginio būseną ir išsiųsta el. pašto pranešimu. Šiek tiek užtruks, kol pranešimas apie riktą bus paruoštas siųsti; būkite kantrūs." diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml index 44368fb4df12..e625e4f0dc66 100644 --- a/core/res/res/values-lv/strings.xml +++ b/core/res/res/values-lv/strings.xml @@ -216,6 +216,8 @@ "Tālruņa opcijas" "Ekrāna bloķētājs" "Strāvas padeve ir izslēgta." + + "Kļūdu ziņojums" "Kļūdu ziņojuma sagatavošana" "Veicot šo darbību, tiks apkopota informācija par jūsu ierīces pašreizējo stāvokli un nosūtīta e-pasta ziņojuma veidā. Kļūdu ziņojuma pabeigšanai un nosūtīšanai var būt nepieciešams laiks. Lūdzu, esiet pacietīgs." diff --git a/core/res/res/values-mk-rMK/strings.xml b/core/res/res/values-mk-rMK/strings.xml index 102c7a007a88..e4670d6972f9 100644 --- a/core/res/res/values-mk-rMK/strings.xml +++ b/core/res/res/values-mk-rMK/strings.xml @@ -214,6 +214,8 @@ "Опции на телефон" "Заклучи екран" "Исклучи" + + "Извештај за грешка" "Земи извештај за грешки" "Ова ќе собира информации за моменталната состојба на вашиот уред, за да ги испрати како порака по е-пошта. Тоа ќе одземе малку време почнувајќи од извештајот за грешки додека не се подготви за праќање; бидете трпеливи." diff --git a/core/res/res/values-ml-rIN/strings.xml b/core/res/res/values-ml-rIN/strings.xml index 349c46399383..9c4ae28e2eb7 100644 --- a/core/res/res/values-ml-rIN/strings.xml +++ b/core/res/res/values-ml-rIN/strings.xml @@ -214,6 +214,8 @@ "ഫോൺ ഓപ്‌ഷനുകൾ" "സ്‌ക്രീൻ ലോക്ക്" "പവർ ഓഫാക്കുക" + + "ബഗ് റിപ്പോർട്ട്" "ബഗ് റിപ്പോർട്ട് എടുക്കുക" "ഒരു ഇമെയിൽ സന്ദേശമായി അയയ്‌ക്കുന്നതിന്, ഇത് നിങ്ങളുടെ നിലവിലെ ഉപകരണ നിലയെക്കുറിച്ചുള്ള വിവരങ്ങൾ ശേഖരിക്കും. ബഗ് റിപ്പോർട്ട് ആരംഭിക്കുന്നതിൽ നിന്ന് ഇത് അയയ്‌ക്കാനായി തയ്യാറാകുന്നതുവരെ അൽപ്പസമയമെടുക്കും; ക്ഷമയോടെ കാത്തിരിക്കുക." diff --git a/core/res/res/values-mn-rMN/strings.xml b/core/res/res/values-mn-rMN/strings.xml index 1e8c39ca002a..eb2e59ce873c 100644 --- a/core/res/res/values-mn-rMN/strings.xml +++ b/core/res/res/values-mn-rMN/strings.xml @@ -214,6 +214,8 @@ "Утасны сонголтууд" "Дэлгэцний түгжээ" "Унтраах" + + "Алдаа мэдээллэх" "Согог репорт авах" "Энэ таны төхөөрөмжийн одоогийн статусын талаарх мэдээллийг цуглуулах ба имэйл мессеж болгон илгээнэ. Алдааны мэдэгдлээс эхэлж илгээхэд бэлэн болоход хэсэг хугацаа зарцуулагдана тэвчээртэй байна уу." diff --git a/core/res/res/values-mr-rIN/strings.xml b/core/res/res/values-mr-rIN/strings.xml index 8dc710e75cc5..9b9f8e27acfa 100644 --- a/core/res/res/values-mr-rIN/strings.xml +++ b/core/res/res/values-mr-rIN/strings.xml @@ -214,6 +214,8 @@ "फोन पर्याय" "स्क्रीन लॉक" "बंद" + + "दोष अहवाल" "दोष अहवाल घ्या" "ई-मेल संदेश म्हणून पाठविण्यासाठी, हे आपल्या वर्तमान डिव्हाइस स्थितीविषयी माहिती संकलित करेल. दोष अहवाल प्रारंभ करण्यापासून तो पाठविण्यापर्यंत थोडा वेळ लागेल; कृपया धीर धरा." diff --git a/core/res/res/values-ms-rMY/strings.xml b/core/res/res/values-ms-rMY/strings.xml index 12bdd0249c63..1394f4b639b2 100644 --- a/core/res/res/values-ms-rMY/strings.xml +++ b/core/res/res/values-ms-rMY/strings.xml @@ -214,6 +214,8 @@ "Pilihan telefon" "Kunci skrin" "Matikan kuasa" + + "Laporan pepijat" "Ambil laporan pepijat" "Ini akan mengumpul maklumat tentang keadaan peranti semasa anda untuk dihantarkan sebagai mesej e-mel. Harap bersabar, mungkin perlu sedikit masa untuk memulakan laporan sehingga siap untuk dihantar." diff --git a/core/res/res/values-my-rMM/strings.xml b/core/res/res/values-my-rMM/strings.xml index 3ed76a91ba20..878e1ca8c530 100644 --- a/core/res/res/values-my-rMM/strings.xml +++ b/core/res/res/values-my-rMM/strings.xml @@ -214,6 +214,8 @@ "ဖုန်းဆိုင်ရာရွေးချယ်မှုများ" "ဖုန်းမျက်နှာပြင်အား သော့ချရန်" "ပါဝါပိတ်ရန်" + + "အမှားရှာဖွေပြင်ဆင်မှုမှတ်တမ်း" "အမှားရှာဖွေပြင်ဆင်မှုမှတ်တမ်းအား ယူရန်" "သင့်ရဲ့ လက်ရှိ စက်အခြေအနေ အချက်အလက်များကို အီးမေးလ် အနေဖြင့် ပေးပို့ရန် စုဆောင်းပါမည်။ အမှားရှာဖွေပြင်ဆင်မှုမှတ်တမ်းမှ ပေးပို့ရန် အသင့်ဖြစ်သည်အထိ အချိန် အနည်းငယ်ကြာမြင့်မှာ ဖြစ်သဖြင့် သည်းခံပြီး စောင့်ပါရန်" diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml index 55b226036844..09f7998e2703 100644 --- a/core/res/res/values-nb/strings.xml +++ b/core/res/res/values-nb/strings.xml @@ -214,6 +214,8 @@ "Telefoninnstillinger" "Lås skjermen" "Slå av" + + "Feilrapport" "Utfør feilrapport" "Informasjon om tilstanden til enheten din samles inn og sendes som en e-post. Det tar litt tid fra du starter feilrapporten til e-posten er klar, så vær tålmodig." diff --git a/core/res/res/values-ne-rNP/strings.xml b/core/res/res/values-ne-rNP/strings.xml index c0d44737b9c1..e497c53e454d 100644 --- a/core/res/res/values-ne-rNP/strings.xml +++ b/core/res/res/values-ne-rNP/strings.xml @@ -214,6 +214,8 @@ "फोन विकल्पहरू" "स्क्रिन बन्द" "बन्द गर्नुहोस्" + + "बग रिपोर्ट" "बग रिपोर्ट लिनुहोस्" "एउटा इमेल सन्देशको रूपमा पठाउनलाई यसले तपाईँको हालैको उपकरणको अवस्थाको बारेमा सूचना जम्मा गर्ने छ। बग रिपोर्ट सुरु गरेदेखि पठाउन तयार नभएसम्म यसले केही समय लिन्छ; कृपया धैर्य गर्नुहोस्।" diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml index 183d8668d575..d92737d2fa26 100644 --- a/core/res/res/values-nl/strings.xml +++ b/core/res/res/values-nl/strings.xml @@ -214,6 +214,8 @@ "Telefoonopties" "Schermvergrendeling" "Uitschakelen" + + "Foutenrapport" "Foutenrapport genereren" "Hiermee worden gegevens over de huidige status van je apparaat verzameld en als e-mail verzonden. Wanneer u een foutenrapport start, duurt het even voordat het kan worden verzonden. Even geduld alstublieft." diff --git a/core/res/res/values-pa-rIN/strings.xml b/core/res/res/values-pa-rIN/strings.xml index 210ef8b48f85..fbc74ea32f07 100644 --- a/core/res/res/values-pa-rIN/strings.xml +++ b/core/res/res/values-pa-rIN/strings.xml @@ -214,6 +214,8 @@ "ਫੋਨ ਚੋਣਾਂ" "ਸਕ੍ਰੀਨ ਲੌਕ" "ਪਾਵਰ ਬੰਦ" + + "ਬਗ ਰਿਪੋਰਟ" "ਬਗ ਰਿਪੋਰਟ ਲਓ" "ਇਹ ਇੱਕ ਈ-ਮੇਲ ਸੁਨੇਹਾ ਭੇਜਣ ਲਈ, ਤੁਹਾਡੀ ਵਰਤਮਾਨ ਡੀਵਾਈਸ ਬਾਰੇ ਜਾਣਕਾਰੀ ਇਕੱਤਰ ਕਰੇਗਾ। ਬਗ ਰਿਪੋਰਟ ਸ਼ੁਰੂ ਕਰਨ ਵਿੱਚ ਥੋੜ੍ਹਾ ਸਮਾਂ ਲੱਗੇਗਾ ਜਦੋਂ ਤੱਕ ਇਹ ਭੇਜੇ ਜਾਣ ਲਈ ਤਿਆਰ ਨਾ ਹੋਵੇ, ਕਿਰਪਾ ਕਰਕੇ ਧੀਰਜ ਰੱਖੋ।" diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml index e8167085c8da..2673bcc2b9d7 100644 --- a/core/res/res/values-pl/strings.xml +++ b/core/res/res/values-pl/strings.xml @@ -218,6 +218,8 @@ "Opcje telefonu" "Blokada ekranu" "Wyłącz" + + "Zgłoszenie błędu" "Zgłoś błąd" "Informacje o bieżącym stanie urządzenia zostaną zebrane i wysłane e-mailem. Przygotowanie zgłoszenia błędu do wysłania chwilę potrwa, więc zachowaj cierpliwość." diff --git a/core/res/res/values-pt-rBR/strings.xml b/core/res/res/values-pt-rBR/strings.xml index c72d4ab1fb11..580d8d567a95 100644 --- a/core/res/res/values-pt-rBR/strings.xml +++ b/core/res/res/values-pt-rBR/strings.xml @@ -214,6 +214,8 @@ "Opções do telefone" "Bloquear tela" "Desligar" + + "Relatório de bugs" "Obter relatório de bugs" "Isto coletará informações sobre o estado atual do dispositivo para enviá-las em uma mensagem de e-mail. Após iniciar o relatório de bugs, será necessário aguardar algum tempo até que esteja pronto para ser enviado." diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml index c8d7e4ed8e4b..98aeffb9c583 100644 --- a/core/res/res/values-pt-rPT/strings.xml +++ b/core/res/res/values-pt-rPT/strings.xml @@ -214,6 +214,8 @@ "Opções do telefone" "Bloqueio de ecrã" "Desligar" + + "Relatório de erros" "Criar relatório de erros" "Será recolhida informação sobre o estado atual do seu dispositivo a enviar através de uma mensagem de email. Demorará algum tempo até que o relatório de erro esteja pronto para ser enviado. Aguarde um pouco." diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml index c72d4ab1fb11..580d8d567a95 100644 --- a/core/res/res/values-pt/strings.xml +++ b/core/res/res/values-pt/strings.xml @@ -214,6 +214,8 @@ "Opções do telefone" "Bloquear tela" "Desligar" + + "Relatório de bugs" "Obter relatório de bugs" "Isto coletará informações sobre o estado atual do dispositivo para enviá-las em uma mensagem de e-mail. Após iniciar o relatório de bugs, será necessário aguardar algum tempo até que esteja pronto para ser enviado." diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml index c3c0d61c7cbb..feaa4c246c9c 100644 --- a/core/res/res/values-ro/strings.xml +++ b/core/res/res/values-ro/strings.xml @@ -216,6 +216,8 @@ "Opțiuni telefon" "Blocați ecranul" "Opriți alimentarea" + + "Raport despre erori" "Executați un raport despre erori" "Acest raport va colecta informații despre starea actuală a dispozitivului, pentru a le trimite într-un e-mail. Aveți răbdare după pornirea raportului despre erori până când va fi gata de trimis." diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml index 5ca96e91c775..cfcf79aa2d4c 100644 --- a/core/res/res/values-ru/strings.xml +++ b/core/res/res/values-ru/strings.xml @@ -218,6 +218,8 @@ "Параметры телефона" "Блокировка экрана" "Отключить питание" + + "Отчет об ошибке" "Отчет об ошибке" "Информация о текущем состоянии вашего устройства будет собрана и отправлена по электронной почте. Подготовка отчета займет некоторое время." diff --git a/core/res/res/values-si-rLK/strings.xml b/core/res/res/values-si-rLK/strings.xml index 8eabd5b16502..42b98864de1b 100644 --- a/core/res/res/values-si-rLK/strings.xml +++ b/core/res/res/values-si-rLK/strings.xml @@ -214,6 +214,8 @@ "දුරකථන විකල්ප" "තිර අගුල" "බලය අක්‍රිය කරන්න" + + "දෝෂ වර්තාව" "දෝෂ වාර්තාවක් ගන්න" "ඊ-තැපැල් පණිවිඩයක් ලෙස යැවීමට මෙය ඔබගේ වත්මන් උපාංග තත්වය ගැන තොරතුරු එකතු කරනු ඇත. දෝෂ වාර්තාව ආරම්භ කර එය යැවීමට සූදානම් කරන තෙක් එයට කිසියම් කාලයක් ගතවනු ඇත; කරුණාකර ඉවසන්න." diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml index eca85e571add..e8ee978fccf2 100644 --- a/core/res/res/values-sk/strings.xml +++ b/core/res/res/values-sk/strings.xml @@ -218,6 +218,8 @@ "Možnosti telefónu" "Zámka obrazovky" "Vypnúť" + + "Hlásenie o chybách" "Vytvoriť hlásenie chyby" "Týmto zhromaždíte informácie o aktuálnom stave zariadenia. Informácie je potom možné odoslať e-mailom, chvíľu však potrvá, kým bude hlásenie chyby pripravené na odoslanie. Prosíme vás preto o trpezlivosť." @@ -1675,7 +1677,7 @@ "Do %1$s" "Do %1$s (ďalší budík)" - "Dokým túto funkciu nevypnete" + "Kým túto funkciu nevypnete" "Dokým nevypnete stav Nerušiť" "%1$s / %2$s" "Zbaliť" diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml index 0894e1614373..c67b7f503d31 100644 --- a/core/res/res/values-sl/strings.xml +++ b/core/res/res/values-sl/strings.xml @@ -218,6 +218,8 @@ "Možnosti telefona" "Zaklep zaslona" "Izklopi" + + "Poročilo o napakah" "Ustvari poročilo o napakah" "S tem bodo zbrani podatki o trenutnem stanju naprave, ki bodo poslani v e-poštnem sporočilu. Izvedba poročila o napakah in priprava trajata nekaj časa, zato bodite potrpežljivi." diff --git a/core/res/res/values-sq-rAL/strings.xml b/core/res/res/values-sq-rAL/strings.xml index 9f06b12825c7..eefcd17e4ee1 100644 --- a/core/res/res/values-sq-rAL/strings.xml +++ b/core/res/res/values-sq-rAL/strings.xml @@ -214,6 +214,8 @@ "Opsionet e telefonit" "Kyçja e ekranit" "Fik" + + "Raporti i defekteve në kod" "Merr raportin e defekteve në kod" "Ky funksion mundëson mbledhjen e informacioneve mbi gjendjen aktuale të pajisjes për ta dërguar si mesazh mail-i. Do të duhet pak kohë nga nisja e raportit të defekteve në kod. Faleminderit për durimin." diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml index 5fb6b75822d6..90597c6ee077 100644 --- a/core/res/res/values-sr/strings.xml +++ b/core/res/res/values-sr/strings.xml @@ -216,6 +216,8 @@ "Опције телефона" "Закључај екран" "Искључи" + + "Извештај о грешци" "Направи извештај о грешци" "Овим ће се прикупити информације о тренутном стању уређаја како би биле послате у поруци е-поште. Од започињања извештаја о грешци до тренутка за његово слање проћи ће неко време; будите стрпљиви." @@ -256,9 +258,9 @@ "Складиште" "приступа сликама, медијима и датотекама на уређају" "Микрофон" - "снима аудио снимке" + "снима аудио" "Камера" - "снима слике и видео снимке" + "снима слике и видео" "Телефон" "упућује телефонске позиве и управља њима" "Сензори за тело" diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml index df2bc16b1001..97b31c967db6 100644 --- a/core/res/res/values-sv/strings.xml +++ b/core/res/res/values-sv/strings.xml @@ -214,6 +214,8 @@ "Telefonalternativ" "Skärmlås" "Stäng av" + + "Felrapport" "Skapa felrapport" "Nu hämtas information om aktuell status för enheten, som sedan skickas i ett e-postmeddelade. Det tar en liten stund innan felrapporten är färdig och kan skickas, så vi ber dig ha tålamod." @@ -671,7 +673,7 @@ "Ingen tjänst" "Skärmen har låsts." "Tryck på Menu om du vill låsa upp eller ringa nödsamtal." - "Tryck på Menu om du vill låsa upp." + "Tryck på Menu för att låsa upp." "Rita grafiskt lösenord för att låsa upp" "Nödsamtal" "Tillbaka till samtal" @@ -1655,7 +1657,7 @@ "Du har nya meddelanden" "Öppna sms-appen och visa meddelandet" "Vissa funktioner är begränsade" - "Tryck om du vill låsa upp" + "Tryck för att låsa upp" "Användaruppgifterna är låsta" "Jobbprofilen är låst" "Tryck och lås upp jobbprofilen" diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml index 6a4337c3b423..e1e2d49cdc05 100644 --- a/core/res/res/values-sw/strings.xml +++ b/core/res/res/values-sw/strings.xml @@ -212,6 +212,8 @@ "Chaguo za simu" "Funga skrini" "Zima" + + "Ripoti ya hitilafu" "Chukua ripoti ya hitilafu" "Hii itakusanya maelezo kuhusu hali ya kifaa chako kwa sasa, na itume kama barua pepe. Itachukua muda mfupi tangu ripoti ya hitilafu ianze kuzalishwa hadi iwe tayari kutumwa; vumilia." diff --git a/core/res/res/values-ta-rIN/strings.xml b/core/res/res/values-ta-rIN/strings.xml index d7efb64bb7c8..40534b183836 100644 --- a/core/res/res/values-ta-rIN/strings.xml +++ b/core/res/res/values-ta-rIN/strings.xml @@ -214,6 +214,8 @@ "தொலைபேசி விருப்பங்கள்" "திரைப் பூட்டு" "முடக்கு" + + "பிழை அறிக்கை" "பிழை அறிக்கையை எடு" "உங்கள் நடப்புச் சாதன நிலையை மின்னஞ்சல் செய்தியாக அனுப்ப, அது குறித்த தகவலை இது சேகரிக்கும். பிழை அறிக்கையைத் தொடங்குவதில் இருந்து, அது அனுப்புவதற்குத் தயாராகும் வரை, இதற்குச் சிறிது நேரம் ஆகும்; பொறுமையாகக் காத்திருக்கவும்." diff --git a/core/res/res/values-te-rIN/strings.xml b/core/res/res/values-te-rIN/strings.xml index 15fb94f99c2f..d3651caae22d 100644 --- a/core/res/res/values-te-rIN/strings.xml +++ b/core/res/res/values-te-rIN/strings.xml @@ -214,6 +214,8 @@ "ఫోన్ ఎంపికలు" "స్క్రీన్ లాక్" "పవర్ ఆఫ్ చేయి" + + "బగ్ నివేదిక" "బగ్ నివేదికను సిద్ధం చేయి" "ఇది ఇ-మెయిల్ సందేశం రూపంలో పంపడానికి మీ ప్రస్తుత పరికర స్థితి గురించి సమాచారాన్ని సేకరిస్తుంది. బగ్ నివేదికను ప్రారంభించడం మొదలుకొని పంపడానికి సిద్ధం చేసే వరకు ఇందుకు కొంత సమయం పడుతుంది; దయచేసి ఓపిక పట్టండి." diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml index 5fe5d09cd2b2..0cbc1e218c0a 100644 --- a/core/res/res/values-th/strings.xml +++ b/core/res/res/values-th/strings.xml @@ -214,6 +214,8 @@ "ตัวเลือกโทรศัพท์" "ล็อกหน้าจอ" "ปิดเครื่อง" + + "รายงานข้อบกพร่อง" "ใช้รายงานข้อบกพร่อง" "การดำเนินการนี้จะรวบรวมข้อมูลเกี่ยวกับสถานะปัจจุบันของอุปกรณ์ของคุณ โดยจะส่งไปในรูปแบบข้อความอีเมล อาจใช้เวลาสักครู่ตั้งแต่เริ่มการสร้างรายงานข้อบกพร่องจนกระทั่งเสร็จสมบูรณ์ โปรดอดทนรอ" diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml index 651db3635cd3..09c4bc284c52 100644 --- a/core/res/res/values-tl/strings.xml +++ b/core/res/res/values-tl/strings.xml @@ -214,6 +214,8 @@ "Pagpipilian sa telepono" "Pag-lock sa screen" "I-off" + + "Ulat sa bug" "Kunin ang ulat sa bug" "Mangongolekta ito ng impormasyon tungkol sa kasalukuyang katayuan ng iyong device, na ipapadala bilang mensaheng e-mail. Gugugol ito ng kaunting oras mula sa pagsisimula ng ulat sa bug hanggang sa handa na itong maipadala; mangyaring magpasensya." @@ -1150,7 +1152,7 @@ "Nakakonekta sa isang accessory ng USB" "I-tap para sa higit pang mga opsyon." "Konektado ang debugging ng USB" - "I-tap upang i-disable ang pagde-debug ng USB." + "I-tap upang i-disable ang pag-debug ng USB." "Kinukuha ang ulat ng bug…" "Gusto mo bang ibahagi ang ulat ng bug?" "Ibinabahagi ang ulat ng bug…" diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml index 20a213e12b5c..61578b79b334 100644 --- a/core/res/res/values-tr/strings.xml +++ b/core/res/res/values-tr/strings.xml @@ -214,6 +214,8 @@ "Telefon seçenekleri" "Ekran kilidi" "Kapat" + + "Hata raporu" "Hata raporu al" "Bu rapor, e-posta iletisi olarak göndermek üzere cihazınızın şu anki durumuyla ilgili bilgi toplar. Hata raporu başlatıldıktan sonra hazır olması biraz zaman alabilir, lütfen sabırlı olun." diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml index 77eff115efb6..b9b2ef530d05 100644 --- a/core/res/res/values-uk/strings.xml +++ b/core/res/res/values-uk/strings.xml @@ -218,6 +218,8 @@ "Параметри телеф." "Заблок. екран" "Вимкнути" + + "Звіт про помилки" "Звіт про помилку" "Інформація про поточний стан вашого пристрою буде зібрана й надіслана електронною поштою. Підготовка звіту триватиме певний час." diff --git a/core/res/res/values-ur-rPK/strings.xml b/core/res/res/values-ur-rPK/strings.xml index cb0894b282b6..3628b6be327c 100644 --- a/core/res/res/values-ur-rPK/strings.xml +++ b/core/res/res/values-ur-rPK/strings.xml @@ -214,6 +214,8 @@ "فون کے اختیارات" "اسکرین لاک" "پاور آف" + + "بگ کی اطلاع" "بگ کی اطلاع لیں" "ایک ای میل پیغام کے بطور بھیجنے کیلئے، یہ آپ کے موجودہ آلہ کی حالت کے بارے میں معلومات جمع کرے گا۔ بگ کی اطلاع شروع کرنے سے لے کر بھیجنے کیلئے تیار ہونے تک اس میں تھوڑا وقت لگے گا؛ براہ کرم تحمل سے کام لیں۔" diff --git a/core/res/res/values-uz-rUZ/strings.xml b/core/res/res/values-uz-rUZ/strings.xml index 3c70f68b3c0d..0db14626b41b 100644 --- a/core/res/res/values-uz-rUZ/strings.xml +++ b/core/res/res/values-uz-rUZ/strings.xml @@ -214,6 +214,8 @@ "Telefon sozlamalari" "Ekran qulfi" "O‘chirish" + + "Nosozlik haqida ma’lumot berish" "Xatoliklar hisoboti" "Qurilmangiz holati haqidagi ma’lumotlar to‘planib, e-pochta orqali yuboriladi. Hisobotni tayyorlash biroz vaqt olishi mumkin." diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml index 4a4c34abbd1c..889b3bb5a52f 100644 --- a/core/res/res/values-vi/strings.xml +++ b/core/res/res/values-vi/strings.xml @@ -214,6 +214,8 @@ "Tùy chọn điện thoại" "Khoá màn hình" "Tắt nguồn" + + "Báo cáo lỗi" "Nhận báo cáo lỗi" "Báo cáo này sẽ thu thập thông tin về tình trạng thiết bị hiện tại của bạn, để gửi dưới dạng thông báo qua email. Sẽ mất một chút thời gian kể từ khi bắt đầu báo cáo lỗi cho tới khi báo cáo sẵn sàng để gửi; xin vui lòng kiên nhẫn." diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml index b3b81b00027a..a599acdc57f9 100644 --- a/core/res/res/values-zh-rCN/strings.xml +++ b/core/res/res/values-zh-rCN/strings.xml @@ -214,6 +214,8 @@ "手机选项" "屏幕锁定" "关机" + + "错误报告" "提交错误报告" "这会收集有关当前设备状态的信息,并以电子邮件的形式进行发送。从开始生成错误报告到准备好发送需要一点时间,请耐心等待。" diff --git a/core/res/res/values-zh-rHK/strings.xml b/core/res/res/values-zh-rHK/strings.xml index ff4f95ece2ee..d3b52185078c 100644 --- a/core/res/res/values-zh-rHK/strings.xml +++ b/core/res/res/values-zh-rHK/strings.xml @@ -214,6 +214,8 @@ "手機選項" "螢幕鎖定" "關閉" + + "錯誤報告" "取得錯誤報告" "這會收集您目前裝置狀態的相關資訊,並以電郵傳送給您。從開始建立錯誤報告到準備傳送需要一段時間,請耐心等候。" diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml index 14fcd5cbf42f..355ffe728a0d 100644 --- a/core/res/res/values-zh-rTW/strings.xml +++ b/core/res/res/values-zh-rTW/strings.xml @@ -214,6 +214,8 @@ "電話選項" "螢幕鎖定" "關機" + + "錯誤報告" "取得錯誤報告" "這會收集您目前裝置狀態的相關資訊,以便透過電子郵件傳送。從錯誤報告開始建立到準備傳送的這段過程可能需要一點時間,敬請耐心等候。" diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml index 59b6fbe0ba39..da771c178131 100644 --- a/core/res/res/values-zu/strings.xml +++ b/core/res/res/values-zu/strings.xml @@ -214,6 +214,8 @@ "Okukhethwa kukho kwefoni" "Ukuvala isikrini" "Vala amandla" + + "Umbiko wephutha" "Thatha umbiko wesiphazamiso" "Lokhu kuzoqoqa ulwazi mayelana nesimo samanje sedivayisi yakho, ukuthumela imilayezo ye-imeyili. Kuzothatha isikhathi esincane kusuka ekuqaleni umbiko wesiphazamiso uze ulungele ukuthunyelwa; sicela ubekezele." -- GitLab From 45da426dd6ad12135a1618bebaa52cb83950efe4 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Mon, 26 Sep 2016 18:34:07 -0700 Subject: [PATCH 554/809] Import translations. DO NOT MERGE Change-Id: I19de444a1d3d0349d62e3ef1f6c5792abb1d3fb8 Auto-generated-cl: translation import --- packages/SystemUI/res/values-kn-rIN/strings.xml | 4 ++-- packages/SystemUI/res/values-lt/strings.xml | 4 ++-- packages/SystemUI/res/values-sv/strings.xml | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/SystemUI/res/values-kn-rIN/strings.xml b/packages/SystemUI/res/values-kn-rIN/strings.xml index ea2990086dab..9f01518d73b4 100644 --- a/packages/SystemUI/res/values-kn-rIN/strings.xml +++ b/packages/SystemUI/res/values-kn-rIN/strings.xml @@ -593,8 +593,8 @@ "ಬಟನ್ ಸೇರಿಸು" "ಉಳಿಸು" "ಮರುಹೊಂದಿಸು" - "ಯಾವುದೇ ಹೋಮ್ ಬಟನ್ ಕಂಡುಬಂದಿಲ್ಲ" - "ಈ ಸಾಧನವನ್ನು ನ್ಯಾವಿಗೇಟ್ ಮಾಡಲು ಹೋಮ್ ಬಟನ್ ಅಗತ್ಯವಿರುತ್ತದೆ. ಉಳಿಸುವ ಮೊದಲು ದಯವಿಟ್ಟು ಹೋಮ್ ಬಟನ್ ಸೇರಿಸಿ." + "ಯಾವುದೇ ಮುಖಪುಟ ಬಟನ್ ಕಂಡುಬಂದಿಲ್ಲ" + "ಈ ಸಾಧನವನ್ನು ನ್ಯಾವಿಗೇಟ್ ಮಾಡಲು ಮುಖಪುಟ ಬಟನ್ ಅಗತ್ಯವಿರುತ್ತದೆ. ಉಳಿಸುವ ಮೊದಲು ದಯವಿಟ್ಟು ಮುಖಪುಟ ಬಟನ್ ಸೇರಿಸಿ." "ಬಟನ್ ಅಳತೆ ಹೊಂದಿಸು" "ಕ್ಲಿಪ್‌ಬೋರ್ಡ್" "ಐಟಂಗಳನ್ನು ನೇರವಾಗಿ ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ಗೆ ಡ್ರ್ಯಾಗ್ ಮಾಡಲು ಕ್ಲಿಪ್‌ಬೋರ್ಡ್ ಅನುಮತಿಸುತ್ತದೆ. ಐಟಂಗಳು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವಾಗ ಅವುಗಳನ್ನು ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ನಿಂದ ನೇರವಾಗಿ ಹೊರಗೆ ಹಾಕಬಹುದಾಗಿರುತ್ತದೆ." diff --git a/packages/SystemUI/res/values-lt/strings.xml b/packages/SystemUI/res/values-lt/strings.xml index a76a6c5a5fbd..969a5b15c708 100644 --- a/packages/SystemUI/res/values-lt/strings.xml +++ b/packages/SystemUI/res/values-lt/strings.xml @@ -275,10 +275,10 @@ "„Bluetooth“ išjungta" "Nėra pasiekiamų susietų įrenginių" "Šviesumas" - "Automatinis kaitaliojimas" + "Automatinis pasukimas" "Automatiškai sukti ekraną" "Nustatyti kaip %s" - "Kaitaliojimas užrakintas" + "Pasukimas užrakintas" "Stačias" "Gulsčias" "Įvesties metodas" diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml index a6aa2d1c28c1..6b7eacc9513f 100644 --- a/packages/SystemUI/res/values-sv/strings.xml +++ b/packages/SystemUI/res/values-sv/strings.xml @@ -352,7 +352,7 @@ "+%d" "Mindre brådskande aviseringar nedan" "Tryck igen för att öppna" - "Svep uppåt om du vill låsa upp" + "Svep uppåt för att låsa upp" "Svep från ikonen och öppna telefonen" "Svep från ikonen och öppna röstassistenten" "Svep från ikonen och öppna kameran" -- GitLab From abf5b4cbf37c014b47d312ef77f48bf00422fd96 Mon Sep 17 00:00:00 2001 From: Sungsoo Date: Tue, 27 Sep 2016 10:19:29 +0900 Subject: [PATCH 555/809] ExifInterface: Update javadoc for saveAttributes Bug: 31319086 Test: Checked the created javadoc with "make docs" Change-Id: I97c77ba4f00a95bc5eedf1dcee942aebd2d89ccb --- media/java/android/media/ExifInterface.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/media/java/android/media/ExifInterface.java b/media/java/android/media/ExifInterface.java index 4848630baacf..fc15570cc0af 100644 --- a/media/java/android/media/ExifInterface.java +++ b/media/java/android/media/ExifInterface.java @@ -1551,6 +1551,11 @@ public class ExifInterface { * copying all the data from one file to another and deleting the old file and renaming the * other. It's best to use {@link #setAttribute(String,String)} to set all attributes to write * and make a single call rather than multiple calls for each attribute. + *

    + * This method is only supported for JPEG files. + *

    + * + * @throws UnsupportedOperationException If this method is called with unsupported files. */ public void saveAttributes() throws IOException { if (mIsRaw) { -- GitLab From aacd1ba6a7a9bb9d84da9b8bbacf284000867bb3 Mon Sep 17 00:00:00 2001 From: Kevin Hufnagle Date: Mon, 26 Sep 2016 19:28:37 -0700 Subject: [PATCH 556/809] docs: Fixed attribute mismatch between XML and Java code samples for a "Clip" drawable. Both code samples now reference the clip drawable itself as an ImageView object's background, not its drawable. Bug: 31658431 Change-Id: If42cf877ba151e989c344a591a642116979f56d1 --- docs/html/guide/topics/resources/drawable-resource.jd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/html/guide/topics/resources/drawable-resource.jd b/docs/html/guide/topics/resources/drawable-resource.jd index aae0cbae99b3..4587ae4ec5db 100644 --- a/docs/html/guide/topics/resources/drawable-resource.jd +++ b/docs/html/guide/topics/resources/drawable-resource.jd @@ -1270,7 +1270,7 @@ the right edge, a right gravity clips the left edge, and neither clips both edge progressively reveal the image:

     ImageView imageview = (ImageView) findViewById(R.id.image);
    -ClipDrawable drawable = (ClipDrawable) imageview.getDrawable();
    +ClipDrawable drawable = (ClipDrawable) imageview.getBackground();
     drawable.setLevel(drawable.getLevel() + 1000);
     
    -- GitLab From 22109c72fba0c002212d6d7f33487ab31ed9deb2 Mon Sep 17 00:00:00 2001 From: Bert McMeen Date: Mon, 29 Aug 2016 15:55:52 -0700 Subject: [PATCH 557/809] Docs: FDP3 pages for standalone apps Bug: 30305790 Change-Id: I6cacdc6f7df6d055cc78405d3805b6f0036e380d --- .../wear/preview/features/app-distribution.jd | 325 ++++++++++++ .../wear/preview/features/standalone-apps.jd | 499 ++++++++++++++++++ docs/html/wear/preview/images/apk-details.png | Bin 0 -> 11516 bytes docs/html/wear/preview/images/apk-tabs.png | Bin 0 -> 22654 bytes docs/html/wear/preview/images/current-apk.png | Bin 0 -> 22639 bytes 5 files changed, 824 insertions(+) create mode 100644 docs/html/wear/preview/features/app-distribution.jd create mode 100644 docs/html/wear/preview/features/standalone-apps.jd create mode 100644 docs/html/wear/preview/images/apk-details.png create mode 100644 docs/html/wear/preview/images/apk-tabs.png create mode 100644 docs/html/wear/preview/images/current-apk.png diff --git a/docs/html/wear/preview/features/app-distribution.jd b/docs/html/wear/preview/features/app-distribution.jd new file mode 100644 index 000000000000..319efa6b6554 --- /dev/null +++ b/docs/html/wear/preview/features/app-distribution.jd @@ -0,0 +1,325 @@ +page.title=App Distribution +meta.keywords="wear-preview" +page.tags="wear-preview" +page.image=images/cards/card-n-sdk_2x.png +@jd:body + + + +

    + With Android Wear 2.0, a user can visit the Play Store on a watch and + download a Wear app directly to the watch. +

    + +

    + Generally, a Wear 2.0 app in the Play Store needs + a minimum and target API level of 24 or higher in + the Android manifest file. The minimum SDK level can be 23 + only if you are using the same APK + for Wear 1.0 and 2.0 (and thus have an embedded Wear 1.0 APK). +

    + +

    + Publish Your APKs +

    + +

    + To make your app appear in the on-watch Play Store, upload + the watch APK in the Play Developer Console just as you would any other + APK. If you only have a watch APK and no phone APK, no other steps + are required. +

    + +

    + If you have a phone APK in addition to a watch APK, you must use the + Multi-APK delivery method. +

    + +

    + Run-time + permissions are required. +

    + +

    + Also see + + Standalone Apps. +

    + +

    + Distribution to Wear 2.0 watches +

    + +

    + If you only want your app to be distributed to Wear 2.0 watches, + it is unnecessary to embed the watch APK inside the the phone APK. +

    + +

    + If you want your app to + be distributed to Wear 1.0 watches, you need to embed the + watch APK inside the phone APK, as described directly below. +

    + +

    + Distribution to Wear 1.0 and 2.0 watches +

    + +

    + If you are already distributing your app to Wear 1.0 watches, + follow these steps: +

    + +
      +
    1. Provide a Wear 2.0 (standalone) version of your watch APK that can be made + available in the Play Store on Wear. +
    2. + +
    3. Continue embedding a Wear 1.0 APK in your phone APK, + for use by watches that do not have Wear 2.0. +
    4. +
    + +

    + Specifying a version code +

    + +

    + To ensure that a standalone APK acts as an upgrade to an embedded Wear APK, the + standalone Wear APK's + version code generally should be higher than the embedded Wear APK's version code. + (A phone APK's version code scheme can be independent from that of a watch + APK, although they must be unique.) However, the version codes + of the standalone APK and the embedded Wear APK can be the same if + the APKs are equivalent. If the APKs are not equivalent, + but the version code is the same, then when a watch updates from Wear 1.0 + to 2.0, the watch may get the new APK only after waiting for a + longer-than-expected period of time. +

    + +

    + Note that it currently is not possible to create a single APK that works + on a phone and watch. +

    + +

    + Support in the Gradle file +

    + +

    + If you have a Wear app that is intended for both Wear 1.0 and Wear 2.0, + consider using + product flavors. For example, + if you want to target both SDK version 23 and version 24, + update your Wear module's build.gradle file to include + the following if an existing embedded app has a minimum SDK version of 23: +

    + +
    +android {
    +    ...
    +    defaultConfig
    +    {
    +       // This is the minSdkVersion of the Wear 1.0 embedded app
    +       minSdkVersion 23
    +       ...
    +    }
    +    buildTypes {...}
    +    productFlavors {
    +        wear1 {
    +          // Use the defaultConfig value
    +        }
    +        wear2 {
    +            minSdkVersion 24
    +        }
    +    }
    +
    + +

    + Then update your phone module’s build.gradle file, replacing + wearApp as follows: +

    + +
    +dependencies {
    +    ...
    +    wearApp project(path: ':wearable', configuration: 'wear1Release')
    +}
    +
    + +

    + A + build variant is a combination of the product flavor and build type. + In Android Studio, select the appropriate build variant when + debugging or publishing your app. For example, if wear2 is a + product flavor, select wear2Release as the + release build variant. +

    + +

    + For purposes of code that is Wear 2.0-specific or Wear 1.0-specific, + consider + source sets for build variants. +

    + + +

    + Setting Up Targeting for a Watch +

    + +

    + In your Android Manifest file, you must specify the following feature + restriction: the uses-feature element is set to + android.hardware.type.watch. Do not set + the required attribute to false. + A single APK for Wear and non-Wear devices presently is not supported. +

    + +

    + Thus, if an APK has the following setting, Google Play provides the APK + to watches only: +

    + +
    +<manifest package="com.example.standalone"
    +    xmlns:android="http://schemas.android.com/apk/res/android">
    +    <uses-feature
    +        android:name="android.hardware.type.watch"
    +    ...
    +</manifest>
    +
    + +

    + The android.hardware.type.watch setting above can be + combined with other criteria such as SDK version, screen resolution, and + CPU architecture. Thus, different Wear APKs can target different hardware + configurations. +

    + +

    + Using the Play Developer Console +

    + +

    + Below is an introduction to uploading + a standalone Wear APK to an application listing using the Play Developer + Console. +

    + +

    + If your app supports both Wear 1.0 and Wear 2.0, continue embedding the + Wear 1.0 APK (minimum SDK version of 20, 21, or 22, or 23) in the phone + APK and upload the phone APK. In addition, upload your standalone Wear + 2.0 APK (which has a minimum SDK version of 24). +

    + +

    + Also see + Multiple APK Support and + Manage Your App. + Before uploading an APK as described below, the APK + must be + signed. +

    + +

    + Uploading your APK +

    + +

    + Go to the Play Developer + Console, navigate to your application listing, and select + APK in the left-navigation panel. An APK screen similar to + the following is displayed: +

    + alt_text + +

    + You may need to use advanced mode for uploads, as follows: +

    + +
      +
    • Advanced mode is unnecessary if you only have a Wear 2.0 app and no + phone app. Instead of advanced mode, use simple mode.
    • + +
    • Use advanced mode if you support Wear 1.0 or have a phone app.
    • +
    + +

    + Therefore, on the above APK screen, to determine whether to click + the Switch to advanced mode + button, consider the following: +

    + +
      +
    • If your app does not support Wear 1.0, and only has a watch APK, + upload it using simple mode. +
    • + +
    • If your app does not support Wear 1.0 and has both a watch APK and a + phone APK, click Switch to advanced mode + to upload the watch and phone APKs. +
    • +
    + +

    + See + Simple mode and advanced mode for more information about toggling + between modes. +

    + +

    + Select the appropriate tab (Production, Beta + Testing, or Alpha Testing) for your upload. + Then click + the Upload New APK button and select your standalone + Wear APK for upload. +

    + +

    + Reviewing and publishing +

    + +

    + After you upload your standalone Wear APK and scroll down the resulting + page, the APK is shown in the Current APK table, with a + version number, in a similar way to the following: +

    + alt_text + +

    + Finally, in the Current APK table above, click the line + with the Version to review the APK. The APK + Details panel is displayed. You can verify, for example, that + the number in the Supported Android Devices line is far + fewer than the number would be for a typical phone APK: +

    + alt_text + +

    + When you are ready, publish + your app. +

    diff --git a/docs/html/wear/preview/features/standalone-apps.jd b/docs/html/wear/preview/features/standalone-apps.jd new file mode 100644 index 000000000000..5c1930dedf86 --- /dev/null +++ b/docs/html/wear/preview/features/standalone-apps.jd @@ -0,0 +1,499 @@ +page.title=Standalone Apps +meta.keywords="wear-preview" +page.tags="wear-preview" +page.image=images/cards/card-n-sdk_2x.png + +@jd:body + + + +

    + In Android Wear 2.0, apps can work independently of a phone. Users can + complete more tasks on a watch, without access to an Android or iOS + phone. +

    + +

    + Planning Your Phone and Watch Apps +

    + +

    + A watch APK targeting Wear 2.0 should not be embedded in a phone APK. + For more information, see + + App Distribution. +

    + +

    + Generally, the minimum and target API level for a standalone app, and + for Wear 2.0, is level 24. The minimum SDK level can be 23 + only if you are using the same APK + for Wear 1.0 and 2.0 (and thus have an embedded Wear 1.0 APK). +

    + +

    + If you build a standalone Wear 2.0 APK and will continue to have a + Wear 1.0 APK, please do both of the following: +

    + +
      +
    • Provide a standalone version of the Wear APK, and +
    • + +
    • Continue embedding a version of the Wear APK in your phone APK +
    • +
    + +

    + Caution: For the Wear 2.0 Developer Preview, if you + publish an update to your production phone APK that has removed an embedded + Wear APK, production users who update the phone APK before installing + your standalone Wear APK will lose their existing Wear app and its data. + Therefore, it's important that you continue to embed + your watch APK into your phone APK. +

    + +

    + + Run-time permissions are required for standalone apps. +

    + +

    + Shared code and data storage +

    + +

    + Code can be shared between a Wear app and a phone app. Optionally, code + that is specific to a form factor can be in a separate module. +

    + +

    + For example, common code for networking can be in a shared library. +

    + +

    + You can use standard Android storage APIs to store data locally. + For example, you can use + the + SharedPreferences APIs, SQLite, or internal storage (as you would in + the case of a phone). +

    + +

    + Detecting your phone app or watch app +

    + +

    + If a user of your watch app needs your phone app, your watch app can + detect if the phone app is available. Using the + CapabilityApi, your phone app or watch app can advertise its presence + to a paired device. It can do so statically and dynamically. When an app + is on a node in a user's Wear network (i.e., on a phone, paired watch, or + in the cloud), the CapabilityApi enables another + app to detect if it is installed. For more information, see + Advertise capabilities. +

    + +

    + If your phone app is unavailable, your can check if the Play Store is + available on the phone, as described below, before directing the user to + go to the Play Store (to install your phone app). +

    + +

    + Checking for Play Store availability on a phone +

    + +

    + iPhones and some Android phones lack the Play Store. A standalone Wear + app can check if the paired phone has the Play Store, before directing a + user to go there to install your phone app. The + PlayStoreAvailability class contains a + getPlayStoreAvailabilityOnPhone() method that enables your + Wear app to check if a companion phone has the Play Store. +

    + +

    + More information about the PlayStoreAvailability class is + available when you + download the Android Wear 2.0 Preview Reference. Here is a snippet + that uses the getPlayStoreAvailabilityOnPhone() method to + determine if the paired phone has the Play Store: +

    + +
    +int playStoreAvailabilityOnPhone =
    +PlayStoreAvailability.getPlayStoreAvailabilityOnPhone(context);
    +
    + +

    + The value returned by the getPlayStoreAvailabilityOnPhone() + method is one of the following: +

    + + + + + + + + + + + + + + + + + + + + + +
    + Return value + + Description +
    + PLAY_STORE_ON_PHONE_AVAILABLE + + The Play Store is available on the companion phone. +
    + PLAY_STORE_ON_PHONE_UNAVAILABLE + + The Play Store is not available on the companion phone. +
    + PLAY_STORE_ON_PHONE_ERROR_UNKNOWN + + An error occurred in the check for the Play Store; another check + should be made later. +
    + +

    + Network Access and Cloud Messaging +

    + +

    + Android Wear apps can make their own network requests. When a watch has a + Bluetooth connection to a phone, the watch's network traffic is proxied + through the phone. When a phone is unavailable, Wi-Fi and cellular + networks are used, depending on the hardware. The Wear platform handles + transitions between networks. A watch's network access thus does not + require the + Wearable Data Layer API. +

    + +

    + For sending notifications, apps can directly use Firebase Cloud Messaging + (FCM), which replaces Google Cloud Messaging, or continue to use GCM. +

    + +

    + No APIs for network access or FCM are specific to Android Wear. + Refer to the existing documentation about + connecting to a network and cloud messaging. +

    + +

    + You can use protocols such as HTTP, TCP, and UDP. However, + the + android.webkit APIs are not available. Therefore, + use of cookies is available by reading and writing headers on + requests and responses, but the + CookieManager class is not available. +

    + +

    + FCM works well with + + Doze. +

    + +

    + Additionally, we recommend using the following: +

    + + + +

    + For foreground use cases, we currently recommend that you make a + request for an unmetered network. Here is an example of using + the multi-networking APIs to request an unmetered network: +

    + +
    +ConnectivityManager.NetworkCallback networkCallback =
    +  new ConnectivityManager.NetworkCallback() {
    +    @Override
    +    public void onAvailable(Network network) {
    +      // access network
    +      }
    +    };
    +ConnectivityManager connectivityManager =
    +  (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    +
    +connectivityManager.requestNetwork(new NetworkRequest.Builder()
    +  .addCapability(NET_CAPABILITY_NOT_METERED)
    +  .build(), networkCallback);
    +
    + +

    + We also recommend setting a timer for frontend scenarios + to prevent a user from potentially waiting for a long time. + When the network is no longer needed, or if the timer fires, + the network callback needs to be unregistered: +

    + +
    +connectivityManager.unregisterNetworkCallback(networkCallback):
    +
    + +

    + A Wear app can communicate with a phone app using the Wearable + Data Layer API, but connecting to a network using that API is + discouraged. +

    + +

    + Obtaining only the necessary data +

    + +

    + When obtaining data from the cloud, get only the necessary data. + Otherwise, you may introduce unnecessary latency, memory use, and battery + use. +

    + +

    + When a watch is connected over a Bluetooth LE connection, your app may + have access to a bandwidth of only 10 kilobytes per second. Therefore, + the following steps are recommended: +

    + +
      +
    • Audit your network requests and responses for extra data that only is + for a phone app +
    • + +
    • Shrink large images before sending them over a network to a watch +
    • +
    + +

    + Using Background Services +

    + +

    + To ensure that background tasks are correctly executed, they must account + for + Doze. In Android 6.0, Doze and App Standby resulted in significant + improvements to battery life by allowing devices to enter deep sleep when + idle and stationary. +

    + +

    + Doze is enhanced + in Android Nougat and Android Wear 2.0. When a screen turns off or enters + ambient mode for a long enough time, a subset of Doze can occur and + background tasks may be deferred for certain periods. Later, when a + device is stationary for an extended time, regular Doze occurs. +

    + +

    + You should schedule jobs with the + JobScheduler API, which enables your app to register for Doze-safe + code execution. When scheduling jobs, you can select constraints such as + periodic execution and the need for connectivity or device charging. + It is important to configure jobs in a way that does not adversely + impact battery life. Jobs should use a + + JobInfo.Builder object to provide constraints and metadata, e.g. with + one or more of the following methods for a task: +

    + +
      +
    • To schedule a task that requires networking, use + setRequiredNetworkType(int networkType), specifying + NETWORK_TYPE_ANY or NETWORK_TYPE_UNMETERED; + note that NETWORK_TYPE_UNMETERED is for large data transfers + while NETWORK_TYPE_ANY is for small transfers +
    • + +
    • To schedule a task while charging, use + setRequiresCharging(boolean requiresCharging) +
    • + +
    • For specifying that a device is idle for a task, use + setRequiresDeviceIdle(boolean requiresDeviceIdle); this + method can be useful for lower-priority background work or + synchronization, especially when used with + setRequiresCharging +
    • +
    + +

    + Note that some low-bandwidth networks, such as Bluetooth LE, are + considered metered. +

    + +

    + Scheduling with constraints +

    + +

    + You can schedule a task that requires constraints. In the example below, + a JobScheduler object activates MyJobService + when the following constraints are met: +

    + +
      +
    • Unmetered networking +
    • + +
    • Device charging +
    • +
    + +

    + You can use the builder method setExtras to attach a bundle + of app-specific metadata to the job request. When your job executes, this + bundle is provided to your job service. Note the MY_JOB_ID + value passed to the JobInfo.Builder constructor. This + MY_JOB_ID value is an app-provided identifier. Subsequent + calls to cancel, and subsequent jobs created with that same value, will + update the existing job: +

    + +
    +JobInfo jobInfo = new JobInfo.Builder(MY_JOB_ID,
    +        new ComponentName(this, MyJobService.class))
    +        .setRequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED)
    +        .setRequiresCharging(true)
    +        .setExtras(extras)
    +        .build();
    +((JobScheduler) getSystemService(JOB_SCHEDULER_SERVICE))
    +        .schedule(jobInfo);
    +
    + +

    + Below is an implementation of + JobService to handle the job above. When the job executes, a + JobParameters object is passed into the + onStartJob method. The JobParameters object + enables you to get the job ID value along with any extras bundle provided + when scheduling the job. The onStartJob method is called on + the main application thread, and therefore any expensive logic should be + run from a separate thread. In the example, an AsyncTask is + used to run code in the background. When work is complete, you would call + the jobFinished method to notify JobScheduler + that the task is done: +

    + +
    +public class MyJobService extends JobService {
    +    @Override public boolean onStartJob(JobParameters params) {
    +        new JobAsyncTask().execute(params);
    +        return true;
    +    }
    +
    +    private class JobAsyncTask extends AsyncTask
    +
    + +

    + Cloud Notifications Using FCM +

    + +

    + FCM is the recommended way to send notifications to a watch. +

    + +

    + Provide for messages from FCM by collecting a registration token for a + device when your Wear app runs. Then include the token as part of the + destination when your server sends messages to the FCM REST endpoint. FCM + sends messages to the device identified by the token. +

    + +

    + An FCM message is in JSON format and can include one or both of the + following payloads: +

    + +
      +
    • + Notification payload. When a notification payload is + received by a watch, the data is displayed to a user directly in the + notification stream. When the user taps the notification, your app is + launched. +
    • + +
    • + Data payload. The payload has a set of custom + key/value pairs. The payload and is delivered as data to your Wear app. +
    • +
    + +

    + For more information and examples of payloads, see About + FCM Messages. +

    + +

    + Notifications from a Companion Phone +

    + +

    + By default, notifications are bridged (shared) from a phone app to a + watch. If you have a standalone Wear app and a corresponding phone app, + duplicate notifications can occur. For example, the same notification + from FCM, received by both a phone and a watch, could be + displayed by both devices independently. +

    + +

    + For information about preventing duplicate notifications, see Bridging + Mode for Notifications. +

    diff --git a/docs/html/wear/preview/images/apk-details.png b/docs/html/wear/preview/images/apk-details.png new file mode 100644 index 0000000000000000000000000000000000000000..eb3b8591f53fa919c95fa3acdac602b45587ac15 GIT binary patch literal 11516 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 E033UMy8r+H literal 0 HcmV?d00001 diff --git a/docs/html/wear/preview/images/apk-tabs.png b/docs/html/wear/preview/images/apk-tabs.png new file mode 100644 index 0000000000000000000000000000000000000000..949b98f75b7d35ad78a87b51da9046073625e580 GIT binary patch literal 22654 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 M$<49c{@jhf0Q6V_zyJUM literal 0 HcmV?d00001 diff --git a/docs/html/wear/preview/images/current-apk.png b/docs/html/wear/preview/images/current-apk.png new file mode 100644 index 0000000000000000000000000000000000000000..2545f925f60812cdb52b87a303fd73af94f68655 GIT binary patch literal 22639 zcmeFYbyS;Ow=Y^OZ6Q#hEmo|w#odYoic4`VPJ!U=5UhmKQrwHT#ogTsl;Rp7MS}+m z9slQxwty?&(cK|oPxC?R(-MaNwKtWnU%X?<0)hFSRb|%IM*>c@twcxd$0h?9gWZ4%T z8QcuWtAF6E!U=Pn4>pC~nfc5#6Rg2R(7!xmo6Y`=BdBWN`wkP`xy~cCZk-8|S|_ck zHVJKY)AyIB5cAdtu@otZGEdU{#E^dXv@E49q*q%7_x2!x7}@k2CjR>SDgU(oUt==@ zD9%4)Gr<4(;rcRhXjIV7m3J_3b6(09y_LK9gn}n9{86TtfX(bl-o<*}`D*;uQHRJI z?5en8`S}8O{T@@C4Rkk&UMkd^&l0PsQ0R)HLV3QAl+mnwk^RBN?{br$9ACE`ZwYC6Zp?ZHO+SDhOQln(954&RmKfuKl{E`G7QKv2YH5-;z2;4KFcQ-QBRVV3z7paMf8nf_XFdBkGuoZ2^=V{mWpgteit$u-dAcM@jttJbU8Y)zRD%^RD{)SH+IyPcjK9J@(A=-FMf86)svu=VV--c6a zem=$oVt$Lbo+@ozeIx~(Ssc~KW1qRPBxa(IM#qiRt)?e-FSTUnA@!bOcox5N&K7Lc z=xJ$V(B=R=#dAk zI{b2m?vLPtoT55Rb2m9(ZOt+}m6asK6I;?ba|61jzecrOVe7GMT+le{`t9Hj=cC|6 zmN$#23!>y7rgz9;3QDkCnWQTdL4^^Ta&NrRJ6XE*i;mG9rgP^Z#2Oyf-zY+?G0t|d z#~deMvUVO+GE;5RsZOr!Cz&ox-4#(s=MQld6ZMMYn3JOg-)Pc!~ zt!7l3)Eb%^&luyxv?UyB;KmofGHlr&i_FRjDynQb(OgR#!Ef1ZMWqr>jumCR345w1 zXq+h5^Li^L!bMzD^Rw1hkWiyrv*n(JhuDeL$<~=SIYX)Olj~L4Z8t17EtHaCtwGqK<~ZtX9>WJ-gx4B!owvF1Ss#e}1GluG;p|aZuU5 z-$!@%4co+-*65v9qN^A{3ED$}7;05J4%zost=zYZ>7trS2tVH8i zf8o7&i-Olbj196RL?PrFw|5-XL~y-+$p*2F^eoRPeAW7$Gk?k}r$6OMMWAQTz0ymn zwcdDyz*XQtrY)wylhSomLjT%FuIQPX^EP*~cvsBZn3Jp$A6xiF0#OhwCFw<6^TH9BnEF)&v&@ z5o4>Iq1WMr5wmrXynFC*qd0%>_$J)|MB6D8j_g=11KnXzP~G-3$TL^1t zhYHLj>BT#SEDmy@$Q%IrXAWkF=<29YQKc%DML^%*7@DQIg%12zhFnh05E5JK<|opw zSTv>oejx}vzkhs()$NCa-`n@)0j2rL^LfF3NHHKElyl{}-aCS1{_PlXm?qK)0JWoa za|km4LYESZEo$hv^K-^MXv%=M<|DXpLDh5KQ$^MayaOwBPp7ZM16P&9%YT#CT~K5# zDSQ)b56m8Xi>TyPZI==FHBT;Jhm>4?Zbx$|u;K*4$DTM$F6<3GE@|2hbrAUZ!k%}p zT*vWQ3Ijd()$>sgrBn{pdp0glo}hf<+mfVzqz5dz?b5`LAt~qe@LZ%mzS4ZYyX|ND z-sDLfO+i-8f>>IelupU%V4ra1>G=U?@RaBVSHA4A-`tl@H%By7BD}`4w-1$8WA1QJ z#=7JM%2@E?wBjETAG;C30az!e48;G395Df}&I}=R~LKsw&QNu23`{SGJ1blVX0&d#qJwy(Ijo z^FjU>ug>8C>$9(5e&v_q)30FF*hhB*13} z0Db)2Mgp0+sEo3CD1l?0-w}fFEPHJ!ZOc{+!s4HlhV|1Ca+8;AlBfW>UaOA26*#!& z#;tG$bS1wx>vIt0T<;8Nbp3IM1Z^(OL$0sw2@Rl;tx}RJ&e#OqL zy)4^`>=tNU>q>o+%|j0G1%|2}b&E~Z#dzGCOU*C;wwU@X){lPTRz>8i#M*CFHcfET zQ8?P#!2!)~jyfS#@ST6gOOk-4u`^5ZVPhbly1EK$zB(sZJvp1U%YGZ0=)e^MqScih ziK3H|B|y$3@9k`}y*xv;-CZaNy|Z2UO7q$A(Z+tJT*Qq^CYKq}_%s+{u3h_R9N%?S z7k3BTKPLF2)`4q7Vp1Y8^de2+4R~dE=y0?8QfsT7R87RK5v?u?LIn<_dr!s&fCjip zBF2!5+S8?vyfDk*>JG@%^Gmpo+Zw7Kq2s&Rt-aoB-@tYo)0>T8IT)h^)`cyrpuGqj zPC9*dZ`HuGH@h72Y3u~mrVML(M!&7k1R73RMo{iiU-O!4X}9M`nq2hV5ldbZ?1!Tn zBTS76Oio(UTZX>uI&UrJtAxsuLp$Dbl_OWGYWtqblp)0Qz|0}M4>wFl{^uTZZSc)`CZ67=1Y-5B{}fKmvZ=OoqwbJgJ>PhSgO1j12} zFVBPRCv&?KCYVcDTYW6U9{+H=6YY@#+4}cF>R(o=(Gio?GO3cg;Yj0iW7QgfRJic^ zb+homsr~$q(;|N5c`F8kZikS%oL59qZSm|6;P3w`9ZzK`fU>m0%1`Fps;w-_Fb!v} zCEQG?hORV1C-<*=K1wUz1>ac?pmTm3Eq56$zO37D!ID&6A9qD14q<9y^-T zCI@LHLjSxI-QgTA>Vb(I_PQ8$WEJTawR$W+dtUQY@QIUq-~wv)aMCA)95@rOjvL7C z>fBE&dLB7%lsBxNHL$DHyiqv#Q4M#hGiunySX3Y7*CV0%{DL-vLM>WOYnt~7*+ax} zgic__Ntl)JC;##t*JFr79L=MRVUG_pyqKU}ty4jlsfdJF=kSPB zRgt@`$a3m}6G7%++HUgS+oA_uT+A;G@-#w@xKBjL^~H3kwc$4K@<8X(ln457+IxLs zcl&ve@%Ot)B zm?EiEJS^rZAN8}(M`PmEm(Tid|Ka48Arye;=LQVT$rMj$Aef%}JfQsLfww=$Rp0Ja z02D6OIKGA|5~BU<*-wvw05u$w^^c^hrPKW*&ErFNr<^hvW23V+4r0ze&d9cD)Zm%WBk4{w`G|+Y*~v_cHcqdenFo%-G?Nm2#hx{%&Y0bK#{dOkS!@<8meRKNG}O6f_-lBLLPlQBXBh?upo^%b@O9ei?k!rEb{gHD)C zPO!uLyC(^~5-7ii)dM9>H9TfUpL30(Q8U^0<-QS#tK>7Fzop`?fP7QOESi-cn;-A!i?rv}Ue zTi)!ZRFOcJc<@F2vB${)msq_mcElzxeO^>uz|NB3hQyVrUZ8qUUxiX|_;kD7xuD7f1g{!W(kEIa_I05^lvdzEVDUgECI;N-OiYxyhu5Jxk`K#F^6LSQ!}yP{4_J=;Fa6Lf z#1!JH4~u6b&JR1FU297p^T`8evrSe)#o3}&jq^REy$0T>M#g>=|NV}-r^OKz1dDdF zyLhCRsPT1}VI2KvNAG1|+qUIOOTc(wh|-leq&{N7-yAnHGnyPM=$c(?xFb;7rs|l=szbmxxtCip; zroYTQK@SMH#;$WD6IbokHkYag!g3s)dgGNxQr1*C1+jY_sXMlXh}OY+_VQ8V>myn$ z#q4!JjImCfWPkrz-2CC;o>R>Uij_g^t=$9+_ToGeYuA3os@rNiF#Bv|Av+m`sydq= zJDe9Y2ci2QgT_3j3nVr*K)@wszKVZ;K{-}vXxhMW=SaJ(-bh?G#m2DM(a*2miPodE z12eog!&>jh1O;>t1fyna>Q*r`dxwN5!8#2RPRP716 zr8U|=f{o2ShlK7guaf-Bv_j5mN98))EqUO?Tu)={zL@e14F$KH9F@gU;Pt3S#KP9K z%g7$Da9S+FDe;)1zHoT)@}MgNle`+TQ@(AIMYVT!?#X_iaIo3LV}d5&G&=J^P5Ggi zZs0bx7^W@Y2IIV_pFH=+zS?Y;t(aQ35dS$3dP~GL6x63ART}5f&O3rm8nToV+Mb-9 zY}K@k;xDpq&o`;3NtnJi(SkiW@ZH(lY4(@x-HAqMW=u4U5Z?7RWGL!FoW5Rfziw+O z-|T8vnZ(8Ay)1h010Rp7j7V!L+=*E$V9*ak5Jmz;5J&X^dO+z7$XZz&tR+xN6#Pu2=?%`Jak zQZ>I-+W?X4&Dv|~;{|Qa#hyvP@>m!C3O6IJ7gWEZ|pypmvo*sv!cT3J3K%5B=dPdhbidXph$;TO94g=c)}- z8P&qqcP$Bv7nq5XJHC!9)*e;DAkjksuRTs?4t0v$Ow`|&5?H4kPN_OoMNK|e*4ZzL zo~x}(>OBtJefQK(&nL~Q%u%WrX$?Qyxn=IYhf3f11lO$Fx_fke$=Dm$+OzsQRMp}t z->yc*f*(gUgr9ubQiyt6Ydc`Zm!t5PU0!#2^?0^!Kb{~a*5p^YGp+}iOInxHu|AJ1 zeVX4OF{4YUxHCEXxaiY4fC`wAI33TrQhGhY_r%$u-w+IVH&v;@c=7SzinGS_+Hle` zn|&0oi_~GE389kGZTg7?`fU>Y@HknSU%Lu|mP`@Y#G8Jr#=ds@NkLUf+QWr9!x4em zX9El8#Vu`~hgO-fDKAOEdy9*~Tr2|=?Mr{;-+0ZNgRUrs?1 zuW)embw8}beS|Ff;%a>>dx~iQAATo##Q|I%_Xeqioq`4V|=}Dp&{<2&g`S!#8rUwGPW~~+?+9f>Kb84<4I(FYVo-_w#cXyy8c)~kIA459?irh&dYI~V& z(|8@|4a2p76k)EKK`aGuSD1N!K014 zX`rLVd7E+1nLNUrIcgTTJZjrUdEo;C6o}i75iAA*7{65E?~y2aY3TXmok4Hch)PQdXMohIuX> z5Tn4*UT~fD)upXs2+b;=?pjLmD&tE7iD*sQIhaf*mCsF#3*AR63(oA=KLzb;+gyNt z_5TX~6=U`y-sQ@4b!nHJA>s@S&|RB&%;#x;DG@r zM z4tT7Fc{5{wSJjEy%}8-Jo}KwrxsFMrug<4B^-eY_LHP^D_FN4Nw&m;(@-vPe!jXgQ zPT}4l?dkxeqM&NR(B37p#q%p)67M;NO>C!?ZzC@_>UY*OsH@g`R_YznTAXXoTw7=P z@Z7@xw z9-t{g-L=~{fYaD=trpsNViRJiiLy>C$YkNhDMSl182%~7fj`N?9q2brZEv0G-CW$q zR%_c2`S0n#OU-FdxXH2o8wbM^pBp-y^rP{2cKqEw98BK3=sY?Tr)ck#FP+5HBS)L^ zQ%23So7ar=)<1BPX-wSA~X;b6h=CJB^~nBu^EtuYrn!w5+UU2ZKgdRili^|;wLxgg7JgRIj=-)o3J#22@? zca7<=&4|4k3!|GOTHaifp;gv7*A)t1nbsrCJ1{NHsQ9U1l0Rt1<*tJ`CLj|mwBbvP zJ4I#*p*Ld>Y!A9cJfDQttYInXhf`nszo38DVAs)W3VmnOoAB{7s2V!;Xp6I2!?x3r z)>l~t@T(p&lKfg{U+m^iP=))j&7|sTK88Q?Y94K{YE&=|LDh|6TDzlCH0oFuz%!!X z0k<5}tGc|!H6UPBI4sa^-tOKeCPO&rue#50oS)o%GAT(>y*96i1%W~P><|-w3ztr{ zWBW2qf@B#w+Z}7)6ALIz*g~pJ-bV`w^6_~KJ7Uw%4=*%E{2&-eZmza^)E5DAOg2kr z<8LI@_MMU|A*@ShhTH1)-D`iNXdG3q!q$$KdS9PSdxLA=C3eQxw(OgnsoK9;$C9d~ z>IuZ>+n@%biRH36`nVM`dl*`=R&0mHEYDh9`cYDHocInkJt?DcKe@TS0ck%_irtuH z{bNt>xC{lLOJ*V(vNJVKTb_J-4DM(O;D6T5U5~lQqlPk>vPstqneQ1vXz6ijLJFMz zs!Q)casFr2gy5fr>45;@Pk$=u|E!kpJlLoE_f+=Z_3=BdQ3>h)<(hn7b1jKt-05c* zkNu#i0*DlQ)!45zy^rM`FEXUNGeC#6Twgse_ZfAo*tuCVvFfZn zuwdajUoNk=B@7QVdzkdF^?livRR+**I1Rg_irw~ z&=D$4Q1-ff4d!NJ`*}y|KQ|a>!Ie{vm0l0T7MAE$t7T%r_e`MQYzFWjH-M70=-v-% zDJUr=_!kmr43K>&iwi=oj=w8PU#P5}!=U?Y_~)FY{k#5yvx#ugUF;>spExv5@3M2y z4nAojHdwe$B&935c=x6NNgRN~QvFP>7tE%JB>t0!hg3k~cf9l=HZmo&M^%K%V%$Dd|>))T>Xp-N{t*Y}K=H$V8KosrRWtV5}z19Xp!0DtuVMG5zzbV9_C!v?F zh{zLPqUheZbe_8wjY#w1GpcjOdoDT&ouHc z+nKt~0(1OlsHm9k;ESpkw^k}G{LZ3peh7Y zfpzxmd%JtzBs^*5<8Sk-7#~73GqM;-Ni6zlY0p~-8ad1DRSu@#^0R7 z)-ZBJep}k1qVd@#s?|Fp3G~pK5qCQ+*E+Ud=G>NNH+Hw7&qHo&(QRC;S>TbEl(Q~B z=XkUisIJm;;m_VkJN|SM*!T+0{6PI*91bE;jQl_j4VUZ z#!dEi*3G-S<;_iU<)mf!fA3@1O;m2LK+){FCfIfDf|?g-%I8>*9E~ zJMs_9Owhq+;FxY|X4h6YTh?ARUQopLxapm;KqCsFOt0AY^B*os3WzfV|4(Nl6<&|mIGD>7xNZz>be@av$hHy}Z7n_z41e&qOYS2Mm4nJ&Dr)dP=Qs=5nn)iU zc2WM;n}9CkTTOBWflj_qcBjU`KZ}F5^~#!8Vl_*QeKPoFh$l{6QYeHr^ziw|!wi)+9m@=! zK&619$;1^~%Ga-x_EdE(Lj!=Anh1Fh=2sQsJ7VptPy0%oc!Q%(fAXDq@y~apcivC7 z2>6x!m|*67xN);^8tc=%ZQ^|C$lf=(FpwanypG^+?3whxuyL(ByJqNS**Nny(eFLD zEc5StzmJoO6vbGjUaQs+1Fr4hu+hL)MrF%K@TRKgQB;WelP1@cgfASl`W+cA#E^7> zRfkEAGuqj)EGjo|F zBSuPw;4oRbx~r|QNO@QrX+V9`Sz!E@ZJQ)Dqo5~BSB8%~T}AVQkYx3B$VuZ`ocr^e zYg-qM@$sP%l+S92#Uu|;SjT<;RKJVLr>y6>!~CFUQeq?hIyifUJHUZamV~)wGgfPr zWcDEk{n4!)|B+#i1WuB)HDC8{0WG#E-;<|*vP~OkaTMwamGP|u5}CPQIRojN0Q&dvk6>94v%WT&JW*V7669mmOj`%V^myS2f*esV$t7 zukwkz*IY#hc$i4YG!dPa-8nMcohA%UFNEJ;eoT4sVB0uDJ2U?&XJSjIpRRyWDMg3@ z+A2#&V2H;eDMj9c^@96yxW3aDF#)B>P*$~0LWd0>)V)kun-SRF5!ft$kvIkEv5@#W zgfJbAiXEGvoAjs+RjhU62ZmoZhNgIf5>@}iRikPWQ7(?N=w)cRa0#)r{up^4)3t9Lx6V{i=bJz=s;(-A42uVe%p(e%PEzyBH4MXN{ErUG$ zPd=gX&5aT)rPfa<;`FsmQ)r?Zttsih;S_)rTVyF%bz+jd4U1BrnLw^27|Cn*Fzw(> zt!r8%>on$J!_zugHxDznl+I%^=~teSC3EJfyi}iABVEVTG}xHIwG;K9wn?OIxSk8G zv1`n;g3>K1++S!+7Qka&6gPh+_wjRoH*ZN9NYt^?RRqrl?-XoloEFj; zD>Ly`^9c7x7xNu}rhH^6)uV<@D}o!I!;kO6DS;}Mauqxl1}Zwe7jDRzSwCD&WXrrA zmlnTF+lkwxk1cl(OebhlfJ&Au6PV_>u<1{nT9zB#z{yPQN|l=il~a&ia$4HOUf( zzSeKrW7#7M#*11NHUF7YS*f?pMPRX4Ng8_B6hN2~w_qWrp+P$a%Jh&Fc%&`!coARU zcGWo`>|kc|v#Y{zjj)znxDkVRNqbPoC_hw!mc0gV>=i>rZ;X-caD#CfRS6xRT$J{d zeuuNpr;f!5BF2VF^sP^@{=?Cdd?Hj^fC|m$;KvP2B{tI(vG(6RO2D(*N{j7#V$UUA28opEcK!N& zs=&?X!-p#C_IR8}3#Ok8>pN+y*>`+zuOCn!L9{bWl4NUzz)Z|?58w2^sIHK94S!?N z=y8Gaa1fLAf!eU`xTt~%>j6^GZS;1r-(R^EB|o`vzuP1wA*A0nw=WfA<7qh9UAiMQ zu=jYwt;KGwBC+;sKI<$_PpOTJY=!z4bFWte-+9O*#uUxZakI_6>xLBs>!BqEFh$8c z13KJHc>uIgCzuuWs*%p(Cya|APDS2PvzjmA$=jnw7}#i0%NyFk|5=>5e!TZo$RgU5 zQlhO^Hb^InL~BC65rj*@ca13LAh^x3ZoXY*p{re*UdkRX1Q}Y{aBGf~p^WTV(AL-F zI=1;mEM#M^nG&y{ z9UxElQ6sI~O^N0jjv0C{+lAi`N_z02<9?l2dm!_2xo!RHo<9z7{Kv1DdkEr}aWT;#Ck2zYthr=k2eKvvotdWPPri8Gs>)&se9C4E+72j#%INv1O#pajGick6PSYY(;5?7rE znH2dHdfbbKn5YhFyl+3_`#f6r6ZE(<>EL-vOriGrM1(VZcgKlJNW~dkZooaGPitl} zdd%*ooYLFlI85w7gkUu#4(%oEwd&iXhfy!EI%g7cdqu;^KWSlXZ3#uA{U*>yHO~+$ zztPidCQI8%R~hHDyvO>%(cGe?uRZm_%-Ma;1Nk!*fk||XPbP~qfKL&I+OR%xi)MS!}^zrN!kyS zmZSYu+w<4>GvKq;wd+==h>zjTp7qBB_~;{GjdY-Wv(g4(jT+*6;uVz|`L{v$(p?)c z3`^3#)pUaYZQp|xYd%GQ`=Ea(X zX`ZjGqM=5U(g+9I9`^h9)3t-t+^d>e2Zgq|MoxqAG>&euzb29c|MZUBrgwilSx>1~ z3Fmnd=VqZ`8}$<K1$e`g|iD`3+(yFOdbStybcdtWq??C@5 z#XEvJf^G_TNnLe+5d+;tZqmVsP#z!CdeUQ)3Sg*_`cuy9uWbmILd_oAw&&;nfE}h> zbTyq!s2BE>^+K?eHkX8w$4k3ot5jzhd# zt^d(#`-x@$x0k${W{7X@aJ~qoX>FgPcz^xemzaj5t4wzv5oAuPq6>xw`7|{DvHHuu zS$zFE^e+~R+BT;N@jPd70_xcM*9f^v+4*_E$&LaReGA`R z6^8n`G0NM6DP4wmyJPV<>|B-SeFjmA5l zpZG5W51zp*5c=$H>A4Ihhhl^z(H7$5+ey+c}lQcD^n} z?p?I_g{g|>;rj1AizaqGRg?Wh@gUh&MV(9e{mQQy;@!(*r7*#he4jiKrCz463f0m< z{ygxP^4nQn>aum1qrX$Jeu6)>Ef@Kn-ain{hT=s1pA1Bkilbo=M`QyrKKIgrU|Pph zs!)p}y39Vtr#T%MdUGXZu3q`Hpn#u;?vRiO9Q#h7f%mZ_X1bbFyVX$@>1`gEXU|#~ z({=XZ*LFT@{|h0Qe*Tg*_ZsdWlP3q_Tl{6YFSZQie9CG!%%XOfixcyj^qJXfc*%L5 z=T7>#ugb|JCgC_Myv?zjR7HE$nE8{Z3JUyD^+Kc8N;bWq zq$S^xz^o=EUd`o>h=(@zB?&`)mg`-^Tav7H-+z43aj6>?QO5iG!2L^!ul+?*GDwBj z-l>L`un3ST^JVhAW5+M#tT@$K<{pWEky)E3wxRmndbl>9V^v;HB8rD-SexusxPm^m z5xx4+`Fun6XPcBw+qUFWPw`l@Xd5;Aa=ZU-Dfa$$F>&Lree4{Vl0MTnCZm-_l^xh- zy)9Kh4a#-`!Oy?z@s#o=&6~#XveaCD=1ZL9zggf^XpuE{g!e;xE5s( zi?E)8&tGsJ0PladQB58358(bUxAE`1*nj`ue?aPgAN+sYp7!4w*&_de{Ql)<{sH#? zpxigs_V1~Gdh7o8H~X*7yZ<*c|LUB)>67jb`umfL8=4#X{}2C&<^Mi8+<)Jm8E|4wh;jO^y(3C<50XZCsqhsfGrjqs_ueHq->7`LU8skRM=!O1Bx zBW?g4At%b?xx?qS6@Z^F|XofD7C%Vq@bK4H^QUZ71ZfvcXnoVrW&ryxcAx#1tnf zS4ClRX9Bv?MhK|g;s%Gys#Qb`EJfe7T^-^eTZ+k41dJj4m^X^gerV4he?f&V{Hnok z74SXQQouH!c%5{{c&-(OkXcMEDY`+nFMEf zAze-U0FkK`6+_x=$xL5@Pq)9+)pK237AhnQjYJUI@*)x~&L@s^3byrN_Inc?X^i4a zejK-6<16Ya-Lp-5Xn|c~$!4GCxeDV#rNVU2#W&q10tU8QFS*1)4QvLjd&ih`u|)<} zx5#z_UY%Yd3Dj=*n|q{wx1@6`VuuEy-b}Kw^l3FRO=s9&o@~ymS4cr=z z`DM(h<$HV9eq&`VC5#mOJ@>9YOw z&zq#)Ie3pAflX>oBjFrT)4OlNeL4~bTMGd-EqXcr>(lP==x86{T_KWNhC=|T@kiP> z`;G#WL-oMZuK4*Ax)0d)N!|>TG1#N}AJ#4Plbki^6pH@(( zDZW^Cl)hohkfr$L#uU<}m=rN7u@7B3)bunhq$z7)kKi;Dm@ zG+<8);JBgr4`2GuZ1?n}1*#fquFk4foAAyanz3?)B_~_5CxD3-Vv!{$&Vwqr_kt?Y z4Ob`@e;;_kAyye}gDWd0F%-P%*sCAuT}CDK^N;dn?4j}oP2T}sAIjU}Fi%S2xH*;X zO&+bcr+G5UiG5jzJLa=^nRUX`QT7 zv9RBHRJQhsZdm=2CaO_nbaTR#Nsk8Wvl$*yGGmpze%Or@^37}*U$xydj@9jJKzFeY z!YTz{OT4cyLwo$K_a6TgjWYqDZc-EZU625V*fAC^cPSy*D%fMi|fFH$; z`ZmIlAI{-fpR(+pNb2Ta&wn6V&5jo1Ilhv!8`LtpIkFGe74_}H`2^~EH`6_)?u~@Y zek(P8wZLL=aM<5W+t>e-joD4P$c?Na$q2?K$IfK^${{oPD%+gQaQ*|Y+{wd;&!ZLY z4*_^T1P4u>fg!M}$<*=5l#ct#B4&Y(*c!%2hkVq$BSp66i*BUowvj_#hM0X0(Tpbl z!@Ry70#7O-%>{#i-W|I0%=}9R8sUr%v8+YUo$H(t_b78}-m4GolnyA;gYcT|#@7J6 zThbo~a{Mf}nyZeFq!o(o37az(ESp}A7wy2u!aaLu;Daa5vSSDkAS53YJ!RUkNKTgh zQY8_iQ<8kVlBg7Y>r<~n$~975_8M%rY~~iT{GnE-)h3xbeo#0yW(B2N!!JPTVxYU_ zP~UAcRwv;M1_ClV#|gs%$N0!IeHR9ey{}3e#}@)PiZ0s~{otp;AIk<4-6(iLj+zbp zPu#12F!_;nmXCcMpB`TCtGa70xj@V9k^9c9fv61ig964YiW3H-SG67Bx+>SrOvQ!0 zrxLR(PtYf!{v*F0(|tQggvae?*ZqnDz)9-#YW{qqnZPE)6#|YPvxy^QyI<4M=g!!sv zD10*dqjB#X0mkpJL?we8vZNsLVR-n*r)b*9j$6*k6u`1V!mXaZ8z6K_;FI7KpS-+0 zm*FlySFV90`&TORg`4A5JJA9_TcGzR9H2#~0{cq%a>&$K6{!TcI6j@(<7ThiDPqec30%0GdETEE#UpE%Su zj!|j=MB4y{Lu@-_>K}|x`}o4+zT8jf+*lk;G+a%E88T$OO(DKl%1+pL!s*pU=DU0A z*1L*x)65T~uytuL*Kdb}EUjClFV!l=;SMjKW@2-y%WGc_Lt&o2*c8hw*I27mz^#qd zLPi1nfv9+U(!C`z9bpgo(p;_~A73556uCcsejd<~C`f+H{GeE1x2eECBesQ(Y?_~7 zxiAFZ{E>QcTa|O?XT$3UV!HW;oNrG)r8mxOxau8`A+#i5%D0{R)0<&gbWR+Gbk$j2 zdAdp>H`j|;q>6zjr(^Jq!PL5GB#DYCf|%be#NC@vT*7KT5EkaWZ@9O;4i2_WTV6XL z)1lmc;64-e*0DKLrlPH=uUFXGhFN|3?#i(orfEjpp8%cw^5rYk>df37WbD^kmxJ}? z@G=ae%CQ)6*Et_i^QF5m5mvIHn#}Kcd6bKexynJS;P3?DO$^-tLLQBKE1jk1R*m!f zZfx#w2#O+mu*%W?<`?%H<`tp+bLAYV@$Os#p(T1@Y5v;C> z>^)o~($d+9v4NZ|-wLjPTaDj-v7>YZd*8ZsH}DsOg?3=ij@wYi=FfMwihegA=lv53 z)`&yDsC{7RKpT35HT(*0rBmH7+_KlMNY?TPU(lhv0~LF#RZz$uA|o<&k?$#|`7Wnb zvdSqhQatn1C*^R;a8&XK2J>Zow$7wrI8~v6F2_ zGBIzCeO9|F5m272s?I9e{^{mOWoT6H zUdGgtykwu-9(q`@?kRo|%%3sT&j)#SWn?u0v#zdt+f!9Ft~I;auTjlp#0|<3-!L{= zGQDt$$81L%ERtJDCy=Q%`$1ka>R-Md!B|SRR$!T=PqT0VWdh}`&nLAaD6Xdw*Mu1!Ey0tSo-rgkXaMR}UPZ?(D zWXko=@b%#TWkbW74z>TMob!xoVq5!oPzgs3AV-fRAOS?Bh=3rVQ~?1|X@?^kYB)3@ zG^GSWy+n{I2m&Hqnu_$01TYjq=>((`0wTQz2oPG}4(D9%`+j&oy!Z2+53}Z3duG<2 zy=T^%|FfU}&%`9+uUysP&L-?{mp9PgFxdb5keHKt%Uw$^T}d<~BxIH+wg#EKpJw&1 zhpv05si_%~s^V|bnXVjJ#4!3Yu~#8>085Q3eCv&Po2!h4t3{7KfGfIO zY@e2eKYqLSk9If`$43I}(WtjYZi)z;;c{(O@d%+pd_KEk(fm?_Yd@udMcV1RpUww` zF$Z5!LtOO+g}bGM#UHRP0XFB$`O#&^K-4>{(%IB#-V%i?@#71)A>&=@eHVR~HC%ZU ze5+`6hqBGBpc>o1$umPA1V7*m0+x(zSYv^Dyq&hfZ!K_y{HW8cFGm6&*D(F3{PGR_ zZryB`*WGA5Ej&kmYM0%R_0ox=quu2EB`9{35 z7YzzK)w77B#1Z?pALXR&NgIexRq9AHi+J1VkB!gt3DzoYg(@&={0s4=1Gjrb!Urw1 zT+jf~!YHq;ghd{9knhYIC!|g|msvlyl?sR$P5I*B1Ggn=<_;;-_ok;|ldwZ0NK{?X@WbN`twbw?Jky zIiJTJd@-BeUw^xUz6-cbZ6=$auIX&}^ogb`d51+2WFRIHwwim$YeasLhAX;Bw(gd( z_WXRJGMkUkS!s*0O9yoAbjCYWgTkc`Gn~;&mP(HJWLAC-gI#SWNg;f79-<)X6jQ~? zMEI())2lD^b1={>Sd60;rLQU!)2W!ry3Q9za0^zVx8K=zTm7>znnY=C=3#!{X?E7T zA0d6$Sz|rkG2j2e9HUr|($Cd3Jg;rrxSmjkrkWmdtpK!;wKO{LLld%#GDR4JU)8`c z5&|^f@n5x5KZO~w4YV3D*`P419bd^JrTLaGtVDP>w(kj+BB{?8m+yj(3Sp7R9#_@w zjQ?5w$Ve((jFb8_f27|v@kT&Ho{pIjO3K3{%&!k)0B0JK!@yW+7P;3x=tRsAhQfJ~ z2a=zpZ1Y+5VjrgVN%X*{_k)AiMA3lbxJ!@?zL(x@7e)2Iqf$NbLTyR^#idc68^`Qo zp25IDd|@ekrsz6&r@${`dS1{pCxY4;_UO46He)pp`dT`m3>o(WXWKMF()cj-<;3*1 zL-ALAOs};5n~N+UYM3o?o>`&w$h2Sq9m5{p>hzG=g7#|5iUEV2`JJS0F1;;cIqtHi zS6IRhzIwX7bL96WoOGD$t1Uo=d(+@q{)nK3USt=x|A|M@cIKs#Jl<16wx(Fvq8!}R z1;*YmDYI1Z@>Ad1q`Agrt7+-&*<`^`u2o|#EZ#ZfQVkkmNoJy8b1^#X#3*4X&@u1K5*A8Vt9#uGVrszkLhFr7XvZfB<1rnd{uhp4r$eb zUN5`07aQ=+m%!k^l5M{n+qx-ZIEIZhR99Cw=zk%^Bo)DF!=?Zar6n3EHP|DRmuUIR z+@fy)#IHGJosH(FP+jht|JCyxBICe&QdR&2nm?;+l&Ky3sv=Ws@9gGt*LZ-QLKW=W zl&7R%65@Ef1;V=YhVyO@l$V%H{&=nG-5)oLBSFy7MTYgXk)KOXXjb98pxMOtjU+I( zhl5(vaca=WZWs3`9c*@pRI*M%JKkZJx@Ar1vhsy8r+QMDbAM0@VEM42YL zkQ3cx+l00vZI_2E2aUqZMzrV$VgoOYgbUzRx+FP|C#vLqjTamb4{A~Ovr7GQCep}= z<(8tZj_~kg_Th!dzOhwFl87};Ms?;OrEDtB?!xQD#86r2qO4R+DGbsLgIwb(JEtHI z6zvgAn!7iS_d(aU6{P^>eay@E9owY7gt>SRm?yXg?WC=N=hKf}=bs9^U;53Y)W z6d7KQYTxiP>o@JWrQj?n1cmIZuD`@M8dNL4()3{Y@hcC+apgm~rhqw&jbxcD+-3pI z*_We;0*EPhrG&mIDCA|<_@XN=>zc!`Ya?~k!3D77b0^nJJ;-yu_j*#9w@{pQsY3Bv z+kUzI>v}iSgQO`p670+Y$tJS(*<*8C))xL4S$y@=z4Jm?t2S(2{mNc9m^>CZf_UO& zdBd8x%1|XM@O)kEgf3{#&V1CTmdKnd6XuY^Z;!by#Rl&v2q}J1VPN}teoeZ^@3*2B zR+(Arb-igv%U%lbxp;VZ+(n@Zx_=aOGJ?hFx|Hz%rxbatTC~V9(AIeR=$VfI$>==o zq7}C~JLsxyKY{>YtdzFt%kt1qawQEk(a-&F<+NI9-;bwn*QMcskJWr(55S>?rsD8( z-~V&~fw&!{p4&u*T!*e@YYDoR+H&R&05y-RdNOJ1t^ppu^VCP7H$mI2WW3LeM8m4Kh_%C!%k&K zwg19omLY`9L$P#1z({AzOlm>7ZlT{=6Q#lCSBR03ibR4V3T4}ssWvaOaj;NqE)T{k z6TG$U0i%xu=XI#MVrl1RrG{5UgYT!CNJPidd+3FD$7^4#bCt>u)p29Geu1YPBlVV~ zC5*-I#l2*vF+ZKF3XxrFo7-`vd8Cqz(Jpk-=y`L`E#nX^(H-rm`9zqhQ0RHug%A}S z94pte3`(IVYV({{YwJ}fvE zb+vlvo)N;7W-AMGW{B$A_ox^;_h}WHGcNSVYW`I8=a)JE3^&km9WoV5rUUSjtf%z7 zYjHK!m2b7q4=1q__aUKpyqu8R(&AXTuBaGxd_ssdE-C36Vtf17n-jyGfJ)o-N2J(@ z6Q2}QGixoXF~QO&j)_^<`;5t*OV@K=*(>BH&?hQHvE%pv+Py5#fTjaG@YZovRTp#p z!pXecmQrh<(34gdge5K47CPTA%)JLdVug!9vPtPg2NZUj- zT4%*Xe~!JW1FIJ%u@g;_)GXWT-5<0eyE;Nzu&xHql$g;WXZV=AiUn59vV2^9Rck=K zhS1y?9`knEJp-mx!(BxC_=&Zk8%)4-xu|IVnd7A3`7N-zH#w2Zt#Jbr-cFj}Kv{h? zTwBXgEx5fKqu6Fvpf2Z|J-E-hLr)RR)l(Cz z(bH$oACfJ}N=9N;3-q3Y6-jQANoAlfjBkmZ{d;D(b}36;1vSbPCG{8_Jeo)Fs?=SS z8g4M+8_@%$6xm8$NJw%eHN0s>+H*X2vbUAmdp2rFUf}cmAiXeNt#n#arK(j<(6RSi z_zwu!KjQg5f%NSQ?bC#oibaZ*Nlwi!4l~yIT;wtR5qUjqEXq$uE=evWQY5dvq)fmL zs$bAWMs+Ap<0A6o3Zj@xbFf^{-Ytop2gKxevv-zLT49=+t;VV{7u=SymVj9+}yo+Hy<~^t3;6xaY9$|k~1Ko0`r7Gu|Pyw0flELk%X$4 za6Wl2={Sh^{DfX}Cm}rnK;|S^p*df1^$eH}L8wF5?T8SN0N(3{K!&cj2|NuQBwGan z@@HLGV~?fTl$4_-Iw%CFtT@ysAkd*`ITDhGOM*wiVNxhiED}y!qgAZBT3HGHyTN?6 zUQBJbVnY)47xx7qzdYoDV7elT_+A~||50xJZ9C9WJLtNhiHTTrbhHiFOz3-ULAoI(a~rBh9(EDfg5Lb!hm}vT{|J%%A9Wdd zB-Q>Cb@^X?ZqPw3pW^w$F@{dMDu Date: Tue, 13 Sep 2016 13:11:06 -0700 Subject: [PATCH 558/809] docs: Documentation for WearableRecyclerView. Bug:31174963 Change-Id: Ibf8a77ae1baca86704290d06ca7ad3c182718845 --- .../features/wearable-recycler-view.jd | 223 ++++++++++++++++++ docs/html/wear/preview/images/alignment.png | Bin 0 -> 54538 bytes .../html/wear/preview/images/center_align.png | Bin 0 -> 18248 bytes docs/html/wear/preview/images/wrv_new.png | Bin 0 -> 35695 bytes 4 files changed, 223 insertions(+) create mode 100644 docs/html/wear/preview/features/wearable-recycler-view.jd create mode 100644 docs/html/wear/preview/images/alignment.png create mode 100644 docs/html/wear/preview/images/center_align.png create mode 100644 docs/html/wear/preview/images/wrv_new.png diff --git a/docs/html/wear/preview/features/wearable-recycler-view.jd b/docs/html/wear/preview/features/wearable-recycler-view.jd new file mode 100644 index 000000000000..f28a4722377e --- /dev/null +++ b/docs/html/wear/preview/features/wearable-recycler-view.jd @@ -0,0 +1,223 @@ + +page.title=Curved Layout +meta.tags="wear", "wear-preview", "RecyclerView" +page.tags="wear" + +@jd:body + + + + + +

    + Wear 2.0 introduces the {@code WearableRecyclerView} class for displaying + and manipulating a vertical list of items optimized for round displays. + {@code WearableRecyclerView} extends the existing + {@code RecyclerView} + class to provide a curved layout and a circular scrolling gesture in wearable apps. +

    + + +

    + You can adapt to this interface in your wearable app by creating a new + {@code WearableRecyclerView} container. +

    + +

    + You should decide whether to use a {@code WearableRecyclerView}, based on + the kind of user experience you want to provide. We recommend using the + {@code WearableRecyclerView} for a simple, long list of items, such as an + application launcher, or a list contacts. Each item might have a short string + and an associated icon. Alternatively, each item might have only a string or + an icon. We do not recommend using a {@code WearableRecyclerView} for short + or complex lists. +

    + +

    + This document describes how to create a curved layout for your scrollable items + and properly align them along the curve. +

    + + +

    Creating a Curved Layout

    +

    To create a curved layout for scrollable items in your wearable app: +

    +
      +
    • Use {@code WearableRecyclerView} as your main container in the relevant + xml layout. +
    • + +
    • By default, {@code WearableRecyclerView} uses the {@code + DefaultOffsettingHelper} class to offset items in a curved layout on round + devices. If you wish to implement your own offsetting logic, you can extend the + abstract {@code WearableRecyclerView.OffsettingHelper} class and attach it to + the {@code WearableRecyclerView} using {@code + WearableRecyclerView.setOffsettingHelper} method. + +
      +      CircularOffsettingHelper circularHelper = new CircularOffsettingHelper();
      +      mRecyclerView.setOffsettingHelper(circularHelper);
      +    
      + +
      +      public class CircularOffsettingHelper extends OffsettingHelper {
      +
      +        @Override
      +        public void updateChild(View child, WearableRecyclerView parent) {
      +          int progress = child.getTop() / parent.getHeight();
      +          child.setTranslationX(-child.getHeight() * progress);
      +         }
      +      }
      +    
      + +
    • + +
    + +

    + Note: {@code DefaultOffsettingHelper} class + offsets the child items + along a predefined UX curve, but the operation can cut off part of the child + view if it is not scaled down accordingly. This is because the default curve + attempts to fit 5 items on the screen, regardless of their size. + If you do not wish to scale your items, you should consider additional padding. +

    + +

    Examples

    +

    + The following code example demonstrates how to add {@code WearableRecyclerView} + to a layout: +

    +
    +<android.support.wearable.view.WearableRecyclerView
    +   xmlns:android="http://schemas.android.com/apk/res/android"
    +   xmlns:tools="http://schemas.android.com/tools"
    +   android:id="@+id/recycler_launcher_view"
    +   android:layout_width="match_parent"
    +   android:layout_height="match_parent"
    +   android:scrollbars="vertical" />
    + 
    + + +

    + To customize the appearance of the children while scrolling (for example, + scale the icons and text while the items scroll away from the center), extend + the {@code DefaultOffsettingHelper} and override the {@code updateChild } + method. It is important to call the {@code super.updateChild(child, parent)} to + offset the children along the curve. However, if for any particular child you do + not wish them to follow a curve, you can chose not to call the super method for + that particular child. +

    + +
    +
    +public class MyOffsettingHelper extends DefaultOffsettingHelper {
    +
    +   /** How much should we scale the icon at most. */
    +   private static final float MAX_ICON_PROGRESS = 0.65f;
    +
    +   private float mProgressToCenter;
    +
    +   public OffsettingHelper() {}
    +
    +   @Override
    +
    +   public void updateChild(View child,  WearableRecyclerView parent) {
    +       super.updateChild(child, parent);
    +
    +
    +       // Figure out % progress from top to bottom
    +       float centerOffset = ((float) child.getHeight() / 2.0f) /  (float) mParentView.getHeight();
    +       float yRelativeToCenterOffset = (child.getY() / mParentView.getHeight()) + centerOffset;
    +
    +       // Normalize for center
    +       mProgressToCenter = Math.abs(0.5f - yRelativeToCenterOffset);
    +       // Adjust to the maximum scale
    +       mProgressToCenter = Math.min(mProgressToCenter, MAX_ICON_PROGRESS);
    +
    +       child.setScaleX(1 - mProgressToCenter);
    +       child.setScaleY(1 - mProgressToCenter);
    +   }
    +}
    +
    +
    +
    + + +

    Adding a Circular Scrolling Gesture

    + +

    + By default, circular scrolling is disabled in the {@code + WearableRecyclerView}. If you want to enable circular scrolling gesture + in your child view, use the {@code WearavleRecyclerView}’s {@code + setCircularScrollingGestureEnabled()} method. You can also customize the + circular scrolling gesture by defining one or both of the following: +

    + +
      +
    • How many degrees the user has to rotate by to scroll through one screen height. + This effectively influences the speed of the scolling - + {@code setScrollDegreesPerScreen} - the default value is set at 180 degrees. +
    • + +
    • + The width of a virtual ‘bezel’ near the the edge of the screen in which the + gesture will be recognized - {@code setBezelWidth} - the default value is set + at 1. This is expressed as a fraction of the radius of the view. +
    + + +

    The following code snippet shows how to set these methods:

    + +
    +  setCircularScrollingGestureEnabled(true);
    +  setBezelWidth(0.5f);
    +  setScrollDegreesPerScreen(90);
    +
    + +

    Anchoring Children to the Curve

    + +

    + To ensure that the layout for WearableRecyclerView is adaptable to different + types of child views, the WearableRecyclerView class, by default, chooses the + middle left edge (X=0, Y=Half the child height) as the anchor coordinates for + the child item. Using the default anchor coordinates can result in offsetting + the child items from the left edge of the watch face. To customize the anchor + coordinates of your child view along the curve, you can overwrite the + {@code adjustAnchorOffsetXY()} method. You can calculate the X (horizontal) + and Y (vertical) offset of the child item, and set it using the + {@code adjustAnchorOffsetXY()} method to properly align items + along the curve. The coordinates should be with relation to the child view. +

    + +

    +

    Figure 1. Imaginary UX curve and anchor points on the curve.

    + +

    + The code snippet below, calculates the X offset for a child item in which the + width of the icon is same as the height of the child item. In this case, the + anchor coordinates for the child item are at the center of the icon. + +

    + + +
    + @Override
    +  protected void adjustAnchorOffsetXY(View child, float[] anchorOffsetXY) {
    +    anchorOffsetXY[0] = child.getHeight() / 2.0f;
    +  }
    +
    + + diff --git a/docs/html/wear/preview/images/alignment.png b/docs/html/wear/preview/images/alignment.png new file mode 100644 index 0000000000000000000000000000000000000000..525b3341789a86aaf9d2e6380efcb72739c2e838 GIT binary patch literal 54538 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 HwQs`TJ1My` literal 0 HcmV?d00001 diff --git a/docs/html/wear/preview/images/center_align.png b/docs/html/wear/preview/images/center_align.png new file mode 100644 index 0000000000000000000000000000000000000000..ca88ad77bac4c6fc9c98214c2823c3c77a90e5d5 GIT binary patch literal 18248 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 z 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⪼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�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 literal 0 HcmV?d00001 -- GitLab From 8cf3c1b53203a4d6802b67a43803f3e3ee6866b7 Mon Sep 17 00:00:00 2001 From: Eric Schmidt Date: Thu, 8 Sep 2016 14:17:11 -0700 Subject: [PATCH 559/809] docs: Update BroadcastReceiver docs for performance Bug: 30746266 Change-Id: I6d1537872918d955ab11d8596c6c96c64fe4f786 --- .../guide/topics/manifest/receiver-element.jd | 14 +++++++++++-- docs/html/training/articles/perf-anr.jd | 18 +++++++++++++++++ .../manifest-receivers.jd | 20 +++++++++++++++---- 3 files changed, 46 insertions(+), 6 deletions(-) diff --git a/docs/html/guide/topics/manifest/receiver-element.jd b/docs/html/guide/topics/manifest/receiver-element.jd index 800ee8a6e4c7..c866047447e0 100644 --- a/docs/html/guide/topics/manifest/receiver-element.jd +++ b/docs/html/guide/topics/manifest/receiver-element.jd @@ -33,8 +33,18 @@ There are two ways to make a broadcast receiver known to the system: One is declare it in the manifest file with this element. The other is to create the receiver dynamically in code and register it with the {@link android.content.Context#registerReceiver Context.registerReceiver()} -method. See the {@link android.content.BroadcastReceiver} class description -for more on dynamically created receivers. +method. For more information about how to dynamically create receivers, see the +{@link android.content.BroadcastReceiver} class description. +

    + +

    + Warning: Limit how many broadcast + receivers you set in your app. Having too many broadcast receivers can + affect your app's performance and the battery life of users' devices. + For more information about APIs you can use instead of the + {@link android.content.BroadcastReceiver} class for scheduling background + work, see + Background Optimizations.

    attributes:
    diff --git a/docs/html/training/articles/perf-anr.jd b/docs/html/training/articles/perf-anr.jd index 88483545e2d9..faba95900829 100644 --- a/docs/html/training/articles/perf-anr.jd +++ b/docs/html/training/articles/perf-anr.jd @@ -14,6 +14,14 @@ page.article=true
  • Reinforcing Responsiveness
  • +

    You should also read

    + + @@ -165,6 +173,16 @@ application should start an {@link android.app.IntentService} if a potentially long running action needs to be taken in response to an intent broadcast.

    +

    + Another common issue with {@link android.content.BroadcastReceiver} objects + occurs when they execute too frequently. Frequent background execution can + reduce the amount of memory available to other apps. + For more information about how to enable and disable + {@link android.content.BroadcastReceiver} objects efficiently, see + Manipulating + Broadcast Receivers on Demand. +

    +

    Tip: You can use {@link android.os.StrictMode} to help find potentially long running operations such as network or database operations that diff --git a/docs/html/training/monitoring-device-state/manifest-receivers.jd b/docs/html/training/monitoring-device-state/manifest-receivers.jd index 3e36dba741a1..5efa2facf901 100644 --- a/docs/html/training/monitoring-device-state/manifest-receivers.jd +++ b/docs/html/training/monitoring-device-state/manifest-receivers.jd @@ -21,7 +21,10 @@ Efficiency

    You should also read

    @@ -32,13 +35,22 @@ android.content.BroadcastReceiver} for each state you're monitoring and register your application manifest. Then within each of these receivers you simply reschedule your recurring alarms based on the current device state.

    -

    A side-effect of this approach is that your app will wake the device each time any of these -receivers is triggered—potentially much more frequently than required.

    -

    A better approach is to disable or enable the broadcast receivers at runtime. That way you can use the receivers you declared in the manifest as passive alarms that are triggered by system events only when necessary.

    +

    + Warning: Limit how many broadcast + receivers you set in your app. Instead of using broadcast receivers, + consider using other APIs for + performing background work. For example, in Android 5.0 (API level 21) and + higher, you can use the {@link android.app.job.JobScheduler} class for + assigning work to be completed in the background. + For more information about APIs you can use instead of the + {@link android.content.BroadcastReceiver} class for scheduling background + work, see + Background Optimizations. +

    Toggle and Cascade State Change Receivers to Improve Efficiency

    -- GitLab From 61f956cc2555095ac68770049eac1289dde1655c Mon Sep 17 00:00:00 2001 From: Andrew Solovay Date: Tue, 27 Sep 2016 10:24:51 -0700 Subject: [PATCH 560/809] docs: Removed support libraries from API Guide TOC See (e.g.) TOC on http://go/dods-stage/guide/ to verify it. Previously (e.g. on https://developer.android.com/guide/ ) you'd see a "Libaries" menu item between "Data Storage" and "Administration"; that's gone now. Already made this change in Critique (http://cr/134027548) but since we're still publishing docs from Gerrit, thought it's best to back-port this change. bug: 31607475 Change-Id: I40ff0bebf76305dcad3ef0fc6fbe271b4a625a57 --- docs/html/guide/_book.yaml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/docs/html/guide/_book.yaml b/docs/html/guide/_book.yaml index 20ee4838fab5..13c948cc297c 100644 --- a/docs/html/guide/_book.yaml +++ b/docs/html/guide/_book.yaml @@ -399,11 +399,6 @@ toc: - title: App Install Location path: /guide/topics/data/install-location.html -- title: Libraries - path: /topic/libraries/index.html - section: - - include: /topic/libraries/_book.yaml - - title: Administration path: /guide/topics/admin/index.html section: -- GitLab From 7294c115fd33a9259bf584092a1131dbeccf04bd Mon Sep 17 00:00:00 2001 From: Adrian Roos Date: Tue, 20 Sep 2016 14:03:21 -0700 Subject: [PATCH 561/809] DozeService: Seperate double tap and pickup Adds handling for a separate double tap gesture and allows enabling double tap and pickup individually. Test: Turn screen off, toggle gestures with `adb shell settings put secure doze_pulse_on_pick_up 0/1` and `adb shell settings put secure doze_pulse_on_double_tap 0/1` Bug: 30595437 Change-Id: Id7b79f90b28429cf321544a3e425cf33c575d1c3 --- packages/SystemUI/res/values/config.xml | 3 + .../com/android/systemui/doze/DozeLog.java | 4 +- .../android/systemui/doze/DozeService.java | 126 ++++++++++++++---- .../statusbar/phone/DozeParameters.java | 8 +- .../statusbar/phone/DozeScrimController.java | 7 +- 5 files changed, 116 insertions(+), 32 deletions(-) diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml index 8d44048b9582..554837a37ad4 100644 --- a/packages/SystemUI/res/values/config.xml +++ b/packages/SystemUI/res/values/config.xml @@ -240,6 +240,9 @@ --> + + + 900 diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java b/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java index 874021ade90c..b3038b96fe04 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeLog.java @@ -35,12 +35,13 @@ public class DozeLog { private static final int SIZE = Build.IS_DEBUGGABLE ? 400 : 50; static final SimpleDateFormat FORMAT = new SimpleDateFormat("MM-dd HH:mm:ss.SSS"); - private static final int PULSE_REASONS = 4; + private static final int PULSE_REASONS = 5; public static final int PULSE_REASON_INTENT = 0; public static final int PULSE_REASON_NOTIFICATION = 1; public static final int PULSE_REASON_SENSOR_SIGMOTION = 2; public static final int PULSE_REASON_SENSOR_PICKUP = 3; + public static final int PULSE_REASON_SENSOR_DOUBLE_TAP = 4; private static long[] sTimes; private static String[] sMessages; @@ -167,6 +168,7 @@ public class DozeLog { case PULSE_REASON_NOTIFICATION: return "notification"; case PULSE_REASON_SENSOR_SIGMOTION: return "sigmotion"; case PULSE_REASON_SENSOR_PICKUP: return "pickup"; + case PULSE_REASON_SENSOR_DOUBLE_TAP: return "doubletap"; default: throw new IllegalArgumentException("bad reason: " + pulseReason); } } diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeService.java b/packages/SystemUI/src/com/android/systemui/doze/DozeService.java index ec4f447d3a38..25d369100853 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeService.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeService.java @@ -16,12 +16,14 @@ package com.android.systemui.doze; +import android.app.ActivityManager; import android.app.UiModeManager; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.res.Configuration; +import android.database.ContentObserver; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; @@ -29,11 +31,15 @@ import android.hardware.SensorManager; import android.hardware.TriggerEvent; import android.hardware.TriggerEventListener; import android.media.AudioAttributes; +import android.net.Uri; import android.os.Handler; import android.os.PowerManager; import android.os.SystemClock; +import android.os.UserHandle; import android.os.Vibrator; +import android.provider.Settings; import android.service.dreams.DreamService; +import android.text.TextUtils; import android.util.Log; import android.view.Display; @@ -45,6 +51,7 @@ import com.android.systemui.statusbar.phone.DozeParameters; import java.io.FileDescriptor; import java.io.PrintWriter; import java.util.Date; +import java.util.List; public class DozeService extends DreamService { private static final String TAG = "DozeService"; @@ -59,8 +66,8 @@ public class DozeService extends DreamService { private final Handler mHandler = new Handler(); private DozeHost mHost; - private SensorManager mSensors; - private TriggerSensor mSigMotionSensor; + private SensorManager mSensorManager; + private TriggerSensor[] mSensors; private TriggerSensor mPickupSensor; private PowerManager mPowerManager; private PowerManager.WakeLock mWakeLock; @@ -86,8 +93,10 @@ public class DozeService extends DreamService { pw.print(" mWakeLock: held="); pw.println(mWakeLock.isHeld()); pw.print(" mHost: "); pw.println(mHost); pw.print(" mBroadcastReceiverRegistered: "); pw.println(mBroadcastReceiverRegistered); - pw.print(" mSigMotionSensor: "); pw.println(mSigMotionSensor); - pw.print(" mPickupSensor:"); pw.println(mPickupSensor); + for (TriggerSensor s : mSensors) { + pw.print(" sensor: "); + pw.println(s); + } pw.print(" mDisplayStateSupported: "); pw.println(mDisplayStateSupported); pw.print(" mPowerSaveActive: "); pw.println(mPowerSaveActive); pw.print(" mCarMode: "); pw.println(mCarMode); @@ -110,13 +119,25 @@ public class DozeService extends DreamService { setWindowless(true); - mSensors = (SensorManager) mContext.getSystemService(Context.SENSOR_SERVICE); - mSigMotionSensor = new TriggerSensor(Sensor.TYPE_SIGNIFICANT_MOTION, - mDozeParameters.getPulseOnSigMotion(), mDozeParameters.getVibrateOnSigMotion(), - DozeLog.PULSE_REASON_SENSOR_SIGMOTION); - mPickupSensor = new TriggerSensor(Sensor.TYPE_PICK_UP_GESTURE, - mDozeParameters.getPulseOnPickup(), mDozeParameters.getVibrateOnPickup(), - DozeLog.PULSE_REASON_SENSOR_PICKUP); + mSensorManager = (SensorManager) mContext.getSystemService(Context.SENSOR_SERVICE); + mSensors = new TriggerSensor[] { + new TriggerSensor( + mSensorManager.getDefaultSensor(Sensor.TYPE_SIGNIFICANT_MOTION), + null /* setting */, + mDozeParameters.getPulseOnSigMotion(), + mDozeParameters.getVibrateOnSigMotion(), + DozeLog.PULSE_REASON_SENSOR_SIGMOTION), + mPickupSensor = new TriggerSensor( + mSensorManager.getDefaultSensor(Sensor.TYPE_PICK_UP_GESTURE), + Settings.Secure.DOZE_PULSE_ON_PICK_UP, + mDozeParameters.getPulseOnPickup(), mDozeParameters.getVibrateOnPickup(), + DozeLog.PULSE_REASON_SENSOR_PICKUP), + new TriggerSensor( + findSensorWithType(mDozeParameters.getDoubleTapSensorType()), + Settings.Secure.DOZE_PULSE_ON_DOUBLE_TAP, + mDozeParameters.getPulseOnPickup(), mDozeParameters.getVibrateOnPickup(), + DozeLog.PULSE_REASON_SENSOR_DOUBLE_TAP) + }; mPowerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE); mWakeLock = mPowerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG); mWakeLock.setReferenceCounted(true); @@ -283,8 +304,9 @@ public class DozeService extends DreamService { private void listenForPulseSignals(boolean listen) { if (DEBUG) Log.d(mTag, "listenForPulseSignals: " + listen); - mSigMotionSensor.setListening(listen); - mPickupSensor.setListening(listen); + for (TriggerSensor s : mSensors) { + s.setListening(listen); + } listenForBroadcasts(listen); listenForNotifications(listen); } @@ -293,11 +315,21 @@ public class DozeService extends DreamService { if (listen) { final IntentFilter filter = new IntentFilter(PULSE_ACTION); filter.addAction(UiModeManager.ACTION_ENTER_CAR_MODE); + filter.addAction(Intent.ACTION_USER_SWITCHED); mContext.registerReceiver(mBroadcastReceiver, filter); + + for (TriggerSensor s : mSensors) { + if (s.mConfigured && !TextUtils.isEmpty(s.mSetting)) { + mContext.getContentResolver().registerContentObserver( + Settings.Secure.getUriFor(s.mSetting), false /* descendants */, + mSettingsObserver, UserHandle.USER_ALL); + } + } mBroadcastReceiverRegistered = true; } else { if (mBroadcastReceiverRegistered) { mContext.unregisterReceiver(mBroadcastReceiver); + mContext.getContentResolver().unregisterContentObserver(mSettingsObserver); } mBroadcastReceiverRegistered = false; } @@ -344,6 +376,23 @@ public class DozeService extends DreamService { finishForCarMode(); } } + if (Intent.ACTION_USER_SWITCHED.equals(intent.getAction())) { + for (TriggerSensor s : mSensors) { + s.updateListener(); + } + } + } + }; + + private final ContentObserver mSettingsObserver = new ContentObserver(mHandler) { + @Override + public void onChange(boolean selfChange, Uri uri, int userId) { + if (userId != ActivityManager.getCurrentUser()) { + return; + } + for (TriggerSensor s : mSensors) { + s.updateListener(); + } } }; @@ -375,18 +424,34 @@ public class DozeService extends DreamService { } }; + private Sensor findSensorWithType(String type) { + if (TextUtils.isEmpty(type)) { + return null; + } + List sensorList = mSensorManager.getSensorList(Sensor.TYPE_ALL); + for (Sensor s : sensorList) { + if (type.equals(s.getStringType())) { + return s; + } + } + return null; + } + private class TriggerSensor extends TriggerEventListener { - private final Sensor mSensor; - private final boolean mConfigured; - private final boolean mDebugVibrate; - private final int mPulseReason; + final Sensor mSensor; + final boolean mConfigured; + final boolean mDebugVibrate; + final int mPulseReason; + final String mSetting; private boolean mRequested; private boolean mRegistered; private boolean mDisabled; - public TriggerSensor(int type, boolean configured, boolean debugVibrate, int pulseReason) { - mSensor = mSensors.getDefaultSensor(type); + public TriggerSensor(Sensor sensor, String setting, boolean configured, + boolean debugVibrate, int pulseReason) { + mSensor = sensor; + mSetting = setting; mConfigured = configured; mDebugVibrate = debugVibrate; mPulseReason = pulseReason; @@ -404,18 +469,26 @@ public class DozeService extends DreamService { updateListener(); } - private void updateListener() { + public void updateListener() { if (!mConfigured || mSensor == null) return; - if (mRequested && !mDisabled && !mRegistered) { - mRegistered = mSensors.requestTriggerSensor(this, mSensor); + if (mRequested && !mDisabled && enabledBySetting() && !mRegistered) { + mRegistered = mSensorManager.requestTriggerSensor(this, mSensor); if (DEBUG) Log.d(mTag, "requestTriggerSensor " + mRegistered); } else if (mRegistered) { - final boolean rt = mSensors.cancelTriggerSensor(this, mSensor); + final boolean rt = mSensorManager.cancelTriggerSensor(this, mSensor); if (DEBUG) Log.d(mTag, "cancelTriggerSensor " + rt); mRegistered = false; } } + private boolean enabledBySetting() { + if (TextUtils.isEmpty(mSetting)) { + return true; + } + return Settings.Secure.getIntForUser(mContext.getContentResolver(), mSetting, 1, + UserHandle.USER_CURRENT) != 0; + } + @Override public String toString() { return new StringBuilder("{mRegistered=").append(mRegistered) @@ -484,7 +557,7 @@ public class DozeService extends DreamService { public void check() { if (mFinished || mRegistered) return; - final Sensor sensor = mSensors.getDefaultSensor(Sensor.TYPE_PROXIMITY); + final Sensor sensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY); if (sensor == null) { if (DEBUG) Log.d(mTag, "No sensor found"); finishWithResult(RESULT_UNKNOWN); @@ -494,7 +567,8 @@ public class DozeService extends DreamService { mPickupSensor.setDisabled(true); mMaxRange = sensor.getMaximumRange(); - mSensors.registerListener(this, sensor, SensorManager.SENSOR_DELAY_NORMAL, 0, mHandler); + mSensorManager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_NORMAL, 0, + mHandler); mHandler.postDelayed(this, TIMEOUT_DELAY_MS); mRegistered = true; } @@ -521,7 +595,7 @@ public class DozeService extends DreamService { if (mFinished) return; if (mRegistered) { mHandler.removeCallbacks(this); - mSensors.unregisterListener(this); + mSensorManager.unregisterListener(this); // we're done - reenable the pickup sensor mPickupSensor.setDisabled(false); mRegistered = false; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java index efceed1d1743..d5bf49991cbb 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java @@ -84,8 +84,8 @@ public class DozeParameters { return getPulseInDuration(pickup) + getPulseVisibleDuration() + getPulseOutDuration(); } - public int getPulseInDuration(boolean pickup) { - return pickup + public int getPulseInDuration(boolean pickupOrDoubleTap) { + return pickupOrDoubleTap ? getInt("doze.pulse.duration.in.pickup", R.integer.doze_pulse_duration_in_pickup) : getInt("doze.pulse.duration.in", R.integer.doze_pulse_duration_in); } @@ -114,6 +114,10 @@ public class DozeParameters { return SystemProperties.getBoolean("doze.vibrate.pickup", false); } + public String getDoubleTapSensorType() { + return mContext.getString(R.string.doze_double_tap_sensor_type); + } + public boolean getProxCheckBeforePulse() { return getBoolean("doze.pulse.proxcheck", R.bool.doze_proximity_check_before_pulse); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeScrimController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeScrimController.java index 7d4515edcdf9..b44f5f7e237a 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeScrimController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeScrimController.java @@ -109,10 +109,11 @@ public class DozeScrimController { public void onScreenTurnedOn() { if (isPulsing()) { - final boolean pickup = mPulseReason == DozeLog.PULSE_REASON_SENSOR_PICKUP; + final boolean pickupOrDoubleTap = mPulseReason == DozeLog.PULSE_REASON_SENSOR_PICKUP + || mPulseReason == DozeLog.PULSE_REASON_SENSOR_DOUBLE_TAP; startScrimAnimation(true /* inFront */, 0f, - mDozeParameters.getPulseInDuration(pickup), - pickup ? Interpolators.LINEAR_OUT_SLOW_IN : Interpolators.ALPHA_OUT, + mDozeParameters.getPulseInDuration(pickupOrDoubleTap), + pickupOrDoubleTap ? Interpolators.LINEAR_OUT_SLOW_IN : Interpolators.ALPHA_OUT, mPulseInFinished); } } -- GitLab From 34fb906c1aedd11a8a942fa068421153e1dccdc2 Mon Sep 17 00:00:00 2001 From: Eric Schmidt Date: Wed, 14 Sep 2016 18:18:50 -0700 Subject: [PATCH 562/809] docs: Adding Espresso Intent and Web docs Bug: 20721203 Bug: 20720633 bug: 27453733 Change-Id: I67a7d09a6652e3463728691f2a1f5679e900e776 --- .../testing/ui-testing/espresso-testing.jd | 984 +++++++++++------- 1 file changed, 608 insertions(+), 376 deletions(-) diff --git a/docs/html/training/testing/ui-testing/espresso-testing.jd b/docs/html/training/testing/ui-testing/espresso-testing.jd index d3d31debc353..3d2bca7748ee 100644 --- a/docs/html/training/testing/ui-testing/espresso-testing.jd +++ b/docs/html/training/testing/ui-testing/espresso-testing.jd @@ -24,17 +24,11 @@ trainingnavtop=true
      -
    1. - Set Up Espresso -
    2. +
    3. Set Up Espresso
    4. -
    5. - Create an Espresso Test Class -
    6. +
    7. Create an Espresso Test Class
    8. -
    9. - Run Espresso Tests on a Device or Emulator -
    10. +
    11. Run Espresso Tests on a Device or Emulator

    @@ -59,31 +53,40 @@ trainingnavtop=true class="external-link">Android Testing Codelab - +

    Testing user interactions within a single app helps to ensure that users do not - encounter unexpected results or have a poor experience when interacting with your app. - You should get into the habit of creating user interface (UI) tests if you need to verify + encounter unexpected results or have a poor + experience when interacting with your app. + You should get into the habit of creating + user interface (UI) tests if you need to verify that the UI of your app is functioning correctly.

    The Espresso testing framework, provided by the Android Testing Support Library, - provides APIs for writing UI tests to simulate user interactions within a - single target app. Espresso tests can run on devices running Android 2.2 (API level 8) and - higher. A key benefit of using Espresso is that it provides automatic synchronization of test - actions with the UI of the app you are testing. Espresso detects when the main thread is idle, - so it is able to run your test commands at the appropriate time, improving the reliability of - your tests. This capability also relieves you from having to adding any timing workarounds, - such as a sleep period, in your test code. + provides APIs for writing UI tests to simulate + user interactions within a + single target app. Espresso tests can run on + devices running Android 2.3.3 (API level 10) and + higher. A key benefit of using Espresso is + that it provides automatic synchronization of test + actions with the UI of the app you are testing. + Espresso detects when the main thread is idle, + so it is able to run your test commands + at the appropriate time, improving the reliability of + your tests. This capability also relieves you + from having to add any timing workarounds, + such as {@link java.lang.Thread#sleep(long) Thread.sleep()} + in your test code.

    - The Espresso testing framework is an instrumentation-based API and works - with the + The Espresso testing framework is + an instrumentation-based API and works with the {@code AndroidJUnitRunner} test runner.

    @@ -92,105 +95,139 @@ trainingnavtop=true Set Up Espresso

    -

    Before building your UI test with Espresso, make sure to configure your test source code -location and project dependencies, as described in - -Getting Started with Testing.

    +

    + Before building your UI test with Espresso, + make sure to configure your test source code + location and project dependencies, as described in + Getting Started with Testing. +

    -

    In the {@code build.gradle} file of your Android app module, you must set a dependency - reference to the Espresso library:

    +

    + In the {@code build.gradle} file of your Android app + module, you must set a dependency + reference to the Espresso library: +

     dependencies {
    -    ...
    -    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
    +    // Other dependencies ...
    +    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
     }
     
    -

    Turn off animations on your test device — leaving system animations turned on in the test -device might cause unexpected results or may lead your test to fail. Turn off animations from -Settings by opening Developing Options and turning all the following options off: +

    + Turn off animations on your test device — + leaving system animations turned on in the test + device might cause unexpected results or may + lead your test to fail. Turn off animations from + Settings by opening Developer options + and turning all the following options off:

    -
      -
    • - Window animation scale -
    • -
    • - Transition animation scale -
    • +

      +

        +
      • + Window animation scale +
      • + +
      • + Transition animation scale +
      • + +
      • + Animator duration scale +
      • +
      +

      -
    • - Animator duration scale -
    • -
    - - -

    If you want to set up your project to use Espresso features other than what the core API +

    + If you want to set up your project to use Espresso + features other than what the core API provides, see this resource.

    -

    - Create an Espresso Test Class -

    + -

    - To create an Espresso test, create a Java class that follows this programming model: -

    +

    + Create an Espresso Test Class +

    -
      -
    1. Find the UI component you want to test in an {@link android.app.Activity} (for example, a - sign-in button in the app) by calling the - - {@code onView()} method, or the - - {@code onData()} method for {@link android.widget.AdapterView} controls. -
    2. - -
    3. Simulate a specific user interaction to perform on that UI component, by calling the - {@code ViewInteraction.perform()} - or - {@code DataInteraction.perform()} - method and passing in the user action (for example, click on the sign-in button). To sequence - multiple actions on the same UI component, chain them using a comma-separated list in your - method argument. -
    4. - -
    5. Repeat the steps above as necessary, to simulate a user flow across multiple - activities in the target app. -
    6. - -
    7. Use the +

      + To create an Espresso test, create a Java + class that follows this programming model: +

      + +
        +
      1. + Find the UI component you want to test in + an {@link android.app.Activity} (for example, a + sign-in button in the app) by calling the + + {@code onView()} method, or the + + {@code onData()} method for {@link android.widget.AdapterView} controls. +
      2. + +
      3. + Simulate a specific user interaction to + perform on that UI component, by calling the + {@code ViewInteraction.perform()} + or + {@code DataInteraction.perform()} + method and passing in the user action + (for example, click on the sign-in button). To sequence + multiple actions on the same UI component, chain them using a comma-separated list in your + method argument. +
      4. + +
      5. + Repeat the steps above as necessary, to simulate a user flow across multiple + activities in the target app. +
      6. + +
      7. + Use the {@code ViewAssertions} - methods to check that the UI reflects the expected - state or behavior, after these user interactions are performed. -
      8. -
      + methods to check that the UI reflects the expected + state or behavior, after these user interactions are performed. +
    8. +
    -

    - These steps are covered in more detail in the sections below. -

    +

    + These steps are covered in more detail in the sections below. +

    -

    - The following code snippet shows how your test class might invoke this basic workflow: -

    +

    + The following code snippet shows how your test + class might invoke this basic workflow: +

     onView(withId(R.id.my_view))            // withId(R.id.my_view) is a ViewMatcher
             .perform(click())               // click() is a ViewAction
             .check(matches(isDisplayed())); // matches(isDisplayed()) is a ViewAssertion
     
    -

    Using Espresso with ActivityTestRule

    + + + +

    + Using Espresso with ActivityTestRule +

    +

    -The following section describes how to create a new Espresso test in the JUnit 4 style and use - -{@code ActivityTestRule} to reduce the amount of boilerplate code you need to write. By using - -{@code ActivityTestRule}, the testing framework launches the activity under test -before each test method annotated with @Test and before any method annotated with -@Before. The framework handles shutting down the activity after the test finishes -and all methods annotated with @After are run.

    + The following section describes how to create a + new Espresso test in the JUnit 4 style and use + {@code ActivityTestRule} + to reduce the amount of boilerplate code you need to write. By using + {@code ActivityTestRule}, + the testing framework launches the activity under test + before each test method annotated with + @Test and before any method annotated with + @Before. The framework handles + shutting down the activity after the test finishes + and all methods annotated with @After are run. +

     package com.example.android.testing.espresso.BasicSample;
    @@ -234,103 +271,57 @@ public class ChangeTextBehaviorTest {
     }
     
    -

    - Using Espresso with ActivityInstrumentationTestCase2 -

    -

    The following section describes how to migrate to Espresso if you have existing test classes -subclassed from {@link android.test.ActivityInstrumentationTestCase2} and you don't want to rewrite -them to use JUnit4.

    -

    Note: For new UI tests, we strongly recommend that you write your -test in the JUnit 4 style and use the - -{@code ActivityTestRule} class, instead of -{@link android.test.ActivityInstrumentationTestCase2}.

    -

    - If you are subclassing {@link android.test.ActivityInstrumentationTestCase2} - to create your Espresso test class, you must inject an - {@link android.app.Instrumentation} instance into your test class. This step is required in - order for your Espresso test to run with the - {@code AndroidJUnitRunner} - test runner. -

    + -

    - To do this, call the - {@link android.test.InstrumentationTestCase#injectInstrumentation(android.app.Instrumentation) injectInstrumentation()} - method and pass in the result of - - {@code InstrumentationRegistry.getInstrumentation()}, as shown in the following code - example: -

    - -
    -import android.support.test.InstrumentationRegistry;
    +

    + Accessing UI Components +

    -public class MyEspressoTest - extends ActivityInstrumentationTestCase2<MyActivity> { - - private MyActivity mActivity; - - public MyEspressoTest() { - super(MyActivity.class); - } - - @Before - public void setUp() throws Exception { - super.setUp(); - injectInstrumentation(InstrumentationRegistry.getInstrumentation()); - mActivity = getActivity(); - } - - ... -} -
    - -

    Note: Previously, {@link android.test.InstrumentationTestRunner} -would inject the {@link android.app.Instrumentation} instance, but this test runner is being -deprecated.

    - -

    - Accessing UI Components -

    - -

    - Before Espresso can interact with the app under test, you must first specify the UI component - or view. Espresso supports the use of -Hamcrest matchers - for specifying views and adapters in your app. -

    +

    + Before Espresso can interact with the app + under test, you must first specify the UI component + or view. Espresso supports the use of + Hamcrest matchers + for specifying views and adapters in your app. +

    -

    - To find the view, call the - {@code onView()} - method and pass in a view matcher that specifies the view that you are targeting. This is - described in more detail in Specifying a View Matcher. - The - {@code onView()} method returns a - - {@code ViewInteraction} - object that allows your test to interact with the view. - However, calling the - {@code onView()} method may not work if you want to locate a view in - an {@link android.widget.AdapterView} layout. In this case, follow the instructions in - Locating a view in an AdapterView instead. -

    +

    + To find the view, call the + {@code onView()} + method and pass in a view matcher that + specifies the view that you are targeting. This is + described in more detail in + Specifying a View Matcher. + The {@code onView()} + method returns a + {@code ViewInteraction} + object that allows your test to interact with the view. + However, calling the + + {@code onView()} + method may not work if you want to locate a view in + an {@link android.support.v7.widget.RecyclerView} layout. + In this case, follow the instructions in + Locating a view in an AdapterView + instead. +

    -

    - Note: The - {@code onView()} method does not check if the view you specified is - valid. Instead, Espresso searches only the current view hierarchy, using the matcher provided. - If no match is found, the method throws a - - {@code NoMatchingViewException}. -

    +

    + Note: + The {@code onView()} + method does not check if the view you specified is + valid. Instead, Espresso searches only the + current view hierarchy, using the matcher provided. + If no match is found, the method throws a + {@code NoMatchingViewException}. +

    -

    - The following code snippet shows how you might write a test that accesses an - {@link android.widget.EditText} field, enters a string of text, closes the virtual keyboard, - and then performs a button click. -

    +

    + The following code snippet shows how you might write a test that accesses an + {@link android.widget.EditText} field, + enters a string of text, closes the virtual keyboard, + and then performs a button click. +

     public void testChangeText_sameActivity() {
    @@ -344,231 +335,464 @@ public void testChangeText_sameActivity() {
     }
     
    -

    - Specifying a View Matcher -

    + +

    + Specifying a View Matcher +

    -

    - You can specify a view matcher by using these approaches: -

    +

    + You can specify a view matcher by using these approaches: +

    -
      -
    • Calling methods in the - - {@code ViewMatchers} class. For example, to find a view by looking for a text string it - displays, you can call a method like this: -
      +
        +
      • Calling methods in the + {@code ViewMatchers} + class. For example, to find a view by looking for a text string it + displays, you can call a method like this: +
         onView(withText("Sign-in"));
         
        -

        Similarly you can call - -{@code withId()} and providing the resource ID ({@code R.id}) of the view, as shown in the -following example:

        +

        + Similarly you can call + {@code withId()} + and providing the resource ID ({@code R.id}) of the view, + as shown in the + following example: +

         onView(withId(R.id.button_signin));
         

        - Android resource IDs are not guaranteed to be unique. If your test attempts to match to a + Android resource IDs are not guaranteed to be unique. + If your test attempts to match to a resource ID used by more than one view, Espresso throws an - - {@code AmbiguousViewMatcherException}. + {@code AmbiguousViewMatcherException}.

        -
      • -
      • Using the Hamcrest - {@code Matchers} class. You can use the - {@code allOf()} methods to combine multiple matchers, such as - {@code containsString()} and {@code instanceOf()}. This approach allows you to - filter the match results more narrowly, as shown in the following example: +
      • + +
      • + Using the Hamcrest + {@code Matchers} class. You can use the + {@code allOf()} methods to combine multiple matchers, such as + {@code containsString()} and {@code instanceOf()}. + This approach allows you to + filter the match results more narrowly, as shown in the following example: +
         onView(allOf(withId(R.id.button_signin), withText("Sign-in")));
         
        -

        You can use the {@code not} keyword to filter for views that don't correspond to the matcher, as -shown in the following example:

        + +

        + You can use the {@code not} keyword to filter + for views that don't correspond to the matcher, as + shown in the following example: +

        +
         onView(allOf(withId(R.id.button_signin), not(withText("Sign-out"))));
         
        -

        To use these methods in your test, import the {@code org.hamcrest.Matchers} package. To -learn more about Hamcrest matching, see the -Hamcrest site. -

        -
      • -

      - To improve the performance of your Espresso tests, specify the minimum matching information - needed to find your target view. For example, if a view is uniquely identifiable by its - descriptive text, you do not need to specify that it is also assignable from the - {@link android.widget.TextView} instance. + To use these methods in your test, + import the {@code org.hamcrest.Matchers} package. To + learn more about Hamcrest matching, see the + Hamcrest site.

      +
    • +
    -

    - Locating a view in an AdapterView -

    +

    + To improve the performance of your Espresso tests, + specify the minimum matching information + needed to find your target view. For example, + if a view is uniquely identifiable by its + descriptive text, you do not need to specify + that it is also assignable from the + {@link android.widget.TextView} instance. +

    -

    - In an {@link android.widget.AdapterView} widget, the view is dynamically populated with child - views at runtime. If the target view you want to test is inside an - {@link android.widget.AdapterView} - (such as a {@link android.widget.ListView}, {@link android.widget.GridView}, or - {@link android.widget.Spinner}), the - - {@code onView()} method might not work because only a - subset of the views may be loaded in the current view hierarchy. -

    + -

    - Instead, call the {@code onData()} - method to obtain a - - {@code DataInteraction} - object to access the target view element. Espresso handles loading the target view element - into the current view hierarchy. Espresso also takes care of scrolling to the target element, - and putting the element into focus. -

    +

    + Locating a view in an AdapterView +

    + +

    + In an {@link android.widget.AdapterView} widget, + the view is dynamically populated with child + views at runtime. If the target view you want to test is inside an + {@link android.widget.AdapterView} + (such as a {@link android.widget.ListView}, + {@link android.widget.GridView}, or + {@link android.widget.Spinner}), the + {@code onView()} + method might not work because only a + subset of the views may be loaded in the current view hierarchy. +

    -

    - Note: The +

    + Instead, call the {@code onData()} - method does not check if if the item you specified corresponds with a view. Espresso searches - only the current view hierarchy. If no match is found, the method throws a - - {@code NoMatchingViewException}. -

    + method to obtain a + {@code DataInteraction} + object to access the target view element. + Espresso handles loading the target view element + into the current view hierarchy. Espresso + also takes care of scrolling to the target element, + and putting the element into focus. +

    -

    - The following code snippet shows how you can use the - {@code onData()} - method together - with Hamcrest matching to search for a specific row in a list that contains a given string. - In this example, the {@code LongListActivity} class contains a list of strings exposed - through a {@link android.widget.SimpleAdapter}. -

    +

    + Note: The + {@code onData()} + method does not check if the item you + specified corresponds with a view. Espresso searches + only the current view hierarchy. If no match is found, the method throws a + {@code NoMatchingViewException}. +

    + +

    + The following code snippet shows how you can use the + {@code onData()} + method together + with Hamcrest matching to search for a specific + row in a list that contains a given string. + In this example, the {@code LongListActivity} class + contains a list of strings exposed + through a {@link android.widget.SimpleAdapter}. +

     onData(allOf(is(instanceOf(Map.class)),
    -        hasEntry(equalTo(LongListActivity.ROW_TEXT), is(str))));
    +        hasEntry(equalTo(LongListActivity.ROW_TEXT), is("test input")));
     
    -

    - Performing Actions -

    + -

    - Call the {@code ViewInteraction.perform()} - or - {@code DataInteraction.perform()} - methods to - simulate user interactions on the UI component. You must pass in one or more - {@code ViewAction} - objects as arguments. Espresso fires each action in sequence according to - the given order, and executes them in the main thread. -

    +

    Performing Actions

    -

    - The - {@code ViewActions} - class provides a list of helper methods for specifying common actions. - You can use these methods as convenient shortcuts instead of creating and configuring - individual {@code ViewAction} - objects. You can specify such actions as: -

    +

    + Call the + {@code ViewInteraction.perform()} + or + {@code DataInteraction.perform()} + methods to + simulate user interactions on the UI component. You must pass in one or more + {@code ViewAction} + objects as arguments. Espresso fires each action in sequence according to + the given order, and executes them in the main thread. +

    - +

    + The + {@code ViewActions} + class provides a list of helper methods for specifying common actions. + You can use these methods as convenient shortcuts + instead of creating and configuring individual + {@code ViewAction} + objects. You can specify such actions as: +

    -

    - If the target view is inside a {@link android.widget.ScrollView}, perform the - {@code ViewActions.scrollTo()} - action first to display the view in the screen before other proceeding - with other actions. The - {@code ViewActions.scrollTo()} - action will have no effect if the view is already displayed. -

    + -

    - Verifying Results -

    +

    + If the target view is inside a {@link android.widget.ScrollView}, + perform the + {@code ViewActions.scrollTo()} + action first to display the view in the screen before other proceeding + with other actions. The + {@code ViewActions.scrollTo()} + action will have no effect if the view is already displayed. +

    -

    - Call the - {@code ViewInteraction.check()} - or - {@code DataInteraction.check()} - method to assert - that the view in the UI matches some expected state. You must pass in a - - {@code ViewAssertion} object as the argument. If the assertion fails, Espresso throws - an {@link junit.framework.AssertionFailedError}. -

    + -

    - The +

    + Test your activities in isolation with Espresso Intents +

    + +

    + Espresso Intents + enables validation and stubbing of intents sent out by an app. + With Espresso Intents, you can test an app, activity, or service in isolation + by intercepting outgoing intents, stubbing the result, and sending it back to + the component under test. +

    + +

    + To begin testing with Espresso Intents, you need + to add the following line to your app's build.gradle file: +

    + +
    +dependencies {
    +  // Other dependencies ...
    +  androidTestCompile 'com.android.support.test.espresso:espresso-intents:2.2.2'
    +}
    +
    + +

    + To test an intent, you need to create an instance of the + IntentsTestRule + class, which is very similar to the + ActivityTestRule + class. + The + IntentsTestRule + class initializes Espresso Intents before each test, + terminates the host activity, + and releases Espresso Intents after each test. +

    + +

    + The test class shown in the following codes snippet provides a simple + test for an explicit intent. It tests the activities and intents created in the + Building Your First App + tutorial. +

    + +
    +@Large
    +@RunWith(AndroidJUnit4.class)
    +public class SimpleIntentTest {
    +
    +    private static final String MESSAGE = "This is a test";
    +    private static final String PACKAGE_NAME = "com.example.myfirstapp";
    +
    +    /* Instantiate an IntentsTestRule object. */
    +    @Rule
    +    public IntentsTestRule≶MainActivity> mIntentsRule =
    +      new IntentsTestRule≶>(MainActivity.class);
    +
    +    @Test
    +    public void verifyMessageSentToMessageActivity() {
    +
    +        // Types a message into a EditText element.
    +        onView(withId(R.id.edit_message))
    +                .perform(typeText(MESSAGE), closeSoftKeyboard());
    +
    +        // Clicks a button to send the message to another
    +        // activity through an explicit intent.
    +        onView(withId(R.id.send_message)).perform(click());
    +
    +        // Verifies that the DisplayMessageActivity received an intent
    +        // with the correct package name and message.
    +        intended(allOf(
    +                hasComponent(hasShortClassName(".DisplayMessageActivity")),
    +                toPackage(PACKAGE_NAME),
    +                hasExtra(MainActivity.EXTRA_MESSAGE, MESSAGE)));
    +
    +    }
    +}
    +
    + +

    + For more information about Espresso Intents, see the + Espresso Intents + documentation on the Android Testing Support Library site. + You can also download the + IntentsBasicSample and + IntentsAdvancedSample + code samples. +

    + + + +

    + Testing WebViews with Espresso Web +

    + +

    + Espresso Web allows you to test {@link android.webkit.WebView} components + contained within an activity. It uses the + WebDriver API to inspect and control the + behavior of a {@link android.webkit.WebView}. +

    + +

    + To begin testing with Espresso Web, you need + to add the following line to your app's build.gradle file: +

    + +
    +dependencies {
    +  // Other dependencies ...
    +  androidTestCompile 'com.android.support.test.espresso:espresso-web:2.2.2'
    +}
    +
    + +

    + When creating a test using Espresso Web, you need to enable + JavaScript on the {@link android.webkit.WebView} when you instantiate the + ActivityTestRule + object to test the activity. In the tests, you can select + HTML elements displayed in the + {@link android.webkit.WebView} and simulate user interactions, like + entering text into a text box and then clicking a button. After the actions + are completed, you can then verify that the results on the + Web page match the results that you expect. +

    + +

    + In the following code snippet, the class tests + a {@link android.webkit.WebView} component with the id value 'webview' + in the activity being tested. + The verifyValidInputYieldsSuccesfulSubmission() test selects an + <input> element on the + Web page, enters some text, and checks text that appears in + another element. +

    + +
    +@LargeTest
    +@RunWith(AndroidJUnit4.class)
    +public class WebViewActivityTest {
    +
    +    private static final String MACCHIATO = "Macchiato";
    +    private static final String DOPPIO = "Doppio";
    +
    +    @Rule
    +    public ActivityTestRule mActivityRule =
    +        new ActivityTestRule(WebViewActivity.class,
    +            false /* Initial touch mode */, false /*  launch activity */) {
    +
    +        @Override
    +        protected void afterActivityLaunched() {
    +            // Enable JavaScript.
    +            onWebView().forceJavascriptEnabled();
    +        }
    +    }
    +
    +    @Test
    +    public void typeTextInInput_clickButton_SubmitsForm() {
    +       // Lazily launch the Activity with a custom start Intent per test
    +       mActivityRule.launchActivity(withWebFormIntent());
    +
    +       // Selects the WebView in your layout.
    +       // If you have multiple WebViews you can also use a
    +       // matcher to select a given WebView, onWebView(withId(R.id.web_view)).
    +       onWebView()
    +           // Find the input element by ID
    +           .withElement(findElement(Locator.ID, "text_input"))
    +           // Clear previous input
    +           .perform(clearElement())
    +           // Enter text into the input element
    +           .perform(DriverAtoms.webKeys(MACCHIATO))
    +           // Find the submit button
    +           .withElement(findElement(Locator.ID, "submitBtn"))
    +           // Simulate a click via JavaScript
    +           .perform(webClick())
    +           // Find the response element by ID
    +           .withElement(findElement(Locator.ID, "response"))
    +           // Verify that the response page contains the entered text
    +           .check(webMatches(getText(), containsString(MACCHIATO)));
    +    }
    +}
    +
    + +

    + For more information about Espresso Web, see the + Espresso + Web documentation on the Android Testing Support Library site.. + You can also download this code snippet as part of the + Espresso Web code sample. +

    + + + +

    + Verifying Results +

    + +

    + Call the + {@code ViewInteraction.check()} + or + {@code DataInteraction.check()} + method to assert + that the view in the UI matches some expected state. You must pass in a + {@code ViewAssertion} + object as the argument. If the assertion fails, Espresso throws + an {@link junit.framework.AssertionFailedError}. +

    + +

    + The {@code ViewAssertions} - class provides a list of helper methods for specifying common - assertions. The assertions you can use include: -

    + class provides a list of helper methods for specifying common + assertions. The assertions you can use include: +

    -
      -
    • - {@code doesNotExist}: -Asserts that there is no view matching the specified criteria in the current view hierarchy. -
    • - -
    • - {@code matches}: - Asserts that the specified view exists in the current view hierarchy - and its state matches some given Hamcrest matcher. -
    • - -
    • - {@code selectedDescendentsMatch} - : Asserts that the specified children views for a - parent view exist, and their state matches some given Hamcrest matcher. -
    • -
    +
      +
    • + {@code doesNotExist}: + Asserts that there is no view matching the specified + criteria in the current view hierarchy. +
    • + +
    • + {@code matches}: + Asserts that the specified view exists in the current view hierarchy + and its state matches some given Hamcrest matcher. +
    • + +
    • + {@code selectedDescendentsMatch}: + Asserts that the specified children views for a + parent view exist, and their state matches some given Hamcrest matcher. +
    • +
    + +

    + The following code snippet shows how you might + check that the text displayed in the UI has + the same value as the text previously entered in the + {@link android.widget.EditText} field. +

    -

    - The following code snippet shows how you might check that the text displayed in the UI has - the same value as the text previously entered in the - {@link android.widget.EditText} field. -

     public void testChangeText_sameActivity() {
         // Type text and then press the button.
    @@ -580,14 +804,22 @@ public void testChangeText_sameActivity() {
     }
     
    -

    Run Espresso Tests on a Device or Emulator

    + + +

    + Run Espresso Tests on a Device or Emulator +

    +

    -You can run Espresso tests from Android Studio or -from the command-line. Make sure to specify - - {@code AndroidJUnitRunner} as the default instrumentation runner in your project. + You can run Espresso tests from + Android Studio or + from the command-line. Make sure to specify + {@code AndroidJUnitRunner} + as the default instrumentation runner in your project.

    +

    -To run your Espresso test, follow the steps for running instrumented tests -described in -Getting Started with Testing.

    + To run your Espresso test, follow the steps for running instrumented tests + described in + Getting Started with Testing. +

    -- GitLab From 4b17e984b6e41fbef80c9b0071b52f925567f0c9 Mon Sep 17 00:00:00 2001 From: Christopher Tate Date: Mon, 26 Sep 2016 12:59:10 -0700 Subject: [PATCH 563/809] Don't leak wakelock instances Bug 31247436 Change-Id: I7c2ad956c43233b37e53856e9321cb87b01c35da --- core/java/android/os/PowerManager.java | 5 +++++ .../android/server/job/JobServiceContext.java | 22 +++++++++++++++---- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/core/java/android/os/PowerManager.java b/core/java/android/os/PowerManager.java index 1aed9b322816..8d4d0a558334 100644 --- a/core/java/android/os/PowerManager.java +++ b/core/java/android/os/PowerManager.java @@ -1339,6 +1339,11 @@ public final class PowerManager { mTag = tag; } + /** @hide */ + public String getTag() { + return mTag; + } + /** @hide */ public void setHistoryTag(String tag) { mHistoryTag = tag; diff --git a/services/core/java/com/android/server/job/JobServiceContext.java b/services/core/java/com/android/server/job/JobServiceContext.java index 31528e509012..5989c3897c82 100644 --- a/services/core/java/com/android/server/job/JobServiceContext.java +++ b/services/core/java/com/android/server/job/JobServiceContext.java @@ -306,10 +306,24 @@ public class JobServiceContext extends IJobCallback.Stub implements ServiceConne this.service = IJobService.Stub.asInterface(service); final PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE); - mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, runningJob.getTag()); - mWakeLock.setWorkSource(new WorkSource(runningJob.getSourceUid())); - mWakeLock.setReferenceCounted(false); - mWakeLock.acquire(); + PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, + runningJob.getTag()); + wl.setWorkSource(new WorkSource(runningJob.getSourceUid())); + wl.setReferenceCounted(false); + wl.acquire(); + synchronized (mLock) { + // We use a new wakelock instance per job. In rare cases there is a race between + // teardown following job completion/cancellation and new job service spin-up + // such that if we simply assign mWakeLock to be the new instance, we orphan + // the currently-live lock instead of cleanly replacing it. Watch for this and + // explicitly fast-forward the release if we're in that situation. + if (mWakeLock != null) { + Slog.w(TAG, "Bound new job " + runningJob + " but live wakelock " + mWakeLock + + " tag=" + mWakeLock.getTag()); + mWakeLock.release(); + } + mWakeLock = wl; + } mCallbackHandler.obtainMessage(MSG_SERVICE_BOUND).sendToTarget(); } -- GitLab From 1983f9b05b3d1df5563789bfe20421b305a5cab2 Mon Sep 17 00:00:00 2001 From: Greg Kaiser Date: Tue, 27 Sep 2016 13:38:13 -0700 Subject: [PATCH 564/809] ContextHubService: Hack around 32-bit app ID The NanoApp.java class has a bug (b/30808791) where the API treats app IDs as 32-bits, instead of 64-bits. We are too late in the Android N release cycle to change this API. We previously put in a hack to fix this only for Google nanoapps. However, our GTS nanoapps need this to work, and there are other partners who need this to work in the N timeframe. So we make a more robust hack which parses the full 64-bit app ID out of the header binary. Test: Compiles and runs GTS Bug: 31767599 Change-Id: Ic43f1f62c685fb99aac08d08767d1a67c329503f --- .../hardware/location/ContextHubService.java | 51 +++++++++++++------ 1 file changed, 35 insertions(+), 16 deletions(-) diff --git a/core/java/android/hardware/location/ContextHubService.java b/core/java/android/hardware/location/ContextHubService.java index eea2387d7dea..06af46122a7b 100644 --- a/core/java/android/hardware/location/ContextHubService.java +++ b/core/java/android/hardware/location/ContextHubService.java @@ -18,6 +18,8 @@ package android.hardware.location; import java.io.FileDescriptor; import java.io.PrintWriter; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; import java.util.ArrayList; import java.util.HashMap; @@ -146,6 +148,36 @@ public class ContextHubService extends IContextHubService.Stub { return mContextHubInfo[contextHubHandle]; } + // TODO(b/30808791): Remove this when NanoApp's API is correctly treating + // app IDs as 64-bits. + private static long parseAppId(NanoApp app) { + // NOTE: If this shifting seems odd (since it's actually "ONAN"), note + // that it matches how this is defined in context_hub.h. + final int HEADER_MAGIC = + (((int)'N' << 0) | + ((int)'A' << 8) | + ((int)'N' << 16) | + ((int)'O' << 24)); + final int HEADER_MAGIC_OFFSET = 4; + final int HEADER_APP_ID_OFFSET = 8; + + ByteBuffer header = ByteBuffer.wrap(app.getAppBinary()) + .order(ByteOrder.LITTLE_ENDIAN); + + try { + if (header.getInt(HEADER_MAGIC_OFFSET) == HEADER_MAGIC) { + // This is a legitimate nanoapp header. Let's grab the app ID. + return header.getLong(HEADER_APP_ID_OFFSET); + } + } catch (IndexOutOfBoundsException e) { + // The header is undersized. We'll fall through to our code + // path below, which handles being unable to parse the header. + } + // We failed to parse the header. Even through it's probably wrong, + // let's give NanoApp's idea of our ID. This is at least consistent. + return app.getAppId(); + } + @Override public int loadNanoApp(int contextHubHandle, NanoApp app) throws RemoteException { checkPermissions(); @@ -162,27 +194,14 @@ public class ContextHubService extends IContextHubService.Stub { msgHeader[HEADER_FIELD_MSG_TYPE] = MSG_LOAD_NANO_APP; long appId = app.getAppId(); - // TODO(b/30808791): Remove this hack when the NanoApp API is fixed. - // Due to a bug in the NanoApp API, only the least significant four - // bytes of the app ID can be stored. The most significant five - // bytes of a normal app ID are the "vendor", and thus the most - // significant of the bytes we have is the least significant byte - // of the vendor. In the case that byte is the ASCII value for - // lower-case 'L', we assume the vendor is supposed to be "Googl" - // and fill in the four most significant bytes accordingly. + // TODO(b/30808791): Remove this hack when the NanoApp API is fixed, + // and getAppId() returns a 'long' instead of an 'int'. if ((appId >> 32) != 0) { // We're unlikely to notice this warning, but at least // we can avoid running our hack logic. Log.w(TAG, "Code has not been updated since API fix."); } else { - // Note: Lower-case 'L', not the number 1. - if (((appId >> 24) & 0xFF) == (long)'l') { - // Assume we're a Google nanoapp. - appId |= ((long)'G') << 56; - appId |= ((long)'o') << 48; - appId |= ((long)'o') << 40; - appId |= ((long)'g') << 32; - } + appId = parseAppId(app); } msgHeader[HEADER_FIELD_LOAD_APP_ID_LO] = (int)(appId & 0xFFFFFFFF); -- GitLab From ecfc6b52ecbcb822978a6a7b646f0880042f1a77 Mon Sep 17 00:00:00 2001 From: Selim Cinek Date: Tue, 27 Sep 2016 16:31:21 -0700 Subject: [PATCH 565/809] Fixed a bug where the scroller would stop tracking Because we were not scrolling anymore in the QS area the shade could become stuck and scrolled in too much. Change-Id: I2c517d0a8da35230d0510c2a6b0e817d8d3567af Fixes: 31440725 --- .../systemui/statusbar/stack/NotificationStackScrollLayout.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java index 3e339d8b2940..84a2770841b0 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java @@ -1228,7 +1228,7 @@ public class NotificationStackScrollLayout extends ViewGroup if (!isScrollingEnabled()) { return false; } - if (ev.getY() < mQsContainer.getBottom()) { + if (ev.getY() < mQsContainer.getBottom() && !mIsBeingDragged) { return false; } mForcedScroll = null; -- GitLab From bb129294700d7c31a3793717efe14b06a7bd2305 Mon Sep 17 00:00:00 2001 From: Teng-Hui Zhu Date: Tue, 27 Sep 2016 16:03:05 -0700 Subject: [PATCH 566/809] Update JavaDoc about animatable on VectorDrawable b/31782834 Change-Id: I64279fd14841302caaa71c817feaf01b855126ad --- .../graphics/drawable/VectorDrawable.java | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/graphics/java/android/graphics/drawable/VectorDrawable.java b/graphics/java/android/graphics/drawable/VectorDrawable.java index 9ff69650294d..9cb7a2bfbfa0 100644 --- a/graphics/java/android/graphics/drawable/VectorDrawable.java +++ b/graphics/java/android/graphics/drawable/VectorDrawable.java @@ -76,27 +76,36 @@ import dalvik.system.VMRuntime; *
    *
    android:name
    *
    Defines the name of this vector drawable.
    + *
    Animatable : No.
    *
    android:width
    *
    Used to define the intrinsic width of the drawable. * This support all the dimension units, normally specified with dp.
    + *
    Animatable : No.
    *
    android:height
    *
    Used to define the intrinsic height the drawable. * This support all the dimension units, normally specified with dp.
    + *
    Animatable : No.
    *
    android:viewportWidth
    *
    Used to define the width of the viewport space. Viewport is basically * the virtual canvas where the paths are drawn on.
    + *
    Animatable : No.
    *
    android:viewportHeight
    *
    Used to define the height of the viewport space. Viewport is basically * the virtual canvas where the paths are drawn on.
    + *
    Animatable : No.
    *
    android:tint
    *
    The color to apply to the drawable as a tint. By default, no tint is applied.
    + *
    Animatable : No.
    *
    android:tintMode
    *
    The Porter-Duff blending mode for the tint color. The default value is src_in.
    + *
    Animatable : No.
    *
    android:autoMirrored
    *
    Indicates if the drawable needs to be mirrored when its layout direction is * RTL (right-to-left).
    + *
    Animatable : No.
    *
    android:alpha
    *
    The opacity of this drawable.
    + *
    Animatable : Yes.
    *
    * * @@ -108,24 +117,32 @@ import dalvik.system.VMRuntime; *
    *
    android:name
    *
    Defines the name of the group.
    + *
    Animatable : No.
    *
    android:rotation
    *
    The degrees of rotation of the group.
    + *
    Animatable : Yes.
    *
    android:pivotX
    *
    The X coordinate of the pivot for the scale and rotation of the group. * This is defined in the viewport space.
    + *
    Animatable : Yes.
    *
    android:pivotY
    *
    The Y coordinate of the pivot for the scale and rotation of the group. * This is defined in the viewport space.
    + *
    Animatable : Yes.
    *
    android:scaleX
    *
    The amount of scale on the X Coordinate.
    + *
    Animatable : Yes.
    *
    android:scaleY
    *
    The amount of scale on the Y coordinate.
    + *
    Animatable : Yes.
    *
    android:translateX
    *
    The amount of translation on the X coordinate. * This is defined in the viewport space.
    + *
    Animatable : Yes.
    *
    android:translateY
    *
    The amount of translation on the Y coordinate. * This is defined in the viewport space.
    + *
    Animatable : Yes.
    *
    * * @@ -135,45 +152,60 @@ import dalvik.system.VMRuntime; *
    *
    android:name
    *
    Defines the name of the path.
    + *
    Animatable : No.
    *
    android:pathData
    *
    Defines path data using exactly same format as "d" attribute * in the SVG's path data. This is defined in the viewport space.
    + *
    Animatable : Yes.
    *
    android:fillColor
    *
    Specifies the color used to fill the path. May be a color or, for SDK 24+, a color state list * or a gradient color (See {@link android.R.styleable#GradientColor} * and {@link android.R.styleable#GradientColorItem}). * If this property is animated, any value set by the animation will override the original value. * No path fill is drawn if this property is not specified.
    + *
    Animatable : Yes.
    *
    android:strokeColor
    *
    Specifies the color used to draw the path outline. May be a color or, for SDK 24+, a color * state list or a gradient color (See {@link android.R.styleable#GradientColor} * and {@link android.R.styleable#GradientColorItem}). * If this property is animated, any value set by the animation will override the original value. * No path outline is drawn if this property is not specified.
    + *
    Animatable : Yes.
    *
    android:strokeWidth
    *
    The width a path stroke.
    + *
    Animatable : Yes.
    *
    android:strokeAlpha
    *
    The opacity of a path stroke.
    + *
    Animatable : Yes.
    *
    android:fillAlpha
    *
    The opacity to fill the path with.
    + *
    Animatable : Yes.
    *
    android:trimPathStart
    *
    The fraction of the path to trim from the start, in the range from 0 to 1.
    + *
    Animatable : Yes.
    *
    android:trimPathEnd
    *
    The fraction of the path to trim from the end, in the range from 0 to 1.
    + *
    Animatable : Yes.
    *
    android:trimPathOffset
    *
    Shift trim region (allows showed region to include the start and end), in the range * from 0 to 1.
    + *
    Animatable : Yes.
    *
    android:strokeLineCap
    *
    Sets the linecap for a stroked path: butt, round, square.
    + *
    Animatable : No.
    *
    android:strokeLineJoin
    *
    Sets the lineJoin for a stroked path: miter,round,bevel.
    + *
    Animatable : No.
    *
    android:strokeMiterLimit
    *
    Sets the Miter limit for a stroked path.
    + *
    Animatable : No.
    *
    android:fillType
    *
    Sets the fillType for a path. The types can be either "evenOdd" or "nonZero". They behave the * same as SVG's "fill-rule" properties. For more details, see * FillRuleProperty
    + *
    Animatable : No.
    *
    + * * * *
    @@ -183,9 +215,11 @@ import dalvik.system.VMRuntime; *
    *
    android:name
    *
    Defines the name of the clip path.
    + *
    Animatable : No.
    *
    android:pathData
    *
    Defines clip path using the same format as "d" attribute * in the SVG's path data.
    + *
    Animatable : Yes.
    *
    *
    *
  • Here is a simple VectorDrawable in this vectordrawable.xml file. -- GitLab From aed92d054768ded56c79c7619c30373a692826ae Mon Sep 17 00:00:00 2001 From: Vadim Tryshev Date: Tue, 27 Sep 2016 17:17:07 -0700 Subject: [PATCH 567/809] Fixing html glitch in drag/drop docs. Bug: 31702571 Change-Id: Id00baac3c9c16f6dc7145a920ec9659d63ebab2a --- docs/html/guide/topics/ui/drag-drop.jd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/html/guide/topics/ui/drag-drop.jd b/docs/html/guide/topics/ui/drag-drop.jd index 4a87cd4938cb..8e4297f8ce1b 100644 --- a/docs/html/guide/topics/ui/drag-drop.jd +++ b/docs/html/guide/topics/ui/drag-drop.jd @@ -321,7 +321,7 @@ DraggableDot.java in 0 && DUMP_ARG_CONFIRM.equals(args[0])) { + // Execute confirmConfiguration() and take no further action. + confirmConfiguration(); + return; + } + IndentingPrintWriter pw = new IndentingPrintWriter(writer, " "); pw.println("APF dump:"); pw.increaseIndent(); -- GitLab From adc26ec1b4060358d918d1bdf491f5192b35c2d3 Mon Sep 17 00:00:00 2001 From: Jeremy Klein Date: Tue, 27 Sep 2016 14:34:33 -0700 Subject: [PATCH 569/809] Remove unused mContext from BluetoothGatt[Server]. All that this member variable is doing right now is leaking a reference to a context without any benefit. Bug: 31752040 Bug: 31710795 Change-Id: If2241422533318b866340e8dcc9f5fbd9518349c --- core/java/android/bluetooth/BluetoothDevice.java | 2 +- core/java/android/bluetooth/BluetoothGatt.java | 4 +--- core/java/android/bluetooth/BluetoothGattServer.java | 4 +--- core/java/android/bluetooth/BluetoothManager.java | 2 +- 4 files changed, 4 insertions(+), 8 deletions(-) diff --git a/core/java/android/bluetooth/BluetoothDevice.java b/core/java/android/bluetooth/BluetoothDevice.java index 6d6dfebced2c..cd5eff29237c 100644 --- a/core/java/android/bluetooth/BluetoothDevice.java +++ b/core/java/android/bluetooth/BluetoothDevice.java @@ -1596,7 +1596,7 @@ public final class BluetoothDevice implements Parcelable { // BLE is not supported return null; } - BluetoothGatt gatt = new BluetoothGatt(context, iGatt, this, transport); + BluetoothGatt gatt = new BluetoothGatt(iGatt, this, transport); gatt.connect(autoConnect, callback); return gatt; } catch (RemoteException e) {Log.e(TAG, "", e);} diff --git a/core/java/android/bluetooth/BluetoothGatt.java b/core/java/android/bluetooth/BluetoothGatt.java index 800dd434a969..552c8d3b0143 100644 --- a/core/java/android/bluetooth/BluetoothGatt.java +++ b/core/java/android/bluetooth/BluetoothGatt.java @@ -41,7 +41,6 @@ public final class BluetoothGatt implements BluetoothProfile { private static final boolean DBG = true; private static final boolean VDBG = false; - private final Context mContext; private IBluetoothGatt mService; private BluetoothGattCallback mCallback; private int mClientIf; @@ -496,9 +495,8 @@ public final class BluetoothGatt implements BluetoothProfile { } }; - /*package*/ BluetoothGatt(Context context, IBluetoothGatt iGatt, BluetoothDevice device, + /*package*/ BluetoothGatt(IBluetoothGatt iGatt, BluetoothDevice device, int transport) { - mContext = context; mService = iGatt; mDevice = device; mTransport = transport; diff --git a/core/java/android/bluetooth/BluetoothGattServer.java b/core/java/android/bluetooth/BluetoothGattServer.java index f4513405b196..9f8d1a77a809 100644 --- a/core/java/android/bluetooth/BluetoothGattServer.java +++ b/core/java/android/bluetooth/BluetoothGattServer.java @@ -44,7 +44,6 @@ public final class BluetoothGattServer implements BluetoothProfile { private static final boolean DBG = true; private static final boolean VDBG = false; - private final Context mContext; private BluetoothAdapter mAdapter; private IBluetoothGatt mService; private BluetoothGattServerCallback mCallback; @@ -307,8 +306,7 @@ public final class BluetoothGattServer implements BluetoothProfile { /** * Create a BluetoothGattServer proxy object. */ - /*package*/ BluetoothGattServer(Context context, IBluetoothGatt iGatt, int transport) { - mContext = context; + /*package*/ BluetoothGattServer(IBluetoothGatt iGatt, int transport) { mService = iGatt; mAdapter = BluetoothAdapter.getDefaultAdapter(); mCallback = null; diff --git a/core/java/android/bluetooth/BluetoothManager.java b/core/java/android/bluetooth/BluetoothManager.java index 00058a979094..29283e793ce9 100644 --- a/core/java/android/bluetooth/BluetoothManager.java +++ b/core/java/android/bluetooth/BluetoothManager.java @@ -236,7 +236,7 @@ public final class BluetoothManager { Log.e(TAG, "Fail to get GATT Server connection"); return null; } - BluetoothGattServer mGattServer = new BluetoothGattServer(context, iGatt,transport); + BluetoothGattServer mGattServer = new BluetoothGattServer(iGatt,transport); Boolean regStatus = mGattServer.registerCallback(callback); return regStatus? mGattServer : null; } catch (RemoteException e) { -- GitLab From 6e5f3d2e9fc130cd4118296a50a88f3cddb21fda Mon Sep 17 00:00:00 2001 From: Jorim Jaggi Date: Wed, 28 Sep 2016 13:30:27 +0200 Subject: [PATCH 570/809] Fix NPE in overridePlayingAppAnimations It's not guaranteed that findMainWindow() is non-null, which can happen if the window was just added, so we should not crash in that case. Change-Id: I1f04876ef48bfc7636320124b7f60d6dfa0b24a2 Fixes: 31767124 --- services/core/java/com/android/server/wm/AppWindowToken.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/services/core/java/com/android/server/wm/AppWindowToken.java b/services/core/java/com/android/server/wm/AppWindowToken.java index a8a0b0efb784..b1d2edfcbdda 100644 --- a/services/core/java/com/android/server/wm/AppWindowToken.java +++ b/services/core/java/com/android/server/wm/AppWindowToken.java @@ -846,6 +846,9 @@ class AppWindowToken extends WindowToken { void overridePlayingAppAnimations(Animation a) { if (mAppAnimator.isAnimating()) { final WindowState win = findMainWindow(); + if (win == null) { + return; + } final int width = win.mContainingFrame.width(); final int height = win.mContainingFrame.height(); mAppAnimator.setAnimation(a, width, height, false, STACK_CLIP_NONE); -- GitLab From 84afb1a9675d8090f4b4efe39d7eb967c6dc6bb9 Mon Sep 17 00:00:00 2001 From: Jorim Jaggi Date: Wed, 28 Sep 2016 14:54:04 +0200 Subject: [PATCH 571/809] Don't start recents if no transition is happening Change-Id: I06c65633139a1c0af4c9c2701ec16c42e5a5bb69 Fixes: 31643084 --- services/core/java/com/android/server/wm/AppTransition.java | 3 ++- .../com/android/server/wm/DockedStackDividerController.java | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/wm/AppTransition.java b/services/core/java/com/android/server/wm/AppTransition.java index e4ec295fa34e..cd46165b56b3 100644 --- a/services/core/java/com/android/server/wm/AppTransition.java +++ b/services/core/java/com/android/server/wm/AppTransition.java @@ -374,6 +374,7 @@ public class AppTransition implements Dump { void goodToGo(AppWindowAnimator topOpeningAppAnimator, AppWindowAnimator topClosingAppAnimator, ArraySet openingApps, ArraySet closingApps) { + int appTransition = mNextAppTransition; mNextAppTransition = TRANSIT_UNSET; mAppTransitionState = APP_STATE_RUNNING; notifyAppTransitionStartingLocked( @@ -382,7 +383,7 @@ public class AppTransition implements Dump { topOpeningAppAnimator != null ? topOpeningAppAnimator.animation : null, topClosingAppAnimator != null ? topClosingAppAnimator.animation : null); mService.getDefaultDisplayContentLocked().getDockedDividerController() - .notifyAppTransitionStarting(openingApps); + .notifyAppTransitionStarting(openingApps, appTransition); // Prolong the start for the transition when docking a task from recents, unless recents // ended it already then we don't need to wait. diff --git a/services/core/java/com/android/server/wm/DockedStackDividerController.java b/services/core/java/com/android/server/wm/DockedStackDividerController.java index f8d2ee931d04..6f0a43a20e8a 100644 --- a/services/core/java/com/android/server/wm/DockedStackDividerController.java +++ b/services/core/java/com/android/server/wm/DockedStackDividerController.java @@ -29,6 +29,7 @@ import static android.view.WindowManager.DOCKED_RIGHT; import static android.view.WindowManager.DOCKED_TOP; import static com.android.server.wm.AppTransition.DEFAULT_APP_TRANSITION_DURATION; import static com.android.server.wm.AppTransition.TOUCH_RESPONSE_INTERPOLATOR; +import static com.android.server.wm.AppTransition.TRANSIT_NONE; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WITH_CLASS_NAME; import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM; import static com.android.server.wm.WindowManagerService.H.NOTIFY_DOCKED_STACK_MINIMIZED_CHANGED; @@ -493,7 +494,7 @@ public class DockedStackDividerController implements DimLayerUser { checkMinimizeChanged(false /* animate */); } - void notifyAppTransitionStarting(ArraySet openingApps) { + void notifyAppTransitionStarting(ArraySet openingApps, int appTransition) { final boolean wasMinimized = mMinimizedDock; checkMinimizeChanged(true /* animate */); @@ -502,7 +503,8 @@ public class DockedStackDividerController implements DimLayerUser { // any case that was missed in ActivityStarter.postStartActivityUncheckedProcessing because // we couldn't retrace the launch of the app in the docked stack to the launch from // homescreen. - if (wasMinimized && mMinimizedDock && containsAppInDockedStack(openingApps)) { + if (wasMinimized && mMinimizedDock && containsAppInDockedStack(openingApps) + && appTransition != TRANSIT_NONE) { mService.showRecentApps(true /* fromHome */); } } -- GitLab From d953bf853d233026c9064e6a0c962b14cf4658d6 Mon Sep 17 00:00:00 2001 From: Hugo Benichi Date: Tue, 27 Sep 2016 09:22:35 +0900 Subject: [PATCH 572/809] Captive portal detection uses 3rd fallback probe This patch adds the possitibility to send a 3rd fallback validation probe in sendParallelHttpProbes when neither the 1st http probe nor the https probe came back with a conclusive answer. This 3rd probe is only used for trying again captive portal detection and does not return success, so that network validation always fails if the https probe fails. In addition, the url reveals a captive portal is now sent to the CaptivePortalLoginActivity so that all three probes can use different urls. Bug: 29367974 Change-Id: I7385fde1aa1316d94aac350af0e956cb193aa4ee --- .../net/metrics/ValidationProbeEvent.java | 12 +- .../server/connectivity/NetworkMonitor.java | 114 +++++++++++------- .../server/ConnectivityServiceTest.java | 2 +- 3 files changed, 80 insertions(+), 48 deletions(-) diff --git a/core/java/android/net/metrics/ValidationProbeEvent.java b/core/java/android/net/metrics/ValidationProbeEvent.java index 331cf0cdd4ad..1a31b56f1ffb 100644 --- a/core/java/android/net/metrics/ValidationProbeEvent.java +++ b/core/java/android/net/metrics/ValidationProbeEvent.java @@ -34,10 +34,12 @@ import java.lang.annotation.RetentionPolicy; @SystemApi public final class ValidationProbeEvent implements Parcelable { - public static final int PROBE_DNS = 0; - public static final int PROBE_HTTP = 1; - public static final int PROBE_HTTPS = 2; - public static final int PROBE_PAC = 3; + public static final int PROBE_DNS = 0; + public static final int PROBE_HTTP = 1; + public static final int PROBE_HTTPS = 2; + public static final int PROBE_PAC = 3; + /** {@hide} */ + public static final int PROBE_FALLBACK = 4; public static final int DNS_FAILURE = 0; public static final int DNS_SUCCESS = 1; @@ -57,7 +59,7 @@ public final class ValidationProbeEvent implements Parcelable { public final @ProbeType int probeType; public final @ReturnCode int returnCode; - /** @hide */ + /** {@hide} */ public ValidationProbeEvent( int netId, long durationMs, @ProbeType int probeType, @ReturnCode int returnCode) { this.netId = netId; diff --git a/services/core/java/com/android/server/connectivity/NetworkMonitor.java b/services/core/java/com/android/server/connectivity/NetworkMonitor.java index 42d80fc6fc48..01a2cad77e41 100644 --- a/services/core/java/com/android/server/connectivity/NetworkMonitor.java +++ b/services/core/java/com/android/server/connectivity/NetworkMonitor.java @@ -23,7 +23,6 @@ import static android.net.CaptivePortal.APP_RETURN_WANTED_AS_IS; import android.app.AlarmManager; import android.app.PendingIntent; import android.content.BroadcastReceiver; -import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; @@ -37,14 +36,12 @@ import android.net.Uri; import android.net.metrics.IpConnectivityLog; import android.net.metrics.NetworkEvent; import android.net.metrics.ValidationProbeEvent; +import android.net.util.Stopwatch; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; -import android.net.util.Stopwatch; import android.os.Handler; import android.os.Message; -import android.os.Process; import android.os.SystemClock; -import android.os.SystemProperties; import android.os.UserHandle; import android.provider.Settings; import android.telephony.CellIdentityCdma; @@ -66,18 +63,17 @@ import com.android.internal.annotations.VisibleForTesting; import com.android.internal.util.Protocol; import com.android.internal.util.State; import com.android.internal.util.StateMachine; -import com.android.internal.util.WakeupMessage; import java.io.IOException; import java.net.HttpURLConnection; import java.net.InetAddress; import java.net.MalformedURLException; -import java.net.UnknownHostException; import java.net.URL; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.atomic.AtomicReference; +import java.net.UnknownHostException; import java.util.List; import java.util.Random; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; /** * {@hide} @@ -87,6 +83,7 @@ public class NetworkMonitor extends StateMachine { private static final String TAG = NetworkMonitor.class.getSimpleName(); private static final String DEFAULT_SERVER = "connectivitycheck.gstatic.com"; private static final int SOCKET_TIMEOUT_MS = 10000; + private static final int PROBE_TIMEOUT_MS = 3000; public static final String ACTION_NETWORK_CONDITIONS_MEASURED = "android.net.conn.NETWORK_CONDITIONS_MEASURED"; public static final String EXTRA_CONNECTIVITY_TYPE = "extra_connectivity_type"; @@ -224,6 +221,9 @@ public class NetworkMonitor extends StateMachine { private final Stopwatch mEvaluationTimer = new Stopwatch(); + // This variable is set before transitioning to the mCaptivePortalState. + private CaptivePortalProbeResult mLastPortalProbeResult = CaptivePortalProbeResult.FAILED; + public NetworkMonitor(Context context, Handler handler, NetworkAgentInfo networkAgentInfo, NetworkRequest defaultRequest) { this(context, handler, networkAgentInfo, defaultRequest, new IpConnectivityLog()); @@ -389,6 +389,8 @@ public class NetworkMonitor extends StateMachine { sendMessage(CMD_CAPTIVE_PORTAL_APP_FINISHED, response); } })); + intent.putExtra(ConnectivityManager.EXTRA_CAPTIVE_PORTAL_URL, + mLastPortalProbeResult.detectUrl); intent.setFlags( Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK); mContext.startActivityAsUser(intent, UserHandle.CURRENT); @@ -412,14 +414,22 @@ public class NetworkMonitor extends StateMachine { */ @VisibleForTesting public static final class CaptivePortalProbeResult { - static final CaptivePortalProbeResult FAILED = new CaptivePortalProbeResult(599, null); + static final CaptivePortalProbeResult FAILED = new CaptivePortalProbeResult(599); - final int mHttpResponseCode; // HTTP response code returned from Internet probe. - final String mRedirectUrl; // Redirect destination returned from Internet probe. + private final int mHttpResponseCode; // HTTP response code returned from Internet probe. + final String redirectUrl; // Redirect destination returned from Internet probe. + final String detectUrl; // URL where a 204 response code indicates + // captive portal has been appeased. - public CaptivePortalProbeResult(int httpResponseCode, String redirectUrl) { + public CaptivePortalProbeResult( + int httpResponseCode, String redirectUrl, String detectUrl) { mHttpResponseCode = httpResponseCode; - mRedirectUrl = redirectUrl; + this.redirectUrl = redirectUrl; + this.detectUrl = detectUrl; + } + + public CaptivePortalProbeResult(int httpResponseCode) { + this(httpResponseCode, null, null); } boolean isSuccessful() { return mHttpResponseCode == 204; } @@ -492,7 +502,8 @@ public class NetworkMonitor extends StateMachine { transitionTo(mValidatedState); } else if (probeResult.isPortal()) { mConnectivityServiceHandler.sendMessage(obtainMessage(EVENT_NETWORK_TESTED, - NETWORK_TEST_RESULT_INVALID, mNetId, probeResult.mRedirectUrl)); + NETWORK_TEST_RESULT_INVALID, mNetId, probeResult.redirectUrl)); + mLastPortalProbeResult = probeResult; transitionTo(mCaptivePortalState); } else { final Message msg = obtainMessage(CMD_REEVALUATE, ++mReevaluateToken, 0); @@ -500,7 +511,7 @@ public class NetworkMonitor extends StateMachine { logNetworkEvent(NetworkEvent.NETWORK_VALIDATION_FAILED); mConnectivityServiceHandler.sendMessage(obtainMessage( EVENT_NETWORK_TESTED, NETWORK_TEST_RESULT_INVALID, mNetId, - probeResult.mRedirectUrl)); + probeResult.redirectUrl)); if (mAttempts >= BLAME_FOR_EVALUATION_ATTEMPTS) { // Don't continue to blame UID forever. TrafficStats.clearThreadStatsUid(); @@ -598,7 +609,7 @@ public class NetworkMonitor extends StateMachine { @VisibleForTesting protected CaptivePortalProbeResult isCaptivePortal() { - if (!mIsCaptivePortalCheckEnabled) return new CaptivePortalProbeResult(204, null); + if (!mIsCaptivePortalCheckEnabled) return new CaptivePortalProbeResult(204); URL pacUrl = null, httpUrl = null, httpsUrl = null; @@ -680,7 +691,7 @@ public class NetworkMonitor extends StateMachine { if (pacUrl != null) { result = sendHttpProbe(pacUrl, ValidationProbeEvent.PROBE_PAC); } else if (mUseHttps) { - result = sendParallelHttpProbes(httpsUrl, httpUrl); + result = sendParallelHttpProbes(httpsUrl, httpUrl, null); } else { result = sendHttpProbe(httpUrl, ValidationProbeEvent.PROBE_HTTP); } @@ -755,28 +766,24 @@ public class NetworkMonitor extends StateMachine { } } logValidationProbe(probeTimer.stop(), probeType, httpResponseCode); - return new CaptivePortalProbeResult(httpResponseCode, redirectUrl); + return new CaptivePortalProbeResult(httpResponseCode, redirectUrl, url.toString()); } - private CaptivePortalProbeResult sendParallelHttpProbes(URL httpsUrl, URL httpUrl) { - // Number of probes to wait for. We might wait for all of them, but we might also return if - // only one of them has replied. For example, we immediately return if the HTTP probe finds - // a captive portal, even if the HTTPS probe is timing out. + private CaptivePortalProbeResult sendParallelHttpProbes( + URL httpsUrl, URL httpUrl, URL fallbackUrl) { + // Number of probes to wait for. If a probe completes with a conclusive answer + // it shortcuts the latch immediately by forcing the count to 0. final CountDownLatch latch = new CountDownLatch(2); - // Which probe result we're going to use. This doesn't need to be atomic, but it does need - // to be final because otherwise we can't set it from the ProbeThreads. - final AtomicReference finalResult = new AtomicReference<>(); - final class ProbeThread extends Thread { private final boolean mIsHttps; - private volatile CaptivePortalProbeResult mResult; + private volatile CaptivePortalProbeResult mResult = CaptivePortalProbeResult.FAILED; public ProbeThread(boolean isHttps) { mIsHttps = isHttps; } - public CaptivePortalProbeResult getResult() { + public CaptivePortalProbeResult result() { return mResult; } @@ -788,32 +795,55 @@ public class NetworkMonitor extends StateMachine { mResult = sendHttpProbe(httpUrl, ValidationProbeEvent.PROBE_HTTP); } if ((mIsHttps && mResult.isSuccessful()) || (!mIsHttps && mResult.isPortal())) { - // HTTPS succeeded, or HTTP found a portal. Don't wait for the other probe. - finalResult.compareAndSet(null, mResult); - latch.countDown(); + // Stop waiting immediately if https succeeds or if http finds a portal. + while (latch.getCount() > 0) { + latch.countDown(); + } } - // Signal that one probe has completed. If we've already made a decision, or if this - // is the second probe, the latch will be at zero and we'll return a result. + // Signal this probe has completed. latch.countDown(); } } - ProbeThread httpsProbe = new ProbeThread(true); - ProbeThread httpProbe = new ProbeThread(false); - httpsProbe.start(); - httpProbe.start(); + final ProbeThread httpsProbe = new ProbeThread(true); + final ProbeThread httpProbe = new ProbeThread(false); try { - latch.await(); + httpsProbe.start(); + httpProbe.start(); + latch.await(PROBE_TIMEOUT_MS, TimeUnit.MILLISECONDS); } catch (InterruptedException e) { - validationLog("Error: probe wait interrupted!"); + validationLog("Error: probes wait interrupted!"); return CaptivePortalProbeResult.FAILED; } - // If there was no deciding probe, that means that both probes completed. Return HTTPS. - finalResult.compareAndSet(null, httpsProbe.getResult()); + final CaptivePortalProbeResult httpsResult = httpsProbe.result(); + final CaptivePortalProbeResult httpResult = httpProbe.result(); - return finalResult.get(); + // Look for a conclusive probe result first. + if (httpResult.isPortal()) { + return httpResult; + } + // httpsResult.isPortal() is not expected, but check it nonetheless. + if (httpsResult.isPortal() || httpsResult.isSuccessful()) { + return httpsResult; + } + // If a fallback url is specified, use a fallback probe to try again portal detection. + if (fallbackUrl != null) { + CaptivePortalProbeResult result = + sendHttpProbe(fallbackUrl, ValidationProbeEvent.PROBE_FALLBACK); + if (result.isPortal()) { + return result; + } + } + // Otherwise wait until https probe completes and use its result. + try { + httpsProbe.join(); + } catch (InterruptedException e) { + validationLog("Error: https probe wait interrupted!"); + return CaptivePortalProbeResult.FAILED; + } + return httpsProbe.result(); } /** diff --git a/services/tests/servicestests/src/com/android/server/ConnectivityServiceTest.java b/services/tests/servicestests/src/com/android/server/ConnectivityServiceTest.java index 24243a09de90..b6ec49fbaeb2 100644 --- a/services/tests/servicestests/src/com/android/server/ConnectivityServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/ConnectivityServiceTest.java @@ -596,7 +596,7 @@ public class ConnectivityServiceTest extends AndroidTestCase { @Override protected CaptivePortalProbeResult isCaptivePortal() { - return new CaptivePortalProbeResult(gen204ProbeResult, gen204ProbeRedirectUrl); + return new CaptivePortalProbeResult(gen204ProbeResult, gen204ProbeRedirectUrl, null); } } -- GitLab From 92eb22fdd2e5e2d99ca0b2c14e68dfd632323a90 Mon Sep 17 00:00:00 2001 From: Hugo Benichi Date: Tue, 27 Sep 2016 13:01:41 +0900 Subject: [PATCH 573/809] New Settings symbols for captive portal detection This patch defines new Settings symbols for - setting the probe urls for captive portal detection. - setting which User-Agent to use for captive portal detection. The existing default values for these settings are not changed, i.e: - HTTP and HTTPS probes urls are unchanged. - the fallback probe is not used. - User-Agent is empty by default. Bug: 29367974 Change-Id: I6e4b3b172e56b8b67fffa4b51f776d68d5851f25 --- core/java/android/provider/Settings.java | 33 +++++++++ .../android/server/ConnectivityService.java | 2 +- .../server/connectivity/NetworkMonitor.java | 74 +++++++++++++------ 3 files changed, 87 insertions(+), 22 deletions(-) diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index c9b03cc2db02..3cb46a7d3dc9 100755 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -7960,11 +7960,36 @@ public final class Settings { /** * The server used for captive portal detection upon a new conection. A * 204 response code from the server is used for validation. + * TODO: remove this deprecated symbol. * * @hide */ public static final String CAPTIVE_PORTAL_SERVER = "captive_portal_server"; + /** + * The URL used for HTTPS captive portal detection upon a new connection. + * A 204 response code from the server is used for validation. + * + * @hide + */ + public static final String CAPTIVE_PORTAL_HTTPS_URL = "captive_portal_https_url"; + + /** + * The URL used for HTTP captive portal detection upon a new connection. + * A 204 response code from the server is used for validation. + * + * @hide + */ + public static final String CAPTIVE_PORTAL_HTTP_URL = "captive_portal_http_url"; + + /** + * The URL used for fallback HTTP captive portal detection when previous HTTP + * and HTTPS captive portal detection attemps did not return a conclusive answer. + * + * @hide + */ + public static final String CAPTIVE_PORTAL_FALLBACK_URL = "captive_portal_fallback_url"; + /** * Whether to use HTTPS for network validation. This is enabled by default and the setting * needs to be set to 0 to disable it. This setting is a misnomer because captive portals @@ -7974,6 +7999,14 @@ public final class Settings { */ public static final String CAPTIVE_PORTAL_USE_HTTPS = "captive_portal_use_https"; + /** + * Which User-Agent string to use in the header of the captive portal detection probes. + * The User-Agent field is unset when this setting has no value (HttpUrlConnection default). + * + * @hide + */ + public static final String CAPTIVE_PORTAL_USER_AGENT = "captive_portal_user_agent"; + /** * Whether network service discovery is enabled. * diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index 524c3cc87c8b..b7dfd1962717 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -5501,7 +5501,7 @@ public class ConnectivityService extends IConnectivityManager.Stub @Override public String getCaptivePortalServerUrl() { - return NetworkMonitor.getCaptivePortalServerUrl(mContext); + return NetworkMonitor.getCaptivePortalServerHttpUrl(mContext); } @Override diff --git a/services/core/java/com/android/server/connectivity/NetworkMonitor.java b/services/core/java/com/android/server/connectivity/NetworkMonitor.java index 01a2cad77e41..13f31744c922 100644 --- a/services/core/java/com/android/server/connectivity/NetworkMonitor.java +++ b/services/core/java/com/android/server/connectivity/NetworkMonitor.java @@ -79,11 +79,20 @@ import java.util.concurrent.TimeUnit; * {@hide} */ public class NetworkMonitor extends StateMachine { - private static final boolean DBG = false; private static final String TAG = NetworkMonitor.class.getSimpleName(); - private static final String DEFAULT_SERVER = "connectivitycheck.gstatic.com"; + private static final boolean DBG = false; + + // Default urls for captive portal detection probes + private static final String DEFAULT_HTTPS_URL = + "https://connectivitycheck.gstatic.com/generate_204"; + private static final String DEFAULT_HTTP_URL = + "http://connectivitycheck.gstatic.com/generate_204"; + private static final String DEFAULT_FALLBACK_URL = null; + private static final String DEFAULT_USER_AGENT = null; + private static final int SOCKET_TIMEOUT_MS = 10000; - private static final int PROBE_TIMEOUT_MS = 3000; + private static final int PROBE_TIMEOUT_MS = 3000; + public static final String ACTION_NETWORK_CONDITIONS_MEASURED = "android.net.conn.NETWORK_CONDITIONS_MEASURED"; public static final String EXTRA_CONNECTIVITY_TYPE = "extra_connectivity_type"; @@ -596,22 +605,33 @@ public class NetworkMonitor extends StateMachine { } } - private static String getCaptivePortalServerUrl(Context context, boolean isHttps) { - String server = Settings.Global.getString(context.getContentResolver(), - Settings.Global.CAPTIVE_PORTAL_SERVER); - if (server == null) server = DEFAULT_SERVER; - return (isHttps ? "https" : "http") + "://" + server + "/generate_204"; + private static String getCaptivePortalServerHttpsUrl(Context context) { + return getSetting(context, Settings.Global.CAPTIVE_PORTAL_HTTPS_URL, DEFAULT_HTTPS_URL); + } + + public static String getCaptivePortalServerHttpUrl(Context context) { + return getSetting(context, Settings.Global.CAPTIVE_PORTAL_HTTP_URL, DEFAULT_HTTP_URL); + } + + private static String getCaptivePortalFallbackUrl(Context context) { + return getSetting(context, + Settings.Global.CAPTIVE_PORTAL_FALLBACK_URL, DEFAULT_FALLBACK_URL); + } + + private static String getCaptivePortalUserAgent(Context context) { + return getSetting(context, Settings.Global.CAPTIVE_PORTAL_USER_AGENT, DEFAULT_USER_AGENT); } - public static String getCaptivePortalServerUrl(Context context) { - return getCaptivePortalServerUrl(context, false); + private static String getSetting(Context context, String symbol, String defaultValue) { + final String value = Settings.Global.getString(context.getContentResolver(), symbol); + return value != null ? value : defaultValue; } @VisibleForTesting protected CaptivePortalProbeResult isCaptivePortal() { if (!mIsCaptivePortalCheckEnabled) return new CaptivePortalProbeResult(204); - URL pacUrl = null, httpUrl = null, httpsUrl = null; + URL pacUrl = null, httpsUrl = null, httpUrl = null, fallbackUrl = null; // On networks with a PAC instead of fetching a URL that should result in a 204 // response, we instead simply fetch the PAC script. This is done for a few reasons: @@ -632,20 +652,17 @@ public class NetworkMonitor extends StateMachine { // results for network validation. final ProxyInfo proxyInfo = mNetworkAgentInfo.linkProperties.getHttpProxy(); if (proxyInfo != null && !Uri.EMPTY.equals(proxyInfo.getPacFileUrl())) { - try { - pacUrl = new URL(proxyInfo.getPacFileUrl().toString()); - } catch (MalformedURLException e) { - validationLog("Invalid PAC URL: " + proxyInfo.getPacFileUrl().toString()); + pacUrl = makeURL(proxyInfo.getPacFileUrl().toString()); + if (pacUrl == null) { return CaptivePortalProbeResult.FAILED; } } if (pacUrl == null) { - try { - httpUrl = new URL(getCaptivePortalServerUrl(mContext, false)); - httpsUrl = new URL(getCaptivePortalServerUrl(mContext, true)); - } catch (MalformedURLException e) { - validationLog("Bad validation URL: " + getCaptivePortalServerUrl(mContext, false)); + httpsUrl = makeURL(getCaptivePortalServerHttpsUrl(mContext)); + httpUrl = makeURL(getCaptivePortalServerHttpUrl(mContext)); + fallbackUrl = makeURL(getCaptivePortalFallbackUrl(mContext)); + if (httpUrl == null || httpsUrl == null) { return CaptivePortalProbeResult.FAILED; } } @@ -691,7 +708,7 @@ public class NetworkMonitor extends StateMachine { if (pacUrl != null) { result = sendHttpProbe(pacUrl, ValidationProbeEvent.PROBE_PAC); } else if (mUseHttps) { - result = sendParallelHttpProbes(httpsUrl, httpUrl, null); + result = sendParallelHttpProbes(httpsUrl, httpUrl, fallbackUrl); } else { result = sendHttpProbe(httpUrl, ValidationProbeEvent.PROBE_HTTP); } @@ -721,6 +738,10 @@ public class NetworkMonitor extends StateMachine { urlConnection.setConnectTimeout(SOCKET_TIMEOUT_MS); urlConnection.setReadTimeout(SOCKET_TIMEOUT_MS); urlConnection.setUseCaches(false); + final String userAgent = getCaptivePortalUserAgent(mContext); + if (userAgent != null) { + urlConnection.setRequestProperty("User-Agent", userAgent); + } // Time how long it takes to get a response to our request long requestTimestamp = SystemClock.elapsedRealtime(); @@ -846,6 +867,17 @@ public class NetworkMonitor extends StateMachine { return httpsProbe.result(); } + private URL makeURL(String url) { + if (url != null) { + try { + return new URL(url); + } catch (MalformedURLException e) { + validationLog("Bad URL: " + url); + } + } + return null; + } + /** * @param responseReceived - whether or not we received a valid HTTP response to our request. * If false, isCaptivePortal and responseTimestampMs are ignored -- GitLab From ec727411d2d97ba79d3e32edb304279af078377e Mon Sep 17 00:00:00 2001 From: Eino-Ville Talvala Date: Tue, 27 Sep 2016 17:15:11 -0700 Subject: [PATCH 574/809] DngCreator: Do not cache timezone in static initializer The static initializer for a pre-loaded framework class is run no later than at zygote startup, which happens at device boot. Which means that if the timezone later changes, DngCreator will use an incorrect cached timezone until the next reboot. This is especially evident in freshly wiped devices, where initial setup will typically change the timezone. Instead, read the timezone each time DngCreator is created, which is also when we query the current time for constructing the timestamps. Test: android.hardware.camera2.cts.DngCreatorTest#testSingleImageThumbnail Bug: 31743060 Change-Id: I83a4eac762650e5f904f3b8fa779c094cef30562 --- core/java/android/hardware/camera2/DngCreator.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/core/java/android/hardware/camera2/DngCreator.java b/core/java/android/hardware/camera2/DngCreator.java index 45fa15e043e5..1a51acd6c5ec 100644 --- a/core/java/android/hardware/camera2/DngCreator.java +++ b/core/java/android/hardware/camera2/DngCreator.java @@ -119,8 +119,14 @@ public final class DngCreator implements AutoCloseable { captureTime = timestamp / 1000000 + timeOffset; } + // Create this fresh each time since the time zone may change while a long-running application + // is active. + final DateFormat dateTimeStampFormat = + new SimpleDateFormat(TIFF_DATETIME_FORMAT); + dateTimeStampFormat.setTimeZone(TimeZone.getDefault()); + // Format for metadata - String formattedCaptureTime = sDateTimeStampFormat.format(captureTime); + String formattedCaptureTime = dateTimeStampFormat.format(captureTime); nativeInit(characteristics.getNativeCopy(), metadata.getNativeCopy(), formattedCaptureTime); @@ -467,13 +473,10 @@ public final class DngCreator implements AutoCloseable { private static final String GPS_DATE_FORMAT_STR = "yyyy:MM:dd"; private static final String TIFF_DATETIME_FORMAT = "yyyy:MM:dd HH:mm:ss"; private static final DateFormat sExifGPSDateStamp = new SimpleDateFormat(GPS_DATE_FORMAT_STR); - private static final DateFormat sDateTimeStampFormat = - new SimpleDateFormat(TIFF_DATETIME_FORMAT); private final Calendar mGPSTimeStampCalendar = Calendar .getInstance(TimeZone.getTimeZone("UTC")); static { - sDateTimeStampFormat.setTimeZone(TimeZone.getDefault()); sExifGPSDateStamp.setTimeZone(TimeZone.getTimeZone("UTC")); } -- GitLab From bfc1ba951e9dd70528aff11a83c66f7f9a094c87 Mon Sep 17 00:00:00 2001 From: sreevanis Date: Wed, 28 Sep 2016 11:16:56 -0700 Subject: [PATCH 575/809] docs:Added Wear partner logos. Bug:31364865 Change-Id: Iab45bd1d058a6fd407d546b69c0368d7a7c69015 --- docs/html/wear/images/partners/mkors.png | Bin 0 -> 9355 bytes docs/html/wear/images/partners/nixon.png | Bin 0 -> 3813 bytes docs/html/wear/images/partners/polar.png | Bin 0 -> 3418 bytes docs/html/wear/index.jd | 9 +++++++++ 4 files changed, 9 insertions(+) create mode 100644 docs/html/wear/images/partners/mkors.png create mode 100644 docs/html/wear/images/partners/nixon.png create mode 100644 docs/html/wear/images/partners/polar.png diff --git a/docs/html/wear/images/partners/mkors.png b/docs/html/wear/images/partners/mkors.png new file mode 100644 index 0000000000000000000000000000000000000000..2f1e8ec3aad4f4c159f1b7ff660bb597e1e9d877 GIT binary patch literal 9355 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

    cDTs1&)1cc^V)eBRMLHk|ne{p&&n@PYW~& zRo3aa4)6lBJMic`B%{IC9dJ#mCY|e%R8tzd5MD47b@V|LxN?}5jKxt#>3-Dc^!ptC}Y5xIGYW<)2 zcls9Zm*+v$JjJMRsSW!BmyF?IzI={G$AZ3$gvR&KsMP}A8cDX}-AnsRF1^o2BEbDF zF4><-^@L3NQ&SvPOgrRcL+B}2C#LK$tS+sv`hS_*+TW~&@-9}$Zsy?KM57VUx3)F; z(enP5tjED$ZMG=l4Ee$Uj<(P%tv}(@SP{1nDok;GhEw3WD#)Ug6I@uq9*W1-F zz%%SoeK3ta`HdP(_5>R>pexZCBktKgNd8kv&-fIs5~!pAh()x?wdo2xx@&oTLAyje zE+-LT+-YBg#@YprB%j_YoEdkBUE z(do{$>TM`l5p8#s*a}+G{EMX=n`fGvdhrW>8V0GeM)n4xUA`Kt`(3b<=iHcIMp9Xn zS)Kt>gg}Zw6gW_qj=2H%&I;%S2zsM)@xfB+=N`M=yw;_W99L$` zWm6`mpZ#U^iEZ0QTy9JpbUU`(3Yyk2%_TRSE*17_h4nSRYl?YwHDmo2%j2OIYmTYI ztFCm3^J15onqIX+Y^2Gf`ST?`4~~Cwt30@*K0%mXKls{mQkR|q9Y|j=80wkoA|E=({Rgy#Lrwqy literal 0 HcmV?d00001 diff --git a/docs/html/wear/images/partners/polar.png b/docs/html/wear/images/partners/polar.png new file mode 100644 index 0000000000000000000000000000000000000000..2faeb063e1ff5ed9a8decfa30caa708eaa465dd7 GIT binary patch literal 3418 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 G-}xUjO@^HS literal 0 HcmV?d00001 diff --git a/docs/html/wear/index.jd b/docs/html/wear/index.jd index f9bdef5ce6ce..1eb08bec612c 100644 --- a/docs/html/wear/index.jd +++ b/docs/html/wear/index.jd @@ -266,6 +266,9 @@ nonavpage=true

    MIPS +
    +
    + Michael
    Mobvoi @@ -276,6 +279,12 @@ nonavpage=true
    New Balance
    +
    + Nixon +
    +
    + Polar +
    Qualcomm
    -- GitLab From 2a03586998b857bb13f1119005be186e4a88ff02 Mon Sep 17 00:00:00 2001 From: Tianjie Xu Date: Sat, 24 Sep 2016 15:39:56 -0700 Subject: [PATCH 576/809] Log the error when uncrypt timeouts Log the error code to uncrypt_status if uncrypt gets killed because of timeout. Test: We log the error code correctly in uncrypt_status when uncrypt timeouts. Bug: 31603820 Change-Id: Ia623c333714295e68f4269257fbb4297a867e42b (cherry picked from commit 036d08638e6a5f849847a32d794ad34d7dec1368) --- core/java/android/os/RecoverySystem.java | 8 ++++++++ .../java/com/android/server/power/ShutdownThread.java | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/core/java/android/os/RecoverySystem.java b/core/java/android/os/RecoverySystem.java index 90bd11fe83bc..0b3abaaf33e8 100644 --- a/core/java/android/os/RecoverySystem.java +++ b/core/java/android/os/RecoverySystem.java @@ -93,6 +93,14 @@ public class RecoverySystem { */ public static final File UNCRYPT_PACKAGE_FILE = new File(RECOVERY_DIR, "uncrypt_file"); + /** + * UNCRYPT_STATUS_FILE stores the time cost (and error code in the case of a failure) + * of uncrypt. + * + * @hide + */ + public static final File UNCRYPT_STATUS_FILE = new File(RECOVERY_DIR, "uncrypt_status"); + // Length limits for reading files. private static final int LOG_FILE_MAX_LENGTH = 64 * 1024; diff --git a/services/core/java/com/android/server/power/ShutdownThread.java b/services/core/java/com/android/server/power/ShutdownThread.java index 8ce2fd9c2a83..44894ed99bb2 100644 --- a/services/core/java/com/android/server/power/ShutdownThread.java +++ b/services/core/java/com/android/server/power/ShutdownThread.java @@ -717,6 +717,14 @@ public final class ShutdownThread extends Thread { } if (!done[0]) { Log.w(TAG, "Timed out waiting for uncrypt."); + final int uncryptTimeoutError = 100; + String timeoutMessage = String.format("uncrypt_time: %d\n" + "uncrypt_error: %d\n", + MAX_UNCRYPT_WAIT_TIME / 1000, uncryptTimeoutError); + try { + FileUtils.stringToFile(RecoverySystem.UNCRYPT_STATUS_FILE, timeoutMessage); + } catch (IOException e) { + Log.e(TAG, "Failed to write timeout message to uncrypt status", e); + } } } } -- GitLab From bbaadc01663495736fa597305525e874a896ade4 Mon Sep 17 00:00:00 2001 From: Vladislav Kuzkokov Date: Wed, 28 Sep 2016 13:15:40 +0200 Subject: [PATCH 577/809] Fix logic in disabling BackupTransport in DO mode. We were disabling backup in consumer mode as well. BUG=31754835 TEST=android.content.pm.cts.shortcuthost.ShortcutManagerBackupTest Change-Id: I42e5cfa512fda1b471eb62c7eb8bc346383da2fa --- .../server/devicepolicy/DevicePolicyManagerService.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index c2ffa9bbab15..2eceb0b0a52e 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -8981,8 +8981,10 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { if (!isDeviceOwnerManagedSingleUserDevice()) { mInjector.securityLogSetLoggingEnabledProperty(false); Slog.w(LOG_TAG, "Security logging turned off as it's no longer a single user device."); - setBackupServiceEnabledInternal(false); - Slog.w(LOG_TAG, "Backup is off as it's a managed device that has more that one user."); + if (mOwners.hasDeviceOwner()) { + setBackupServiceEnabledInternal(false); + Slog.w(LOG_TAG, "Backup is off as it's a managed device that has more that one user."); + } } } -- GitLab From 1975021d88da6623a570a6ddab8b2397b1c0e59f Mon Sep 17 00:00:00 2001 From: Vladislav Kuzkokov Date: Wed, 28 Sep 2016 14:19:20 +0200 Subject: [PATCH 578/809] Fix backup for users hit by erroneous backup disabling BUG=31754835 Change-Id: I89dd08b7958dd8fe20d70bc50f2c89996ae46cc5 --- .../DevicePolicyManagerService.java | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index c2ffa9bbab15..11d9fb8ef2a4 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -496,6 +496,12 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { } }); } + // STOPSHIP: Remove this code once all dogfood devices are fixed. See b/31754835 + if (Intent.ACTION_BOOT_COMPLETED.equals(action) && !mOwners.hasDeviceOwner() + && !isBackupServiceEnabledInternal()) { + setBackupServiceEnabledInternal(true); + Slog.w(LOG_TAG, "Fix backup for device that is not in Device Owner mode."); + } if (Intent.ACTION_USER_UNLOCKED.equals(action) || Intent.ACTION_USER_STARTED.equals(action) || KeyChain.ACTION_STORAGE_CHANGED.equals(action)) { @@ -9317,12 +9323,15 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { } synchronized (this) { getActiveAdminForCallerLocked(admin, DeviceAdminInfo.USES_POLICY_DEVICE_OWNER); - try { - IBackupManager ibm = mInjector.getIBackupManager(); - return ibm != null && ibm.isBackupServiceActive(UserHandle.USER_SYSTEM); - } catch (RemoteException e) { - throw new IllegalStateException("Failed requesting backup service state.", e); - } + return isBackupServiceEnabledInternal(); + } + } + private boolean isBackupServiceEnabledInternal() { + try { + IBackupManager ibm = mInjector.getIBackupManager(); + return ibm != null && ibm.isBackupServiceActive(UserHandle.USER_SYSTEM); + } catch (RemoteException e) { + throw new IllegalStateException("Failed requesting backup service state.", e); } } } -- GitLab From 5c7636218dbc878641b2e11b86725b3e60730218 Mon Sep 17 00:00:00 2001 From: Bert McMeen Date: Wed, 31 Aug 2016 16:22:41 -0700 Subject: [PATCH 579/809] Docs: Complications additions and changes Bug: 28864917 Change-Id: I9551d30ee5fb4db9a77373b6445e145a5f4a3b11 --- .../wear/preview/features/complications.jd | 580 ++++++++++++++++-- 1 file changed, 531 insertions(+), 49 deletions(-) diff --git a/docs/html/wear/preview/features/complications.jd b/docs/html/wear/preview/features/complications.jd index 3334cb79b143..c8661188eb0a 100644 --- a/docs/html/wear/preview/features/complications.jd +++ b/docs/html/wear/preview/features/complications.jd @@ -12,6 +12,13 @@ page.image=/wear/preview/images/complications-main-image.png
    Adding Complications to a Watch Face
  • +
  • + Permissions + for Complication Data +
  • +
  • + Default Providers for Watch Faces +
  • Exposing Data to Complications @@ -27,12 +34,14 @@ page.image=/wear/preview/images/complications-main-image.png API Additions
  • +

    See Also

    1. Watch Face sample app with complications
    + @@ -56,9 +65,12 @@ page.image=/wear/preview/images/complications-main-image.png

    - Along with reviewing this page, download the Android Wear 2.0 Preview - Reference (see the Complications API additions) and review the Javadoc for complications. + You can review the Javadoc for complications by downloading + the Android Wear 2.0 Preview + Reference. Also see the API additions for + complications and the + + behavior changes for Wear 2.0.

    @@ -117,8 +129,8 @@ page.image=/wear/preview/images/complications-main-image.png WatchFaceService.Engine class, with a list of watch face complication IDs. A watch face creates these IDs to uniquely identify slots on the watch face where complications can appear, and passes them - to the createProviderChooserIntent method (of the - ProviderChooserIntent class) to allow the user to decide + to the createProviderChooserIntent method + to allow the user to decide which complication should go in which slot.

    @@ -186,6 +198,406 @@ page.image=/wear/preview/images/complications-main-image.png where possible.

    +

    + Permissions for Complication Data +

    + +

    + A watch face must have the following permission + to receive complication data and open the provider chooser: +

    + +
    +com.google.android.wearable.permission.RECEIVE_COMPLICATION_DATA
    +
    + +

    + Opening the provider chooser +

    + +

    + A watch face that was not granted the above permission will be unable to + start the provider chooser. +

    + +

    + To make it easier to request the permission and start the chooser, the + ComplicationHelperActivity class is available in the + wearable support library. This class should be used instead of + ProviderChooserIntent to start the chooser in almost all + cases. +

    + +

    + Requesting the necessary permission +

    + +

    + To use ComplicationHelperActivity, add it to the watch face + in the + manifest file: +

    + +
    +<activity android:name="android.support.wearable.complications.ComplicationHelperActivity"/>
    +
    + +

    + To start the provider chooser, call the + ComplicationHelperActivity.createProviderChooserHelperIntent + method, to obtain an intent. +

    + +

    + The new intent can be used with either startActivity or + startActivityForResult to launch the chooser. +

    + +

    + Here is an example of using the new intent with + startActivityForResult: +

    + +
    +startActivityForResult(
    +  ComplicationHelperActivity.createProviderChooserHelperIntent(
    +     getActivity(),
    +     watchFace,
    +     complicationId,
    +     ComplicationData.TYPE_LARGE_IMAGE),
    +  PROVIDER_CHOOSER_REQUEST_CODE);
    +
    +

    + When the helper activity is started, the helper activity checks if the + permission was granted. If the permission was not granted, the helper + activity makes a runtime permission request. If the permission request is + accepted (or is unneeded), the provider chooser is shown. +

    + +

    + If startActivityForResult was used with the intent, the + result delivered back to the calling Activity will have a result code of + RESULT_OK if a provider was successfully set, or a result + code of RESULT_CANCELLED if no provider was set. +

    + +

    + In the case where a provider was set, + ComplicationProviderInfo for the chosen provider will be + included in the data intent of the result, as an extra with the key + ProviderChooserIntent#EXTRA_PROVIDER_INFO. +

    + +

    + Receiving complication data +

    + +

    + In general, watch faces need the above permission in order to receive + complication data, but there are some exceptions. Specifically, a watch + face can only receive data from a provider if one of the following is + true: +

    + +
      +
    • The provider is a "safe" system provider, +
    • + +
    • The provider and watch face are from the same app, +
    • + +
    • The provider whitelists the watch face as a "safe" watch face, or +
    • + +
    • The watch face has the permission +
    • +
    + +

    + Lack of appropriate permission +

    + +

    + If none of the above is true, then when ComplicationData + normally would be sent by a provider to a watch face, the system instead + sends data of the type TYPE_NO_PERMISSION. This type + includes an icon (an exclamation mark) and short text ("--") to allow it + to be rendered as if it were of the short text type or icon type, for + convenience. +

    + +

    + When a watch face receives data of TYPE_NO_PERMISSION, the + watch face should render this appropriately, so the user can see that + action is needed for the complication to work. If possible, a tap on a + complication in this state should launch a permission request. This can + be done using + ComplicationHelperActivity.createPermissionRequestHelperIntent, + if the helper activity was added to the watch face app. +

    + +

    + If a user accepts the permission request created by the helper activity, + updates are requested for all the active complications on the watch face + automatically, allowing the TYPE_NO_PERMISSION data to be + replaced by real data. +

    + +

    + Safe providers +

    + +

    + Some system providers are considered "safe", because they only supply + information that the watch face already could obtain itself. +

    + +

    + These providers are listed in the new SystemProviders class + in the wearable support library. Whether a system provider is safe is + stated in the Javadoc (in the Android Wear 2.0 Preview Reference). Also + see System providers for a list. +

    + +

    + Provider-specified safe watch faces +

    + +

    + Providers can specify certain watch faces as "safe" to receive their + data. This is intended to be used only when the watch face will attempt + to use the provider as a default (see below), + and the provider trusts the watch face app. +

    + +

    + To declare watch faces as safe, the provider adds metadata with a key of + android.support.wearable.complications.SAFE_WATCH_FACES. The + metadata value should be a comma-separated list (whitespace is ignored). + Entries in the list can be component names (of + WatchFaceServices, given as if + ComponentName.flattenToString() had been called), or they + can be package names (of apps, in which case every watch face within a + specified app is considered safe). +

    + +

    + For example: +

    + +
    +<meta-data
    +       android:name="android.support.wearable.complications.SAFE_WATCH_FACES"
    +        android:value="
    +          com.app.watchface/com.app.watchface.MyWatchFaceService,
    +          com.anotherapp.anotherwatchface/com.something.WatchFaceService,
    +          com.something.text
    +        "/>
    +
    + +

    + Default Providers for Watch Faces +

    + +

    + Watch faces can specify default providers that are used until a user + selects a provider. +

    + +

    + Setting default providers +

    + +

    + Set default providers using the + setDefaultComplicationProvider method in + WatchFaceService.Engine. This method may be called at any + time, but it does nothing if the user already chose a provider for the + given complication. +

    + +

    + Safe providers +

    + +

    + For most providers, the RECEIVE_COMPLICATION_DATA permission + must be granted to a watch face before data can flow to it. However, some + system providers are considered "safe", and do not require the watch face + to have the permission for data to be sent (see Safe Providers and System providers). These providers may be + preferable to use as defaults, as they can supply data immediately. +

    + +

    + Alternatively, if a watch face has a partnership with a certain provider + and wishes to use it as a default, it can request that the provider list + it as a safe watch face (see Provider-specified safe watch + faces). +

    + +

    + System providers +

    + +

    + The system includes providers that can be used as defaults. These are + listed in the SystemProviders class in the wearable support + library. +

    + +

    + The following table has details about providers that are considered safe: +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + Method name in the SystemProviders class + + Safety + + Can be the default + + Notes +
    + dateProvider() + + Yes + + Yes + + The standard system date provider. Tapping opens the standard Agenda + app. +
    + currentTimeProvider() + + Yes + + Yes + + The standard system "time and date" provider. No tap action. +
    + batteryProvider() + + Yes + + Yes + + The standard system battery provider. No tap action. +
    + stepCountProvider() + + Yes + + Yes + + Shows a daily total of steps, as reported by + readDailyTotal. +
    + unreadCountProvider() + + Yes + + Yes + + Shows the number of unread notifications in the stream. +
    + worldClockProvider() + + Yes + + Yes + + Will default to London or New York. Can be tapped to change the time + zone. +
    + appsProvider() + + Yes + + Yes + + Will show an "apps" icon at first, which can be tapped to choose an + app. +
    + nextEventProvider() + + No + + Yes (but not a safe provider) + + The standard system "next event" provider. Tapping opens + the standard Agenda app. +

    +
    + +

    Exposing Data to Complications

    @@ -203,6 +615,11 @@ page.image=/wear/preview/images/complications-main-image.png be used to send data back to the system.

    +

    Note: When you provide data as a + complication data provider, the watch face receives the raw values + you send so it can draw them on the watch face. +

    +

    In your app's manifest, declare the service and add an intent filter for the following: @@ -210,7 +627,8 @@ page.image=/wear/preview/images/complications-main-image.png

     android.support.wearable.complications.ACTION_COMPLICATION_UPDATE_REQUEST
    -
    + +

    The service's manifest entry should also include an android:icon attribute. The provided icon should be a @@ -227,6 +645,21 @@ android.support.wearable.complications.ACTION_COMPLICATION_UPDATE_REQUEST API Additions).

    +

    + Additionally, a permission for provider services ensures that only the Android Wear system + can bind to provider services. Only the Android Wear system can have this + permission. +

    + +

    + Provider services should add the following to their service declarations + in the manifest: +

    + +
    +android:permission="com.google.android.wearable.permission.BIND_COMPLICATION_PROVIDER"
    +
    +

    Update period

    @@ -371,6 +804,11 @@ METADATA_KEY_PROVIDER_CONFIG_ACTION

    The following table describes the types and fields of the ComplicationData object. + If a watch face requests a field that is invalid for a complication type, + a default value for the field is returned. + For example, if a watch face tries to access a Long text + field in a SHORT_TEXT type, the default value for the + Long text field is returned.

    @@ -489,56 +927,80 @@ METADATA_KEY_PROVIDER_CONFIG_ACTION

    - In addition, the following two types have no fields. These two types may - be sent for any complication slot and do not need to be included in a - list of supported types: + In addition, the types in the table below are for empty data and + may be sent for any complication slot. These types have no fields + and do not need to be included in a + list of supported types. These types enable watch + faces to differentiate among the following three cases: +

    + +
      +
    • No provider was chosen +
    • + +
    • The user has selected "empty" for a slot +
    • + +
    • A provider has no data to send +
    • +
    + +

    + Providers should not send TYPE_EMPTY in response to + update requests. Providers should send TYPE_NO_DATA instead. +

    + +

    + Details on the complication types for "empty" data are in the + following table:

    - - - - - - + + +
    - Type - - Required fields + Complication type - Optional fields - - Notes + Description
    - NOT_CONFIGURED - - None - - None + TYPE_NOT_CONFIGURED - Sent when a provider has not yet been chosen for a complication. + Sent by the system when a complication is activated but the user has + not selected a provider, and no default was set. +

    + Cannot be sent by providers. +

    - EMPTY + TYPE_EMPTY - None + Sent by the system when a complication is activated and the user has + chosen "empty" instead of a provider, or when the watch face has + chosen no provider, and this type, as the default. +

    + Cannot be sent by providers. +

    - None + TYPE_NO_DATA - Sent by a provider when there is no data to display in a - complication, or sent by the system when nothing should be shown in a - complication. + Sent by the system when a complication (that has a provider) is + activated, to clear the complication before actual data is received + from the provider. +

    + Should be sent by providers if they have no actual data to send. +

    @@ -700,8 +1162,8 @@ METADATA_KEY_PROVIDER_CONFIG_ACTION

    - The Complications API includes new classes in the Wearable Support - Library. For more information, download the Android Wear 2.0 Preview Reference.

    @@ -722,14 +1184,26 @@ METADATA_KEY_PROVIDER_CONFIG_ACTION
  • - ComplicationText + ComplicationHelperActivity
      -
    • Used to supply text-based values in a - ComplicationData object +
    • Used to request the following permission:
      +com.google.android.wearable.permission.RECEIVE_COMPLICATION_DATA
    • -
    • Includes options for time-dependent values, whose text value - depends on the current time +
    • Used instead of ProviderChooserIntent + to start the chooser in almost all cases +
    • +
    +
  • + +
  • + ComplicationManager +
      +
    • A wrapper for the complication manager service, for use by + providers +
    • + +
    • Allows providers to send complication data to the system
  • @@ -747,13 +1221,14 @@ METADATA_KEY_PROVIDER_CONFIG_ACTION
  • - ComplicationManager + ComplicationText
      -
    • A wrapper for the complication manager service, for use by - providers +
    • Used to supply text-based values in a + ComplicationData object
    • -
    • Allows providers to send complication data to the system +
    • Includes options for time-dependent values, whose text value + depends on the current time
  • @@ -761,11 +1236,8 @@ METADATA_KEY_PROVIDER_CONFIG_ACTION
  • ProviderChooserIntent
      -
    • Non-instantiable utility class -
    • - -
    • Includes a method that a watch face can call for starting a - provider chooser (to allow a user to configure complications) +
    • Non-instantiable utility class that is not commonly used; use + ComplicationHelperActivity instead
  • @@ -789,6 +1261,16 @@ METADATA_KEY_PROVIDER_CONFIG_ACTION + +
  • + SystemProviders +
      +
    • Lists system providers that are considered "safe", + because they only supply information that the watch face + already could obtain itself +
    • +
    +
  • -- GitLab From b00d08796b1fbd94867aeb566e34b52d4938d1ea Mon Sep 17 00:00:00 2001 From: sreevanis Date: Tue, 13 Sep 2016 16:17:35 -0700 Subject: [PATCH 580/809] docs: Added documentation for Inline action on notification stream and steps for adding images to a notification. Bug:31012795 Change-Id: Ic7cbf1c2b8b5c2c7b18dadc95dd10c8b0d4add5b --- .../wear/preview/features/notifications.jd | 161 +++++++++++++++--- .../wear/preview/images/inline_action.png | Bin 0 -> 26246 bytes 2 files changed, 134 insertions(+), 27 deletions(-) create mode 100644 docs/html/wear/preview/images/inline_action.png diff --git a/docs/html/wear/preview/features/notifications.jd b/docs/html/wear/preview/features/notifications.jd index dcc09709deb3..b546978a8b9c 100644 --- a/docs/html/wear/preview/features/notifications.jd +++ b/docs/html/wear/preview/features/notifications.jd @@ -1,6 +1,5 @@ page.title=Notification Changes in Android Wear 2.0 -meta.tags="wear", "wear-preview", "notifications" -page.tags="wear" +meta.tags="wear", "wear-preview", "notifications" page.tags="wear" page.image=/wear/preview/images/expanded_diagram.png @@ -12,6 +11,7 @@ page.image=/wear/preview/images/expanded_diagram.png

    This document includes

    1. Visual Updates
    2. +
    3. Inline Action
    4. Expanded Notifications
    5. MessagingStyle
    @@ -67,7 +67,8 @@ material design visual changes. We recommended that you don't set color for bridged notifications. When Wear apps post local notifications, you can work around this by checking - the API level of the device they're running on and using an appropriate color + the API level of the device + they're running on and using an appropriate color for Wear 1.x and a different color for Wear 2.0. @@ -77,6 +78,85 @@ material design visual changes. you must update the text of your notification. + +

    Inline Action

    + + +

    + Wear 2.0 now supports inline action, which allows users to take actions on a + notification from within the notification stream card. On Wear, the inline + action appears as an additional button displayed at the bottom of the notification. +

    +

    + Inline actions are optional but recommended for cases in which users are likely + to take an action on a notification after viewing the contents in the + notification stream card (without going to the + expanded notification). + Examples of good use cases for inline action on a notification include: replying to a + text message, stopping a fitness activity, and archiving an email message. +

    + +

    + A notification can provide only one inline action. + To display the inline action as an additional button in the notification, set + the {@code setHintDisplayActionInline()} + method to true. When a user taps the inline action, the system invokes + the intent that you specified in the notification action. +

    + +

    Adding an inline action

    +

    + The following code example shows how to create a notification with an inline + reply action: +

    + +
      +
    1. Create an instance of + {@code RemoteInput.Builder} + that you can add to your notification action. This class's constructor accepts a + string that the system uses as the key for the text input. Later, your app + uses that key to retrieve the text of the input. + +
      +String[] choices = context.getResources().getStringArray(R.array.notification_reply_choices);
      +    choices = WearUtil.addEmojisToCannedResponse(choices);
      +  RemoteInput remoteInput = new RemoteInput.Builder(Intent.EXTRA_TEXT)
      +        .setLabel(context.getString(R.string.notification_prompt_reply))
      +        .setChoices(choices)
      +        .build();
      +
      + +
    2. + +
    3. + Use the {@code addRemoteInput()} + method to attach the {@code RemoteInput} + object to an action. + +
      +NotificationCompat.Action.Builder actionBuilder = new NotificationCompat.Action.Builder(
      +        R.drawable.ic_full_reply, R.string.notification_reply, replyPendingIntent);
      +    actionBuilder.addRemoteInput(remoteInput);
      +    actionBuilder.setAllowGeneratedReplies(true);
      +
      +
    4. + +
    5. + Add a hint to display the reply action inline, and use the + {@code addAction} + method to add this action to the notification. + +
      +// Android Wear 2.0 requires a hint to display the reply action inline.
      +    Action.WearableExtender actionExtender =
      +        new Action.WearableExtender()
      +            .setHintLaunchesActivity(true)
      +            .setHintDisplayActionInline(true);
      +    wearableExtender.addAction(actionBuilder.extend(actionExtender).build());
      +
      +
    6. +
    +

    Expanded Notifications

    Android Wear 2.0 introduces expanded notifications, which provide substantial additional content and actions for each notification. @@ -152,51 +232,52 @@ action in the notification unless a different action is specified using

    MessagingStyle

    -

    If you have a chat messaging app, your notifications should use -{@code Notification.MessagingStyle}, - which is new in Android N. Wear 2.0 uses the chat messages included - in a {@code MessagingStyle} notification - - (see {@code addMessage()}) to provide - a rich chat app-like experience in the expanded notification. +

    + If you have a chat messaging app, your notifications should use + {@code NotificationCompat.MessagingStyle}, + which is new in Android 7.0. Wear 2.0 uses the chat messages included in a + {@code MessagingStyle} notification + (see {@code addMessage()}) + to provide a rich chat app-like experience in the expanded notification.

    -

    Note: {@code MessagingStyle} +

    Note: {@code MessagingStyle} expanded notifications require that you have at least version 1.5.0.2861804 of the Android Wear app - on your paired Android phone. That version will be available within the next - few weeks in the Play Store. + on your paired Android phone.

    Smart Reply

    -

    Wear 2.0 also introduces Smart Reply -for {@code MessagingStyle} notifications. +

    Wear 2.0 also introduces Smart Reply for + {@code MessagingStyle} notifications. Smart Reply provides the user with contextually relevant, touchable choices in the expanded notification and in {@code RemoteInput}. These augment the fixed list of choices that the developer provides in - {@code RemoteInput} - using the - {@code setChoices()} method. + {@code RemoteInput} + using the + {@code setChoices()} method.

    -

    By enabling Smart Reply for your MessagingStyle notifications, - you provide users with a fast (single tap), discreet (no speaking aloud), and - reliable way to respond to chat messages. +

    Smart Reply provides users with a fast (single tap), discreet (no speaking aloud), + private (messages received by a user never leave the watch), and reliable (no + internet connection needed) way to respond to chat messages.

    -

    Responses generated by Smart Reply are shown in addition to those set using the - {@code setChoices()} method. +

    + Smart Reply responses are generated by an entirely on-watch machine learning + model using the context provided by the MessagingStyle notification. No user + notification data is sent to Google servers to generate Smart Reply responses.

    +

    To enable Smart Reply for your notification action, you need to do the following:

      -
    1. Use {@code Notification.MessagingStyle}. +
    2. Use {@code NotificationCompat.MessagingStyle}.
    3. -
    4. Call the method {@code setAllowGeneratedReplies()} for the notification action. - For more information, see the downloadable - API reference. +
    5. Call the method {@code setAllowGeneratedReplies(true)} + for the notification action.
    6. Ensure that the notification action has a {@code RemoteInput} @@ -236,3 +317,29 @@ Notification noti = new NotificationCompat.Builder() // 3) add an action with RemoteInput .extend(new WearableExtender().addAction(action)).build(); + +

      Adding images to a MessagingStyle notification

      +

      + You can add images to a notification message by setting the appropriate MIME + type and placing the URI to the image in {@code NotificationCompat.MessagingStyle.Message.} + {@code setData()} method. +

      +

      + Here is the code snippet to set data of type image in a notification: +

      +
      +NotificationCompat.MessagingStyle.Message message = new Message("sticker", 1, "Jeff")
      +                      .setData("image/png", stickerUri);
      +
      +  NotificationCompat notification = new NotificationCompat.Builder()
      +             .setStyle(new NotificationComapt.MessagingStyle("Me")
      +             .addMessage(message)
      +             .build());
      +
      +
      +

      + In the above code snippet the variable stickerUri is a Uri that + points to a publicly-accessible location, as described here + . +

      \ No newline at end of file diff --git a/docs/html/wear/preview/images/inline_action.png b/docs/html/wear/preview/images/inline_action.png new file mode 100644 index 0000000000000000000000000000000000000000..7ecaafeb25441ff8fd4c3b2b26725901774d444c GIT binary patch literal 26246 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 bJjDM4{=WQpGTfH?00000NkvXXu0mjf@=;$I literal 0 HcmV?d00001 -- GitLab From 5eb91a437c551ed0c66b38299f988f8159ada207 Mon Sep 17 00:00:00 2001 From: Tony Mantler Date: Wed, 28 Sep 2016 13:55:15 -0700 Subject: [PATCH 581/809] AsyncTask terminating with exception calls onCancelled Test: cts/tests/tests/os/src/android/os/cts/AsyncTaskTest.java b/30304893 Change-Id: Icb50cda8026ddd70d457b5e62eb29c81313ee47d --- core/java/android/os/AsyncTask.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/java/android/os/AsyncTask.java b/core/java/android/os/AsyncTask.java index 9a4b599f0e9b..fea64ec5ee1e 100644 --- a/core/java/android/os/AsyncTask.java +++ b/core/java/android/os/AsyncTask.java @@ -304,6 +304,9 @@ public abstract class AsyncTask { //noinspection unchecked result = doInBackground(mParams); Binder.flushPendingCommands(); + } catch (Throwable tr) { + mCancelled.set(true); + throw tr; } finally { postResult(result); } -- GitLab From 7813dd79184df122382467aec19e41c25b0c97ef Mon Sep 17 00:00:00 2001 From: Adrian Roos Date: Fri, 23 Sep 2016 17:12:17 -0700 Subject: [PATCH 582/809] DirectReply: Prevent closing the IME window on reinflation Fixes a bug where the IME window would close if the notification gets reinflated while direct reply is open. Change-Id: I37b8b29abe6b36c24e9a8bbf86f346523f1a4203 Fixes: 31181080 Test: manually; receive hangouts message, open direct reply, receive second message. Observe if IME closes. --- .../statusbar/NotificationContentView.java | 52 ++++++++--- .../statusbar/RemoteInputController.java | 89 +++++++++++++++---- .../statusbar/phone/PhoneStatusBar.java | 4 +- .../statusbar/policy/RemoteInputView.java | 46 ++++++++-- 4 files changed, 149 insertions(+), 42 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationContentView.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationContentView.java index 78e56c04ce9b..58d57f68d699 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationContentView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationContentView.java @@ -116,6 +116,8 @@ public class NotificationContentView extends FrameLayout { private boolean mForceSelectNextLayout = true; private PendingIntent mPreviousExpandedRemoteInputIntent; private PendingIntent mPreviousHeadsUpRemoteInputIntent; + private RemoteInputView mCachedExpandedRemoteInput; + private RemoteInputView mCachedHeadsUpRemoteInput; private int mContentHeightAtAnimationStart = UNDEFINED; private boolean mFocusOnVisibilityChange; @@ -298,6 +300,9 @@ public class NotificationContentView extends FrameLayout { mExpandedRemoteInput.onNotificationUpdateOrReset(); if (mExpandedRemoteInput.isActive()) { mPreviousExpandedRemoteInputIntent = mExpandedRemoteInput.getPendingIntent(); + mCachedExpandedRemoteInput = mExpandedRemoteInput; + mExpandedRemoteInput.dispatchStartTemporaryDetach(); + ((ViewGroup)mExpandedRemoteInput.getParent()).removeView(mExpandedRemoteInput); } } if (mExpandedChild != null) { @@ -310,6 +315,9 @@ public class NotificationContentView extends FrameLayout { mHeadsUpRemoteInput.onNotificationUpdateOrReset(); if (mHeadsUpRemoteInput.isActive()) { mPreviousHeadsUpRemoteInputIntent = mHeadsUpRemoteInput.getPendingIntent(); + mCachedHeadsUpRemoteInput = mHeadsUpRemoteInput; + mHeadsUpRemoteInput.dispatchStartTemporaryDetach(); + ((ViewGroup)mHeadsUpRemoteInput.getParent()).removeView(mHeadsUpRemoteInput); } } if (mHeadsUpChild != null) { @@ -963,22 +971,35 @@ public class NotificationContentView extends FrameLayout { View bigContentView = mExpandedChild; if (bigContentView != null) { mExpandedRemoteInput = applyRemoteInput(bigContentView, entry, hasRemoteInput, - mPreviousExpandedRemoteInputIntent); + mPreviousExpandedRemoteInputIntent, mCachedExpandedRemoteInput); } else { mExpandedRemoteInput = null; } + if (mCachedExpandedRemoteInput != null + && mCachedExpandedRemoteInput != mExpandedRemoteInput) { + // We had a cached remote input but didn't reuse it. Clean up required. + mCachedExpandedRemoteInput.dispatchFinishTemporaryDetach(); + } + mCachedExpandedRemoteInput = null; View headsUpContentView = mHeadsUpChild; if (headsUpContentView != null) { mHeadsUpRemoteInput = applyRemoteInput(headsUpContentView, entry, hasRemoteInput, - mPreviousHeadsUpRemoteInputIntent); + mPreviousHeadsUpRemoteInputIntent, mCachedHeadsUpRemoteInput); } else { mHeadsUpRemoteInput = null; } + if (mCachedHeadsUpRemoteInput != null + && mCachedHeadsUpRemoteInput != mHeadsUpRemoteInput) { + // We had a cached remote input but didn't reuse it. Clean up required. + mCachedHeadsUpRemoteInput.dispatchFinishTemporaryDetach(); + } + mCachedHeadsUpRemoteInput = null; } private RemoteInputView applyRemoteInput(View view, NotificationData.Entry entry, - boolean hasRemoteInput, PendingIntent existingPendingIntent) { + boolean hasRemoteInput, PendingIntent existingPendingIntent, + RemoteInputView cachedView) { View actionContainerCandidate = view.findViewById( com.android.internal.R.id.actions_container); if (actionContainerCandidate instanceof FrameLayout) { @@ -991,15 +1012,22 @@ public class NotificationContentView extends FrameLayout { if (existing == null && hasRemoteInput) { ViewGroup actionContainer = (FrameLayout) actionContainerCandidate; - RemoteInputView riv = RemoteInputView.inflate( - mContext, actionContainer, entry, mRemoteInputController); - - riv.setVisibility(View.INVISIBLE); - actionContainer.addView(riv, new LayoutParams( - ViewGroup.LayoutParams.MATCH_PARENT, - ViewGroup.LayoutParams.MATCH_PARENT) - ); - existing = riv; + if (cachedView == null) { + RemoteInputView riv = RemoteInputView.inflate( + mContext, actionContainer, entry, mRemoteInputController); + + riv.setVisibility(View.INVISIBLE); + actionContainer.addView(riv, new LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, + ViewGroup.LayoutParams.MATCH_PARENT) + ); + existing = riv; + } else { + actionContainer.addView(cachedView); + cachedView.dispatchFinishTemporaryDetach(); + cachedView.requestFocus(); + existing = cachedView; + } } if (hasRemoteInput) { int color = entry.notification.getNotification().color; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/RemoteInputController.java b/packages/SystemUI/src/com/android/systemui/statusbar/RemoteInputController.java index 6cbaceaa00ff..66cc15d7cc8f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/RemoteInputController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/RemoteInputController.java @@ -21,7 +21,9 @@ import com.android.systemui.statusbar.phone.StatusBarWindowManager; import com.android.systemui.statusbar.policy.HeadsUpManager; import com.android.systemui.statusbar.policy.RemoteInputView; +import android.util.ArrayMap; import android.util.ArraySet; +import android.util.Pair; import java.lang.ref.WeakReference; import java.util.ArrayList; @@ -31,8 +33,9 @@ import java.util.ArrayList; */ public class RemoteInputController { - private final ArrayList> mOpen = new ArrayList<>(); - private final ArraySet mSpinning = new ArraySet<>(); + private final ArrayList, Object>> mOpen + = new ArrayList<>(); + private final ArrayMap mSpinning = new ArrayMap<>(); private final ArrayList mCallbacks = new ArrayList<>(3); private final HeadsUpManager mHeadsUpManager; @@ -41,36 +44,72 @@ public class RemoteInputController { mHeadsUpManager = headsUpManager; } - public void addRemoteInput(NotificationData.Entry entry) { + /** + * Adds a currently active remote input. + * + * @param entry the entry for which a remote input is now active. + * @param token a token identifying the view that is managing the remote input + */ + public void addRemoteInput(NotificationData.Entry entry, Object token) { Preconditions.checkNotNull(entry); + Preconditions.checkNotNull(token); boolean found = pruneWeakThenRemoveAndContains( - entry /* contains */, null /* remove */); + entry /* contains */, null /* remove */, token /* removeToken */); if (!found) { - mOpen.add(new WeakReference<>(entry)); + mOpen.add(new Pair<>(new WeakReference<>(entry), token)); } apply(entry); } - public void removeRemoteInput(NotificationData.Entry entry) { + /** + * Removes a currently active remote input. + * + * @param entry the entry for which a remote input should be removed. + * @param token a token identifying the view that is requesting the removal. If non-null, + * the entry is only removed if the token matches the last added token for this + * entry. If null, the entry is removed regardless. + */ + public void removeRemoteInput(NotificationData.Entry entry, Object token) { Preconditions.checkNotNull(entry); - pruneWeakThenRemoveAndContains(null /* contains */, entry /* remove */); + pruneWeakThenRemoveAndContains(null /* contains */, entry /* remove */, token); apply(entry); } - public void addSpinning(String key) { - mSpinning.add(key); + /** + * Adds a currently spinning (i.e. sending) remote input. + * + * @param key the key of the entry that's spinning. + * @param token the token of the view managing the remote input. + */ + public void addSpinning(String key, Object token) { + Preconditions.checkNotNull(key); + Preconditions.checkNotNull(token); + + mSpinning.put(key, token); } - public void removeSpinning(String key) { - mSpinning.remove(key); + /** + * Removes a currently spinning remote input. + * + * @param key the key of the entry for which a remote input should be removed. + * @param token a token identifying the view that is requesting the removal. If non-null, + * the entry is only removed if the token matches the last added token for this + * entry. If null, the entry is removed regardless. + */ + public void removeSpinning(String key, Object token) { + Preconditions.checkNotNull(key); + + if (token == null || mSpinning.get(key) == token) { + mSpinning.remove(key); + } } public boolean isSpinning(String key) { - return mSpinning.contains(key); + return mSpinning.containsKey(key); } private void apply(NotificationData.Entry entry) { @@ -86,14 +125,16 @@ public class RemoteInputController { * @return true if {@param entry} has an active RemoteInput */ public boolean isRemoteInputActive(NotificationData.Entry entry) { - return pruneWeakThenRemoveAndContains(entry /* contains */, null /* remove */); + return pruneWeakThenRemoveAndContains(entry /* contains */, null /* remove */, + null /* removeToken */); } /** * @return true if any entry has an active RemoteInput */ public boolean isRemoteInputActive() { - pruneWeakThenRemoveAndContains(null /* contains */, null /* remove */); + pruneWeakThenRemoveAndContains(null /* contains */, null /* remove */, + null /* removeToken */); return !mOpen.isEmpty(); } @@ -101,17 +142,27 @@ public class RemoteInputController { * Prunes dangling weak references, removes entries referring to {@param remove} and returns * whether {@param contains} is part of the array in a single loop. * @param remove if non-null, removes this entry from the active remote inputs + * @param removeToken if non-null, only removes an entry if this matches the token when the + * entry was added. * @return true if {@param contains} is in the set of active remote inputs */ private boolean pruneWeakThenRemoveAndContains( - NotificationData.Entry contains, NotificationData.Entry remove) { + NotificationData.Entry contains, NotificationData.Entry remove, Object removeToken) { boolean found = false; for (int i = mOpen.size() - 1; i >= 0; i--) { - NotificationData.Entry item = mOpen.get(i).get(); - if (item == null || item == remove) { + NotificationData.Entry item = mOpen.get(i).first.get(); + Object itemToken = mOpen.get(i).second; + boolean removeTokenMatches = (removeToken == null || itemToken == removeToken); + + if (item == null || (item == remove && removeTokenMatches)) { mOpen.remove(i); } else if (item == contains) { - found = true; + if (removeToken != null && removeToken != itemToken) { + // We need to update the token. Remove here and let caller reinsert it. + mOpen.remove(i); + } else { + found = true; + } } } return found; @@ -138,7 +189,7 @@ public class RemoteInputController { // Make a copy because closing the remote inputs will modify mOpen. ArrayList list = new ArrayList<>(mOpen.size()); for (int i = mOpen.size() - 1; i >= 0; i--) { - NotificationData.Entry item = mOpen.get(i).get(); + NotificationData.Entry item = mOpen.get(i).first.get(); if (item != null && item.row != null) { list.add(item); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java index 4283eb85addb..26a85275c618 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -1719,7 +1719,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, protected void performRemoveNotification(StatusBarNotification n, boolean removeView) { Entry entry = mNotificationData.get(n.getKey()); if (mRemoteInputController.isRemoteInputActive(entry)) { - mRemoteInputController.removeRemoteInput(entry); + mRemoteInputController.removeRemoteInput(entry, null); } super.performRemoveNotification(n, removeView); } @@ -2667,7 +2667,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, private void removeRemoteInputEntriesKeptUntilCollapsed() { for (int i = 0; i < mRemoteInputEntriesToRemoveOnCollapse.size(); i++) { Entry entry = mRemoteInputEntriesToRemoveOnCollapse.valueAt(i); - mRemoteInputController.removeRemoteInput(entry); + mRemoteInputController.removeRemoteInput(entry, null); removeNotification(entry.key, mLatestRankingMap); } mRemoteInputEntriesToRemoveOnCollapse.clear(); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputView.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputView.java index ab2a8bc6e92b..7b1f7071b5c7 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/RemoteInputView.java @@ -69,6 +69,8 @@ public class RemoteInputView extends LinearLayout implements View.OnClickListene // A marker object that let's us easily find views of this class. public static final Object VIEW_TAG = new Object(); + public final Object mToken = new Object(); + private RemoteEditText mEditText; private ImageButton mSendButton; private ProgressBar mProgressBar; @@ -140,8 +142,8 @@ public class RemoteInputView extends LinearLayout implements View.OnClickListene mSendButton.setVisibility(INVISIBLE); mProgressBar.setVisibility(VISIBLE); mEntry.remoteInputText = mEditText.getText(); - mController.addSpinning(mEntry.key); - mController.removeRemoteInput(mEntry); + mController.addSpinning(mEntry.key, mToken); + mController.removeRemoteInput(mEntry, mToken); mEditText.mShowImeOnInputConnection = false; mController.remoteInputSent(mEntry); @@ -193,7 +195,7 @@ public class RemoteInputView extends LinearLayout implements View.OnClickListene } private void onDefocus(boolean animate) { - mController.removeRemoteInput(mEntry); + mController.removeRemoteInput(mEntry, mToken); mEntry.remoteInputText = mEditText.getText(); // During removal, we get reattached and lose focus. Not hiding in that @@ -232,11 +234,11 @@ public class RemoteInputView extends LinearLayout implements View.OnClickListene @Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); - if (mEntry.row.isChangingPosition()) { + if (mEntry.row.isChangingPosition() || isTemporarilyDetached()) { return; } - mController.removeRemoteInput(mEntry); - mController.removeSpinning(mEntry.key); + mController.removeRemoteInput(mEntry, mToken); + mController.removeSpinning(mEntry.key, mToken); } public void setPendingIntent(PendingIntent pendingIntent) { @@ -265,7 +267,7 @@ public class RemoteInputView extends LinearLayout implements View.OnClickListene mEntry.notification.getPackageName()); setVisibility(VISIBLE); - mController.addRemoteInput(mEntry); + mController.addRemoteInput(mEntry, mToken); mEditText.setInnerFocusable(true); mEditText.mShowImeOnInputConnection = true; mEditText.setText(mEntry.remoteInputText); @@ -290,7 +292,7 @@ public class RemoteInputView extends LinearLayout implements View.OnClickListene mEditText.setEnabled(true); mSendButton.setVisibility(VISIBLE); mProgressBar.setVisibility(INVISIBLE); - mController.removeSpinning(mEntry.key); + mController.removeSpinning(mEntry.key, mToken); updateSendButton(); onDefocus(false /* animate */); @@ -432,6 +434,24 @@ public class RemoteInputView extends LinearLayout implements View.OnClickListene mRevealR = r; } + @Override + public void dispatchStartTemporaryDetach() { + super.dispatchStartTemporaryDetach(); + // Detach the EditText temporarily such that it doesn't get onDetachedFromWindow and + // won't lose IME focus. + detachViewFromParent(mEditText); + } + + @Override + public void dispatchFinishTemporaryDetach() { + if (isAttachedToWindow()) { + attachViewToParent(mEditText, 0, mEditText.getLayoutParams()); + } else { + removeDetachedView(mEditText, false /* animate */); + } + super.dispatchFinishTemporaryDetach(); + } + /** * An EditText that changes appearance based on whether it's focusable and becomes * un-focusable whenever the user navigates away from it or it becomes invisible. @@ -448,7 +468,15 @@ public class RemoteInputView extends LinearLayout implements View.OnClickListene } private void defocusIfNeeded(boolean animate) { - if (mRemoteInputView != null && mRemoteInputView.mEntry.row.isChangingPosition()) { + if (mRemoteInputView != null && mRemoteInputView.mEntry.row.isChangingPosition() + || isTemporarilyDetached()) { + if (isTemporarilyDetached()) { + // We might get reattached but then the other one of HUN / expanded might steal + // our focus, so we'll need to save our text here. + if (mRemoteInputView != null) { + mRemoteInputView.mEntry.remoteInputText = getText(); + } + } return; } if (isFocusable() && isEnabled()) { -- GitLab From 4f62c9268ce6defac80ec17d2062eabd9e63a586 Mon Sep 17 00:00:00 2001 From: Vladislav Kuzkokov Date: Wed, 28 Sep 2016 13:15:40 +0200 Subject: [PATCH 583/809] Fix logic in disabling BackupTransport in DO mode. We were disabling backup in consumer mode as well. BUG=31754835 TEST=android.content.pm.cts.shortcuthost.ShortcutManagerBackupTest Change-Id: I42e5cfa512fda1b471eb62c7eb8bc346383da2fa (cherry picked from commit bbaadc01663495736fa597305525e874a896ade4) --- .../server/devicepolicy/DevicePolicyManagerService.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index c2ffa9bbab15..2eceb0b0a52e 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -8981,8 +8981,10 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { if (!isDeviceOwnerManagedSingleUserDevice()) { mInjector.securityLogSetLoggingEnabledProperty(false); Slog.w(LOG_TAG, "Security logging turned off as it's no longer a single user device."); - setBackupServiceEnabledInternal(false); - Slog.w(LOG_TAG, "Backup is off as it's a managed device that has more that one user."); + if (mOwners.hasDeviceOwner()) { + setBackupServiceEnabledInternal(false); + Slog.w(LOG_TAG, "Backup is off as it's a managed device that has more that one user."); + } } } -- GitLab From 8ed826719dcb646890a6acd41e8881b575af6c49 Mon Sep 17 00:00:00 2001 From: Vladislav Kuzkokov Date: Wed, 28 Sep 2016 14:19:20 +0200 Subject: [PATCH 584/809] Fix backup for users hit by erroneous backup disabling BUG=31754835 Change-Id: I89dd08b7958dd8fe20d70bc50f2c89996ae46cc5 (cherry picked from commit 1975021d88da6623a570a6ddab8b2397b1c0e59f) --- .../DevicePolicyManagerService.java | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index 2eceb0b0a52e..45014ec07178 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -496,6 +496,12 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { } }); } + // STOPSHIP: Remove this code once all dogfood devices are fixed. See b/31754835 + if (Intent.ACTION_BOOT_COMPLETED.equals(action) && !mOwners.hasDeviceOwner() + && !isBackupServiceEnabledInternal()) { + setBackupServiceEnabledInternal(true); + Slog.w(LOG_TAG, "Fix backup for device that is not in Device Owner mode."); + } if (Intent.ACTION_USER_UNLOCKED.equals(action) || Intent.ACTION_USER_STARTED.equals(action) || KeyChain.ACTION_STORAGE_CHANGED.equals(action)) { @@ -9319,12 +9325,15 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { } synchronized (this) { getActiveAdminForCallerLocked(admin, DeviceAdminInfo.USES_POLICY_DEVICE_OWNER); - try { - IBackupManager ibm = mInjector.getIBackupManager(); - return ibm != null && ibm.isBackupServiceActive(UserHandle.USER_SYSTEM); - } catch (RemoteException e) { - throw new IllegalStateException("Failed requesting backup service state.", e); - } + return isBackupServiceEnabledInternal(); + } + } + private boolean isBackupServiceEnabledInternal() { + try { + IBackupManager ibm = mInjector.getIBackupManager(); + return ibm != null && ibm.isBackupServiceActive(UserHandle.USER_SYSTEM); + } catch (RemoteException e) { + throw new IllegalStateException("Failed requesting backup service state.", e); } } } -- GitLab From 11ae28f387bc499ff82448d978dac9524b03f670 Mon Sep 17 00:00:00 2001 From: Hugo Benichi Date: Tue, 27 Sep 2016 13:16:19 +0900 Subject: [PATCH 585/809] Change network validation probe default configs This patch changes the default configuration values for captive portal detection. Now by default: - the HTTPS probe tries to connect to www.google.com/generate_204 instead of connectivitycheck.gstatic.com/generate_204 - the fallback probe is used and tries to connect to google.com/gen_204 - the request header User-Agent field is set to appears similar to a Chrome request. Bug: 29367974 Change-Id: Ic965e2693e154e96bf0f7e4c1b9a2f704b9c3452 --- .../android/server/connectivity/NetworkMonitor.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/services/core/java/com/android/server/connectivity/NetworkMonitor.java b/services/core/java/com/android/server/connectivity/NetworkMonitor.java index 13f31744c922..6eb89facca76 100644 --- a/services/core/java/com/android/server/connectivity/NetworkMonitor.java +++ b/services/core/java/com/android/server/connectivity/NetworkMonitor.java @@ -82,13 +82,16 @@ public class NetworkMonitor extends StateMachine { private static final String TAG = NetworkMonitor.class.getSimpleName(); private static final boolean DBG = false; - // Default urls for captive portal detection probes - private static final String DEFAULT_HTTPS_URL = - "https://connectivitycheck.gstatic.com/generate_204"; + // Default configuration values for captive portal detection probes. + // TODO: append a random length parameter to the default HTTPS url. + // TODO: randomize browser version ids in the default User-Agent String. + private static final String DEFAULT_HTTPS_URL = "https://www.google.com/generate_204"; private static final String DEFAULT_HTTP_URL = "http://connectivitycheck.gstatic.com/generate_204"; - private static final String DEFAULT_FALLBACK_URL = null; - private static final String DEFAULT_USER_AGENT = null; + private static final String DEFAULT_FALLBACK_URL = "http://www.google.com/gen_204"; + private static final String DEFAULT_USER_AGENT = "Mozilla/5.0 (X11; Linux x86_64) " + + "AppleWebKit/537.36 (KHTML, like Gecko) " + + "Chrome/52.0.2743.82 Safari/537.36"; private static final int SOCKET_TIMEOUT_MS = 10000; private static final int PROBE_TIMEOUT_MS = 3000; -- GitLab From 289e9c1d9fad2035dac0ca57d573a35fabb451a4 Mon Sep 17 00:00:00 2001 From: Bert McMeen Date: Fri, 2 Sep 2016 14:06:16 -0700 Subject: [PATCH 586/809] Docs: Wear Preview - Release Notes and more Bug: 30570507 Change-Id: I4c89e9e6bcbbcff95a7dfac8869964092c8ef364 --- docs/html/wear/preview/_book.yaml | 14 +- docs/html/wear/preview/api-overview.jd | 756 ++++++++++++--------- docs/html/wear/preview/behavior-changes.jd | 43 ++ docs/html/wear/preview/downloads.jd | 145 +++- docs/html/wear/preview/program.jd | 5 +- docs/html/wear/preview/start.jd | 26 +- docs/html/wear/preview/support.jd | 311 ++++++++- 7 files changed, 933 insertions(+), 367 deletions(-) diff --git a/docs/html/wear/preview/_book.yaml b/docs/html/wear/preview/_book.yaml index a231fb5daa24..54d5442ec631 100644 --- a/docs/html/wear/preview/_book.yaml +++ b/docs/html/wear/preview/_book.yaml @@ -8,18 +8,24 @@ toc: - title: API Overview path: /wear/preview/api-overview.html section: - - title: Notification Improvements - path: /wear/preview/features/notifications.html - - title: Input Method Framework - path: /wear/preview/features/ime.html - title: Complications path: /wear/preview/features/complications.html - title: Navigation and Actions path: /wear/preview/features/ui-nav-actions.html + - title: Curved Layout + path: /wear/preview/features/wearable-recycler-view.html + - title: Notification Improvements + path: /wear/preview/features/notifications.html - title: Bridging for Notifications path: /wear/preview/features/bridger.html + - title: Input Method Framework + path: /wear/preview/features/ime.html - title: Wrist Gestures path: /wear/preview/features/gestures.html + - title: Standalone apps + path: /wear/preview/features/standalone-apps.html + - title: App Distribution + path: /wear/preview/features/app-distribution.html - title: Get Started path: /wear/preview/start.html diff --git a/docs/html/wear/preview/api-overview.jd b/docs/html/wear/preview/api-overview.jd index 0b3ac6bf4b2d..f4612a259958 100644 --- a/docs/html/wear/preview/api-overview.jd +++ b/docs/html/wear/preview/api-overview.jd @@ -13,15 +13,16 @@ page.image=images/cards/card-n-apis_2x.png
      1. Complications
      2. Navigation and Action Drawers
      3. +
      4. Curved Layout
    7. Notifications and Input
        -
      1. Expanded Notification
      2. -
      3. Messaging Style Notification
      4. +
      5. Expanded Notifications
      6. +
      7. Messaging Style Notifications
      8. +
      9. Inline Action
      10. Smart Reply
      11. -
      12. Notification Content Action
      13. Remote Input
      14. Bridging Mode
      15. Input Method Framework
      16. @@ -40,308 +41,447 @@ page.image=images/cards/card-n-apis_2x.png - - -

        - The Android Wear Preview API is still in active development, but you can try - it now as part of the Wear 2.0 Developer Preview. The sections below - highlight some of the new features for Android Wear developers. -

        - - -

        User Interface Improvements

        - -

        - The preview introduces powerful additions to the user interface, opening up - exciting possibilities to developers. A complication - is any feature in a watch face that displays more than hours and - minutes. With the Complications API, watch faces can display extra information - and separate apps can expose complication data. The navigation and action - drawers provide users with new ways to interact with apps. -

        - - -

        Complications

        - - -

        - A complication is a - feature of a watch face that displays more than hours and minutes, such as a - battery indicator or a step counter. The Complications API thus helps watch face - developers create visual features and the data connections they - require. -

        - -

        - Watch faces that use this API can display extra information without needing - code for getting the underlying data. Data providers can supply data to any - watch face using the API. -

        - -

        For information about this API, -see - Watch Face Complications. -

        - -

        Navigation and Action drawers

        - -

        Wear 2.0 introduces two new widgets, navigation drawer and action drawer. These - widgets give your users new ways to interact with your app. The navigation drawer - appears at the top of the screen and allows users to navigate between app views. - The action drawer appears at the bottom of the screen and allows users to choose - from a list of actions associated with the current usage context. These drawers - are accessible to users when they edge swipe from the top or bottom of the - screen; they peek when users scroll in an opposite direction. -

        - -
        -
        - -
        -
        - -
        -
        - -

        - To learn how to add these widgets to your app, see - - Wear Navigation and Actions. -

        - - -

        Notifications and Input

        - -

        In Wear 2.0, we’ve redesigned the key experiences on the watch to be even more - intuitive and provide users new ways to respond to messages. Some of the highlights - are below; for a complete list of changes, see - Notification Changes in Wear 2.0. - - - -

        Expanded notifications

        - -

        - When a user taps on a notification that is bridged from the phone to the - watch or that lacks a - - {@code contentIntent}, the user will be taken to the expanded view of - that notification. When you specify additional - content pages and actions for a notification, those are available to the - user within the expanded notification. Each expanded notification follows - Material Design for Android - Wear, so the user gets an app-like experience. -

        - - -

        Messaging Style notification

        -

        If you have a chat messaging app, your notifications should use -{@code Notification.MessagingStyle}, which is new in Android 6.0. Wear 2.0 uses -the chat messages included in a -{@code MessagingStyle} - notification -(see {@code addMessage()}) to provide a rich chat app-like experience in the -expanded notification. -

        - - -

        Smart Reply

        - -

        Android Wear 2.0 introduces support for Smart Reply in -{@code MessagingStyle} - notifications. Smart Reply provides the user with contextually relevant, - touchable choices in the expanded notification and in - {@code RemoteInput}. -

        - -

        By enabling Smart Reply for your {@code MessagingStyle} notifications, you provide -users a fast (single tap), discreet (no speaking aloud), and reliable way to respond - to chat messages they receive. -

        - - - - -

        Remote Input

        - -

        Wear 2.0 users can choose between various input options from -Remote Input. - These options include: -

        -
          -
        • Dictation
        • -
        • Emoji
        • -
        • Canned responses
        • -
        • Smart Reply -
        • Default IME -
        - -

        -For messaging notifications with Smart Reply, the system-generated Smart Reply - appears within {@code RemoteInput} - above the developer-provided list of canned responses. - You can also use the - setChoices() - method in the {@code RemoteInput} API to enable users to select from a list - of canned responses. -

        - -

        Bridging Mode

        -

        By default, notifications are - -bridged (shared) from an app on a companion phone -to the watch. Since a phone app and a standalone watch app may be sources of the - same notifications, the Android Wear 2.0 Preview includes a Bridging mode feature. - Developers can begin planning to change the behavior of notifications with the - following: -

        - -
          -
        • Specifying in the standalone app's Android manifest file that notifications from - the corresponding phone app should not be bridged to the watch.
        • -
        • Setting a dismissal ID so notification dismissals (by users) are synced across -devices.
        • -
        - -

        For an example of how to use this feature, see -Bridging Mode for Notifications.

        - -

        Input Method Framework

        - -

        Wear 2.0 extends the Android input method framework (IMF) to Android Wear. -This allows users to enter text on Wear using the system default IME or third party - IMEs. The Wear IME lets the user enter text via gesture typing as well as tapping - individual keys. The IMF APIs used for Wear devices are the same as other form - factors, though usage is slightly different due to limited screen real estate. -

        - -

        Wear provides user settings on the watch that let the user:

        -
          -
        • Enable multiple IMEs from the list of installed IMEs.
        • -
        • Set a single default IME from the list of enabled IMEs.
        • -
        • Change languages for various IMEs.
        • -
        - -

        To learn how to create an IME for Wear, see -Input Method Framework. -

        - -

        Wrist Gestures

        - -

        - Wrist gestures can enable quick, one-handed interactions with your app - when use of a touch screen is inconvenient. The following - wrist gestures - are available for use by apps: -

        - -
          -
        • Flick wrist out
        • -
        • Flick wrist in
        • -
        - -

        For more information, see - - Wrist Gestures. -

        - -

        Standalone Devices

        - -

        Standalone watches will enable Android Wear apps to work independently of phone - apps. This means your app can continue to offer full functionality even if the - paired phone is far away or turned off.

        - -

        Wear-Specific APKs

        - -

        For delivery to a watch, an Android Wear app is currently embedded in its corresponding -phone app. This delivery method can result in an increased download size for users, - regardless of whether they have an Android Wear device. -

        - -

        With standalone devices, the -Multi-APK - delivery method will be used. Developers will have the ability to release Android - Wear apps independently of the corresponding phone apps. Please stay tuned for - more information about this change. -

        - -

        Network Access

        - -

        Since Android Wear apps will work independently of phone apps, Android Wear's - network access will no longer require the - - Wearable Data Layer API. Android Wear apps will have the ability to make - their own network requests. Additionally, they will be able to directly use - Google Cloud Messaging. -

        - -

        No APIs for network access or GCM are specific to Android Wear; refer to the -existing documentation about - -Connecting to the Network and -Cloud Messaging. -

        - -

        We recommend using the following libraries:

        - - -

        You will still be able to use the - - Wearable Data Layer API to communicate with a phone app. - However, use of this API to connect to a network will be discouraged. -

        - - -

        Authentication

        - -

        Since Android Wear apps will work independently of phone apps, Android Wear's - authentication capabilities will be more powerful; apps will have new ways to - authenticate.

        - -

        Users can enter a username and password on a watch

        - -

        Google Keyboard will be standard on Android Wear, allowing for direct text -entry. This feature will work as expected with standard -EditText widgets. -For passwords, the {@code textPassword} attribute will be used.

        - -

        Utilizing Account Manager

        - -

        Android Wear will include the - -AccountManager, which will be accessible for syncing and storing account -data, as it is on an Android phone.

        - -

        Authentication tokens can be passed over the Wearable Data Layer

        - -

        For Android-paired watches (only), a phone securely -transfers authentication credentials to a watch app via the - -Wearable Data Layer API. The credentials can be transferred as -messages or data items.

        - -

        If your watch app needs to determine if your phone app is installed, you can -advertise a capability on the phone app and retrieve the capability on the -watch. For more information, see the following sections of - -Sending and Receiving Messages:

        - -
          -
        • Advertise Capabilities
        • -
        • Retrieve the Nodes with the Required Capabilities
        • -
        +

        + Wear 2.0 is still in active development, but you can try it as part of + the Wear 2.0 Developer Preview. The sections below highlight some of the + new features for developers. +

        + +

        + User Interface Improvements +

        + +

        + The preview introduces powerful additions to the user interface, opening + up exciting possibilities to developers. +

        + +

        + Complications +

        + + +

        + A complication + is a feature of a watch face that displays more than hours and minutes, + such as a battery indicator or a step counter. The Complications API thus + helps watch face developers create visual features and the data + connections they require. +

        + +

        + Watch faces that use this API can display extra information without + needing code for getting the underlying data. Data providers can supply + data to any watch face using the API. +

        + +

        + For information about this API, see Watch Face + Complications. +

        + +

        + Navigation and Action Drawers +

        + +

        + Wear 2.0 introduces two new widgets, navigation drawer and action drawer. + These widgets give your users new ways to interact with your app. The + navigation drawer appears at the top of the screen and allows users to + navigate between app views. The action drawer appears at the bottom of + the screen and allows users to choose from a list of actions associated + with the current usage context. These drawers are accessible to users + when they edge swipe from the top or bottom of the screen; they peek when + users scroll in an opposite direction. +

        + +
        +
        + +
        + +
        + +
        +
        + +

        + To learn how to add these widgets to your app, see Wear Navigation and + Actions. +

        + +

        + Curved Layout +

        + +

        + Wear 2.0 introduces the WearableRecyclerView class for + displaying and manipulating a vertical list of items, + optimized for round displays. +

        + +

        + The key features include the following: +

        + +
          +
        • A curved layout on round devices +
        • + +
        • A circular scrolling gesture, which can be toggled on and off +
        • +
        + +

        + To learn how to create a curved layout optimized for round devices, see + + Curved Layout. +

        + +

        + Notifications and Input +

        + +

        + In Wear 2.0, we’ve redesigned the key experiences on the watch to be even + more intuitive and provide users new ways to respond to messages. Some of + the highlights are below; for a complete list of changes, see Notification Changes + in Wear 2.0. +

        + +

        + Expanded Notifications +

        + +

        + When a user taps on a notification that is bridged from the phone to the + watch or that lacks a + {@code contentIntent}, the user will be taken to the expanded view of + that notification. When you specify + additional content pages and actions for a notification, those are + available to the user within the expanded notification. Each expanded + notification follows Material Design for Android + Wear, so the user gets an app-like experience. +

        + +

        + Messaging Style Notifications +

        + +

        + If you have a chat messaging app, your notifications should use {@code + Notification.MessagingStyle}, which is new in Android 6.0. Wear 2.0 uses + the chat messages included in a {@code + MessagingStyle} notification (see {@code addMessage()}) to provide a + rich chat, app-like experience in the expanded notification. +

        + +

        + Inline Action +

        + +

        + Wear 2.0 enables you to add an inline action within the notification + stream so that users can quickly take an action on a notification. + Examples of good use cases for an inline action within a notification stream + include replying to a text message, stopping a fitness activity, or + archiving an email message. +

        + +

        + To learn how to add an inline action to your notification stream, see + + Inline Action. +

        + +

        + Smart Reply +

        + +

        + Android Wear 2.0 introduces support for Smart Reply in {@code + MessagingStyle} notifications. Smart Reply provides the user with + contextually relevant, touchable choices in the expanded notification and + in {@code + RemoteInput}. +

        + +

        + By enabling Smart Reply for your {@code MessagingStyle} notifications, + you provide users a fast (single tap), discreet (no speaking aloud), and + reliable way to respond to chat messages they receive. +

        + + + +

        + Remote Input +

        + +

        + Wear 2.0 users can choose between various input options from Remote Input. + These options include: +

        + +
          +
        • Dictation +
        • + +
        • Emoji +
        • + +
        • Canned responses +
        • + +
        • Smart Reply +
        • + +
        • Default IME +
        • +
        + +

        + For messaging notifications with Smart Reply, the system-generated Smart + Reply appears within {@code + RemoteInput} above the developer-provided list of canned responses. + You can also use the + setChoices() method in the {@code RemoteInput} API to enable users to + select from a list of canned responses. +

        + +

        + Bridging Mode +

        + +

        + By default, notifications are bridged + (shared) from an app on a companion phone to the watch. Since a phone app + and a standalone watch app may be sources of the same notifications, the + Android Wear 2.0 Preview includes a Bridging mode feature. +

        + +

        + For information about this feature, see Bridging Mode for + Notifications. +

        + +

        + Input Method Framework +

        + +

        + Wear 2.0 extends the Android input method framework (IMF) to Android + Wear. This allows users to enter text on Wear using the system default + IME or third party IMEs. The Wear IME lets the user enter text via + gesture typing as well as tapping individual keys. The IMF APIs used for + Wear devices are the same as other form factors, though usage is slightly + different due to limited screen real estate. +

        + +

        + Wear provides user settings on the watch that let the user: +

        + +
          +
        • Enable multiple IMEs from the list of installed IMEs. +
        • + +
        • Set a single default IME from the list of enabled IMEs. +
        • + +
        • Change languages for various IMEs. +
        • +
        + +

        + To learn how to create an IME for Wear, see Input Method Framework. +

        + +

        + Wrist Gestures +

        + +

        + Wrist gestures can enable quick, one-handed interactions with your app + when use of a touch screen is inconvenient. The following wrist + gestures are available for use by apps: +

        + +
          +
        • Flick wrist out +
        • + +
        • Flick wrist in +
        • +
        + +

        + For more information, see Wrist Gestures. +

        + +

        + Standalone Devices +

        + +

        + Standalone watches enable Android Wear apps to work independently of + phone apps. This means your app can continue to offer full functionality + even if the paired phone is far away or turned off. +

        + +

        + Wear-Specific APKs +

        + +

        + For delivery to a watch, an Android Wear app is currently embedded in its + corresponding phone app. This delivery method can result in an increased + download size for users, regardless of whether they have an Android Wear + device. +

        + +

        + For information about planning and building your standalone app + for Wear 2.0, see + Standalone Apps. +

        + +

        + For information about distributing your app, see + App Distribution. +

        + +

        + Network Access +

        + +

        + Since Android Wear apps will work independently of phone apps, Android + Wear's network access will no longer require the Wearable Data Layer + API. Android Wear apps will have the ability to make their own + network requests. Additionally, they will be able to directly use Google + Cloud Messaging. For more information, see + + Network Access and Cloud Messaging. +

        + +

        + No APIs for network access or GCM are specific to Android Wear; refer to + the existing documentation about Connecting to the + Network and Cloud Messaging. +

        + +

        + We recommend using the following libraries: +

        + + + +

        + The Wearable Data Layer + API is available to communicate with a phone app. + However, use of this API to connect to a network will be discouraged. +

        + +

        + Authentication +

        + +

        + Since Android Wear apps will work independently of phone apps, Android + Wear's authentication capabilities will be more powerful; apps will have + new ways to authenticate. +

        + +

        + Users can enter a username and password on a watch +

        + +

        + Google Keyboard will be standard on Android Wear, allowing for direct + text entry. This feature will work as expected with standard EditText widgets. + For passwords, the {@code textPassword} attribute will be used. +

        + +

        + Utilizing Account Manager +

        + +

        + Android Wear will include the AccountManager, + which will be accessible for syncing and storing account data, as it is + on an Android phone. +

        + +

        + Authentication tokens can be passed over the Wearable Data Layer +

        + +

        + For Android-paired watches (only), a phone securely transfers + authentication credentials to a watch app via the Wearable Data Layer + API. The credentials can be transferred as messages or data items. +

        + +

        + If your watch app needs to determine if your phone app is installed, you + can advertise a capability on the phone app and retrieve the capability + on the watch. For more information, see the following sections of + Sending + and Receiving Messages: +

        + +
          +
        • Advertise Capabilities +
        • + +
        • Retrieve the Nodes with the Required Capabilities +
        • +
        diff --git a/docs/html/wear/preview/behavior-changes.jd b/docs/html/wear/preview/behavior-changes.jd index 02146220dbdd..c93d337a0a8c 100644 --- a/docs/html/wear/preview/behavior-changes.jd +++ b/docs/html/wear/preview/behavior-changes.jd @@ -22,6 +22,8 @@ page.tags="preview", "developer preview" @@ -61,3 +63,44 @@ page.tags="preview", "developer preview" navigation drawers.

        + +

        Invalid Fields for a Complication Type

        + +

        + When a watch face uses the + Complications API, the watch face requests data from a chosen provider. + A ComplicationData object, which contains + complication types, is returned. +

        + +

        + A complication type determines the + kinds of data that a watch face can render. This section describes + a behavior change related to the ComplicationData object. +

        + +

        + Starting with + + Developer Preview 3, when a watch face requests a field that is invalid + for a complication type, a default value for the field is returned. + For example, if a watch face tries to access a Long text + field in a SHORT_TEXT type, the default value for the + Long text field is returned. + In previous releases, such a request for an invalid field + (for a type) resulted in an exception. +

        + +

        Complication Types for Empty Data

        + +

        + Starting with + + Developer Preview 3, the complication types used for "empty" data are + changed. Apps that use the Complications API + may need to be updated to use + TYPE_NO_DATA. See the information + about TYPE_NO_DATA in the + + Types and fields section. +

        diff --git a/docs/html/wear/preview/downloads.jd b/docs/html/wear/preview/downloads.jd index 4bc401bae072..08ed233afc8c 100644 --- a/docs/html/wear/preview/downloads.jd +++ b/docs/html/wear/preview/downloads.jd @@ -171,7 +171,9 @@ This is the Android Wear SDK Preview License Agreement (the “License Agreement
      17. Set Up a Watch
      18. - +
      19. + Set Up a Phone +
      20. Set Up an Emulator
      21. @@ -180,7 +182,7 @@ This is the Android Wear SDK Preview License Agreement (the “License Agreement

        - You can run and test your app with the Android Wear 2.0 Developer Preview + You can run and test your app with the Android Wear 2.0 Preview in either of these ways:

        @@ -237,6 +239,13 @@ This is the Android Wear SDK Preview License Agreement (the “License Agreement following tables and flash it to the corresponding device.

        +

        Caution: + After you flash an image to a watch, follow the steps for + setting up a phone with the beta version of + the Android Wear companion app. To use a Wear 2.0 image on a watch, + you must have the beta companion app on a paired phone. +

        +

        To restore your device to its original state during the preview, you can flash the appropriate retail system image, below, to the device. @@ -266,9 +275,9 @@ This is the Android Wear SDK Preview License Agreement (the “License Agreement Preview image for testing - nemo-nvd83h-factory-48ac950c.tgz
        - MD5: dd351884cce9fb5bf1bdec0a8e5f56e3
        - SHA-1: 48ac950c48faef96a7770e3c1acb56d23a28d859 + nemo-nve68j-factory-302a33ea.tgz
        + MD5: ddfccc3e050c7e2db8d657c82f7d6291
        + SHA-1: 302a33eac348c401fcb165bad4b9aaa40c7beb2b @@ -276,9 +285,9 @@ This is the Android Wear SDK Preview License Agreement (the “License Agreement Non-preview image (for after testing) - nemo-mnc40x-factory-fa528bec.tgz
        - MD5: 0b8ba3653d5a93cb854f4d7409d7b6c9
        - SHA-1: fa528bec8aba3bf6c7d901ba63cd6ea0a08dbeb0 + nemo-mfd18l-factory-3faf6f2d.tgz
        + MD5: f3a0090c0e99da82ad095b5d2a9acc6d
        + SHA-1: 3faf6f2d7f422a17a5f6c54cf5e1d2c5622689b0 @@ -307,18 +316,18 @@ This is the Android Wear SDK Preview License Agreement (the “License Agreement Preview image for testing - sturgeon-nvd83h-factory-cb5a11ab.tgz
        - MD5: 38c1047992b1d28f6833d9f6c8470cdc
        - SHA-1: cb5a11ab0260ea3ca7da5894e73e41f70357da6b + sturgeon-nve68j-factory-6607cd31.tgz
        + MD5: f78ac6ba8bb84038d163cc2d7ca85040
        + SHA-1: 6607cd31858af1bfd50b905c68f7cf1f0b6e570e Non-preview image (for after testing) - sturgeon-mec23l-factory-48003078.tgz
        - MD5: 417b5cbddb29a2262bce133e283d2732
        - SHA-1: 4800307843580f818557dd7c43d8ba2161e289b2 + sturgeon-m6e69f-factory-e659286a.tgz
        + MD5: 12ce6cb0b0e43b67ea46a886eae052ae
        + SHA-1: e659286aa9004f4555a476ede4e8b690f56cfefd @@ -437,13 +446,14 @@ This is the Android Wear SDK Preview License Agreement (the “License Agreement

        - Set up the watch and begin testing + Set up the watch

        After the flash-all script finishes, your watch reboots. - Pair the watch with a phone or tablet. The preview now is available - for testing on the watch. Before installing an app, perform the + Only pair the watch with a phone (so you can begin testing the preview) + by using the instructions in Set Up a Phone. + Additionally, before installing an app, perform the following steps on the watch to re-secure the watch's bootloader:

        @@ -483,7 +493,9 @@ This is the Android Wear SDK Preview License Agreement (the “License Agreement

      - Your watch is ready for you to Set Up a Phone, + your watch will be ready for you to install and run your app:

      @@ -539,6 +551,97 @@ This is the Android Wear SDK Preview License Agreement (the “License Agreement device reset and removes all user data on the device.

      +

      + Set Up a Phone +

      + +

      + On a phone, follow the instructions in this section to install the beta + version of the Android Wear companion app. The beta version cannot be run + on a phone at the same time as the non-beta version. Additionally, the + beta version is English-only. +

      + +

      +

      Caution: If you have an existing + pairing of the phone to a Wear 1.x + watch, installation of the beta companion app will cause a loss of that + pairing. +

      + +

      + Join the Wear 2.0 preview group +

      + +

      + To access the beta companion app, you must join + the preview group in Google Groups. +

      + +

      + Opt in for beta testing +

      + +

      + On the Testing + Opt-in page, select Become a Tester. +

      + +

      + Download and install the beta version of the companion app +

      + +

      + On the Play Store on your phone, go to the + Android Wear app listing. Tap Update to download and + install the beta version of the app. After installation, confirm that + Auto-update is selected for the app (see + the "Set up automatic updates for specific apps" section of Update downloaded + apps). Tap Open to start the app. +

      + +

      + Pair the phone to the watch +

      + +

      + After you install the beta version of the companion app on a phone, + you can pair the phone to the watch: +

      + +
        +
      1. On the phone, select your device name from the list of devices. + A pairing code is displayed on the phone and on the watch. + Ensure that the codes match. +
      2. + +
      3. Tap Pair to + continue the pairing process. When the watch is connected to + the phone, a confirmation message is displayed. + On the phone, a screen is displayed that lists + the accounts on the phone. +
      4. + +
      5. Choose a Google account to add and sync to your watch. +
      6. + +
      7. Confirm the screen lock and enter the password to start the copying of + the account from the phone to the watch. +
      8. + +
      9. Follow the instructions in the wizard to finish the + pairing process. +
      10. +
      + +

      + You can begin testing your app with the preview. +

      +

      Set Up an Emulator

      @@ -564,11 +667,11 @@ This is the Android Wear SDK Preview License Agreement (the “License Agreement Click Next.
    8. -
    9. Select an N image to download. The images may be on +
    10. Select a Nougat image to download. The images may be on the x86 tab instead of the Recommended tab, until installed. For example, select the image with the - Release Name of N, the API Level of N, - and the Target of "Android 6.X (with Android Wear)". + Release Name of Nougat, the API Level of 24, + and the Target of "Android 7.0 (with Android Wear)". When the download and installation are complete, click Finish and then click Next.
    11. diff --git a/docs/html/wear/preview/program.jd b/docs/html/wear/preview/program.jd index e2bf92f80c6c..4f2fb5cecfb1 100644 --- a/docs/html/wear/preview/program.jd +++ b/docs/html/wear/preview/program.jd @@ -143,8 +143,9 @@ page.image=images/cards/card-n-sdk_2x.png

      At milestone 4, you'll have access to the final Android Wear 2.0 APIs and SDK to develop with, as well as near-final system images to test - system behaviors and features. Android Wear 2.0 will use the Android N - API level at this time. You can begin final compatibility testing of your + system behaviors and features. Android Wear 2.0 will use the + Android 7.0 API level at this time. + You can begin final compatibility testing of your legacy apps and refine any new code that is using the Android Wear 2.0 APIs or features.

      diff --git a/docs/html/wear/preview/start.jd b/docs/html/wear/preview/start.jd index 8fccdc82cd5a..c9720dceb842 100644 --- a/docs/html/wear/preview/start.jd +++ b/docs/html/wear/preview/start.jd @@ -29,7 +29,7 @@ page.image=images/cards/card-n-sdk_2x.png

      If you want an environment for basic compatibility - testing of your app, you can use your current APK and a + testing, you can use your current APK and a supported watch or an emulator. You don't necessarily need to update your full development environment to do basic testing. To simply test your app's compatibility with a preview system image, see

      - 1. For compatibility with the N - Developer Preview, follow the setup instructions for installing - the latest version of Android Studio. + 1. For compatibility with Android 7.0, install the latest version of + Android Studio.

      @@ -63,7 +61,7 @@ page.image=images/cards/card-n-sdk_2x.png

      • Under the SDK Platforms tab:
          -
        • Android N Preview +
        • Android 7.0 (Nougat)
      • @@ -107,10 +105,10 @@ page.image=images/cards/card-n-sdk_2x.png - wearable-support-preview-2-docs.zip + wearable-support-preview-3-docs.zip - MD5: afb770c9c5c0431bbcbdde186f1eae06
        - SHA-1: 81d681e61cee01f222ea82e83297d23c4e55b8f3 + MD5: 22bae00e473e39e320aae8ea09a001a5
        + SHA-1: 474502cc7092bcf0bd671441b8654aa8d6c155ed @@ -163,7 +161,7 @@ page.image=images/cards/card-n-sdk_2x.png following, which requires that your the Google Repository is the latest version: - compile 'com.google.android.support:wearable:2.0.0-alpha2' + compile 'com.google.android.support:wearable:2.0.0-alpha3'
      @@ -190,12 +188,12 @@ page.image=images/cards/card-n-sdk_2x.png
    12. Optionally, select the Phone and Tablet option. If - you plan to use N Preview APIs in a phone app, then the Minimum SDK - option list, select API N: Android 6.x (N Preview). + you plan to use Android 7.0 APIs in a phone app, then the Minimum SDK + option list, select API 24: Android 7.0 (Nougat).
    13. Select the Wear option, and in the Minimum SDK - option list, select the latest available (N Preview) + option list, select the latest available (API Nougat) option. Click Next until you exit the Create New Project wizard.
    14. @@ -215,7 +213,7 @@ page.image=images/cards/card-n-sdk_2x.png following, which requires that your the Google Repository is the latest version: - compile 'com.google.android.support:wearable:2.0.0-alpha2' + compile 'com.google.android.support:wearable:2.0.0-alpha3' diff --git a/docs/html/wear/preview/support.jd b/docs/html/wear/preview/support.jd index 78b4e4b854ac..7636d863aa8c 100644 --- a/docs/html/wear/preview/support.jd +++ b/docs/html/wear/preview/support.jd @@ -23,7 +23,9 @@ page.tags="preview", "developer preview" @@ -46,10 +48,25 @@ page.tags="preview", "developer preview" panics and crashes.
    15. Some apps may not function as expected on the new - platform version. This includes Google’s apps and other apps. + platform version. This includes Google's apps and other apps.
    16. +

      + Platform API Version +

      + +

      + The Android Platform API version is incremented to 24 to match Android 7.0. + You can update the following in your Android Wear 2.0 Preview project + to 24: +

      + +
        +
      • compileSdkVersion
      • +
      • targetSdkVersion
      • +
      +

      Deprecations

      The following fields are deprecated in the preview:

      @@ -64,6 +81,275 @@ page.tags="preview", "developer preview" +

      Developer Preview 3

      + +
      +
      +
      +

      Date: September 2016
      + Builds: Wearable Support 2.0.0-alpha3, NVE68J
      + Emulator support: x86 & ARM (32-bit)
      +

      +
      +
      +
      + +

      + New in Preview 3 +

      + +

      + For access to system images and the companion app for Preview 3, see + + Download and Test with a Device. +

      + +

      + Additions for standalone apps and the Play Store on Wear +

      + +

      + For information about planning your Wear 2.0 app, see + Standalone Apps. +

      + +

      + Generally, the minimum and target SDK level for Wear 2.0, and for a + standalone APK, is level 24. The minimum SDK level can be 23 + only if you are using the same APK + for Wear 1.0 and 2.0 (and thus have an embedded Wear 1.0 APK). +

      + +

      + Run-time permissions are required. +

      + +

      + For information about distributing your Wear 2.0 app, see + App Distribution. +

      + +

      + Complications API additions +

      + +

      + For Preview 3, additions and changes have been made to the Complications + API. The documentation + includes information about the following additions and changes: +

      + +
        +
      • To receive complication data and open the provider chooser, a watch + face must have the RECEIVE_COMPLICATION_DATA permission. +
      • + +
      • To ease a request for the new permission and the starting of the + chooser, the ComplicationHelperActivity class is available + in the wearable support library. This class should be used instead of + ProviderChooserIntent to start the chooser in almost all + cases. +
      • + +
      • Watch faces can specify default providers that are used until a user + selects a provider. +
      • + +
      • The complication types used for "empty" data are changed. +
      • + +
      • A new permission was added to ensure that only the Android Wear + system can bind to provider services. +
      • +
      + +

      + For changes related to the ComplicationData object, see + Behavior + Changes. +

      + +

      + Curved Layout +

      + +

      + For information about creating a curved layout using + the WearableRecyclerView API in your Wear 2.0 app, see + + Curved Layout. +

      + +

      + Notifications features +

      + +

      + To learn about adding an inline action to a notification, + see Inline + Action. +

      + +

      + To learn about adding images to a notification, see + Adding + images to a notification. +

      + +

      + For additions related to the bridging of notifications from a companion + app to a watch, see Bridging + Mode for Notifications. +

      + +

      + Smart Reply additions +

      + +

      + Smart Reply responses are generated by an entirely on-watch, + machine-learning model using the context provided by + MessagingStyle notifications. Use the + setAllowGeneratedReplies(boolean) method to enable Smart Reply for + your MessagingStyle notification. +

      + +

      + Known Issues +

      + +

      + Notifications +

      + +
        +
      • The MessagingStyle + notifications with images posted by standalone apps don't show + images in the notification (i.e., bridged notifications show images, + but standalone notifications don't). +
      • + +
      • This preview release does not include support for notification + groups. +
      • + +
      • With Wear 2.0, a watch can receive notifications directly from + Firebase Cloud Messaging (FCM), which replaces Google Cloud Messaging + (GCM). However, in Preview 3 of Wear 2.0, FCM does not function with + iOS-paired watches. +
      • + +
      • Smart Reply responses are only shown in RemoteInput when + RemoteInput is called from a MessagingStyle + expanded notification. Smart Reply responses are not shown in + RemoteInput when RemoteInput is called from an + + inline action within the stream—an action set with the + setHintDisplayActionInline(true) method. +
      • +
      + +

      + Companion app +

      + +
        +
      • The preview companion app is not compatible with Android 4.3 + (Jelly Bean MR2), which has an SDK build version code of: + JELLY_BEAN_MR2
      • +
      + +
        +
      • In permission screens in the preview companion app: + If you deny a permission, you cannot + proceed. Instead of denying a permission, tap Skip. +
      • +
      + + +

      + Developer Console +

      + +
        +
      • If you set a minimum SDK version of 24, the Play Developer Console + states that there are few supported devices. +
      • +
      + +

      + System user interface and apps +

      + +
        +
      • Dismissing multiple notifications can cause an app to forcibly close. +
      • + +
      • The "Ok Google" detection and voice transcription may not work + reliably. +
      • + +
      • Google Fit is not available with Preview 3. +
      • + +
      • Syncing for embedded apps is not enabled for the preview. Therefore, + to test an app on a device, add it to the Play Store or side-load it + onto a watch. Some existing Wear apps, e.g. Google Maps, are only + using the embedded apps mechanism currently, and are therefore not + installable on the preview (and therefore do not appear on the watch). +
      • + +
      • In Play Store search results on the watch, + results other than apps sometimes appear. +
      • + +
      • Media controls/notifications are not bridged + to the watch from an Android KitKat phone. +
      • +
      + +

      + Devices +

      + +
        +
      • In Android Wear emulators, the Play Store app requires that an + account is synced to the device before the app can be opened. +
      • + +
      • On the Huawei Watch, selecting the language, followed by multiple + acknowledgement dialogues, results in a black screen. +
      • + +
      • On the LG Watch Urbane 2nd Edition, when answering a call from the + watch, the watch does not provide audio from the caller. +
      • +
      + +

      + Smart Reply +

      + +
        +
      • Smart Reply is only available if your watch's system language is + English. +
      • + +
      • Smart Reply responses are not generated for all messages. +
      • +
      +

      Developer Preview 2

      @@ -78,24 +364,9 @@ page.tags="preview", "developer preview"

      - New in Preview 2 + New in Preview 2

      -

      - Platform API Version -

      - -

      - The Android Platform API version is incremented to 24 to match Android Nougat. - You can update the following in your Android Wear 2.0 Preview project - to 24: -

      - -
        -
      • compileSdkVersion
      • -
      • targetSdkVersion
      • -
      -

      Wearable drawers

      @@ -174,7 +445,7 @@ page.tags="preview", "developer preview"

      - Known Issues + Known Issues

      @@ -239,6 +510,10 @@ page.tags="preview", "developer preview"
    17. Unable to turn off the Wi-Fi on a wearable.
    18. + +
    19. After music is played on a companion phone, + music card notifications are not mirrored to the watch. +
    20. -- GitLab From 486f7d3fcd34caea35179efd3886b9f5c31c9fd2 Mon Sep 17 00:00:00 2001 From: Sungsoo Date: Wed, 28 Sep 2016 16:20:52 +0900 Subject: [PATCH 587/809] Revert "AudioService: restore A2DP/wired headset auto selection" This reverts commit 383dc532f3c993ab6111d4fc55eba62ff0f926ec. Bug: 28517884, Bug: 31398128 Change-Id: Ia633a1596298ae30384f8bcaa02a1b6d29344ba9 --- .../android/server/audio/AudioService.java | 44 ++----------------- 1 file changed, 3 insertions(+), 41 deletions(-) diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java index b4606bb652cf..da0c05eefb92 100644 --- a/services/core/java/com/android/server/audio/AudioService.java +++ b/services/core/java/com/android/server/audio/AudioService.java @@ -510,11 +510,8 @@ public class AudioService extends IAudioService.Stub { private int mDeviceOrientation = Configuration.ORIENTATION_UNDEFINED; // Request to override default use of A2DP for media. - private boolean mBluetoothA2dpEnabled; // FIXME: remove when MediaRouter does not use setBluetoothA2dpOn() anymore - // state of bluetooth A2DP enable request sen by deprecated APIs setBluetoothA2dpOn() and - // isBluettohA2dpOn() - private boolean mBluetoothA2dpEnabledExternal; + private boolean mBluetoothA2dpEnabled; private final Object mBluetoothA2dpEnabledLock = new Object(); // Monitoring of audio routes. Protected by mCurAudioRoutes. @@ -843,12 +840,6 @@ public class AudioService extends IAudioService.Stub { RotationHelper.updateOrientation(); } - synchronized (mBluetoothA2dpEnabledLock) { - AudioSystem.setForceUse(AudioSystem.FOR_MEDIA, - mBluetoothA2dpEnabled ? - AudioSystem.FORCE_NONE : AudioSystem.FORCE_NO_BT_A2DP); - } - synchronized (mSettingsLock) { AudioSystem.setForceUse(AudioSystem.FOR_DOCK, mDockAudioMediaEnabled ? @@ -2715,7 +2706,7 @@ public class AudioService extends IAudioService.Stub { * @deprecated * */ public void setBluetoothA2dpOn(boolean on) { - mBluetoothA2dpEnabledExternal = on; + mBluetoothA2dpEnabled = on; Log.e(TAG, "setBluetoothA2dpOn() is deprecated, now a no-op", new Exception("Deprecated use of setBluetoothA2dpOn()")); } @@ -2725,7 +2716,7 @@ public class AudioService extends IAudioService.Stub { * @deprecated * */ public boolean isBluetoothA2dpOn() { - return mBluetoothA2dpEnabledExternal; + return mBluetoothA2dpEnabled; } /** @see AudioManager#startBluetoothSco() */ @@ -3796,11 +3787,6 @@ public class AudioService extends IAudioService.Stub { Slog.i(TAG, "setWiredDeviceConnectionState(" + state + " nm: " + name + " addr:" + address + ")"); } - if ((state == 0) && ((type == AudioSystem.DEVICE_OUT_WIRED_HEADSET) || - (type == AudioSystem.DEVICE_OUT_WIRED_HEADPHONE) || - (type == AudioSystem.DEVICE_OUT_LINE))) { - setBluetoothA2dpOnInt(true); - } int delay = checkSendBecomingNoisyIntent(type, state); queueMsgUnderWakeLock(mAudioHandler, MSG_SET_WIRED_DEVICE_CONNECTION_STATE, @@ -4781,7 +4767,6 @@ public class AudioService extends IAudioService.Stub { VolumeStreamState streamState = mStreamStates[AudioSystem.STREAM_MUSIC]; sendMsg(mAudioHandler, MSG_SET_DEVICE_VOLUME, SENDMSG_QUEUE, AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP, 0, streamState, 0); - setBluetoothA2dpOnInt(true); AudioSystem.setDeviceConnectionState(AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP, AudioSystem.DEVICE_STATE_AVAILABLE, address, name); // Reset A2DP suspend state each time a new sink is connected @@ -5019,7 +5004,6 @@ public class AudioService extends IAudioService.Stub { devices |= dev; } } - if (devices == device) { sendMsg(mAudioHandler, MSG_BROADCAST_AUDIO_BECOMING_NOISY, @@ -5123,11 +5107,6 @@ public class AudioService extends IAudioService.Stub { return; } if (state != 0) { - if ((device == AudioSystem.DEVICE_OUT_WIRED_HEADSET) || - (device == AudioSystem.DEVICE_OUT_WIRED_HEADPHONE) || - (device == AudioSystem.DEVICE_OUT_LINE)) { - setBluetoothA2dpOnInt(false); - } if ((device & mSafeMediaVolumeDevices) != 0) { sendMsg(mAudioHandler, MSG_CHECK_MUSIC_ACTIVE, @@ -5593,26 +5572,9 @@ public class AudioService extends IAudioService.Stub { } } - // Handles request to override default use of A2DP for media. - // Must be called synchronized on mConnectedDevices - public void setBluetoothA2dpOnInt(boolean on) { - synchronized (mBluetoothA2dpEnabledLock) { - mBluetoothA2dpEnabled = on; - setForceUseInt_SyncDevices(AudioSystem.FOR_MEDIA, - mBluetoothA2dpEnabled ? AudioSystem.FORCE_NONE : AudioSystem.FORCE_NO_BT_A2DP); - } - } - // Must be called synchronized on mConnectedDevices private void setForceUseInt_SyncDevices(int usage, int config) { switch (usage) { - case AudioSystem.FOR_MEDIA: - if (config == AudioSystem.FORCE_NO_BT_A2DP) { - mBecomingNoisyIntentDevices &= ~AudioSystem.DEVICE_OUT_ALL_A2DP; - } else { // config == AudioSystem.FORCE_NONE - mBecomingNoisyIntentDevices |= AudioSystem.DEVICE_OUT_ALL_A2DP; - } - break; case AudioSystem.FOR_DOCK: if (config == AudioSystem.FORCE_ANALOG_DOCK) { mBecomingNoisyIntentDevices |= AudioSystem.DEVICE_OUT_ANLG_DOCK_HEADSET; -- GitLab From cf09fe68015c042f3847b835f7f6bebe7f95107d Mon Sep 17 00:00:00 2001 From: Sungsoo Date: Wed, 28 Sep 2016 16:21:48 +0900 Subject: [PATCH 588/809] Revert "AudioService: remove deprecated forcing of A2DP off" This reverts commit 0234587b1172a11929d17b05ef73ba14425edd65. Bug: 28517884, Bug: 31398128 Change-Id: I8ca2871c4f956409d07dd90dcbe41d3e668568ba --- .../android/server/audio/AudioService.java | 63 ++++++++++++++----- 1 file changed, 49 insertions(+), 14 deletions(-) diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java index da0c05eefb92..275870e3d4b0 100644 --- a/services/core/java/com/android/server/audio/AudioService.java +++ b/services/core/java/com/android/server/audio/AudioService.java @@ -206,6 +206,7 @@ public class AudioService extends IAudioService.Stub { private static final int MSG_BT_HEADSET_CNCT_FAILED = 9; private static final int MSG_SET_ALL_VOLUMES = 10; private static final int MSG_REPORT_NEW_ROUTES = 12; + private static final int MSG_SET_FORCE_BT_A2DP_USE = 13; private static final int MSG_CHECK_MUSIC_ACTIVE = 14; private static final int MSG_BROADCAST_AUDIO_BECOMING_NOISY = 15; private static final int MSG_CONFIGURE_SAFE_MEDIA_VOLUME = 16; @@ -510,7 +511,6 @@ public class AudioService extends IAudioService.Stub { private int mDeviceOrientation = Configuration.ORIENTATION_UNDEFINED; // Request to override default use of A2DP for media. - // FIXME: remove when MediaRouter does not use setBluetoothA2dpOn() anymore private boolean mBluetoothA2dpEnabled; private final Object mBluetoothA2dpEnabledLock = new Object(); @@ -840,6 +840,12 @@ public class AudioService extends IAudioService.Stub { RotationHelper.updateOrientation(); } + synchronized (mBluetoothA2dpEnabledLock) { + AudioSystem.setForceUse(AudioSystem.FOR_MEDIA, + mBluetoothA2dpEnabled ? + AudioSystem.FORCE_NONE : AudioSystem.FORCE_NO_BT_A2DP); + } + synchronized (mSettingsLock) { AudioSystem.setForceUse(AudioSystem.FOR_DOCK, mDockAudioMediaEnabled ? @@ -2700,23 +2706,22 @@ public class AudioService extends IAudioService.Stub { return (mForcedUseForComm == AudioSystem.FORCE_BT_SCO); } - /** - * Deprecated. - * Keep stub implementation until MediaRouter stops using it. - * @deprecated - * */ + /** @see AudioManager#setBluetoothA2dpOn(boolean) */ public void setBluetoothA2dpOn(boolean on) { - mBluetoothA2dpEnabled = on; - Log.e(TAG, "setBluetoothA2dpOn() is deprecated, now a no-op", - new Exception("Deprecated use of setBluetoothA2dpOn()")); + synchronized (mBluetoothA2dpEnabledLock) { + mBluetoothA2dpEnabled = on; + sendMsg(mAudioHandler, MSG_SET_FORCE_BT_A2DP_USE, SENDMSG_QUEUE, + AudioSystem.FOR_MEDIA, + mBluetoothA2dpEnabled ? AudioSystem.FORCE_NONE : AudioSystem.FORCE_NO_BT_A2DP, + null, 0); + } } - /** Deprecated. - * Keep stub implementation until MediaRouter stops using it - * @deprecated - * */ + /** @see AudioManager#isBluetoothA2dpOn() */ public boolean isBluetoothA2dpOn() { - return mBluetoothA2dpEnabled; + synchronized (mBluetoothA2dpEnabledLock) { + return mBluetoothA2dpEnabled; + } } /** @see AudioManager#startBluetoothSco() */ @@ -4598,6 +4603,7 @@ public class AudioService extends IAudioService.Stub { break; case MSG_SET_FORCE_USE: + case MSG_SET_FORCE_BT_A2DP_USE: setForceUse(msg.arg1, msg.arg2); break; @@ -4767,6 +4773,7 @@ public class AudioService extends IAudioService.Stub { VolumeStreamState streamState = mStreamStates[AudioSystem.STREAM_MUSIC]; sendMsg(mAudioHandler, MSG_SET_DEVICE_VOLUME, SENDMSG_QUEUE, AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP, 0, streamState, 0); + setBluetoothA2dpOnInt(true); AudioSystem.setDeviceConnectionState(AudioSystem.DEVICE_OUT_BLUETOOTH_A2DP, AudioSystem.DEVICE_STATE_AVAILABLE, address, name); // Reset A2DP suspend state each time a new sink is connected @@ -5099,6 +5106,11 @@ public class AudioService extends IAudioService.Stub { } synchronized (mConnectedDevices) { + if ((state == 0) && ((device == AudioSystem.DEVICE_OUT_WIRED_HEADSET) || + (device == AudioSystem.DEVICE_OUT_WIRED_HEADPHONE) || + (device == AudioSystem.DEVICE_OUT_LINE))) { + setBluetoothA2dpOnInt(true); + } boolean isUsb = ((device & ~AudioSystem.DEVICE_OUT_ALL_USB) == 0) || (((device & AudioSystem.DEVICE_BIT_IN) != 0) && ((device & ~AudioSystem.DEVICE_IN_ALL_USB) == 0)); @@ -5107,6 +5119,11 @@ public class AudioService extends IAudioService.Stub { return; } if (state != 0) { + if ((device == AudioSystem.DEVICE_OUT_WIRED_HEADSET) || + (device == AudioSystem.DEVICE_OUT_WIRED_HEADPHONE) || + (device == AudioSystem.DEVICE_OUT_LINE)) { + setBluetoothA2dpOnInt(false); + } if ((device & mSafeMediaVolumeDevices) != 0) { sendMsg(mAudioHandler, MSG_CHECK_MUSIC_ACTIVE, @@ -5572,9 +5589,27 @@ public class AudioService extends IAudioService.Stub { } } + // Handles request to override default use of A2DP for media. + // Must be called synchronized on mConnectedDevices + public void setBluetoothA2dpOnInt(boolean on) { + synchronized (mBluetoothA2dpEnabledLock) { + mBluetoothA2dpEnabled = on; + mAudioHandler.removeMessages(MSG_SET_FORCE_BT_A2DP_USE); + setForceUseInt_SyncDevices(AudioSystem.FOR_MEDIA, + mBluetoothA2dpEnabled ? AudioSystem.FORCE_NONE : AudioSystem.FORCE_NO_BT_A2DP); + } + } + // Must be called synchronized on mConnectedDevices private void setForceUseInt_SyncDevices(int usage, int config) { switch (usage) { + case AudioSystem.FOR_MEDIA: + if (config == AudioSystem.FORCE_NO_BT_A2DP) { + mBecomingNoisyIntentDevices &= ~AudioSystem.DEVICE_OUT_ALL_A2DP; + } else { // config == AudioSystem.FORCE_NONE + mBecomingNoisyIntentDevices |= AudioSystem.DEVICE_OUT_ALL_A2DP; + } + break; case AudioSystem.FOR_DOCK: if (config == AudioSystem.FORCE_ANALOG_DOCK) { mBecomingNoisyIntentDevices |= AudioSystem.DEVICE_OUT_ANLG_DOCK_HEADSET; -- GitLab From fa6f70e225a7370c1ecb21ee7076c9086ecb9e9a Mon Sep 17 00:00:00 2001 From: Sungsoo Date: Wed, 28 Sep 2016 16:22:38 +0900 Subject: [PATCH 589/809] Revert "Disable selecting the default audio route when a BT route is avaiable" This reverts commit 0d33113196e0070829104bf178f3139262b1f33f. Bug: 28517884, Bug: 31398128 Change-Id: Ida4a3fc1f6f0aae09a5c4463bca8619412f3db58 --- media/java/android/media/MediaRouter.java | 40 ++++++++++++++++++----- 1 file changed, 32 insertions(+), 8 deletions(-) diff --git a/media/java/android/media/MediaRouter.java b/media/java/android/media/MediaRouter.java index 9bf47938f543..101facd4909b 100644 --- a/media/java/android/media/MediaRouter.java +++ b/media/java/android/media/MediaRouter.java @@ -219,12 +219,26 @@ public class MediaRouter { } if (mBluetoothA2dpRoute != null) { - if (mSelectedRoute == mDefaultAudioVideo || mSelectedRoute == null) { + final boolean a2dpEnabled = isBluetoothA2dpOn(); + if (mainType != AudioRoutesInfo.MAIN_SPEAKER && + mSelectedRoute == mBluetoothA2dpRoute && !a2dpEnabled) { + selectRouteStatic(ROUTE_TYPE_LIVE_AUDIO, mDefaultAudioVideo, false); + } else if ((mSelectedRoute == mDefaultAudioVideo || mSelectedRoute == null) && + a2dpEnabled) { selectRouteStatic(ROUTE_TYPE_LIVE_AUDIO, mBluetoothA2dpRoute, false); } } } + boolean isBluetoothA2dpOn() { + try { + return mAudioService.isBluetoothA2dpOn(); + } catch (RemoteException e) { + Log.e(TAG, "Error querying Bluetooth A2DP state", e); + return false; + } + } + void updateDiscoveryRequest() { // What are we looking for today? int routeTypes = 0; @@ -894,11 +908,6 @@ public class MediaRouter { static void selectRouteStatic(int types, @NonNull RouteInfo route, boolean explicit) { Log.v(TAG, "Selecting route: " + route); assert(route != null); - if (route == sStatic.mDefaultAudioVideo && sStatic.mBluetoothA2dpRoute != null) { - Log.i(TAG, "Change the route to a BT route: " + sStatic.mBluetoothA2dpRoute - + "\nDo not select the default route when a BT route is available."); - route = sStatic.mBluetoothA2dpRoute; - } final RouteInfo oldRoute = sStatic.mSelectedRoute; if (oldRoute == route) return; if (!route.matchesTypes(types)) { @@ -908,6 +917,16 @@ public class MediaRouter { return; } + final RouteInfo btRoute = sStatic.mBluetoothA2dpRoute; + if (btRoute != null && (types & ROUTE_TYPE_LIVE_AUDIO) != 0 && + (route == btRoute || route == sStatic.mDefaultAudioVideo)) { + try { + sStatic.mAudioService.setBluetoothA2dpOn(route == btRoute); + } catch (RemoteException e) { + Log.e(TAG, "Error changing Bluetooth A2DP state", e); + } + } + final WifiDisplay activeDisplay = sStatic.mDisplayService.getWifiDisplayStatus().getActiveDisplay(); final boolean oldRouteHasAddress = oldRoute != null && oldRoute.mDeviceAddress != null; @@ -947,7 +966,7 @@ public class MediaRouter { static void selectDefaultRouteStatic() { // TODO: Be smarter about the route types here; this selects for all valid. if (sStatic.mSelectedRoute != sStatic.mBluetoothA2dpRoute - && sStatic.mBluetoothA2dpRoute != null) { + && sStatic.mBluetoothA2dpRoute != null && sStatic.isBluetoothA2dpOn()) { selectRouteStatic(ROUTE_TYPE_ANY, sStatic.mBluetoothA2dpRoute, false); } else { selectRouteStatic(ROUTE_TYPE_ANY, sStatic.mDefaultAudioVideo, false); @@ -1279,7 +1298,12 @@ public class MediaRouter { selectedRoute == sStatic.mDefaultAudioVideo) { dispatchRouteVolumeChanged(selectedRoute); } else if (sStatic.mBluetoothA2dpRoute != null) { - dispatchRouteVolumeChanged(sStatic.mBluetoothA2dpRoute); + try { + dispatchRouteVolumeChanged(sStatic.mAudioService.isBluetoothA2dpOn() ? + sStatic.mBluetoothA2dpRoute : sStatic.mDefaultAudioVideo); + } catch (RemoteException e) { + Log.e(TAG, "Error checking Bluetooth A2DP state to report volume change", e); + } } else { dispatchRouteVolumeChanged(sStatic.mDefaultAudioVideo); } -- GitLab From 71f3563c3960bd862dfa96844f646ea5b2f03de5 Mon Sep 17 00:00:00 2001 From: Sungsoo Date: Wed, 28 Sep 2016 16:26:49 +0900 Subject: [PATCH 590/809] Make dispatchAudioRoutesChanged be called when BT A2DP status changed Bug: 28517884, Bug: 31398128 Change-Id: Ic1e2f5e828a772c667caf1408ebfc9b0d7c3f7d4 --- media/java/android/media/MediaRouter.java | 3 +-- services/core/java/com/android/server/audio/AudioService.java | 2 ++ 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/media/java/android/media/MediaRouter.java b/media/java/android/media/MediaRouter.java index 101facd4909b..79195d6de29f 100644 --- a/media/java/android/media/MediaRouter.java +++ b/media/java/android/media/MediaRouter.java @@ -220,8 +220,7 @@ public class MediaRouter { if (mBluetoothA2dpRoute != null) { final boolean a2dpEnabled = isBluetoothA2dpOn(); - if (mainType != AudioRoutesInfo.MAIN_SPEAKER && - mSelectedRoute == mBluetoothA2dpRoute && !a2dpEnabled) { + if (mSelectedRoute == mBluetoothA2dpRoute && !a2dpEnabled) { selectRouteStatic(ROUTE_TYPE_LIVE_AUDIO, mDefaultAudioVideo, false); } else if ((mSelectedRoute == mDefaultAudioVideo || mSelectedRoute == null) && a2dpEnabled) { diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java index 275870e3d4b0..a9277cedd4fd 100644 --- a/services/core/java/com/android/server/audio/AudioService.java +++ b/services/core/java/com/android/server/audio/AudioService.java @@ -5609,6 +5609,8 @@ public class AudioService extends IAudioService.Stub { } else { // config == AudioSystem.FORCE_NONE mBecomingNoisyIntentDevices |= AudioSystem.DEVICE_OUT_ALL_A2DP; } + sendMsg(mAudioHandler, MSG_REPORT_NEW_ROUTES, + SENDMSG_NOOP, 0, 0, null, 0); break; case AudioSystem.FOR_DOCK: if (config == AudioSystem.FORCE_ANALOG_DOCK) { -- GitLab From adff7b54478a5f774165a161547cd09caeec9e2f Mon Sep 17 00:00:00 2001 From: Eric Schmidt Date: Tue, 16 Aug 2016 09:59:19 -0700 Subject: [PATCH 591/809] docs: Manage Memory perf article Bug: 30432311 Bug: 16541280 Change-Id: I3fedf48e8f7b11ddeb55c6942f9994e056fd1653 --- .../html/training/articles/memory-overview.jd | 289 ++++ docs/html/training/articles/memory.jd | 1166 +++++++---------- docs/html/training/training_toc.cs | 6 + 3 files changed, 805 insertions(+), 656 deletions(-) create mode 100644 docs/html/training/articles/memory-overview.jd diff --git a/docs/html/training/articles/memory-overview.jd b/docs/html/training/articles/memory-overview.jd new file mode 100644 index 000000000000..f61a230197a0 --- /dev/null +++ b/docs/html/training/articles/memory-overview.jd @@ -0,0 +1,289 @@ +page.title=Overview of Android Memory Management +page.tags=ram,memory,paging,mmap +page.article=true +@jd:body + + + + +

      + The Android Runtime (ART) and Dalvik virtual machine use + paging + and memory-mapping + (mmapping) to manage memory. This means that any memory an app + modifies—whether by allocating + new objects or touching mmapped pages—remains resident in RAM and + cannot be paged out. The only way to release memory from an app is to release + object references that the app holds, making the memory available to the + garbage collector. + That is with one exception: any files + mmapped in without modification, such as code, + can be paged out of RAM if the system wants to use that memory elsewhere. +

      + +

      + This page explains how Android manages app processes and memory + allocation. For more information about how to manage memory more efficiently + in your app, see + Manage Your App's Memory. +

      + + + +

      Garbage collection

      + +

      + A managed memory environment, like the ART or Dalvik virtual machine, + keeps track of each memory allocation. Once it determines + that a piece of memory is no longer being used by the program, + it frees it back to the heap, without any intervention from the programmer. + The mechanism for reclaiming unused memory + within a managed memory environment + is known as garbage collection. Garbage collection has two goals: + find data objects in a program that cannot be accessed in the future; and + reclaim the resources used by those objects. +

      + +

      + Android’s memory heap is a generational one, meaning that there are + different buckets of allocations that it tracks, + based on the expected life and size of an object being allocated. + For example, recently allocated objects belong in the Young generation. + When an object stays active long enough, it can be promoted + to an older generation, followed by a permanent generation. +

      + +

      + Each heap generation has its own dedicated upper limit on the amount + of memory that objects there can occupy. Any time a generation starts + to fill up, the system executes a garbage collection + event in an attempt to free up memory. The duration of the garbage collection + depends on which generation of objects it's collecting + and how many active objects are in each generation. +

      + +

      + Even though garbage collection can be quite fast, it can still + affect your app's performance. You don’t generally control + when a garbage collection event occurs from within your code. + The system has a running set of criteria for determining when to perform + garbage collection. When the criteria are satisfied, + the system stops executing the process and begins garbage collection. If + garbage collection occurs in the middle of an intensive processing loop + like an animation or during music playback, it can increase processing time. + This increase can potentially push code execution in your app past the + recommended 16ms threshold for efficient and smooth frame rendering. +

      + +

      + Additionally, your code flow may perform kinds of work that + force garbage collection events to occur + more often or make them last longer-than-normal. + For example, if you allocate multiple objects in the + innermost part of a for-loop during each frame of an alpha + blending animation, you might pollute your memory heap with a + lot of objects. + In that circumstance, the garbage collector executes multiple garbage + collection events and can degrade the performance of your app. +

      + +

      + For more general information about garbage collection, see + Garbage collection. +

      + + + +

      Sharing Memory

      + +

      + In order to fit everything it needs in RAM, + Android tries to share RAM pages across processes. It + can do so in the following ways: +

      + +
        +
      • + Each app process is forked from an existing process called Zygote. + The Zygote process starts when the system boots and loads common + framework code and resources + (such as activity themes). To start a new app process, + the system forks the Zygote process then + loads and runs the app's code in the new process. + This approach allows most of the RAM pages allocated for + framework code and resources to be shared across all app processes. +
      • + +
      • + Most static data is mmapped into a process. + This technique allows data to be shared + between processes, and also allows it to be paged + out when needed. Example static data include: + Dalvik code (by placing it in a pre-linked .odex + file for direct mmapping), app resources + (by designing the resource table to be a structure + that can be mmapped and by aligning the zip + entries of the APK), and traditional project + elements like native code in .so files. +
      • + +
      • + In many places, Android shares the same dynamic + RAM across processes using explicitly allocated + shared memory regions (either with ashmem or gralloc). + For example, window surfaces use shared + memory between the app and screen compositor, and + cursor buffers use shared memory between the + content provider and client. +
      • +
      + +

      + Due to the extensive use of shared memory, determining + how much memory your app is using requires + care. Techniques to properly determine your app's + memory use are discussed in + Investigating Your RAM Usage. +

      + + + +

      Allocating and Reclaiming App Memory

      + +

      + The Dalvik heap is constrained to a + single virtual memory range for each app process. This defines + the logical heap size, which can grow as it needs to + but only up to a limit that the system defines + for each app. +

      + +

      + The logical size of the heap is not the same as + the amount of physical memory used by the heap. + When inspecting your app's heap, Android computes + a value called the Proportional Set Size (PSS), + which accounts for both dirty and clean pages + that are shared with other processes—but only in an + amount that's proportional to how many apps share + that RAM. This (PSS) total is what the system + considers to be your physical memory footprint. + For more information about PSS, see the + Investigating Your RAM Usage + guide. +

      + +

      + The Dalvik heap does not compact the logical + size of the heap, meaning that Android does not + defragment the heap to close up space. Android + can only shrink the logical heap size when there + is unused space at the end of the heap. However, + the system can still reduce physical memory used by the heap. + After garbage collection, Dalvik + walks the heap and finds unused pages, then returns + those pages to the kernel using madvise. So, paired + allocations and deallocations of large + chunks should result in reclaiming all (or nearly all) + the physical memory used. However, + reclaiming memory from small allocations can be much + less efficient because the page used + for a small allocation may still be shared with + something else that has not yet been freed. + +

      + + + +

      Restricting App Memory

      + +

      + To maintain a functional multi-tasking environment, + Android sets a hard limit on the heap size + for each app. The exact heap size limit varies + between devices based on how much RAM the device + has available overall. If your app has reached the + heap capacity and tries to allocate more + memory, it can receive an {@link java.lang.OutOfMemoryError}. +

      + +

      + In some cases, you might want to query the + system to determine exactly how much heap space you + have available on the current device—for example, to + determine how much data is safe to keep in a + cache. You can query the system for this figure by calling + {@link android.app.ActivityManager#getMemoryClass() }. + This method returns an integer indicating the number of + megabytes available for your app's heap. +

      + + + +

      Switching apps

      + +

      + When users switch between apps, + Android keeps apps that + are not foreground—that is, not visible to the user or running a + foreground service like music playback— + in a least-recently used (LRU) cache. + For example, when a user first launches an app, + a process is created for it; but when the user + leaves the app, that process does not quit. + The system keeps the process cached. If + the user later returns to the app, the system reuses the process, thereby + making the app switching faster. +

      + +

      + If your app has a cached process and it retains memory + that it currently does not need, + then your app—even while the user is not using it— + affects the system's + overall performance. As the system runs low on memory, + it kills processes in the LRU cache + beginning with the process least recently used. The system also + accounts for processes that hold onto the most memory + and can terminate them to free up RAM. +

      + +

      + Note: When the system begins killing processes in the + LRU cache, it primarily works bottom-up. The system also considers which + processes consume more memory and thus provide the system + more memory gain if killed. + The less memory you consume while in the LRU list overall, + the better your chances are + to remain in the list and be able to quickly resume. +

      + +

      + For more information about how processes are cached while + not running in the foreground and how + Android decides which ones + can be killed, see the + Processes and Threads + guide. +

      \ No newline at end of file diff --git a/docs/html/training/articles/memory.jd b/docs/html/training/articles/memory.jd index de7af589aefd..885112168e25 100644 --- a/docs/html/training/articles/memory.jd +++ b/docs/html/training/articles/memory.jd @@ -1,4 +1,4 @@ -page.title=Managing Your App's Memory +page.title=Manage Your App's Memory page.tags=ram,low memory,OutOfMemoryError,onTrimMemory page.article=true @jd:body @@ -9,732 +9,586 @@ page.article=true

      In this document

        -
      1. How Android Manages Memory +
      2. Monitor Available Memory and Memory Usage
          -
        1. Sharing Memory
        2. -
        3. Allocating and Reclaiming App Memory
        4. -
        5. Restricting App Memory
        6. -
        7. Switching Apps
        8. +
        9. Tools for analyzing RAM usage
        10. +
        11. Release memory in response to events
        12. +
        13. Check how much memory you should use
      3. -
      4. How Your App Should Manage Memory +
      5. Use More Efficient Code Constructst
        1. Use services sparingly
        2. -
        3. Release memory when your user interface becomes hidden
        4. -
        5. Release memory as memory becomes tight
        6. -
        7. Check how much memory you should use
        8. -
        9. Avoid wasting memory with bitmaps
        10. Use optimized data containers
        11. -
        12. Be aware of memory overhead
        13. Be careful with code abstractions
        14. Use nano protobufs for serialized data
        15. +
        16. Avoid memory churn
        17. +
        +
      6. +
      7. Remove Memory-Intensive Resources and Libraries +
          +
        1. Reduce overall APK size
        2. Avoid dependency injection frameworks
        3. Be careful about using external libraries
        4. -
        5. Optimize overall performance
        6. -
        7. Use ProGuard to strip out any unneeded code
        8. -
        9. Use zipalign on your final APK
        10. -
        11. Analyze your RAM usage
        12. -
        13. Use multiple processes

      See Also

      + + +

      + Random-access memory (RAM) is a valuable + resource in any software development environment, but + it's even more valuable on a mobile operating system + where physical memory is often constrained. + Although both the Android Runtime (ART) and Dalvik virtual machine perform + routine garbage collection, this does not mean you can ignore + when and where your app allocates and releases memory. + You still need to avoid + introducing memory leaks, usually caused by holding onto + object references in static member variables, and + release any {@link java.lang.ref.Reference} objects at the appropriate + time as defined by + lifecycle callbacks. +

      + +

      + This page explains how you can + proactively reduce memory usage within your app. + For more information about general + practices to clean up your resources when programming in Java, + refer to other books or online + documentation about managing resource references. + If you’re looking for information about how to + analyze memory in a running app, read + Tools for analyzing RAM usage. + For more detailed information about how the Android Runtime and Dalvik + virtual machine manage memory, see the + Overview of Android Memory Management. +

      + + + +

      Monitor Available Memory and Memory Usage

      + +

      + The Android framework, Android Studio, and Android SDK + can help you analyze and adjust your app's memory usage. + The Android framework + exposes several APIs that allow your app to reduce its memory usage + dynamically during runtime. Android Studio and the Android SDK + contain several tools that allow you to investigate how your + app uses memory. +

      + + + +

      Tools for analyzing RAM usage

      + +

      + Before you can fix the memory usage problems in your app, you first need + to find them. Android Studio and the Android SDK include several tools + for analyzing memory usage in your app: +

      -

      Random-access memory (RAM) is a valuable resource in any software development environment, but -it's even more valuable on a mobile operating system where physical memory is often constrained. -Although Android's Dalvik virtual machine performs routine garbage collection, this doesn't allow -you to ignore when and where your app allocates and releases memory.

      - -

      In order for the garbage collector to reclaim memory from your app, you need to avoid -introducing memory leaks (usually caused by holding onto object references in global members) and -release any {@link java.lang.ref.Reference} objects at the appropriate time (as defined by -lifecycle callbacks discussed further below). For most apps, the Dalvik garbage collector takes -care of the rest: the system reclaims your memory allocations when the corresponding objects leave -the scope of your app's active threads.

      - -

      This document explains how Android manages app processes and memory allocation, and how you can -proactively reduce memory usage while developing for Android. For more information about general -practices to clean up your resources when programming in Java, refer to other books or online -documentation about managing resource references. If you’re looking for information about how to -analyze your app’s memory once you’ve already built it, read Investigating Your RAM Usage.

      - - - - -

      How Android Manages Memory

      - -

      Android does not offer swap space for memory, but it does use paging and memory-mapping -(mmapping) to manage memory. This means that any memory you modify—whether by allocating -new objects or touching mmapped pages—remains resident in RAM and cannot be paged out. -So the only way to completely release memory from your app is to release object references you may -be holding, making the memory available to the garbage collector. That is with one exception: -any files mmapped in without modification, such as code, can be paged out of RAM if the system -wants to use that memory elsewhere.

      - - -

      Sharing Memory

      - -

      In order to fit everything it needs in RAM, Android tries to share RAM pages across processes. It -can do so in the following ways:

      -
        -
      • Each app process is forked from an existing process called Zygote. -The Zygote process starts when the system boots and loads common framework code and resources -(such as activity themes). To start a new app process, the system forks the Zygote process then -loads and runs the app's code in the new process. This allows most of the RAM pages allocated for -framework code and resources to be shared across all app processes.
      • - -
      • Most static data is mmapped into a process. This not only allows that same data to be shared -between processes but also allows it to be paged out when needed. Example static data include: -Dalvik code (by placing it in a pre-linked {@code .odex} file for direct mmapping), app resources -(by designing the resource table to be a structure that can be mmapped and by aligning the zip -entries of the APK), and traditional project elements like native code in {@code .so} files.
      • - -
      • In many places, Android shares the same dynamic RAM across processes using explicitly allocated -shared memory regions (either with ashmem or gralloc). For example, window surfaces use shared -memory between the app and screen compositor, and cursor buffers use shared memory between the -content provider and client.
      • -
      - -

      Due to the extensive use of shared memory, determining how much memory your app is using requires -care. Techniques to properly determine your app's memory use are discussed in Investigating Your RAM Usage.

      - - -

      Allocating and Reclaiming App Memory

      - -

      Here are some facts about how Android allocates then reclaims memory from your app:

      - -
        -
      • The Dalvik heap for each process is constrained to a single virtual memory range. This defines -the logical heap size, which can grow as it needs to (but only up to a limit that the system defines -for each app).
      • - -
      • The logical size of the heap is not the same as the amount of physical memory used by the heap. -When inspecting your app's heap, Android computes a value called the Proportional Set Size (PSS), -which accounts for both dirty and clean pages that are shared with other processes—but only in an -amount that's proportional to how many apps share that RAM. This (PSS) total is what the system -considers to be your physical memory footprint. For more information about PSS, see the Investigating Your -RAM Usage guide.
      • - -
      • The Dalvik heap does not compact the logical size of the heap, meaning that Android does not -defragment the heap to close up space. Android can only shrink the logical heap size when there -is unused space at the end of the heap. But this doesn't mean the physical memory used by the heap -can't shrink. After garbage collection, Dalvik walks the heap and finds unused pages, then returns -those pages to the kernel using madvise. So, paired allocations and deallocations of large -chunks should result in reclaiming all (or nearly all) the physical memory used. However, -reclaiming memory from small allocations can be much less efficient because the page used -for a small allocation may still be shared with something else that has not yet been freed.
      • -
      - - -

      Restricting App Memory

      - -

      To maintain a functional multi-tasking environment, Android sets a hard limit on the heap size -for each app. The exact heap size limit varies between devices based on how much RAM the device -has available overall. If your app has reached the heap capacity and tries to allocate more -memory, it will receive an {@link java.lang.OutOfMemoryError}.

      - -

      In some cases, you might want to query the system to determine exactly how much heap space you -have available on the current device—for example, to determine how much data is safe to keep in a -cache. You can query the system for this figure by calling {@link -android.app.ActivityManager#getMemoryClass()}. This returns an integer indicating the number of -megabytes available for your app's heap. This is discussed further below, under -Check how much memory you should use.

      - +
        +
      1. + The Device Monitor has a Dalvik Debug Monitor Server (DDMS) tool that allows + you to inspect memory allocation within your app process. + You can use this information to understand how your + app uses memory overall. For example, you can force a garbage collection + event and then view the types of objects that remain in memory. You can + use this information to identify operations or actions within your app + that allocate or leave excessive amounts of objects in memory. + +

        For more information about how to use the DDMS tool, see + Using DDMS. +

        +
      2. -

        Switching Apps

        +
      3. + The Memory Monitor in Android Studio shows you how your app allocates + memory over the course of a single session. + The tool shows a graph of available + and allocated Java memory over time, including garbage collection events. + You can also initiate garbage collection events and take a snapshot of + the Java heap while your app runs. The output from the Memory Monitor tool + can help you identify points when your app experiences excessive garbage + collection events, leading to app slowness. +

        + For more information about how to use Memory Monitor tool, see + Viewing Heap Updates. +

        +
      4. -

        Instead of using swap space when the user switches between apps, Android keeps processes that -are not hosting a foreground ("user visible") app component in a least-recently used (LRU) cache. -For example, when the user first launches an app, a process is created for it, but when the user -leaves the app, that process does not quit. The system keeps the process cached, so if -the user later returns to the app, the process is reused for faster app switching.

        +
      5. + Garbage collection events also show up in the Traceview viewer. Traceview + allows you to view trace log files as both a timeline and as a profile + of what happened within a method. You can use this tool to determine + what code was executing when a garbage collection event occurred. +

        + For more information about how to use the Traceview viewer, see + Profiling with Traceview and dmtracedump. +

        +
      6. -

        If your app has a cached process and it retains memory that it currently does not need, -then your app—even while the user is not using it—is constraining the system's -overall performance. So, as the system runs low on memory, it may kill processes in the LRU cache -beginning with the process least recently used, but also giving some consideration toward -which processes are most memory intensive. To keep your process cached as long as possible, follow -the advice in the following sections about when to release your references.

        +
      7. + The Allocation Tracker tool in Android Studio gives you a detailed look + at how your app allocates memory. + The Allocation Tracker records an app's memory allocations and lists + all allocated objects within the profiling snapshot. You can use this + tool to track down parts of your code that allocate too many objects. + +

        + For more information about how to use the Allocation Tracker tool, see + Allocation Tracker Walkthrough. +

        +
      8. -

        More information about how processes are cached while not running in the foreground and how -Android decides which ones -can be killed is available in the Processes and Threads guide.

        +
      + +

      Release memory in response to events

      +

      + An Android device can run with varying amounts of free memory + depending on the physical amount of RAM on the device and how the user + operates it. The system broadcasts signals to indicate when it is under + memory pressure, and apps should listen for these signals and adjust + their memory usage as appropriate. +

      -

      How Your App Should Manage Memory

      +

      + You can use the {@link android.content.ComponentCallbacks2} API + to listen for these signals and then adjust your memory + usage in response to app lifecycle + or device events. The + {@link android.content.ComponentCallbacks2#onTrimMemory onTrimMemory()} + method allows your app to listen for memory related events when the app runs + in the foreground (is visible) and when it runs in the background. +

      -

      You should consider RAM constraints throughout all phases of development, including during app -design (before you begin development). There are many -ways you can design and write code that lead to more efficient results, through aggregation of the -same techniques applied over and over.

      +

      + To listen for these events, implement the {@link + android.content.ComponentCallbacks2#onTrimMemory onTrimMemory()} + callback in your {@link android.app.Activity} + classes, as shown in the following code snippet. +

      -

      You should apply the following techniques while designing and implementing your app to make it -more memory efficient.

      +
      +import android.content.ComponentCallbacks2;
      +// Other import statements ...
       
      +public class MainActivity extends AppCompatActivity
      +    implements ComponentCallbacks2 {
       
      -

      Use services sparingly

      + // Other activity code ... -

      If your app needs a service -to perform work in the background, do not keep it running unless -it's actively performing a job. Also be careful to never leak your service by failing to stop it -when its work is done.

      + /** + * Release memory when the UI becomes hidden or when system resources become low. + * @param level the memory-related event that was raised. + */ + public void onTrimMemory(int level) { -

      When you start a service, the system prefers to always keep the process for that service -running. This makes the process very expensive because the RAM used by the service can’t be used by -anything else or paged out. This reduces the number of cached processes that the system can keep in -the LRU cache, making app switching less efficient. It can even lead to thrashing in the system -when memory is tight and the system can’t maintain enough processes to host all the services -currently running.

      + // Determine which lifecycle or system event was raised. + switch (level) { -

      The best way to limit the lifespan of your service is to use an {@link -android.app.IntentService}, which finishes -itself as soon as it's done handling the intent that started it. For more information, read -Running in a Background Service -.

      + case ComponentCallbacks2.TRIM_MEMORY_UI_HIDDEN: -

      Leaving a service running when it’s not needed is one of the worst memory-management -mistakes an Android app can make. So don’t be greedy by keeping a service for your app -running. Not only will it increase the risk of your app performing poorly due to RAM constraints, -but users will discover such misbehaving apps and uninstall them.

      + /* + Release any UI objects that currently hold memory. + The user interface has moved to the background. + */ -

      Release memory when your user interface becomes hidden

      + break; -

      When the user navigates to a different app and your UI is no longer visible, you should -release any resources that are used by only your UI. Releasing UI resources at this time can -significantly increase the system's capacity for cached processes, which has a direct impact on the -quality of the user experience.

      + case ComponentCallbacks2.TRIM_MEMORY_RUNNING_MODERATE: + case ComponentCallbacks2.TRIM_MEMORY_RUNNING_LOW: + case ComponentCallbacks2.TRIM_MEMORY_RUNNING_CRITICAL: -

      To be notified when the user exits your UI, implement the {@link -android.content.ComponentCallbacks2#onTrimMemory onTrimMemory()} callback in your {@link -android.app.Activity} classes. You should use this -method to listen for the {@link android.content.ComponentCallbacks2#TRIM_MEMORY_UI_HIDDEN} level, -which indicates your UI is now hidden from view and you should free resources that only your UI -uses.

      + /* + Release any memory that your app doesn't need to run. + The device is running low on memory while the app is running. + The event raised indicates the severity of the memory-related event. + If the event is TRIM_MEMORY_RUNNING_CRITICAL, then the system will + begin killing background processes. + */ -

      Notice that your app receives the {@link android.content.ComponentCallbacks2#onTrimMemory -onTrimMemory()} callback with {@link android.content.ComponentCallbacks2#TRIM_MEMORY_UI_HIDDEN} -only when all the UI components of your app process become hidden from the user. -This is distinct -from the {@link android.app.Activity#onStop onStop()} callback, which is called when an {@link -android.app.Activity} instance becomes hidden, which occurs even when the user moves to -another activity in your app. So although you should implement {@link android.app.Activity#onStop -onStop()} to release activity resources such as a network connection or to unregister broadcast -receivers, you usually should not release your UI resources until you receive {@link -android.content.ComponentCallbacks2#onTrimMemory onTrimMemory(TRIM_MEMORY_UI_HIDDEN)}. This ensures -that if the user navigates back from another activity in your app, your UI resources are -still available to resume the activity quickly.

      + break; + case ComponentCallbacks2.TRIM_MEMORY_BACKGROUND: + case ComponentCallbacks2.TRIM_MEMORY_MODERATE: + case ComponentCallbacks2.TRIM_MEMORY_COMPLETE: + /* + Release as much memory as the process can. -

      Release memory as memory becomes tight

      + The app is on the LRU list and the system is running low on memory. + The event raised indicates where the app sits within the LRU list. + If the event is TRIM_MEMORY_COMPLETE, the process will be one of + the first to be terminated. + */ -

      During any stage of your app's lifecycle, the {@link -android.content.ComponentCallbacks2#onTrimMemory onTrimMemory()} callback also tells you when -the overall device memory is getting low. You should respond by further releasing resources based -on the following memory levels delivered by {@link android.content.ComponentCallbacks2#onTrimMemory -onTrimMemory()}:

      + break; -
        -
      • {@link android.content.ComponentCallbacks2#TRIM_MEMORY_RUNNING_MODERATE} -

        Your app is running and not considered killable, but the device is running low on memory and the -system is actively killing processes in the LRU cache.

        -
      • - -
      • {@link android.content.ComponentCallbacks2#TRIM_MEMORY_RUNNING_LOW} -

        Your app is running and not considered killable, but the device is running much lower on -memory so you should release unused resources to improve system performance (which directly -impacts your app's performance).

        -
      • - -
      • {@link android.content.ComponentCallbacks2#TRIM_MEMORY_RUNNING_CRITICAL} -

        Your app is still running, but the system has already killed most of the processes in the -LRU cache, so you should release all non-critical resources now. If the system cannot reclaim -sufficient amounts of RAM, it will clear all of the LRU cache and begin killing processes that -the system prefers to keep alive, such as those hosting a running service.

        -
      • -
      - -

      Also, when your app process is currently cached, you may receive one of the following -levels from {@link android.content.ComponentCallbacks2#onTrimMemory onTrimMemory()}:

      -
        -
      • {@link android.content.ComponentCallbacks2#TRIM_MEMORY_BACKGROUND} -

        The system is running low on memory and your process is near the beginning of the LRU list. -Although your app process is not at a high risk of being killed, the system may already be killing -processes in the LRU cache. You should release resources that are easy to recover so your process -will remain in the list and resume quickly when the user returns to your app.

        -
      • - -
      • {@link android.content.ComponentCallbacks2#TRIM_MEMORY_MODERATE} -

        The system is running low on memory and your process is near the middle of the LRU list. If the -system becomes further constrained for memory, there's a chance your process will be killed.

        -
      • - -
      • {@link android.content.ComponentCallbacks2#TRIM_MEMORY_COMPLETE} -

        The system is running low on memory and your process is one of the first to be killed if the -system does not recover memory now. You should release everything that's not critical to -resuming your app state.

        - -
      • -
      + default: + /* + Release any non-critical data structures. -

      Because the {@link android.content.ComponentCallbacks2#onTrimMemory onTrimMemory()} callback was -added in API level 14, you can use the {@link android.content.ComponentCallbacks#onLowMemory()} -callback as a fallback for older versions, which is roughly equivalent to the {@link -android.content.ComponentCallbacks2#TRIM_MEMORY_COMPLETE} event.

      - -

      Note: When the system begins killing processes in the LRU cache, -although it primarily works bottom-up, it does give some consideration to which processes are -consuming more memory and will thus provide the system more memory gain if killed. -So the less memory you consume while in the LRU list overall, the better your chances are -to remain in the list and be able to quickly resume.

      + The app received an unrecognized memory level value + from the system. Treat this as a generic low-memory message. + */ + break; + } + } +} +
      +

      + The + {@link android.content.ComponentCallbacks2#onTrimMemory onTrimMemory()} + callback was added in Android 4.0 (API level 14). For earlier versions, + you can use the + {@link android.content.ComponentCallbacks#onLowMemory()} + callback as a fallback for older versions, which is roughly equivalent to the + {@link android.content.ComponentCallbacks2#TRIM_MEMORY_COMPLETE} event. +

      +

      Check how much memory you should use

      -

      As mentioned earlier, each Android-powered device has a different amount of RAM available to the -system and thus provides a different heap limit for each app. You can call {@link -android.app.ActivityManager#getMemoryClass()} to get an estimate of your app's available heap in -megabytes. If your app tries to allocate more memory than is available here, it will receive an -{@link java.lang.OutOfMemoryError}.

      - -

      In very special situations, you can request a larger heap size by setting the {@code largeHeap} -attribute to "true" in the manifest {@code } -tag. If you do so, you can call {@link -android.app.ActivityManager#getLargeMemoryClass()} to get an estimate of the large heap size.

      - -

      However, the ability to request a large heap is intended only for a small set of apps that can -justify the need to consume more RAM (such as a large photo editing app). Never request a -large heap simply because you've run out of memory and you need a quick fix—you -should use it only when you know exactly where all your memory is being allocated and why it must -be retained. Yet, even when you're confident your app can justify the large heap, you should avoid -requesting it to whatever extent possible. Using the extra memory will increasingly be to the -detriment of the overall user experience because garbage collection will take longer and system -performance may be slower when task switching or performing other common operations.

      - -

      Additionally, the large heap size is not the same on all devices and, when running on -devices that have limited RAM, the large heap size may be exactly the same as the regular heap -size. So even if you do request the large heap size, you should call {@link -android.app.ActivityManager#getMemoryClass()} to check the regular heap size and strive to always -stay below that limit.

      - - -

      Avoid wasting memory with bitmaps

      - -

      When you load a bitmap, keep it in RAM only at the resolution you need for the current device's -screen, scaling it down if the original bitmap is a higher resolution. Keep in mind that an -increase in bitmap resolution results in a corresponding (increase2) in memory needed, -because both the X and Y dimensions increase.

      - -

      Note: On Android 2.3.x (API level 10) and below, bitmap objects -always appear as the same size in your app heap regardless of the image resolution (the actual -pixel data is stored separately in native memory). This makes it more difficult to debug the bitmap -memory allocation because most heap analysis tools do not see the native allocation. However, -beginning in Android 3.0 (API level 11), the bitmap pixel data is allocated in your app's Dalvik -heap, improving garbage collection and debuggability. So if your app uses bitmaps and you're having -trouble discovering why your app is using some memory on an older device, switch to a device -running Android 3.0 or higher to debug it.

      - -

      For more tips about working with bitmaps, read Managing Bitmap Memory.

      - - -

      Use optimized data containers

      - -

      Take advantage of optimized containers in the Android framework, such as {@link -android.util.SparseArray}, {@link android.util.SparseBooleanArray}, and {@link -android.support.v4.util.LongSparseArray}. The generic {@link java.util.HashMap} -implementation can be quite memory -inefficient because it needs a separate entry object for every mapping. Additionally, the {@link -android.util.SparseArray} classes are more efficient because they avoid the system's need -to autobox -the key and sometimes value (which creates yet another object or two per entry). And don't be -afraid of dropping down to raw arrays when that makes sense.

      - +

      + To allow multiple running processes, Android sets a hard limit + on the heap size alloted for each app. The exact heap size limit varies + between devices based on how much RAM the device + has available overall. If your app has reached the heap capacity and + tries to allocate more + memory, the system throws an {@link java.lang.OutOfMemoryError}. +

      + +

      + To avoid running out of memory, you can to query the system to determine + how much heap space you have available on the current device. + You can query the system for this figure by calling + {@link android.app.ActivityManager#getMemoryInfo(android.app.ActivityManager.MemoryInfo) getMemoryInfo()}. + This returns an + {@link android.app.ActivityManager.MemoryInfo } object that provides + information about the device's + current memory status, including available memory, total memory, and + the memory threshold—the memory level below which the system begins + to kill processes. The + {@link android.app.ActivityManager.MemoryInfo } class also exposes a simple + boolean field, + {@link android.app.ActivityManager.MemoryInfo#lowMemory } + that tells you whether the device is running low on memory. +

      + +

      + The following code snippet shows an example of how you can use the + {@link android.app.ActivityManager#getMemoryInfo(android.app.ActivityManager.MemoryInfo) getMemoryInfo()}. + method in your application. +

      + +
      +public void doSomethingMemoryIntensive() {
      +
      +    // Before doing something that requires a lot of memory,
      +    // check to see whether the device is in a low memory state.
      +    ActivityManager.MemoryInfo memoryInfo = getAvailableMemory();
      +
      +    if (!memoryInfo.lowMemory) {
      +        // Do memory intensive work ...
      +    }
      +}
      +
      +// Get a MemoryInfo object for the device's current memory status.
      +private ActivityManager.MemoryInfo getAvailableMemory() {
      +    ActivityManager activityManager = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
      +    ActivityManager.MemoryInfo memoryInfo = new ActivityManager.MemoryInfo();
      +    activityManager.getMemoryInfo(memoryInfo);
      +    return memoryInfo;
      +}
      +
      + -

      Be aware of memory overhead

      +

      Use More Memory-Efficient Code Constructs

      -

      Be knowledgeable about the cost and overhead of the language and libraries you are using, and -keep this information in mind when you design your app, from start to finish. Often, things on the -surface that look innocuous may in fact have a large amount of overhead. Examples include:

      -
        -
      • Enums often require more than twice as much memory as static constants. You should strictly -avoid using enums on Android.
      • +

        + Some Android features, Java classes, and code constructs tend to + use more memory than others. You can minimize how + much memory your app uses by choosing more efficient alternatives in + your code. +

        -
      • Every class in Java (including anonymous inner classes) uses about 500 bytes of code.
      • + -
      • Every class instance has 12-16 bytes of RAM overhead.
      • +

        Use services sparingly

        -
      • Putting a single entry into a {@link java.util.HashMap} requires the allocation of an -additional entry object that takes 32 bytes (see the previous section about optimized data containers).
      • -
      +

      + Leaving a service running when it’s not needed is + one of the worst memory-management + mistakes an Android app can make. If your app needs a + service + to perform work in the background, do not keep it running unless + it needs to run a job. Remember to stop your service when it has completed + its task. Otherwise, you can inadvertently cause a memory leak. +

      + +

      + When you start a service, the system prefers to always keep the process + for that service running. This behavior + makes services processes very expensive + because the RAM used by a service remains unavailable to other processes. + This reduces the number of cached processes that the system can keep in + the LRU cache, making app switching less efficient. It can even lead to + thrashing in the system when memory is tight and the system can’t + maintain enough processes to host all the services currently running. +

      + +

      + You should generally avoid use of persistent services because of + the on-going demands they place on available memory. Instead, we + recommend that you use an alternative implementation + such as {@llink android.app.job.JobScheduler}. For more information about + how to use {@llink android.app.job.JobScheduler} to schedule background + processes, see + Background Optimizations. +

      + If you must use a service, the + best way to limit the lifespan of your service is to use an {@link + android.app.IntentService}, which finishes + itself as soon as it's done handling the intent that started it. + For more information, read + Running in a Background Service. +

      + + -

      A few bytes here and there quickly add up—app designs that are class- or object-heavy will suffer -from this overhead. That can leave you in the difficult position of looking at a heap analysis and -realizing your problem is a lot of small objects using up your RAM.

      +

      Use optimized data containers

      +

      + Some of the classes provided by the programming language are not optimized for + use on mobile devices. For example, the generic + {@link java.util.HashMap} implementation can be quite memory + inefficient because it needs a separate entry object for every mapping. +

      + +

      + The Android framework includes several optimized data containers, including + {@link android.util.SparseArray}, {@link android.util.SparseBooleanArray}, + and {@link android.support.v4.util.LongSparseArray}. + For example, the {@link android.util.SparseArray} classes are more + efficient because they avoid the system's need to + autobox + the key and sometimes value (which creates yet another object or + two per entry). +

      + +

      + If necessary, you can always switch to raw arrays for a really lean data + structure. +

      + +

      Be careful with code abstractions

      -

      Often, developers use abstractions simply as a "good programming practice," because abstractions -can improve code flexibility and maintenance. However, abstractions come at a significant cost: -generally they require a fair amount more code that needs to be executed, requiring more time and -more RAM for that code to be mapped into memory. So if your abstractions aren't supplying a -significant benefit, you should avoid them.

      - - -

      Use nano protobufs for serialized data

      - -

      Protocol -buffers are a language-neutral, platform-neutral, extensible mechanism designed by Google for -serializing structured data—think XML, but smaller, faster, and simpler. If you decide to use -protobufs for your data, you should always use nano protobufs in your client-side code. Regular -protobufs generate extremely verbose code, which will cause many kinds of problems in your app: -increased RAM use, significant APK size increase, slower execution, and quickly hitting the DEX -symbol limit.

      - -

      For more information, see the "Nano version" section in the protobuf readme.

      - +

      + Developers often use abstractions simply as a good programming practice, + because abstractions can improve code flexibility and maintenance. + However, abstractions come at a significant cost: + generally they require a fair amount more code that + needs to be executed, requiring more time and + more RAM for that code to be mapped into memory. + So if your abstractions aren't supplying a + significant benefit, you should avoid them. +

      +

      + For example, enums often require more than twice as much memory as static + constants. You should strictly avoid using enums on Android. +

      -

      Avoid dependency injection frameworks

      + -

      Using a dependency injection framework such as Guice or -RoboGuice may be -attractive because they can simplify the code you write and provide an adaptive environment -that's useful for testing and other configuration changes. However, these frameworks tend to perform -a lot of process initialization by scanning your code for annotations, which can require significant -amounts of your code to be mapped into RAM even though you don't need it. These mapped pages are -allocated into clean memory so Android can drop them, but that won't happen until the pages have -been left in memory for a long period of time.

      +

      Use nano protobufs for serialized data

      +

      + Protocol buffers + are a language-neutral, platform-neutral, extensible mechanism + designed by Google for serializing structured data—similar to XML, but + smaller, faster, and simpler. If you decide to use + protobufs for your data, you should always use nano protobufs in your + client-side code. Regular protobufs generate extremely verbose code, which + can cause many kinds of problems in your app such as + increased RAM use, significant APK size increase, and slower execution. +

      + +

      + For more information, see the "Nano version" section in the + protobuf readme. +

      + + + +

      Avoid memory churn

      + +

      + As mentioned previously, garbage collections events don't normally affect + your app's performance. However, many garbage collection events that occur + over a short period of time can quickly eat up your frame time. The more time + that the system spends on garbage collection, the less time it has to do + other stuff like rendering or streaming audio. +

      + +

      + Often, memory churn can cause a large number of + garbage collection events to occur. In practice, memory churn describes the + number of allocated temporary objects that occur in a given amount of time. +

      + +

      + For example, you might allocate multiple temporary objects within a + for loop. Or you might create new + {@link android.graphics.Paint} or {@link android.graphics.Bitmap} + objects inside the + {@link android.view.View#onDraw(android.graphics.Canvas) onDraw()} + function of a view. + In both cases, the app creates a lot of objects quickly at high volume. + These can quickly consume all the available memory in the young generation, + forcing a garbage collection event to occur. +

      + +

      + Of course, you need to find the places in your code where + the memory churn is high before you can fix them. Use the tools discussed in + Analyze your RAM usage +

      + +

      + Once you identify the problem areas in your code, try to reduce the number of + allocations within performance critical areas. Consider moving things out of + inner loops or perhaps moving them into a + Factory + based allocation structure. +

      + + + +

      Remove Memory-Intensive Resources and Libraries

      + +

      + Some resources and libraries within your code can gobble up memory without + you knowing it. Overall size of your APK, including third-party libraries + or embedded resources, can affect how much memory your app consumes. You can + improve your app's memory consumption by removing any redundant, unnecessary, + or bloated components, resources, or libraries from your code. +

      + + + +

      Reduce overall APK size

      + +

      + You can significantly reduce your app's memory usage by reducing the overall + size of your app. Bitmap size, resources, animation frames, and third-party + libraries can all contribute to the size of your APK. + Android Studio and the Android SDK provide multiple tools + to help you reduce the size of your resources and external dependencies. +

      + +

      + For more information about how to reduce your overall APK size, see + Reduce APK Size. +

      + + + +

      Use caution with dependency injection frameworks

      + +

      + Dependency injection framework such as + Guice + or + RoboGuice + can simplify the code you write and provide an adaptive environment + that's useful for testing and other configuration changes. However, dependency + frameworks aren't always optimized for mobile devices. +

      + +

      + For example, these frameworks tend to initialize processes by + scanning your code for annotations. This which can require significant + amounts of your code to be mapped into RAM unnecessarily. The system + allocates these mapped pages into clean memory so Android can drop them; yet + that can't happen until the pages have remained in memory for a long period + of time. +

      + +

      + If you need to use a dependency injection framework in your app, consider + using + Dagger + instead. For example, Dagger does not use reflection to scan your app's code. + Dagger's strict implementation means that it can be used in Android apps + without needlessly increasing memory usage. +

      + +

      Be careful about using external libraries

      -

      External library code is often not written for mobile environments and can be inefficient when used -for work on a mobile client. At the very least, when you decide to use an external library, you -should assume you are taking on a significant porting and maintenance burden to optimize the -library for mobile. Plan for that work up-front and analyze the library in terms of code size and -RAM footprint before deciding to use it at all.

      - -

      Even libraries supposedly designed for use on Android are potentially dangerous because each -library may do things differently. For example, one library may use nano protobufs while another -uses micro protobufs. Now you have two different protobuf implementations in your app. This can and -will also happen with different implementations of logging, analytics, image loading frameworks, -caching, and all kinds of other things you don't expect. ProGuard won't save you here because these -will all be lower-level dependencies that are required by the features for which you want the -library. This becomes especially problematic when you use an {@link android.app.Activity} -subclass from a library (which -will tend to have wide swaths of dependencies), when libraries use reflection (which is common and -means you need to spend a lot of time manually tweaking ProGuard to get it to work), and so on.

      - -

      Also be careful not to fall into the trap of using a shared library for one or two features out of -dozens of other things it does; you don't want to pull in a large amount of code and overhead that -you don't even use. At the end of the day, if there isn't an existing implementation that is a -strong match for what you need to do, it may be best if you create your own implementation.

      - - -

      Optimize overall performance

      - -

      A variety of information about optimizing your app's overall performance is available -in other documents listed in Best Practices -for Performance. Many of these documents include optimizations tips for CPU performance, but -many of these tips also help optimize your app's memory use, such as by reducing the number of -layout objects required by your UI.

      - -

      You should also read about optimizing -your UI with the layout debugging tools and take advantage of -the optimization suggestions provided by the lint tool.

      - - -

      Use ProGuard to strip out any unneeded code

      - -

      The ProGuard tool shrinks, -optimizes, and obfuscates your code by removing unused code and renaming classes, fields, and -methods with semantically obscure names. Using ProGuard can make your code more compact, requiring -fewer RAM pages to be mapped.

      - - -

      Use zipalign on your final APK

      - -

      If you do any post-processing of an APK generated by a build system (including signing it -with your final production certificate), then you must run zipalign on it to have it re-aligned. -Failing to do so can cause your app to require significantly more RAM, because things like -resources can no longer be mmapped from the APK.

      - -

      Note: Google Play Store does not accept APK files that -are not zipaligned.

      - - -

      Analyze your RAM usage

      - -

      Once you achieve a relatively stable build, begin analyzing how much RAM your app is using -throughout all stages of its lifecycle. For information about how to analyze your app, read Investigating Your RAM Usage.

      - - - - -

      Use multiple processes

      - -

      If it's appropriate for your app, an advanced technique that may help you manage your app's -memory is dividing components of your app into multiple processes. This technique must always be -used carefully and most apps should not run multiple processes, as it can easily -increase—rather than decrease—your RAM footprint if done incorrectly. It is primarily -useful to apps that may run significant work in the background as well as the foreground and can -manage those operations separately.

      - - -

      An example of when multiple processes may be appropriate is when building a music player that -plays music from a service for long period of time. If -the entire app runs in one process, then many of the allocations performed for its activity UI must -be kept around as long as it is playing music, even if the user is currently in another app and the -service is controlling the playback. An app like this may be split into two process: one for its -UI, and the other for the work that continues running in the background service.

      - -

      You can specify a separate process for each app component by declaring the {@code android:process} attribute -for each component in the manifest file. For example, you can specify that your service should run -in a process separate from your app's main process by declaring a new process named "background" -(but you can name the process anything you like):

      - -
      -<service android:name=".PlaybackService"
      -         android:process=":background" />
      -
      - -

      Your process name should begin with a colon (':') to ensure that the process remains private to -your app.

      - -

      Before you decide to create a new process, you need to understand the memory implications. -To illustrate the consequences of each process, consider that an empty process doing basically -nothing has an extra memory footprint of about 1.4MB, as shown by the memory information -dump below.

      - -
      -adb shell dumpsys meminfo com.example.android.apis:empty
      -
      -** MEMINFO in pid 10172 [com.example.android.apis:empty] **
      -                Pss     Pss  Shared Private  Shared Private    Heap    Heap    Heap
      -              Total   Clean   Dirty   Dirty   Clean   Clean    Size   Alloc    Free
      -             ------  ------  ------  ------  ------  ------  ------  ------  ------
      -  Native Heap     0       0       0       0       0       0    1864    1800      63
      -  Dalvik Heap   764       0    5228     316       0       0    5584    5499      85
      - Dalvik Other   619       0    3784     448       0       0
      -        Stack    28       0       8      28       0       0
      -    Other dev     4       0      12       0       0       4
      -     .so mmap   287       0    2840     212     972       0
      -    .apk mmap    54       0       0       0     136       0
      -    .dex mmap   250     148       0       0    3704     148
      -   Other mmap     8       0       8       8      20       0
      -      Unknown   403       0     600     380       0       0
      -        TOTAL  2417     148   12480    1392    4832     152    7448    7299     148
      -
      - -

      Note: More information about how to read this output is provided -in Investigating -Your RAM Usage. The key data here is the Private Dirty and Private -Clean memory, which shows that this process is using almost 1.4MB of non-pageable RAM -(distributed across the Dalvik heap, native allocations, book-keeping, and library-loading), -and another 150K of RAM for code that has been mapped in to execute.

      - -

      This memory footprint for an empty process is fairly significant and it can quickly -grow as you start doing work in that process. For -example, here is the memory use of a process that is created only to show an activity with some -text in it:

      - -
      -** MEMINFO in pid 10226 [com.example.android.helloactivity] **
      -                Pss     Pss  Shared Private  Shared Private    Heap    Heap    Heap
      -              Total   Clean   Dirty   Dirty   Clean   Clean    Size   Alloc    Free
      -             ------  ------  ------  ------  ------  ------  ------  ------  ------
      -  Native Heap     0       0       0       0       0       0    3000    2951      48
      -  Dalvik Heap  1074       0    4928     776       0       0    5744    5658      86
      - Dalvik Other   802       0    3612     664       0       0
      -        Stack    28       0       8      28       0       0
      -       Ashmem     6       0      16       0       0       0
      -    Other dev   108       0      24     104       0       4
      -     .so mmap  2166       0    2824    1828    3756       0
      -    .apk mmap    48       0       0       0     632       0
      -    .ttf mmap     3       0       0       0      24       0
      -    .dex mmap   292       4       0       0    5672       4
      -   Other mmap    10       0       8       8      68       0
      -      Unknown   632       0     412     624       0       0
      -        TOTAL  5169       4   11832    4032   10152       8    8744    8609     134
      -
      - -

      The process has now almost tripled in size, to 4MB, simply by showing some text in the UI. This -leads to an important conclusion: If you are going to split your app into multiple processes, only -one process should be responsible for UI. Other processes should avoid any UI, as this will quickly -increase the RAM required by the process (especially once you start loading bitmap assets and other -resources). It may then be hard or impossible to reduce the memory usage once the UI is drawn.

      - -

      Additionally, when running more than one process, it's more important than ever that you keep your -code as lean as possible, because any unnecessary RAM overhead for common implementations are now -replicated in each process. For example, if you are using enums (though you should not use enums), all of -the RAM needed to create and initialize those constants is duplicated in each process, and any -abstractions you have with adapters and temporaries or other overhead will likewise be replicated.

      - -

      Another concern with multiple processes is the dependencies that exist between them. For example, -if your app has a content provider that you have running in the default process which also hosts -your UI, then code in a background process that uses that content provider will also require that -your UI process remain in RAM. If your goal is to have a background process that can run -independently of a heavy-weight UI process, it can't have dependencies on content providers or -services that execute in the UI process.

      - - - - - - - - - - - diff --git a/docs/html/training/training_toc.cs b/docs/html/training/training_toc.cs index d0dccba64d35..39ca6fb405e3 100644 --- a/docs/html/training/training_toc.cs +++ b/docs/html/training/training_toc.cs @@ -1887,6 +1887,12 @@ results." on a variety of mobile devices." >Managing Your App's Memory +
    21. + Overview of Android Memory Management +
    22. Date: Wed, 28 Sep 2016 19:27:55 -0700 Subject: [PATCH 592/809] Import translations. DO NOT MERGE Change-Id: Id3118d7ffd60d2a82c5f057a42ef7aeac6f556e5 Auto-generated-cl: translation import --- core/res/res/values-af/strings.xml | 3 ++- core/res/res/values-am/strings.xml | 3 ++- core/res/res/values-ar/strings.xml | 3 ++- core/res/res/values-az-rAZ/strings.xml | 3 ++- core/res/res/values-b+sr+Latn/strings.xml | 3 ++- core/res/res/values-be-rBY/strings.xml | 3 ++- core/res/res/values-bg/strings.xml | 3 ++- core/res/res/values-bn-rBD/strings.xml | 3 ++- core/res/res/values-bs-rBA/strings.xml | 3 ++- core/res/res/values-ca/strings.xml | 3 ++- core/res/res/values-cs/strings.xml | 3 ++- core/res/res/values-da/strings.xml | 3 ++- core/res/res/values-de/strings.xml | 3 ++- core/res/res/values-el/strings.xml | 3 ++- core/res/res/values-en-rAU/strings.xml | 3 ++- core/res/res/values-en-rGB/strings.xml | 3 ++- core/res/res/values-en-rIN/strings.xml | 3 ++- core/res/res/values-es-rUS/strings.xml | 3 ++- core/res/res/values-es/strings.xml | 3 ++- core/res/res/values-et-rEE/strings.xml | 3 ++- core/res/res/values-eu-rES/strings.xml | 3 ++- core/res/res/values-fa/strings.xml | 3 ++- core/res/res/values-fi/strings.xml | 3 ++- core/res/res/values-fr-rCA/strings.xml | 3 ++- core/res/res/values-fr/strings.xml | 3 ++- core/res/res/values-gl-rES/strings.xml | 3 ++- core/res/res/values-gu-rIN/strings.xml | 3 ++- core/res/res/values-hi/strings.xml | 3 ++- core/res/res/values-hr/strings.xml | 3 ++- core/res/res/values-hu/strings.xml | 3 ++- core/res/res/values-hy-rAM/strings.xml | 15 ++++++++------- core/res/res/values-in/strings.xml | 3 ++- core/res/res/values-is-rIS/strings.xml | 3 ++- core/res/res/values-it/strings.xml | 3 ++- core/res/res/values-iw/strings.xml | 3 ++- core/res/res/values-ja/strings.xml | 3 ++- core/res/res/values-ka-rGE/strings.xml | 3 ++- core/res/res/values-kk-rKZ/strings.xml | 3 ++- core/res/res/values-km-rKH/strings.xml | 3 ++- core/res/res/values-kn-rIN/strings.xml | 3 ++- core/res/res/values-ko/strings.xml | 3 ++- core/res/res/values-ky-rKG/strings.xml | 3 ++- core/res/res/values-lo-rLA/strings.xml | 3 ++- core/res/res/values-lt/strings.xml | 3 ++- core/res/res/values-lv/strings.xml | 3 ++- core/res/res/values-mk-rMK/strings.xml | 3 ++- core/res/res/values-ml-rIN/strings.xml | 3 ++- core/res/res/values-mn-rMN/strings.xml | 3 ++- core/res/res/values-mr-rIN/strings.xml | 3 ++- core/res/res/values-ms-rMY/strings.xml | 3 ++- core/res/res/values-my-rMM/strings.xml | 3 ++- core/res/res/values-nb/strings.xml | 3 ++- core/res/res/values-ne-rNP/strings.xml | 5 +++-- core/res/res/values-nl/strings.xml | 3 ++- core/res/res/values-pa-rIN/strings.xml | 3 ++- core/res/res/values-pl/strings.xml | 3 ++- core/res/res/values-pt-rBR/strings.xml | 3 ++- core/res/res/values-pt-rPT/strings.xml | 3 ++- core/res/res/values-pt/strings.xml | 3 ++- core/res/res/values-ro/strings.xml | 3 ++- core/res/res/values-ru/strings.xml | 3 ++- core/res/res/values-si-rLK/strings.xml | 3 ++- core/res/res/values-sk/strings.xml | 3 ++- core/res/res/values-sl/strings.xml | 3 ++- core/res/res/values-sq-rAL/strings.xml | 3 ++- core/res/res/values-sr/strings.xml | 3 ++- core/res/res/values-sv/strings.xml | 3 ++- core/res/res/values-sw/strings.xml | 3 ++- core/res/res/values-ta-rIN/strings.xml | 3 ++- core/res/res/values-te-rIN/strings.xml | 3 ++- core/res/res/values-th/strings.xml | 3 ++- core/res/res/values-tl/strings.xml | 3 ++- core/res/res/values-tr/strings.xml | 3 ++- core/res/res/values-uk/strings.xml | 3 ++- core/res/res/values-ur-rPK/strings.xml | 3 ++- core/res/res/values-uz-rUZ/strings.xml | 3 ++- core/res/res/values-vi/strings.xml | 3 ++- core/res/res/values-zh-rCN/strings.xml | 3 ++- core/res/res/values-zh-rHK/strings.xml | 3 ++- core/res/res/values-zh-rTW/strings.xml | 3 ++- core/res/res/values-zu/strings.xml | 3 ++- 81 files changed, 169 insertions(+), 88 deletions(-) diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml index b04de2319fec..34d43bc5f455 100644 --- a/core/res/res/values-af/strings.xml +++ b/core/res/res/values-af/strings.xml @@ -1330,7 +1330,8 @@ "%s-USB-datastokkie" "USB-berging" "Redigeer" - "Dataverbruik-waarskuwing" + + "Tik om gebruik en instellings te bekyk." "2G-3G-datalimiet bereik" "4G-datalimiet bereik" diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml index 9ae303908c5d..39f829db14ad 100644 --- a/core/res/res/values-am/strings.xml +++ b/core/res/res/values-am/strings.xml @@ -1330,7 +1330,8 @@ "የ%s ዩኤስቢ አንጻፊ" "የUSB ማከማቻ" "አርትዕ" - "የውሂብ አጠቃቀም ማስጠንቀቂየ" + + "አጠቃቀምን እና ቅንብሮችን ለማየት መታ ያድርጉ።" "የ2ጂ-3ጂ ውሂብ ገደብ ላይ ተደርሷል" "የ4ጂ ውሂብ ገደብ ላይ ተደርሷል" diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml index 43731b5f0788..d8e0f6806f01 100644 --- a/core/res/res/values-ar/strings.xml +++ b/core/res/res/values-ar/strings.xml @@ -1434,7 +1434,8 @@ "‏محرك أقراص USB من %s" "‏وحدة تخزين USB" "تعديل" - "تحذير استخدام البيانات" + + "انقر لعرض الاستخدام والإعدادات." "‏تم بلوغ حد بيانات اتصال 2G-3G" "‏تم بلوغ حد بيانات اتصال 4G" diff --git a/core/res/res/values-az-rAZ/strings.xml b/core/res/res/values-az-rAZ/strings.xml index f6371c7c6011..9a3c93c5f21e 100644 --- a/core/res/res/values-az-rAZ/strings.xml +++ b/core/res/res/values-az-rAZ/strings.xml @@ -1330,7 +1330,8 @@ "%s USB drayv" "USB yaddaş" "Düzəliş edin" - "Data istifadə xəbərdarlığı" + + "İstifadə və ayarları görmək üçün tıklayın." "2G-3G data limitinə çatdı" "4G data limitinə çatdı" diff --git a/core/res/res/values-b+sr+Latn/strings.xml b/core/res/res/values-b+sr+Latn/strings.xml index 13395cdc104e..c180df01c56c 100644 --- a/core/res/res/values-b+sr+Latn/strings.xml +++ b/core/res/res/values-b+sr+Latn/strings.xml @@ -1356,7 +1356,8 @@ "%s USB disk" "USB memorija" "Izmeni" - "Upozorenje o potrošnji podataka" + + "Dodirnite za potrošnju i podešavanja." "Nema više 2G-3G podataka" "Nema više 4G podataka" diff --git a/core/res/res/values-be-rBY/strings.xml b/core/res/res/values-be-rBY/strings.xml index e2e46e56e0c4..0a6427f9a603 100644 --- a/core/res/res/values-be-rBY/strings.xml +++ b/core/res/res/values-be-rBY/strings.xml @@ -1382,7 +1382,8 @@ "USB-дыск %s" "USB-назапашвальнік" "Рэдагаваць" - "Папярэджанне выкарыстання дадзеных" + + "Прагляд выкарыстання і налад." "Дасягнуты ліміт трафіку 2G-3G" "Дасягнуты ліміт трафіку 4G" diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml index b43b5eeee15f..df5936a310db 100644 --- a/core/res/res/values-bg/strings.xml +++ b/core/res/res/values-bg/strings.xml @@ -1330,7 +1330,8 @@ "USB устройство от %s" "USB хранилище" "Редактиране" - "Предупрежд. за ползване на данни" + + "Пренос и настройки: Докоснете за преглед." "Достигнат лимит за 2G/3G данните" "Достигнат лимит за 4G данните" diff --git a/core/res/res/values-bn-rBD/strings.xml b/core/res/res/values-bn-rBD/strings.xml index 44b7b104aedc..13c1650d3d85 100644 --- a/core/res/res/values-bn-rBD/strings.xml +++ b/core/res/res/values-bn-rBD/strings.xml @@ -1330,7 +1330,8 @@ "%s USB ড্রাইভ" "USB সঞ্চয়স্থান" "সম্পাদনা করুন" - "ডেটা ব্যবহারের সতর্কতা" + + "ব্যবহার এবং সেটিংস দেখতে আলতো চাপুন৷" "2G-3G ডেটা সীমা ছাড়িয়েছে" "4G ডেটা সীমা ছাড়িয়েছে" diff --git a/core/res/res/values-bs-rBA/strings.xml b/core/res/res/values-bs-rBA/strings.xml index e72091294abc..92749328575a 100644 --- a/core/res/res/values-bs-rBA/strings.xml +++ b/core/res/res/values-bs-rBA/strings.xml @@ -1358,7 +1358,8 @@ "%s USB disk" "USB pohrana" "Uredi" - "Upozorenje za prijenos podataka" + + "Dodirnite za prikaz upotrebe i postavki." "Dostignut limit za 2G-3G podatke" "Dostignut limit za 4G podatke" diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml index 675c889a93af..33fc1bdf5705 100644 --- a/core/res/res/values-ca/strings.xml +++ b/core/res/res/values-ca/strings.xml @@ -1330,7 +1330,8 @@ "Unitat USB de: %s" "Emmagatzematge USB" "Edita" - "Advertiment d\'ús de dades" + + "Toca per veure l\'ús i la configuració." "Límit de dades 2G-3G assolit" "Límit de dades 4G assolit" diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml index d4f1baff7c7b..e166a8fc4a5e 100644 --- a/core/res/res/values-cs/strings.xml +++ b/core/res/res/values-cs/strings.xml @@ -1382,7 +1382,8 @@ "Jednotka USB %s" "Úložiště USB" "Upravit" - "Upozornění na využití dat" + + "Klepnutím zobrazíte nastavení." "Dosáhli jste limitu dat 2G–3G" "Dosáhli jste limitu dat 4G" diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml index 3ede198995dd..95024857102e 100644 --- a/core/res/res/values-da/strings.xml +++ b/core/res/res/values-da/strings.xml @@ -1330,7 +1330,8 @@ "USB-drev fra %s" "USB-lager" "Rediger" - "Advarsel om dataforbrug" + + "Tryk for at se forbrug og indstillinger." "Grænsen for 2G-3G-data er nået" "Grænsen for 4G-data er nået" diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml index e35ff6be8e3a..e102dff7abfe 100644 --- a/core/res/res/values-de/strings.xml +++ b/core/res/res/values-de/strings.xml @@ -1330,7 +1330,8 @@ "USB-Speichergerät von %s" "USB-Speicher" "Bearbeiten" - "Warnung zum Datenverbrauch" + + "Für Nutzung und Einstellungen tippen." "2G-/3G-Datenlimit erreicht" "4G-Datenlimit erreicht" diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml index f03750261a76..5473d39b54b4 100644 --- a/core/res/res/values-el/strings.xml +++ b/core/res/res/values-el/strings.xml @@ -1330,7 +1330,8 @@ "Μονάδα USB %s" "Αποθηκευτικός χώρος USB" "Επεξεργασία" - "Προειδοποίηση χρήσης δεδομένων" + + "Πατήστε για προβολή χρήσης/ρυθμ." "Συμπλ. το όριο δεδομένων 2G-3G" "Συμπλ. το όριο δεδομένων 4G" diff --git a/core/res/res/values-en-rAU/strings.xml b/core/res/res/values-en-rAU/strings.xml index 5b5d50eb58fb..3c29c411b112 100644 --- a/core/res/res/values-en-rAU/strings.xml +++ b/core/res/res/values-en-rAU/strings.xml @@ -1330,7 +1330,8 @@ "%s USB drive" "USB storage" "Edit" - "Data usage warning" + + "Tap to view usage and settings." "2G-3G data limit reached" "4G data limit reached" diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml index 5b5d50eb58fb..3c29c411b112 100644 --- a/core/res/res/values-en-rGB/strings.xml +++ b/core/res/res/values-en-rGB/strings.xml @@ -1330,7 +1330,8 @@ "%s USB drive" "USB storage" "Edit" - "Data usage warning" + + "Tap to view usage and settings." "2G-3G data limit reached" "4G data limit reached" diff --git a/core/res/res/values-en-rIN/strings.xml b/core/res/res/values-en-rIN/strings.xml index 5b5d50eb58fb..3c29c411b112 100644 --- a/core/res/res/values-en-rIN/strings.xml +++ b/core/res/res/values-en-rIN/strings.xml @@ -1330,7 +1330,8 @@ "%s USB drive" "USB storage" "Edit" - "Data usage warning" + + "Tap to view usage and settings." "2G-3G data limit reached" "4G data limit reached" diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml index 25cfbb113a7c..57cda17a097e 100644 --- a/core/res/res/values-es-rUS/strings.xml +++ b/core/res/res/values-es-rUS/strings.xml @@ -1330,7 +1330,8 @@ "Unidad USB de %s" "Almacenamiento USB" "Editar" - "Advertencia de uso de datos" + + "Presiona para uso y opciones." "Límite de datos 2G-3G alcanzado" "Límite de datos 4G alcanzado" diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml index 9355f0627715..e8495a5a13d9 100644 --- a/core/res/res/values-es/strings.xml +++ b/core/res/res/values-es/strings.xml @@ -1330,7 +1330,8 @@ "Unidad USB %s" "Almacenamiento USB" "Editar" - "Advertencia de uso de datos" + + "Toca para ver uso y ajustes." "Límite de datos 2G-3G alcanzado" "Límite de datos 4G alcanzado" diff --git a/core/res/res/values-et-rEE/strings.xml b/core/res/res/values-et-rEE/strings.xml index cce09099d09f..eed381d0e17e 100644 --- a/core/res/res/values-et-rEE/strings.xml +++ b/core/res/res/values-et-rEE/strings.xml @@ -1330,7 +1330,8 @@ "Tootja %s USB-ketas" "USB-mäluseade" "Muuda" - "Andmete kasutamise hoiatus" + + "Puudutage kasutuse/seadete vaat." "2G-, 3G-andmeside limiit on täis" "4G-andmeside limiit on täis" diff --git a/core/res/res/values-eu-rES/strings.xml b/core/res/res/values-eu-rES/strings.xml index 8e737acd676c..b5c22ad0d494 100644 --- a/core/res/res/values-eu-rES/strings.xml +++ b/core/res/res/values-eu-rES/strings.xml @@ -1330,7 +1330,8 @@ "%s USB unitatea" "USB memoria" "Editatu" - "Datuen erabilerari buruzko abisua" + + "Sakatu erabilera eta ezarpenak ikusteko." "2-3 GB-ko mugara iritsi zara" "4 GB-ko mugara iritsi zara" diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml index 17ab00d36ce9..b745cb8c123f 100644 --- a/core/res/res/values-fa/strings.xml +++ b/core/res/res/values-fa/strings.xml @@ -1330,7 +1330,8 @@ "‏درایو USB ‏%s" "‏حافظهٔ USB" "ویرایش" - "هشدار میزان استفاده از داده" + + "برای مشاهده مصرف و تنظیمات ضربه بزنید." "‏به حد مجاز مصرف داده 2G-3G رسید" "‏به حد مجاز مصرف داده 4G رسید" diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml index 77d7be24f653..70fddaee0663 100644 --- a/core/res/res/values-fi/strings.xml +++ b/core/res/res/values-fi/strings.xml @@ -1330,7 +1330,8 @@ "USB-asema: %s" "USB-tallennustila" "Muokkaa" - "Tiedonsiirtovaroitus" + + "Käyttö & asetukset napauttamalla" "2G-3G-tietojen raja saavutettu" "4G-tietojen raja saavutettu" diff --git a/core/res/res/values-fr-rCA/strings.xml b/core/res/res/values-fr-rCA/strings.xml index 30ff36c9cdee..3c803e1757d0 100644 --- a/core/res/res/values-fr-rCA/strings.xml +++ b/core/res/res/values-fr-rCA/strings.xml @@ -1330,7 +1330,8 @@ "Clé USB %s" "Mémoire de stockage USB" "Modifier" - "Avertissement utilisation données" + + "Touch. pour aff. util. et param." "Limite de données 2G-3G atteinte" "Limite de données 4G atteinte" diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml index 8ca2f83a59b4..5a294cb821fe 100644 --- a/core/res/res/values-fr/strings.xml +++ b/core/res/res/values-fr/strings.xml @@ -1330,7 +1330,8 @@ "Clé USB %s" "Mémoire de stockage USB" "Modifier" - "Avertissement utilisation données" + + "Appuyez pour conso/paramètres." "Limite de données 2G-3G atteinte" "Limite de données 4G atteinte" diff --git a/core/res/res/values-gl-rES/strings.xml b/core/res/res/values-gl-rES/strings.xml index e9a79d42f0f6..b5c6a57081a4 100644 --- a/core/res/res/values-gl-rES/strings.xml +++ b/core/res/res/values-gl-rES/strings.xml @@ -1330,7 +1330,8 @@ "Unidade USB de %s" "almacenamento USB" "Editar" - "Aviso de uso de datos" + + "Toca para uso e configuración." "Límite de datos de 2G-3G acadado" "Límite de datos de 4G acadado" diff --git a/core/res/res/values-gu-rIN/strings.xml b/core/res/res/values-gu-rIN/strings.xml index 4809b2cacc9a..f8f364953c79 100644 --- a/core/res/res/values-gu-rIN/strings.xml +++ b/core/res/res/values-gu-rIN/strings.xml @@ -1330,7 +1330,8 @@ "%s USB ડ્રાઇવ" "USB સંગ્રહ" "સંપાદિત કરો" - "ડેટા વપરાશ ચેતવણી" + + "વપરાશ અને સેટિંગ્સ જોવા ટૅપ કરો." "2G-3G ડેટા મર્યાદા પર પહોંચ્યાં" "4G ડેટા મર્યાદા સુધી પહોંચ્યાં" diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml index 35d66f260976..21d5e9c659e8 100644 --- a/core/res/res/values-hi/strings.xml +++ b/core/res/res/values-hi/strings.xml @@ -1330,7 +1330,8 @@ "%s USB डिस्‍क" "USB मेमोरी" "संपादित करें" - "डेटा उपयोग की चेतावनी" + + "उपयोग व सेटिंग देखने हेतु टैप करें." "2G-3G डेटा सीमा पूर्ण हो गई" "4G डेटा सीमा पूर्ण हो गई" diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml index e2fa2fa464c3..8cf5b6a93097 100644 --- a/core/res/res/values-hr/strings.xml +++ b/core/res/res/values-hr/strings.xml @@ -1356,7 +1356,8 @@ "%s USB pogon" "USB pohrana" "Uredi" - "Upozorenje o upotrebi podataka" + + "Dodirnite za upotrebu i postavke" "Dost. ogr. 2G–3G prijenosa pod." "Dost. ogr. 4G prijenosa podataka" diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml index afee13833826..85be68ea8207 100644 --- a/core/res/res/values-hu/strings.xml +++ b/core/res/res/values-hu/strings.xml @@ -1330,7 +1330,8 @@ "%s USB-meghajtó" "USB-tár" "Szerkesztés" - "Adathasználati figyelmeztetés" + + "Koppintson az adatokért." "2G-/3G-adatkorlát elérve" "4G-adatkorlát elérve" diff --git a/core/res/res/values-hy-rAM/strings.xml b/core/res/res/values-hy-rAM/strings.xml index 1ab372680cb6..5567fc8f8ad7 100644 --- a/core/res/res/values-hy-rAM/strings.xml +++ b/core/res/res/values-hy-rAM/strings.xml @@ -251,17 +251,17 @@ "Օրացույց" "օգտագործել օրացույցը" "Կարճ հաղորդագրություն" - "ուղարկել և դիտել SMS հաղորդագրությունները" + "ուղարկել և դիտել SMS հաղորդ․-ները" "Պահոց" - "օգտագործել լուսանկարները, մեդիա ֆայլերը և ձեր սարքում պահվող այլ ֆայլերը" + "օգտագործել լուսանկարները, մեդիա ֆայլերը և ձեր սարքում պահվող մյուս ֆայլերը" "Բարձրախոս" - "ձայնագրում" + "ձայնագրել" "Ֆոտոխցիկ" - "լուսանկարում և տեսագրում" + "լուսանկարել և տեսագրել" "Հեռախոս" - "հեռախոսազանգերի կատարում և կառավարում" + "կատարել զանգեր և կառավարել զանգերը" "Մարմնի սենսորներ" - "օգտագործել ձեր հիմնական ֆիզիոլոգիական ցուցանիշների վերաբերյալ սենսորի տվյալները" + "օգտագործել սենսորների տվյալները ձեր օրգանիզմի վիճակի մասին" "Առբերել պատուհանի բովանդակությունը" "Ստուգեք պատուհանի բովանդակությունը, որի հետ փոխգործակցում եք:" "Միացնել Հպման միջոցով հետազոտումը" @@ -1330,7 +1330,8 @@ "USB սարքավար %s-ից" "USB կրիչ" "Խմբագրել" - "Տվյալների օգտագործման նախազգուշացում" + + "Հպեք և տեսեք օգտագործումը և կարգավորումները:" "2G-3G տվյալների սահմանաչափը սպառվել է" "4G տվյալների սահմանաչափը սպառվել է" diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml index a0982f5a578d..fe1bc2cfaec2 100644 --- a/core/res/res/values-in/strings.xml +++ b/core/res/res/values-in/strings.xml @@ -1330,7 +1330,8 @@ "Drive USB %s" "Penyimpanan USB" "Edit" - "Peringatan penggunaan data" + + "Ketuk untuk lihat penggunaan & setelan." "Batas data 2G-3G terlampaui" "Batas data 4G terlampaui" diff --git a/core/res/res/values-is-rIS/strings.xml b/core/res/res/values-is-rIS/strings.xml index bc56da8afa68..54d4c78d49ff 100644 --- a/core/res/res/values-is-rIS/strings.xml +++ b/core/res/res/values-is-rIS/strings.xml @@ -1330,7 +1330,8 @@ "USB-drif frá %s" "USB-geymsla" "Breyta" - "Viðvörun vegna gagnanotkunar" + + "Ýttu fyrir uppl. og stillingar" "Gagnahámarki 2G og 3G náð" "Gagnahámarki 4G náð" diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml index 00694eee1e6a..3c852051432a 100644 --- a/core/res/res/values-it/strings.xml +++ b/core/res/res/values-it/strings.xml @@ -1330,7 +1330,8 @@ "Unità USB %s" "Archivio USB" "Modifica" - "Avviso sull\'utilizzo dei dati" + + "Tocca per uso e impostazioni." "Limite di dati 2G-3G raggiunto" "Limite di dati 4G raggiunto" diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml index b7fe6d8f336c..852006068c04 100644 --- a/core/res/res/values-iw/strings.xml +++ b/core/res/res/values-iw/strings.xml @@ -1382,7 +1382,8 @@ "‏כונן USB של %s" "‏אחסון USB" "ערוך" - "אזהרת שימוש בנתונים" + + "הקש כדי להציג נתוני שימוש והגדרות." "‏הגעת למגבלת הנתונים של 2G-3G" "‏הגעת למגבלת הנתונים של 4G" diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml index 8abcf86b429f..d262a4eb0035 100644 --- a/core/res/res/values-ja/strings.xml +++ b/core/res/res/values-ja/strings.xml @@ -1330,7 +1330,8 @@ "%s製USBドライブ" "USBストレージ" "編集" - "データ使用の警告" + + "タップして使用状況と設定を表示します。" "2G~3Gデータの上限に達しました" "4Gデータの上限に達しました" diff --git a/core/res/res/values-ka-rGE/strings.xml b/core/res/res/values-ka-rGE/strings.xml index ad90af38b6b8..2f791efca1e7 100644 --- a/core/res/res/values-ka-rGE/strings.xml +++ b/core/res/res/values-ka-rGE/strings.xml @@ -1330,7 +1330,8 @@ "%s USB დისკი" "USB მეხსიერება" "რედაქტირება" - "ინტერნეტის გამოყენების გაფრთხილება" + + "შეეხეთ მოხმარებისა და პარამეტრების სანახავად." "2G-3G მონაცემთა ლიმიტი ამოიწურა" "4G მონაცემთა ლიმიტი ამოიწურა" diff --git a/core/res/res/values-kk-rKZ/strings.xml b/core/res/res/values-kk-rKZ/strings.xml index 5d9014fb6dc1..d8d63f5177b7 100644 --- a/core/res/res/values-kk-rKZ/strings.xml +++ b/core/res/res/values-kk-rKZ/strings.xml @@ -1330,7 +1330,8 @@ "%s USB дискі" "USB жады" "Өзгерту" - "Дерекқор қолдануға қатысты ескерту" + + "Трафик пен параметрлерді көру үшін түртіңіз." "2G-3G деректер шегіне жеттіңіз" "4G деректер шегіне жеттіңіз" diff --git a/core/res/res/values-km-rKH/strings.xml b/core/res/res/values-km-rKH/strings.xml index 18157094f2b1..66ffddce0df5 100644 --- a/core/res/res/values-km-rKH/strings.xml +++ b/core/res/res/values-km-rKH/strings.xml @@ -1332,7 +1332,8 @@ "ឧបករណ៍ផ្ទុក USB %s" "ឧបករណ៍​ផ្ទុក​យូអេសប៊ី" "កែសម្រួល​" - "ការព្រមាន​ប្រើ​ទិន្នន័យ" + + "ប៉ះដើម្បីមើលការប្រើប្រាស់ និងការកំណត់" "បាន​ដល់​ដែន​កំណត់​ទិន្នន័យ 2G-3G" "បាន​ដល់​ដែន​កំណត់​ទិន្នន័យ 4G" diff --git a/core/res/res/values-kn-rIN/strings.xml b/core/res/res/values-kn-rIN/strings.xml index cc2c34745841..c589cf303534 100644 --- a/core/res/res/values-kn-rIN/strings.xml +++ b/core/res/res/values-kn-rIN/strings.xml @@ -1330,7 +1330,8 @@ "%s USB ಡ್ರೈವ್" "USB ಸಂಗ್ರಹಣೆ" "ಎಡಿಟ್" - "ಡೇಟಾ ಬಳಕೆಯ ಎಚ್ಚರಿಕೆ" + + "ಬಳಕೆ ಮತ್ತು ಸೆಟ್ಟಿಂಗ್‍ಗಳನ್ನು ವೀಕ್ಷಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ." "2G-3G ಡೇಟಾ ಮೀತಿಯನ್ನು ತಲುಪಿದೆ" "4G ಡೇಟಾ ಮೀತಿಯನ್ನು ತಲುಪಿದೆ" diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml index cceb7118d2a7..a003fcbc4276 100644 --- a/core/res/res/values-ko/strings.xml +++ b/core/res/res/values-ko/strings.xml @@ -1330,7 +1330,8 @@ "%s USB 드라이브" "USB 저장소" "수정" - "데이터 사용 경고" + + "사용량 및 설정을 보려면 탭하세요." "2G-3G 데이터 한도에 도달함" "4G 데이터 한도에 도달함" diff --git a/core/res/res/values-ky-rKG/strings.xml b/core/res/res/values-ky-rKG/strings.xml index cf1461a02665..c9eb693d5753 100644 --- a/core/res/res/values-ky-rKG/strings.xml +++ b/core/res/res/values-ky-rKG/strings.xml @@ -1330,7 +1330,8 @@ "%s USB түзмөгү" "USB эстутуму" "Өзгөртүү" - "Дайындарды колдонуу боюнча эскрт" + + "Колдонулушун жана жөндөөлөрүн көрүү үчүн таптаңыз." "2G-3G дайындар чегине жетти" "4G дайындар чегине жетти" diff --git a/core/res/res/values-lo-rLA/strings.xml b/core/res/res/values-lo-rLA/strings.xml index 94258335ca15..90b5bf308f9f 100644 --- a/core/res/res/values-lo-rLA/strings.xml +++ b/core/res/res/values-lo-rLA/strings.xml @@ -1330,7 +1330,8 @@ "%s USB ດ​ຣ້າຍ" "ບ່ອນຈັດເກັບຂໍ້ມູນ USB" "ແກ້ໄຂ" - "ເຕືອນກ່ຽວກັບການນຳໃຊ້ຂໍ້ມູນ" + + "ແຕະເພື່ອເບິ່ງການນຳໃຊ້ ແລະ ການຕັ້ງຄ່າ." "ໃຊ້​ຂໍ້​ມູນ 2G-3G ຮອດ​ຈຳ​ນວນ​ທີ່​ຈຳ​ກັດ​ແລ້ວ" "ໃຊ້​ຂໍ້​ມູນ 4G ຮອດ​ຈຳ​ນວນ​ທີ່​ຈຳ​ກັດ​ແລ້ວ" diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml index d4098c2f7bb4..1e001e9bd95d 100644 --- a/core/res/res/values-lt/strings.xml +++ b/core/res/res/values-lt/strings.xml @@ -1382,7 +1382,8 @@ "„%s“ atmintukas" "USB atmintis" "Redaguoti" - "Įspėjimas dėl duomenų naudojimo" + + "Pal. ir perž. naud. i. bei nust." "Pasiektas 2G–3G duomenų apribojimas" "Pasiektas 4G duomenų apribojimas" diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml index e625e4f0dc66..803254202467 100644 --- a/core/res/res/values-lv/strings.xml +++ b/core/res/res/values-lv/strings.xml @@ -1356,7 +1356,8 @@ "%s USB disks" "USB atmiņa" "Rediģēt" - "Datu izmantošanas brīdinājums" + + "Piesk., lai sk. lietoj. un iest." "Sasniegts 2G-3G datu ierobež." "Sasniegts 4G datu ierobežojums" diff --git a/core/res/res/values-mk-rMK/strings.xml b/core/res/res/values-mk-rMK/strings.xml index e4670d6972f9..1bbff009a2ef 100644 --- a/core/res/res/values-mk-rMK/strings.xml +++ b/core/res/res/values-mk-rMK/strings.xml @@ -1332,7 +1332,8 @@ "%s УСБ-меморија" "УСБ меморија" "Уреди" - "Опомена за потрошен интернет" + + "Допрете за употреба и поставки." "Постигна лимит за 2G-3G податоци" "Постигнат лимит за 4G податоци" diff --git a/core/res/res/values-ml-rIN/strings.xml b/core/res/res/values-ml-rIN/strings.xml index 9c4ae28e2eb7..11ea582dcaab 100644 --- a/core/res/res/values-ml-rIN/strings.xml +++ b/core/res/res/values-ml-rIN/strings.xml @@ -1330,7 +1330,8 @@ "%s USB ഡ്രൈവ്" "USB സ്റ്റോറേജ്" "എഡിറ്റുചെയ്യുക" - "ഡാറ്റ ഉപയോഗ മുന്നറിയിപ്പ്" + + "ഉപയോഗവും ക്രമീകരണവും കാണാൻ ടാപ്പുചെയ്യുക." "2G-3G ഡാറ്റ പരിധിയിലെത്തി" "4G ഡാറ്റ പരിധിയിലെത്തി" diff --git a/core/res/res/values-mn-rMN/strings.xml b/core/res/res/values-mn-rMN/strings.xml index eb2e59ce873c..0498d7958f0a 100644 --- a/core/res/res/values-mn-rMN/strings.xml +++ b/core/res/res/values-mn-rMN/strings.xml @@ -1330,7 +1330,8 @@ "%s USB диск" "USB сан" "Засах" - "Дата хэрэглээний анхааруулга" + + "Хэрэглээ, тохиргоог харах бол товш." "2G-3G дата хязгаарт хүрсэн" "4G дата хязгаарт хүрсэн" diff --git a/core/res/res/values-mr-rIN/strings.xml b/core/res/res/values-mr-rIN/strings.xml index 9b9f8e27acfa..f60478cb1f94 100644 --- a/core/res/res/values-mr-rIN/strings.xml +++ b/core/res/res/values-mr-rIN/strings.xml @@ -1330,7 +1330,8 @@ "%s USB ड्राइव्‍ह" "USB संचयन" "संपादित करा" - "डेटा वापर चेतावणी" + + "वापर आणि सेटिंग्ज पाहण्यासाठी टॅप करा." "2G-3G डेटा मर्यादा गाठली" "4G डेटा मर्यादा गाठली" diff --git a/core/res/res/values-ms-rMY/strings.xml b/core/res/res/values-ms-rMY/strings.xml index 1394f4b639b2..3fa7f980b642 100644 --- a/core/res/res/values-ms-rMY/strings.xml +++ b/core/res/res/values-ms-rMY/strings.xml @@ -1330,7 +1330,8 @@ "Pemacu USB %s" "Storan USB" "Edit" - "Amaran penggunaan data" + + "Ketik utk lihat p\'gunaan & ttpn." "Mencapai had data 2G-3G" "Mencapai had data 4G" diff --git a/core/res/res/values-my-rMM/strings.xml b/core/res/res/values-my-rMM/strings.xml index 878e1ca8c530..f0461dd8e3b2 100644 --- a/core/res/res/values-my-rMM/strings.xml +++ b/core/res/res/values-my-rMM/strings.xml @@ -1330,7 +1330,8 @@ "%s USB ဒရိုက်ဗ်" "USBဖြင့် သိမ်းဆည်း" "ပြင်ဆင်ရန်" - "ဒေတာအသုံးပြုမှုသတိပေးချက်" + + "အသုံးပြုမှုနှင့် ဆက်တင်များကိုကြည့်ရန် တို့ပါ။" "2G-3G ဒေတာ ကန့်သတ်ချက် ပြည့်မီသွားပြီ" "4G ဒေတာ ကန့်သတ်ချက် ပြည့်မီသွားပြီ" diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml index 09f7998e2703..846d89bc7110 100644 --- a/core/res/res/values-nb/strings.xml +++ b/core/res/res/values-nb/strings.xml @@ -1330,7 +1330,8 @@ "%s USB-stasjon" "USB-lagring" "Rediger" - "Advarsel for høyt dataforbruk" + + "Trykk for å se bruken og innstillingene." "Datagrensen for 2G-3G er nådd" "Datagrensen for 4G er nådd" diff --git a/core/res/res/values-ne-rNP/strings.xml b/core/res/res/values-ne-rNP/strings.xml index e497c53e454d..a193e9722551 100644 --- a/core/res/res/values-ne-rNP/strings.xml +++ b/core/res/res/values-ne-rNP/strings.xml @@ -257,7 +257,7 @@ "माइक्रोफोन" "अडियो रेकर्ड गर्नुहोस्" "क्यामेरा" - "तस्बिर खिच्नुहोस् तथा भिडियो रेकर्ड गर्नुहोस्" + "तस्बिर खिच्नुका साथै भिडियो रेकर्ड गर्नुहोस्" "फोन" "फोन कलहरू गर्नुहोस् र व्यवस्थापन गर्नुहोस्" "शारीरिक सेन्सर" @@ -1336,7 +1336,8 @@ "%s USB ड्राइभ" "USB भण्डारण" "सम्पादन गर्नुहोस्" - "डेटाको प्रयोग चेतावनी" + + "प्रयोग र सेटिङहरू हेर्न ट्याप गर्नुहोस्।" "2G-3G डेटा सीमा पुग्यो" "4G डेटा सीमा पुग्यो" diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml index d92737d2fa26..e6067fd86ee3 100644 --- a/core/res/res/values-nl/strings.xml +++ b/core/res/res/values-nl/strings.xml @@ -1330,7 +1330,8 @@ "%s USB-drive" "USB-opslag" "Bewerken" - "Waarschuwing v. gegevensgebruik" + + "Tik voor gebruik en instellingen" "Gegevenslimiet van 2G-3G bereikt" "Gegevenslimiet van 4G bereikt" diff --git a/core/res/res/values-pa-rIN/strings.xml b/core/res/res/values-pa-rIN/strings.xml index fbc74ea32f07..21b58d26be00 100644 --- a/core/res/res/values-pa-rIN/strings.xml +++ b/core/res/res/values-pa-rIN/strings.xml @@ -1330,7 +1330,8 @@ "%s USB ਡ੍ਰਾਇਵ" "USB ਸਟੋਰੇਜ" "ਸੰਪਾਦਿਤ ਕਰੋ" - "ਡੈਟਾ ਉਪਯੋਗ ਚਿਤਾਵਨੀ" + + "ਵਰਤੋਂ ਅਤੇ ਸੈਟਿੰਗਾਂ ਨੂੰ ਵੇਖਣ ਲਈ ਟੈਪ ਕਰੋ।" "2G-3G ਡੈਟਾ ਸੀਮਾ ਪੂਰੀ ਹੋ ਗਈ" "4G ਡੈਟਾ ਸੀਮਾ ਪੂਰੀ ਹੋਈ" diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml index 2673bcc2b9d7..ca76463548e5 100644 --- a/core/res/res/values-pl/strings.xml +++ b/core/res/res/values-pl/strings.xml @@ -1382,7 +1382,8 @@ "Dysk USB (%s)" "Nośnik USB" "Edytuj" - "Ostrzeżenie o transmisji danych" + + "Kliknij, by wyświetlić użycie i ustawienia." "Osiągnięto limit danych 2G/3G" "Osiągnięto limit danych 4G" diff --git a/core/res/res/values-pt-rBR/strings.xml b/core/res/res/values-pt-rBR/strings.xml index 580d8d567a95..db00df4a9f74 100644 --- a/core/res/res/values-pt-rBR/strings.xml +++ b/core/res/res/values-pt-rBR/strings.xml @@ -1330,7 +1330,8 @@ "Drive USB %s" "Armazenamento USB" "Editar" - "Aviso sobre uso de dados" + + "Toque para ver uso e config." "Limite de dados 2G-3G atingido" "Limite de dados 4G atingido" diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml index 98aeffb9c583..a268b7e3507e 100644 --- a/core/res/res/values-pt-rPT/strings.xml +++ b/core/res/res/values-pt-rPT/strings.xml @@ -1330,7 +1330,8 @@ "Unidade USB %s" "Armazenamento USB" "Editar" - "Aviso de utilização de dados" + + "Toque para ver a utilização e definições" "Limite de dados 2G/3G atingido" "Limite de dados 4G atingido" diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml index 580d8d567a95..db00df4a9f74 100644 --- a/core/res/res/values-pt/strings.xml +++ b/core/res/res/values-pt/strings.xml @@ -1330,7 +1330,8 @@ "Drive USB %s" "Armazenamento USB" "Editar" - "Aviso sobre uso de dados" + + "Toque para ver uso e config." "Limite de dados 2G-3G atingido" "Limite de dados 4G atingido" diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml index feaa4c246c9c..9259da02412d 100644 --- a/core/res/res/values-ro/strings.xml +++ b/core/res/res/values-ro/strings.xml @@ -1356,7 +1356,8 @@ "Unitate USB %s" "Dsipozitiv de stocare USB" "Editați" - "Avertisment de utiliz. a datelor" + + "Atingeți ca să vedeți utilizarea/setările." "Ați atins limita de date 2G-3G" "Ați atins limita de date 4G" diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml index cfcf79aa2d4c..74ee034e5aaa 100644 --- a/core/res/res/values-ru/strings.xml +++ b/core/res/res/values-ru/strings.xml @@ -1382,7 +1382,8 @@ "USB-накопитель %s" "USB-накопитель" "Изменить" - "Осталось мало трафика" + + "Нажмите, чтобы проверить трафик и настройки." "Достигнут лимит трафика 2G/3G" "Достигнут лимит трафика 4G" diff --git a/core/res/res/values-si-rLK/strings.xml b/core/res/res/values-si-rLK/strings.xml index 42b98864de1b..8d5f9ab84a72 100644 --- a/core/res/res/values-si-rLK/strings.xml +++ b/core/res/res/values-si-rLK/strings.xml @@ -1332,7 +1332,8 @@ "%s USB ධාවකය" "USB ආචයනය" "සංස්කරණය කරන්න" - "දත්ත භාවිතා අවවාදය" + + "භාවිතය සහ සැකසීම් බැලීමට තට්ටු කරන්න." "2G-3G දත්ත සීමාවට ළඟාවී ඇත" "4G දත්ත සීමාවට ළඟාවී ඇත" diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml index e8ee978fccf2..2c3ae1f305b3 100644 --- a/core/res/res/values-sk/strings.xml +++ b/core/res/res/values-sk/strings.xml @@ -1382,7 +1382,8 @@ "Disk USB %s" "Ukladací priestor USB" "Upraviť" - "Upozornenie o využití dát" + + "Klepnutím zobrazíte využitie a nastavenia." "Bol dosiahnutý limit 2G–3G" "Bol dosiahnutý limit 4G" diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml index c67b7f503d31..f781ecc9bfbf 100644 --- a/core/res/res/values-sl/strings.xml +++ b/core/res/res/values-sl/strings.xml @@ -1382,7 +1382,8 @@ "Pogon USB %s" "Pomnilnik USB" "Uredi" - "Opozorilo o uporabi podatkov" + + "Dot. se za ogled upor. in nast." "Dosežena pod. omejitev za 2G/3G" "Dosežena pod. omejitev za 4G" diff --git a/core/res/res/values-sq-rAL/strings.xml b/core/res/res/values-sq-rAL/strings.xml index eefcd17e4ee1..cdf61bc09fe5 100644 --- a/core/res/res/values-sq-rAL/strings.xml +++ b/core/res/res/values-sq-rAL/strings.xml @@ -1330,7 +1330,8 @@ "USB-ja nga %s" "Hapësira ruajtëse e USB-së" "Redakto" - "Paralajmërim për përdorimin e të dhënave" + + "Trokit për të parë përdorimin dhe cilësimet." "Kufiri i të dhënave 2G-3G u arrit" "Kufiri i të dhënave 4G u arrit" diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml index 90597c6ee077..b2a08fec4409 100644 --- a/core/res/res/values-sr/strings.xml +++ b/core/res/res/values-sr/strings.xml @@ -1356,7 +1356,8 @@ "%s USB диск" "USB меморија" "Измени" - "Упозорење о потрошњи података" + + "Додирните за потрошњу и подешавања." "Нема више 2G-3G података" "Нема више 4G података" diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml index 97b31c967db6..fb9664ba7975 100644 --- a/core/res/res/values-sv/strings.xml +++ b/core/res/res/values-sv/strings.xml @@ -1330,7 +1330,8 @@ "USB-enhet (%s)" "USB-lagring" "Redigera" - "Varning angående dataanvändning" + + "Visa användning och inställning." "Datagränsen för 2G-3G har uppnåtts" "Datagränsen för 4G har uppnåtts" diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml index e1e2d49cdc05..f91bd99340a3 100644 --- a/core/res/res/values-sw/strings.xml +++ b/core/res/res/values-sw/strings.xml @@ -1328,7 +1328,8 @@ "Hifadhi ya USB iliyotengenezwa na %s" "Hifadhi ya USB" "Badilisha" - "Onyo la matumizi ya data" + + "Gonga ili uangalie matumizi na mipangilio." "Kikomo data ya 2G-3G kimefikiwa" "Kikomo cha data ya 4G kimefikiwa" diff --git a/core/res/res/values-ta-rIN/strings.xml b/core/res/res/values-ta-rIN/strings.xml index 40534b183836..c408e1c52dcc 100644 --- a/core/res/res/values-ta-rIN/strings.xml +++ b/core/res/res/values-ta-rIN/strings.xml @@ -1330,7 +1330,8 @@ "%s USB டிரைவ்" "USB சேமிப்பிடம்" "திருத்து" - "தரவு பயன்பாட்டு எச்சரிக்கை" + + "தரவு உபயோகம், அமைப்புகளைப் பார்க்க, தட்டவும்." "2G-3G தரவு வரம்பைக் கடந்தது" "4G தரவு வரம்பைக் கடந்தது" diff --git a/core/res/res/values-te-rIN/strings.xml b/core/res/res/values-te-rIN/strings.xml index d3651caae22d..22f24cf57798 100644 --- a/core/res/res/values-te-rIN/strings.xml +++ b/core/res/res/values-te-rIN/strings.xml @@ -1330,7 +1330,8 @@ "%s USB డ్రైవ్" "USB నిల్వ" "సవరించు" - "డేటా వినియోగం హెచ్చరిక" + + "వినియోగం,సెట్టింగ్‌ల కోసం నొక్కండి" "2G-3G డేటా పరిమితిని చేరుకుంది" "4G డేటా పరిమితిని చేరుకుంది" diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml index 0cbc1e218c0a..04a8e7027c31 100644 --- a/core/res/res/values-th/strings.xml +++ b/core/res/res/values-th/strings.xml @@ -1330,7 +1330,8 @@ "ไดรฟ์ USB ของ %s" "ที่เก็บข้อมูล USB" "แก้ไข" - "คำเตือนการใช้ข้อมูล" + + "แตะเพื่อดูการใช้งานและการตั้งค่า" "ถึงขีดจำกัดข้อมูล 2G-3G แล้ว" "ถึงขีดจำกัดข้อมูล 4G แล้ว" diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml index 09c4bc284c52..97eb34d0608d 100644 --- a/core/res/res/values-tl/strings.xml +++ b/core/res/res/values-tl/strings.xml @@ -1330,7 +1330,8 @@ "%s USB drive" "USB storage" "I-edit" - "Babala sa paggamit ng data" + + "I-tap tingnan paggamit/setting." "Naabot na ang limitasyon sa 2G-3G data" "Naabot na ang limitasyon sa 4G data" diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml index 61578b79b334..0008c073bc6f 100644 --- a/core/res/res/values-tr/strings.xml +++ b/core/res/res/values-tr/strings.xml @@ -1330,7 +1330,8 @@ "%s USB sürücüsü" "USB bellek" "Düzenle" - "Veri kullanım uyarısı" + + "Kul. ve ayar. gör. için dokunun." "2G-3G veri sınırına ulaşıldı" "4G veri sınırına ulaşıldı" diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml index b9b2ef530d05..e2852e78c03b 100644 --- a/core/res/res/values-uk/strings.xml +++ b/core/res/res/values-uk/strings.xml @@ -1382,7 +1382,8 @@ "Носій USB (%s)" "Носій USB" "Редагувати" - "Застереження про використ. даних" + + "Переглянути дані та параметри." "Досягнуто ліміту даних 2G–3G" "Досягнуто ліміту даних 4G" diff --git a/core/res/res/values-ur-rPK/strings.xml b/core/res/res/values-ur-rPK/strings.xml index 3628b6be327c..94d263e5f54c 100644 --- a/core/res/res/values-ur-rPK/strings.xml +++ b/core/res/res/values-ur-rPK/strings.xml @@ -1330,7 +1330,8 @@ "‏%s USB ڈرائیو" "‏USB اسٹوریج" "ترمیم کریں" - "ڈیٹا کے استعمال کی وارننگ" + + "استعمال اور ترتیبات دیکھنے کیلئے تھپتھپائیں۔" "‏2G-3G ڈیٹا کی حد کو پہنچ گیا" "‏4G ڈیٹا کی حد کو پہنچ گیا" diff --git a/core/res/res/values-uz-rUZ/strings.xml b/core/res/res/values-uz-rUZ/strings.xml index 0db14626b41b..986d49be7fc2 100644 --- a/core/res/res/values-uz-rUZ/strings.xml +++ b/core/res/res/values-uz-rUZ/strings.xml @@ -1330,7 +1330,8 @@ "%s USB xotira qurilmasi" "USB xotira" "Tahrirlash" - "Trafik kam qoldi" + + "Trafik sarfi va sozlamalarni ko‘rish uchun bosing." "2G-3G trafik chekloviga yetdi" "4G trafik chekloviga yetdi" diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml index 889b3bb5a52f..885ba9299bee 100644 --- a/core/res/res/values-vi/strings.xml +++ b/core/res/res/values-vi/strings.xml @@ -1330,7 +1330,8 @@ "Ổ USB %s" "Bộ lưu trữ USB" "Chỉnh sửa" - "Cảnh báo sử dụng dữ liệu" + + "Nhấn để xem sử dụng và cài đặt." "Đã đạt tới giới hạn dữ liệu 2G-3G" "Đã đạt tới giới hạn dữ liệu 4G" diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml index a599acdc57f9..a34d85c36602 100644 --- a/core/res/res/values-zh-rCN/strings.xml +++ b/core/res/res/values-zh-rCN/strings.xml @@ -1330,7 +1330,8 @@ "%s U 盘" "USB存储器" "修改" - "流量警告" + + "点按即可查看使用情况和设置。" "已达到2G-3G流量上限" "已达到4G流量上限" diff --git a/core/res/res/values-zh-rHK/strings.xml b/core/res/res/values-zh-rHK/strings.xml index d3b52185078c..d724a80c71ac 100644 --- a/core/res/res/values-zh-rHK/strings.xml +++ b/core/res/res/values-zh-rHK/strings.xml @@ -1330,7 +1330,8 @@ "%s USB 驅動器" "USB 儲存裝置" "編輯" - "資料用量警告" + + "輕按即可查看用量和設定。" "已達到 2G-3G 數據流量上限" "已達到 4G 數據流量上限" diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml index 355ffe728a0d..745bb4a037fe 100644 --- a/core/res/res/values-zh-rTW/strings.xml +++ b/core/res/res/values-zh-rTW/strings.xml @@ -1330,7 +1330,8 @@ "%s USB 隨身碟" "USB 儲存裝置" "編輯" - "數據用量警告" + + "輕觸即可查看用量和設定。" "已達到 2G-3G 數據流量上限" "已達到 4G 數據流量上限" diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml index da771c178131..0be9fd2fefad 100644 --- a/core/res/res/values-zu/strings.xml +++ b/core/res/res/values-zu/strings.xml @@ -1330,7 +1330,8 @@ "%s idrayivu ye-USB" "Isitoreji se-USB" "Hlela" - "Isexwayiso sokusetshenziswa kwedatha" + + "Thepha ukuze ubuke ukusetshenziswa nezilungiselelo." "2G-3G umkhawulo wedatha ufinyelelwe" "4G umkhawulo wedatha ufinyelelwe" -- GitLab From 3860bee3d04acae3ff30c1d24c5f265ec5009a42 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Wed, 28 Sep 2016 19:55:26 -0700 Subject: [PATCH 593/809] Import translations. DO NOT MERGE Change-Id: I16e95300da82e9860f57e186d6b758a20ddee77e Auto-generated-cl: translation import --- packages/SystemUI/res/values-af/strings.xml | 3 ++- packages/SystemUI/res/values-am/strings.xml | 3 ++- packages/SystemUI/res/values-ar/strings.xml | 3 ++- packages/SystemUI/res/values-az-rAZ/strings.xml | 3 ++- packages/SystemUI/res/values-b+sr+Latn/strings.xml | 3 ++- packages/SystemUI/res/values-be-rBY/strings.xml | 3 ++- packages/SystemUI/res/values-bg/strings.xml | 3 ++- packages/SystemUI/res/values-bn-rBD/strings.xml | 3 ++- packages/SystemUI/res/values-bs-rBA/strings.xml | 3 ++- packages/SystemUI/res/values-ca/strings.xml | 3 ++- packages/SystemUI/res/values-cs/strings.xml | 3 ++- packages/SystemUI/res/values-da/strings.xml | 3 ++- packages/SystemUI/res/values-de/strings.xml | 3 ++- packages/SystemUI/res/values-el/strings.xml | 3 ++- packages/SystemUI/res/values-en-rAU/strings.xml | 3 ++- packages/SystemUI/res/values-en-rGB/strings.xml | 3 ++- packages/SystemUI/res/values-en-rIN/strings.xml | 3 ++- packages/SystemUI/res/values-es-rUS/strings.xml | 3 ++- packages/SystemUI/res/values-es/strings.xml | 3 ++- packages/SystemUI/res/values-et-rEE/strings.xml | 3 ++- packages/SystemUI/res/values-eu-rES/strings.xml | 3 ++- packages/SystemUI/res/values-fa/strings.xml | 3 ++- packages/SystemUI/res/values-fi/strings.xml | 3 ++- packages/SystemUI/res/values-fr-rCA/strings.xml | 3 ++- packages/SystemUI/res/values-fr/strings.xml | 3 ++- packages/SystemUI/res/values-gl-rES/strings.xml | 3 ++- packages/SystemUI/res/values-gu-rIN/strings.xml | 3 ++- packages/SystemUI/res/values-hi/strings.xml | 3 ++- packages/SystemUI/res/values-hr/strings.xml | 3 ++- packages/SystemUI/res/values-hu/strings.xml | 3 ++- packages/SystemUI/res/values-hy-rAM/strings.xml | 3 ++- packages/SystemUI/res/values-in/strings.xml | 3 ++- packages/SystemUI/res/values-is-rIS/strings.xml | 3 ++- packages/SystemUI/res/values-it/strings.xml | 3 ++- packages/SystemUI/res/values-iw/strings.xml | 3 ++- packages/SystemUI/res/values-ja/strings.xml | 3 ++- packages/SystemUI/res/values-ka-rGE/strings.xml | 3 ++- packages/SystemUI/res/values-kk-rKZ/strings.xml | 3 ++- packages/SystemUI/res/values-km-rKH/strings.xml | 3 ++- packages/SystemUI/res/values-kn-rIN/strings.xml | 3 ++- packages/SystemUI/res/values-ko/strings.xml | 3 ++- packages/SystemUI/res/values-ky-rKG/strings.xml | 3 ++- packages/SystemUI/res/values-lo-rLA/strings.xml | 3 ++- packages/SystemUI/res/values-lt/strings.xml | 3 ++- packages/SystemUI/res/values-lv/strings.xml | 3 ++- packages/SystemUI/res/values-mk-rMK/strings.xml | 3 ++- packages/SystemUI/res/values-ml-rIN/strings.xml | 3 ++- packages/SystemUI/res/values-mn-rMN/strings.xml | 3 ++- packages/SystemUI/res/values-mr-rIN/strings.xml | 3 ++- packages/SystemUI/res/values-ms-rMY/strings.xml | 3 ++- packages/SystemUI/res/values-my-rMM/strings.xml | 3 ++- packages/SystemUI/res/values-nb/strings.xml | 3 ++- packages/SystemUI/res/values-ne-rNP/strings.xml | 3 ++- packages/SystemUI/res/values-nl/strings.xml | 3 ++- packages/SystemUI/res/values-pa-rIN/strings.xml | 3 ++- packages/SystemUI/res/values-pl/strings.xml | 3 ++- packages/SystemUI/res/values-pt-rBR/strings.xml | 3 ++- packages/SystemUI/res/values-pt-rPT/strings.xml | 3 ++- packages/SystemUI/res/values-pt/strings.xml | 3 ++- packages/SystemUI/res/values-ro/strings.xml | 3 ++- packages/SystemUI/res/values-ru/strings.xml | 3 ++- packages/SystemUI/res/values-si-rLK/strings.xml | 3 ++- packages/SystemUI/res/values-sk/strings.xml | 3 ++- packages/SystemUI/res/values-sl/strings.xml | 3 ++- packages/SystemUI/res/values-sq-rAL/strings.xml | 3 ++- packages/SystemUI/res/values-sr/strings.xml | 3 ++- packages/SystemUI/res/values-sv/strings.xml | 3 ++- packages/SystemUI/res/values-sw/strings.xml | 3 ++- packages/SystemUI/res/values-ta-rIN/strings.xml | 3 ++- packages/SystemUI/res/values-te-rIN/strings.xml | 3 ++- packages/SystemUI/res/values-th/strings.xml | 3 ++- packages/SystemUI/res/values-tl/strings.xml | 3 ++- packages/SystemUI/res/values-tr/strings.xml | 3 ++- packages/SystemUI/res/values-uk/strings.xml | 3 ++- packages/SystemUI/res/values-ur-rPK/strings.xml | 3 ++- packages/SystemUI/res/values-uz-rUZ/strings.xml | 3 ++- packages/SystemUI/res/values-vi/strings.xml | 3 ++- packages/SystemUI/res/values-zh-rCN/strings.xml | 3 ++- packages/SystemUI/res/values-zh-rHK/strings.xml | 3 ++- packages/SystemUI/res/values-zh-rTW/strings.xml | 3 ++- packages/SystemUI/res/values-zu/strings.xml | 3 ++- 81 files changed, 162 insertions(+), 81 deletions(-) diff --git a/packages/SystemUI/res/values-af/strings.xml b/packages/SystemUI/res/values-af/strings.xml index c87183724f42..8c1de43e2d6e 100644 --- a/packages/SystemUI/res/values-af/strings.xml +++ b/packages/SystemUI/res/values-af/strings.xml @@ -238,7 +238,8 @@ "4G-data is laat wag" "Sellulêre data is onderbreek" "Data is onderbreek" - "Omdat die gestelde dataperk bereik is, het die toestel datagebruik vir die res van hierdie siklus onderbreek.\n\nAs dit hervat word, kan dit tot heffings deur jou diensverskaffer lei." + + "Hervat" "Geen internetverbinding nie" "Wi-Fi gekoppel" diff --git a/packages/SystemUI/res/values-am/strings.xml b/packages/SystemUI/res/values-am/strings.xml index a060cdc9f932..a3492dc93680 100644 --- a/packages/SystemUI/res/values-am/strings.xml +++ b/packages/SystemUI/res/values-am/strings.xml @@ -238,7 +238,8 @@ "4ጂ ውሂብ ላፍታ ቆሟል" "የተንቀሳቃሽ ስልክ ውሂብ ላፍታ ቆሟል" "ውሂብ ላፍታ ቆሟል" - "የእርስዎ የተዋቀረው የውሂብ ገደብ ላይ ስለተደረሰ፣ የዚህን ዑደት አጠቃቀም ለማስታወስ መሣሪያው ላፍታ ቆሟል።\n\nከቆመበት ማስቀጠሉ ከእርስዎ የአገልግሎት አቅራቢ ክፍያን ሊያስጠይቅዎት ይችላል።" + + "ከቆመበት ቀጥል" "ምንም በይነመረብ ተያያዥ የለም።" "Wi-Fi ተያይዟል" diff --git a/packages/SystemUI/res/values-ar/strings.xml b/packages/SystemUI/res/values-ar/strings.xml index 1dfe411e19c2..0364365634e9 100644 --- a/packages/SystemUI/res/values-ar/strings.xml +++ b/packages/SystemUI/res/values-ar/strings.xml @@ -242,7 +242,8 @@ "تم إيقاف بيانات شبكة الجيل الرابع مؤقتًا" "تم إيقاف بيانات شبكة الجوّال مؤقتًا" "تم إيقاف البيانات مؤقتًا" - "نظرًا لأنك بلغت الحد الأقصى المحدد للبيانات، فقد أوقف الجهاز استخدام البيانات مؤقتًا في بقية هذه الدورة.\n\nومن الممكن أن يؤدي الاستئناف إلى تحصيل رسوم من قِبل مشغِّل شبكة الجوّال." + + "استئناف" "لا يوجد اتصال إنترنت" "‏Wi-Fi متصل" diff --git a/packages/SystemUI/res/values-az-rAZ/strings.xml b/packages/SystemUI/res/values-az-rAZ/strings.xml index 8973b8677977..80d5233a9ce9 100644 --- a/packages/SystemUI/res/values-az-rAZ/strings.xml +++ b/packages/SystemUI/res/values-az-rAZ/strings.xml @@ -238,7 +238,8 @@ "4G məlumatlarına fasilə verildi" "Mobil məlumatlara fasilə verildi" "Məlumatlara fasilə verildi" - "Məlumatlar dəsti limitinizi keçdiyiniz üçün cihaz bu dövrənin qalan hissəsi üçün məlumatların istifadəsinə fasilə verib.\n\nDavam etmək operaturunuzdan xərclərə səbəb ola bilər." + + "Davam et" "İnternet bağlantısı yoxdur" "Wi-Fi qoşulub" diff --git a/packages/SystemUI/res/values-b+sr+Latn/strings.xml b/packages/SystemUI/res/values-b+sr+Latn/strings.xml index cdb1917e1f21..2bcdcf48a01b 100644 --- a/packages/SystemUI/res/values-b+sr+Latn/strings.xml +++ b/packages/SystemUI/res/values-b+sr+Latn/strings.xml @@ -239,7 +239,8 @@ "4G podaci su pauzirani" "Mobilni podaci su pauzirani" "Podaci su pauzirani" - "Zbog toga što ste dostigli podešeno ograničenje za podatke, uređaj je pauzirao korišćenje podataka tokom ostatka ovog ciklusa.\n\nAko nastavite, mobilni operater može da vam naplati dodatne troškove." + + "Nastavi" "Nema internet veze" "Wi-Fi je povezan" diff --git a/packages/SystemUI/res/values-be-rBY/strings.xml b/packages/SystemUI/res/values-be-rBY/strings.xml index 7ddb67dcd275..697062154890 100644 --- a/packages/SystemUI/res/values-be-rBY/strings.xml +++ b/packages/SystemUI/res/values-be-rBY/strings.xml @@ -242,7 +242,8 @@ "Перадача даных 4G прыпынена" "Мабільная перадача даных прыпынена" "Перадача даных прыпынена" - "Быў дасягнуты ліміт перадачы даных, таму прылада прыпыніла перадачу даных на астатнюю частку гэтага цыкла.\n\nУзнаўленне перадачы можа прывесці да спагнання платы вашым аператарам." + + "Узнавіць" "Няма падключэння да Iнтэрнэту" "Wi-Fi падключаны" diff --git a/packages/SystemUI/res/values-bg/strings.xml b/packages/SystemUI/res/values-bg/strings.xml index 0606ab87a577..a9b81265f920 100644 --- a/packages/SystemUI/res/values-bg/strings.xml +++ b/packages/SystemUI/res/values-bg/strings.xml @@ -238,7 +238,8 @@ "Данните от 4G са поставени на пауза" "Мобилните данни са поставени на пауза" "Данните са поставени на пауза" - "Тъй като зададеното от вас ограничение за данни бе достигнато, устройството постави преноса им на пауза за остатъка от този цикъл.\n\nВъзобновяването може да доведе до таксуване от оператора ви." + + "Възобновяване" "Няма връзка с интернет" "Wi-Fi: Има връзка" diff --git a/packages/SystemUI/res/values-bn-rBD/strings.xml b/packages/SystemUI/res/values-bn-rBD/strings.xml index aff290024e5f..717d4fe23f0f 100644 --- a/packages/SystemUI/res/values-bn-rBD/strings.xml +++ b/packages/SystemUI/res/values-bn-rBD/strings.xml @@ -238,7 +238,8 @@ "4G ডেটা বিরতি দেওয়া হয়েছে" "সেলুলার ডেটা বিরতি দেওয়া হয়েছে" "ডেট বিরতি দেওয়া হয়েছে" - "আপনার সেট ডেটার সীমা অবধি পৌঁছনোর কারনে ডিভাইস এই চক্রের অবশিষ্টাংশের জন্য ডেটা ব্যবহারে বিরতি দেওয়া হয়েছে৷ \n\nপুনরায় চালু করা হলে পরিষেবা প্রদানকারীর দ্বারা চার্জের করা হতে পারে৷" + + "পুনঃসূচনা করুন" "কোনো ইন্টারনেট সংযোগ নেই" "ওয়াই-ফাই সংযুক্ত হয়েছে" diff --git a/packages/SystemUI/res/values-bs-rBA/strings.xml b/packages/SystemUI/res/values-bs-rBA/strings.xml index 08a12d767fbd..cbab5832d911 100644 --- a/packages/SystemUI/res/values-bs-rBA/strings.xml +++ b/packages/SystemUI/res/values-bs-rBA/strings.xml @@ -239,7 +239,8 @@ "4G prijenos podataka je pauzirano" "Mobilni podaci su pauzirani" "Prijenos podataka je pauziran" - "Dostigli ste postavljeno ograničenje prijenosa podataka pa je uređaj zaustavio prijenos podataka za preostali dio ovog ciklusa.\n\nAko nastavite, operater vam može naplatiti dodatne troškove." + + "Nastavi" "Nema internet veze" "Wi-Fi veza aktivna" diff --git a/packages/SystemUI/res/values-ca/strings.xml b/packages/SystemUI/res/values-ca/strings.xml index b51d7e76222c..e815375f3c4c 100644 --- a/packages/SystemUI/res/values-ca/strings.xml +++ b/packages/SystemUI/res/values-ca/strings.xml @@ -238,7 +238,8 @@ "Les dades 4G estan aturades" "Les dades mòbils estan aturades" "Les dades estan aturades" - "Com que has arribat al límit de dades establert, s\'ha aturat l\'ús de dades del dispositiu per a la resta d\'aquest cicle.\n\nSi el reprens, l\'operador de telefonia mòbil pot aplicar càrrecs." + + "Reprèn" "No hi ha connexió a Internet" "Wi-Fi: connectada" diff --git a/packages/SystemUI/res/values-cs/strings.xml b/packages/SystemUI/res/values-cs/strings.xml index 782602ab13ce..1e0c8f921055 100644 --- a/packages/SystemUI/res/values-cs/strings.xml +++ b/packages/SystemUI/res/values-cs/strings.xml @@ -242,7 +242,8 @@ "Data 4G jsou pozastavena" "Mobilní data jsou pozastavena" "Data jsou pozastavena" - "Protože jste dosáhli nastaveného limitu dat, zařízení využití dat pro zbytek tohoto cyklu pozastavilo.\n\nObnovení může vést k poplatkům od operátora." + + "Pokračovat" "Žádné přip. k internetu" "Wi-Fi: připojeno" diff --git a/packages/SystemUI/res/values-da/strings.xml b/packages/SystemUI/res/values-da/strings.xml index c37fe151d658..3fc72baf23c0 100644 --- a/packages/SystemUI/res/values-da/strings.xml +++ b/packages/SystemUI/res/values-da/strings.xml @@ -238,7 +238,8 @@ "4G-data er sat på pause" "Mobildata er sat på pause" "Data er sat på pause" - "Eftersom din fastsatte datagrænse blev nået, har enheden sat dataforbruget på pause i den resterende del af cyklussen.\n\nHvis du genaktiverer dataforbruget, kan det medføre gebyrer fra dit mobilselskab." + + "Genoptag" "Ingen internetforb." "Wi-Fi er forbundet" diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml index c353fae561b0..62b0333c0e17 100644 --- a/packages/SystemUI/res/values-de/strings.xml +++ b/packages/SystemUI/res/values-de/strings.xml @@ -240,7 +240,8 @@ "4G-Daten pausiert" "Mobilfunkdaten pausiert" "Daten pausiert" - "Da dein festgelegtes Datenlimit erreicht wurde, hat das Gerät die Datennutzung für den Rest dieses Zeitraums pausiert.\n\nWenn du die Nutzung fortsetzt, entstehen möglicherweise Kosten bei deinem Mobilfunkanbieter." + + "Fortsetzen" "Keine Internetverbindung" "WLAN verbunden" diff --git a/packages/SystemUI/res/values-el/strings.xml b/packages/SystemUI/res/values-el/strings.xml index ac260dc6f5a9..bbf27b2c8d5a 100644 --- a/packages/SystemUI/res/values-el/strings.xml +++ b/packages/SystemUI/res/values-el/strings.xml @@ -238,7 +238,8 @@ "Τα δεδομένα 4G τέθηκαν σε παύση" "Τα δεδομένα κινητής τηλεφωνίας τέθηκαν σε παύση" "Τα δεδομένα τέθηκαν σε παύση" - "Επειδή συμπληρώθηκε το όριο των δεδομένων που ορίστηκε για τη συσκευή σας, η χρήση δεδομένων τέθηκε σε παύση για το υπόλοιπο αυτού του κύκλου.\n\nΗ εκ νέου ενεργοποίησή τους ενδέχεται να επιφέρει χρεώσεις από την εταιρεία κινητής τηλεφωνίας σας." + + "Συνέχιση" "Χωρ. σύνδ. στο Διαδ." "Wi-Fi συνδεδεμένο" diff --git a/packages/SystemUI/res/values-en-rAU/strings.xml b/packages/SystemUI/res/values-en-rAU/strings.xml index f97418348ed7..27083f3dc3ba 100644 --- a/packages/SystemUI/res/values-en-rAU/strings.xml +++ b/packages/SystemUI/res/values-en-rAU/strings.xml @@ -238,7 +238,8 @@ "4G data is paused" "Mobile data is paused" "Data is paused" - "Because your set data limit was reached, the device has paused data usage for the remainder of this cycle.\n\nResuming may lead to charges from your operator." + + "Resume" "No Internet connection" "Wi-Fi connected" diff --git a/packages/SystemUI/res/values-en-rGB/strings.xml b/packages/SystemUI/res/values-en-rGB/strings.xml index f97418348ed7..27083f3dc3ba 100644 --- a/packages/SystemUI/res/values-en-rGB/strings.xml +++ b/packages/SystemUI/res/values-en-rGB/strings.xml @@ -238,7 +238,8 @@ "4G data is paused" "Mobile data is paused" "Data is paused" - "Because your set data limit was reached, the device has paused data usage for the remainder of this cycle.\n\nResuming may lead to charges from your operator." + + "Resume" "No Internet connection" "Wi-Fi connected" diff --git a/packages/SystemUI/res/values-en-rIN/strings.xml b/packages/SystemUI/res/values-en-rIN/strings.xml index f97418348ed7..27083f3dc3ba 100644 --- a/packages/SystemUI/res/values-en-rIN/strings.xml +++ b/packages/SystemUI/res/values-en-rIN/strings.xml @@ -238,7 +238,8 @@ "4G data is paused" "Mobile data is paused" "Data is paused" - "Because your set data limit was reached, the device has paused data usage for the remainder of this cycle.\n\nResuming may lead to charges from your operator." + + "Resume" "No Internet connection" "Wi-Fi connected" diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml index 12062d1ba4b6..c3e0c1ab4307 100644 --- a/packages/SystemUI/res/values-es-rUS/strings.xml +++ b/packages/SystemUI/res/values-es-rUS/strings.xml @@ -240,7 +240,8 @@ "Datos 4G pausados" "Datos móviles pausados" "Datos pausados" - "Debido que se alcanzó el límite de datos establecido, el dispositivo pausó el uso de datos para el resto de este ciclo.\n\nLa reanudación podría tener como resultado cargos del proveedor." + + "Reanudar" "Sin conexión a Internet" "Wi-Fi conectado" diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml index 8d6f9d8ee2f0..0a4773b45dda 100644 --- a/packages/SystemUI/res/values-es/strings.xml +++ b/packages/SystemUI/res/values-es/strings.xml @@ -240,7 +240,8 @@ "Datos 4G pausados" "Datos móviles pausados" "Datos pausados" - "Has alcanzado el límite de datos establecido, por lo que el dispositivo ha pausado el uso de datos para el resto de este ciclo.\n\nSi lo reanudas, el operador puede facturar cargos." + + "Reanudar" "Sin conexión a Internet" "Con conexión Wi-Fi" diff --git a/packages/SystemUI/res/values-et-rEE/strings.xml b/packages/SystemUI/res/values-et-rEE/strings.xml index 801eb03af7f6..6a36d72f3e14 100644 --- a/packages/SystemUI/res/values-et-rEE/strings.xml +++ b/packages/SystemUI/res/values-et-rEE/strings.xml @@ -240,7 +240,8 @@ "4G andmekasutus on peatatud" "Mobiilse andmeside kasutus on peatatud" "Andmekasutus on peatatud" - "Kuna jõudsite andmemahu määratud piirini, peatas seade andmekasutuse ülejäänud tsükliks.\n\nJätkamisel võivad lisanduda operaatoritasud." + + "Jätka" "Interneti-ühendus puudub" "WiFi on ühendatud" diff --git a/packages/SystemUI/res/values-eu-rES/strings.xml b/packages/SystemUI/res/values-eu-rES/strings.xml index 2c3a3141a751..64348837ac0d 100644 --- a/packages/SystemUI/res/values-eu-rES/strings.xml +++ b/packages/SystemUI/res/values-eu-rES/strings.xml @@ -240,7 +240,8 @@ "4G datuen erabilera eten da" "Sare mugikorreko datuen erabilera eten da" "Datuen erabilera eten da" - "Zehaztuta duzun datuen erabilera-mugara iritsi zarenez, gailuak datuen erabilera eten du zikloa amaitzen den arte.\n\nDatuak erabiltzen jarraitzen baduzu, gastu gehiago ordaindu beharko dizkiozu agian operadoreari." + + "Jarraitu erabiltzen" "Ez duzu Interneteko konexiorik" "Wi-Fi konektatuta" diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml index fcaef5395069..181c04a22882 100644 --- a/packages/SystemUI/res/values-fa/strings.xml +++ b/packages/SystemUI/res/values-fa/strings.xml @@ -238,7 +238,8 @@ "‏داده 4G موقتاً متوقف شده است" "داده شبکه همراه موقتاً متوقف شده است" "داده موقتاً متوقف شده است" - "چون به محدودیت داده تنظیم شده رسیده‌اید، دستگاه مصرف داده را برای باقیمانده این دوره موقتاً متوقف کرده است.\n\nاگر ادامه دهید شاید موجب کسر هزینه از طرف شرکت مخابراتی شما شود." + + "از سر‌گیری" "اتصال اینترنتی ندارید" "‏Wi-Fi متصل شد" diff --git a/packages/SystemUI/res/values-fi/strings.xml b/packages/SystemUI/res/values-fi/strings.xml index cc5ee98c8bb3..554871ac2754 100644 --- a/packages/SystemUI/res/values-fi/strings.xml +++ b/packages/SystemUI/res/values-fi/strings.xml @@ -238,7 +238,8 @@ "4G-tiedonsiirto keskeytettiin" "Mobiilitiedonsiirto keskeytettiin" "Tiedonsiirto keskeytettiin" - "Määrittämäsi tiedonsiirtorajoitus saavutettiin, ja laite keskeytti tiedonsiirron tämän kauden loppuajaksi.\n\nOperaattorisi voi veloittaa sinulta lisämaksun, jos jatkat tiedonsiirtoa." + + "Jatka" "Ei internetyhteyttä" "Wi-Fi yhdistetty" diff --git a/packages/SystemUI/res/values-fr-rCA/strings.xml b/packages/SystemUI/res/values-fr-rCA/strings.xml index 09dd85afbad4..eabe03b13736 100644 --- a/packages/SystemUI/res/values-fr-rCA/strings.xml +++ b/packages/SystemUI/res/values-fr-rCA/strings.xml @@ -240,7 +240,8 @@ "Données 4G désactivées" "Données cellulaires désactivées" "Données désactivées" - "Vous avez atteint le quota de données maximal. La consommation des données a donc été interrompue pour la fin de la période de facturation en cours.\n\nSi vous réactivez les données, votre fournisseur de services risque de vous facturer des frais supplémentaires." + + "Reprendre" "Aucune connexion Internet" "Connecté au Wi-Fi" diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml index f516e54e45fb..a2e79501df64 100644 --- a/packages/SystemUI/res/values-fr/strings.xml +++ b/packages/SystemUI/res/values-fr/strings.xml @@ -240,7 +240,8 @@ "Données 4G désactivées" "Données mobiles désactivées" "Données désactivées" - "Vous avez atteint le quota de données maximal. La consommation des données a donc été interrompue pour la fin de la période de facturation en cours.\n\nSi vous réactivez les données, votre opérateur risque de vous facturer des frais supplémentaires." + + "Réactiver" "Aucune connexion Internet" "Connecté au Wi-Fi" diff --git a/packages/SystemUI/res/values-gl-rES/strings.xml b/packages/SystemUI/res/values-gl-rES/strings.xml index 01ddd360f6f5..aa6564c8cc53 100644 --- a/packages/SystemUI/res/values-gl-rES/strings.xml +++ b/packages/SystemUI/res/values-gl-rES/strings.xml @@ -240,7 +240,8 @@ "Os datos 4G están en pausa" "Os datos de móbiles están en pausa" "Os datos están en pausa" - "Como acadaches o límite de datos definido, o dispositivo puxo en pausa o uso de datos para o resto do ciclo.\n\nSe retomas o uso, poden aplicarse cargos do operador." + + "Retomar" "Sen Internet" "Wi-Fi conectada" diff --git a/packages/SystemUI/res/values-gu-rIN/strings.xml b/packages/SystemUI/res/values-gu-rIN/strings.xml index a560ab85d9b6..f8b4c41a8bec 100644 --- a/packages/SystemUI/res/values-gu-rIN/strings.xml +++ b/packages/SystemUI/res/values-gu-rIN/strings.xml @@ -238,7 +238,8 @@ "4G ડેટા થોભાવ્યો છે" "સેલ્યુલર ડેટા થોભાવ્યો છે" "ડેટા થોભાવ્યો છે" - "તમે સેટ કરેલ ડેટા મર્યાદા સુધી પહોંચી ગયા હોવાથી, ઉપકરણે આ ચક્રના શેષ માટે ડેટા વપરાશ થોભાવ્યો છે.\n\nફરીથી શરૂ કરવું તમારા કેરીઅર તરફથી શુલ્ક તરફ દોરી શકે છે." + + "ફરી શરૂ કરો" "કોઈ ઇન્ટરનેટ કનેક્શન નથી" "Wi-Fi કનેક્ટ કર્યું" diff --git a/packages/SystemUI/res/values-hi/strings.xml b/packages/SystemUI/res/values-hi/strings.xml index 62ece3c10e47..a2f9c14eb12c 100644 --- a/packages/SystemUI/res/values-hi/strings.xml +++ b/packages/SystemUI/res/values-hi/strings.xml @@ -238,7 +238,8 @@ "4G डेटा रोक दिया गया है" "सेल्युलर डेटा रोक दिया गया है" "डेटा रोक दिया गया है" - "चूंकि आपके निर्धारित डेटा की सीमा, सीमा पर पहुंच गई थी, इसलिए डिवाइस ने इस चक्र के रिमाइंडर के लिए डेटा उपयोग को रोक दिया है.\n\nफिर से शुरू करने से आपके वाहक की ओर से शुल्क लगाया जाता है." + + "फिर से शुरू करें" "कोई इंटरनेट कनेक्शन नहीं" "वाई-फ़ाई कनेक्‍ट किया गया" diff --git a/packages/SystemUI/res/values-hr/strings.xml b/packages/SystemUI/res/values-hr/strings.xml index bdf8faf51ca7..9412cca45be3 100644 --- a/packages/SystemUI/res/values-hr/strings.xml +++ b/packages/SystemUI/res/values-hr/strings.xml @@ -239,7 +239,8 @@ "4G podaci pauzirani" "Mobilni podaci pauzirani" "Podaci su pauzirani" - "Budući da je dosegnuto postavljeno ograničenje podataka, uređaj je pauzirao upotrebu podataka za preostali dio ovog ciklusa.\n\nMobilni operater može naplatiti daljnju upotrebu." + + "Nastavi" "Nema internetske veze" "Wi-Fi povezan" diff --git a/packages/SystemUI/res/values-hu/strings.xml b/packages/SystemUI/res/values-hu/strings.xml index 92d8721256db..ecb68a0d5b7b 100644 --- a/packages/SystemUI/res/values-hu/strings.xml +++ b/packages/SystemUI/res/values-hu/strings.xml @@ -238,7 +238,8 @@ "A 4G adatforgalom szünetel" "A mobilhálózati adatforgalom szünetel" "Az adatforgalom szünetel" - "Mivel elérte a beállított adatkorlátot, az eszköz a ciklus fennmaradó részére felfüggesztette az adathasználatot.\n\nHa mégis használja az adatkapcsolatot, akkor szolgáltatója többletköltséget számíthat fel." + + "Folytatás" "Nincs internet" "Wi-Fi csatlakoztatva" diff --git a/packages/SystemUI/res/values-hy-rAM/strings.xml b/packages/SystemUI/res/values-hy-rAM/strings.xml index 99b5f5267a29..8944d8878dab 100644 --- a/packages/SystemUI/res/values-hy-rAM/strings.xml +++ b/packages/SystemUI/res/values-hy-rAM/strings.xml @@ -238,7 +238,8 @@ "4Գ տվյալների օգտագործումը դադարեցված է" "Բջջային տվյալների օգտագործումը դադարեցված է" "Տվյալների օգտագործումը դադարեցված է" - "Քանի որ ձեր սահմանված տվյալների սահմանաչափը սպառվել է, սարքն այլևս չի օգտագործի տվյալները այս ցիկլի մնացած ընթացքում:\n\nԵթե վերսկսեք, հնարավոր է կիրառվեն գանձումներ ձեր օպերատորի կողմից:" + + "Վերսկսել" "Ինտերնետ կապ չկա" "Wi-Fi-ը միացված է" diff --git a/packages/SystemUI/res/values-in/strings.xml b/packages/SystemUI/res/values-in/strings.xml index 4591758480c6..e5db9b273d9c 100644 --- a/packages/SystemUI/res/values-in/strings.xml +++ b/packages/SystemUI/res/values-in/strings.xml @@ -238,7 +238,8 @@ "Data 4G dijeda" "Data seluler dijeda" "Data dijeda" - "Karena batas data yang disetel telah tercapai, perangkat telah menjeda penggunaan data selama sisa waktu siklus ini.\n\nMelanjutkan dapat mengakibatkan tagihan dari operator." + + "Lanjutkan" "Tidak ada sambungan internet" "Wi-Fi tersambung" diff --git a/packages/SystemUI/res/values-is-rIS/strings.xml b/packages/SystemUI/res/values-is-rIS/strings.xml index 117652dabf88..96eebab85f26 100644 --- a/packages/SystemUI/res/values-is-rIS/strings.xml +++ b/packages/SystemUI/res/values-is-rIS/strings.xml @@ -238,7 +238,8 @@ "Slökkt er á 4G-gögnum" "Slökkt er á farsímagögnum" "Slökkt er á gagnanotkun" - "Þar sem gagnahámarkinu var náð hefur tækið slökkt á gagnanotkun það sem eftir er af þessu tímabili.\n\nEf þú heldur áfram kann það að leiða til kostnaðar frá símafyrirtækinu." + + "Halda áfram" "Engin nettenging" "Wi-Fi tengt" diff --git a/packages/SystemUI/res/values-it/strings.xml b/packages/SystemUI/res/values-it/strings.xml index ed27f8a316cd..a1ce58e2328b 100644 --- a/packages/SystemUI/res/values-it/strings.xml +++ b/packages/SystemUI/res/values-it/strings.xml @@ -240,7 +240,8 @@ "Dati 4G sospesi" "Dati cellulari sospesi" "Dati sospesi" - "Hai raggiunto il tuo limite di dati, pertanto sul dispositivo è stato sospeso l\'utilizzo di dati per la parte rimanente del ciclo.\n\nSe riprendi a utilizzare i dati, l\'operatore potrebbe addebitarti costi." + + "Riprendi" "Nessuna connessione" "Wi-Fi connesso" diff --git a/packages/SystemUI/res/values-iw/strings.xml b/packages/SystemUI/res/values-iw/strings.xml index e82a4794e99a..6beab82f8202 100644 --- a/packages/SystemUI/res/values-iw/strings.xml +++ b/packages/SystemUI/res/values-iw/strings.xml @@ -240,7 +240,8 @@ "‏השימוש בנתוני 4G מושהה" "השימוש בנתונים סלולריים מושהה" "השימוש בנתונים מושהה" - "מכיוון שהגעת למגבלת הנתונים שהגדרת, המכשיר השהה את השימוש בנתונים עד סוף התקופה.\n\nאם תמשיך, אתה עשוי לקבל חיובים מהספק." + + "המשך" "אין חיבור לאינטרנט" "‏Wi-Fi מחובר" diff --git a/packages/SystemUI/res/values-ja/strings.xml b/packages/SystemUI/res/values-ja/strings.xml index f3f5cd5a2b0e..ba7429a24186 100644 --- a/packages/SystemUI/res/values-ja/strings.xml +++ b/packages/SystemUI/res/values-ja/strings.xml @@ -240,7 +240,8 @@ "4Gデータは一時停止中です" "モバイルデータは一時停止中です" "データの一時停止" - "設定されたデータの上限に達したため、このサイクルの終了までこの端末でのデータの利用を一時停止しました。\n\n再開すると、携帯通信会社から課金される可能性があります。" + + "再開" "インターネット未接続" "Wi-Fi接続済み" diff --git a/packages/SystemUI/res/values-ka-rGE/strings.xml b/packages/SystemUI/res/values-ka-rGE/strings.xml index 5743bc880442..15cd127191bd 100644 --- a/packages/SystemUI/res/values-ka-rGE/strings.xml +++ b/packages/SystemUI/res/values-ka-rGE/strings.xml @@ -238,7 +238,8 @@ "4G მონაცემები შეჩერებულია" "ფიჭური მონაცემები შეჩერებულია" "მონაცემები შეჩერებულია" - "რადგან თქვენი მონაცემების ლიმიტი ამოწურულია, მოწყობილობამ შეაჭერა მონაცემების გამოყენება დარჩენილი ციკლისათვის. \n\n შეჯამაბ შეიძლება გამოიწვიოს თქვენს პროვაიდერთან დამატებითი ხარჯები." + + "გაგრძელება" "ინტერნეტ კავშირი არ არის" "Wi-Fi დაკავშირებულია" diff --git a/packages/SystemUI/res/values-kk-rKZ/strings.xml b/packages/SystemUI/res/values-kk-rKZ/strings.xml index f4f525a3e346..4c45092f6cd5 100644 --- a/packages/SystemUI/res/values-kk-rKZ/strings.xml +++ b/packages/SystemUI/res/values-kk-rKZ/strings.xml @@ -238,7 +238,8 @@ "4G деректері кідіртілді" "Ұялы деректер кідіртілді" "Деректер кідіртілді" - "Орнатылған деректер шегіне жеткендіктен, құрылғы осы циклдың қалған бөлігі бойы деректерді пайдалануды кідіртті.\n\nЖалғастыру оператор ақыларына әкелуі мүмкін." + + "Жалғастыру" "Интернет байланысы жоқ" "Wi-Fi қосулы" diff --git a/packages/SystemUI/res/values-km-rKH/strings.xml b/packages/SystemUI/res/values-km-rKH/strings.xml index 0e58b1208948..e7ac8a0fc655 100644 --- a/packages/SystemUI/res/values-km-rKH/strings.xml +++ b/packages/SystemUI/res/values-km-rKH/strings.xml @@ -238,7 +238,8 @@ "ទិន្នន័យ 4G ត្រូវបានផ្អាក" "ទិន្នន័យចល័តត្រូវបានផ្អាក" "ទិន្នន័យត្រូវបានផ្អាក" - "ដោយសារទិន្នន័យរបស់អ្នកបានឈានដល់កំណត់ ឧបករណ៍នេះបានផ្អាកការប្រើប្រាស់ទិន្នន័យសម្រាប់ការរំលឹកនៃវគ្គនេះ។\n\nការបន្តប្រើប្រាស់អាចនាំឲ្យមានការគិតប្រាក់ពីក្រុមហ៊ុនផ្តល់សេវាកម្ម។" + + "បន្ត" "គ្មាន​ការ​តភ្ជាប់​អ៊ីនធឺណិត" "បាន​ភ្ជាប់​វ៉ាយហ្វាយ" diff --git a/packages/SystemUI/res/values-kn-rIN/strings.xml b/packages/SystemUI/res/values-kn-rIN/strings.xml index 9f01518d73b4..43960764165c 100644 --- a/packages/SystemUI/res/values-kn-rIN/strings.xml +++ b/packages/SystemUI/res/values-kn-rIN/strings.xml @@ -238,7 +238,8 @@ "4G ಡೇಟಾ ವಿರಾಮಗೊಳಿಸಲಾಗಿದೆ" "ಸೆಲ್ಯುಲಾರ್ ಡೇಟಾ ವಿರಾಮಗೊಳಿಸಲಾಗಿದೆ" "ಡೇಟಾ ವಿರಾಮಗೊಳಿಸಲಾಗಿದೆ" - "ಏಕೆಂದರೆ ನಿಮ್ಮ ಹೊಂದಾಣಿಕೆ ಡೇಟಾ ಮೀತಿಯನ್ನು ತಲುಪಿದೆ, ಈ ಆವರ್ತನೆಯ ಉಳಿದ ಭಾಗಕ್ಕೆ ಸಾಧನವು ಡೇಟಾ ಬಳಕೆಯನ್ನು ವಿರಾಮಗೊಳಿಸಿದೆ.\n\nಮುಂದುವರೆಯುವಿಕೆಯು ನಿಮ್ಮ ವಾಹಕದ ಶುಲ್ಕಗಳಿಗೆ ಕಾರಣವಾಗಬಹುದು." + + "ಮುಂದುವರಿಸು" "ಇಂಟರ್ನೆಟ್ ಸಂಪರ್ಕವಿಲ್ಲ" "ವೈ-ಫೈ ಸಂಪರ್ಕಗೊಂಡಿದೆ" diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml index 04e1132bccf3..00dc1b656bef 100644 --- a/packages/SystemUI/res/values-ko/strings.xml +++ b/packages/SystemUI/res/values-ko/strings.xml @@ -240,7 +240,8 @@ "4G 데이터 사용 중지됨" "모바일 데이터 사용 중지됨" "데이터 사용 중지됨" - "설정된 데이터 한도에 도달했기 때문에 기기에서 사이클의 나머지 기간 동안 데이터 사용을 일시 중지했습니다. \n\n데이터 사용을 재개하면 이동통신사 요금이 청구될 수 있습니다." + + "재개" "인터넷에 연결되지 않음" "Wi-Fi 연결됨" diff --git a/packages/SystemUI/res/values-ky-rKG/strings.xml b/packages/SystemUI/res/values-ky-rKG/strings.xml index 3f942e13b7b9..d1b4df7fd965 100644 --- a/packages/SystemUI/res/values-ky-rKG/strings.xml +++ b/packages/SystemUI/res/values-ky-rKG/strings.xml @@ -238,7 +238,8 @@ "4G дайындары тындырылды" "Уюлдук дайындар тындырылды" "Дайындар тындырылды" - "Киргизиле турган дайындар белгиленген эң жогорку чекке жеткендиктен, ушул мерчимдин калган бөлүгүндө түзмөгүңүздө дайындардын колдонулушу тындырылды.\n\nУлантсаңыз, байланыш операторуңузга акы төлөп калышыңыз мүмкүн." + + "Улантуу" "Интернет байланыш жок" "Wi-Fi байланышта" diff --git a/packages/SystemUI/res/values-lo-rLA/strings.xml b/packages/SystemUI/res/values-lo-rLA/strings.xml index 54855af824ac..f2d53a1dcfe4 100644 --- a/packages/SystemUI/res/values-lo-rLA/strings.xml +++ b/packages/SystemUI/res/values-lo-rLA/strings.xml @@ -238,7 +238,8 @@ "ຂໍ້​ມູນ 4G ຢຸດ​ຊົ່ວ​ຄາວແລ້ວ" "ຂໍ້​ມູນເຊວ​ລູ​ລາຢຸດ​ຊົ່ວ​ຄາວແລ້ວ" "ຂໍ້​ມູນ​ຢຸດ​ຊົ່ວ​ຄາວແລ້ວ" - "ເນື່ອງ​ຈາກວ່າ​ຮອດ​ຂີດ​ຈຳ​ກັດ​ຂໍ້​ມູນ​ທີ່​ຕັ້ງ​ໄວ້​ຂອ​ງ​ທ່ານ​ແລ້ວ, ອຸ​ປະ​ກອນ​ຢຸດ​ການ​ນຳ​ໃຊ້​ຂໍ້​ມູນ​ສຳ​ລັບ​ສ່ວນ​ທີ່​ຍັງ​ເຫຼືອ​ຂອງ​ຮອບ​ວຽນ​ນີ້.\n\nການ​ເລີ່ມ​ຕໍ່​ອາດ​ຈະ​ນຳ​ໄປ​ສູ່​ການ​ປ່ຽນ​ແປງ​ຈາກ​ຜູ້​ໃຫ້​ບໍ​ລິ​ການ​ເຄືອ​ຂ່າຍ​ຂອງ​ທ່ານ." + + "ເລີ່ມຕໍ່" "ບໍ່ມີການເຊື່ອມຕໍ່ອິນເຕີເນັດ" "ເຊື່ອມ​ຕໍ່ Wi-​-Fi ແລ້ວ" diff --git a/packages/SystemUI/res/values-lt/strings.xml b/packages/SystemUI/res/values-lt/strings.xml index 969a5b15c708..134f9306f1e2 100644 --- a/packages/SystemUI/res/values-lt/strings.xml +++ b/packages/SystemUI/res/values-lt/strings.xml @@ -240,7 +240,8 @@ "4G duomenys pristabdyti" "Korinio ryšio duomenys pristabdyti" "Duomenys pristabdyti" - "Kadangi buvo pasiektas nustatytas duomenų limitas, įrenginys pristabdė duomenų naudojimą likusį šio ciklo laikotarpį.\n\nAtnaujinus gali būti taikomi operatoriaus mokesčiai." + + "Atnaujinti" "Nėra interneto ryš." "Prisij. prie „Wi-Fi“" diff --git a/packages/SystemUI/res/values-lv/strings.xml b/packages/SystemUI/res/values-lv/strings.xml index 6f430b76f6b3..ee13d0849ec9 100644 --- a/packages/SystemUI/res/values-lv/strings.xml +++ b/packages/SystemUI/res/values-lv/strings.xml @@ -239,7 +239,8 @@ "4G datu lietojums ir apturēts" "Mobilo datu lietojums ir apturēts" "Datu lietojums ir apturēts" - "Tika sasniegts iestatītais datu lietojuma ierobežojums, tādēļ ierīcē ir apturēts datu lietojums cikla atlikušajā periodā.\n\nJa atsāksiet lietot datus, iespējams, jūsu mobilo sakaru operators iekasēs maksu." + + "Atsākt" "Nav interneta sav." "Izv. sav. ar Wi-Fi" diff --git a/packages/SystemUI/res/values-mk-rMK/strings.xml b/packages/SystemUI/res/values-mk-rMK/strings.xml index 68a8fc182811..1c1c5e50f210 100644 --- a/packages/SystemUI/res/values-mk-rMK/strings.xml +++ b/packages/SystemUI/res/values-mk-rMK/strings.xml @@ -238,7 +238,8 @@ "Податоците 4G се паузирани" "Мобилните податоци се паузирани" "Податоците се паузирани" - "Поради тоа што го достигнавте поставеното ограничување на податоци, уредот го паузираше користењето податоци до крајот на циклусот.\n\nОператорот може да ви наплати ако продолжите." + + "Продолжи" "Нема интернет" "Поврзано на Wi-Fi" diff --git a/packages/SystemUI/res/values-ml-rIN/strings.xml b/packages/SystemUI/res/values-ml-rIN/strings.xml index ecb664e31877..cb0ceb68a91d 100644 --- a/packages/SystemUI/res/values-ml-rIN/strings.xml +++ b/packages/SystemUI/res/values-ml-rIN/strings.xml @@ -238,7 +238,8 @@ "4G ഡാറ്റ താൽക്കാലികമായി നിർത്തി" "സെല്ലുലാർ ഡാറ്റ താൽക്കാലികമായി നിർത്തി" "ഡാറ്റ താൽക്കാലികമായി നിർത്തി" - "നിങ്ങൾ നേരത്തെ ക്രമീകരിച്ച ഡാറ്റ പരിധിയിലെത്തിയതിനാൽ, ഈ സൈക്കിളിന്റെ അവശേഷിക്കുന്ന ഡാറ്റ ഉപയോഗം, ഉപകരണം താൽക്കാലികമായി നിർത്തി.\n\nപുനരാരംഭിക്കുന്നത്, നിങ്ങളുടെ കാരിയറിൽ നിന്ന് നിരക്കുകൾക്ക് ഇടയാക്കാം." + + "പുനരാരംഭിക്കുക" "ഇന്റർനെറ്റ് കണക്ഷൻ ഇല്ല" "വൈഫൈ കണക്‌റ്റുചെയ്‌തു" diff --git a/packages/SystemUI/res/values-mn-rMN/strings.xml b/packages/SystemUI/res/values-mn-rMN/strings.xml index f55d6ed891d9..72ec7cbfb6a3 100644 --- a/packages/SystemUI/res/values-mn-rMN/strings.xml +++ b/packages/SystemUI/res/values-mn-rMN/strings.xml @@ -236,7 +236,8 @@ "4G дата-г түр зогсоосон байна" "Гар утасны дата-г түр зогсоосон байна" "Дата-г түр зогсоосон байна" - "Таны багц дата эрхийн дээд хэмжээнд хүрсэн байгаа тул төхөөрөмж нь үлдсэн хэсэгт дата хэрэглээг түр зогсоосон байна.\n\nТа үйлдлийг үргэлжлүүлэхийг хүсвэл үйлчилгээ үзүүлж буй үүрэн холбооны газраас нэмж дата эрх авна уу." + + "Үргэлжлүүлэх" "Интернет холболт байхгүй" "Wi-Fi холбогдсон" diff --git a/packages/SystemUI/res/values-mr-rIN/strings.xml b/packages/SystemUI/res/values-mr-rIN/strings.xml index 8cf182bfafb5..6bdac6cb9eab 100644 --- a/packages/SystemUI/res/values-mr-rIN/strings.xml +++ b/packages/SystemUI/res/values-mr-rIN/strings.xml @@ -238,7 +238,8 @@ "4G डेटास विराम दिला आहे" "सेल्युलर डेटास विराम दिला आहे" "डेटास विराम दिला आहे" - "आपली सेट केलेली डेटा मर्यादा गाठल्यामुळे, डिव्हाइसने या चक्राच्या उर्वरित डेटा वापरास विराम दिला आहे.\n\nपुन्हा सुरु करण्यामुळे आपल्या वाहकाकडून शुल्क आकारले जाऊ शकते." + + "पुन्हा सुरु करा" "इंटरनेट कनेक्शन नाही" "वाय-फाय कनेक्ट केले" diff --git a/packages/SystemUI/res/values-ms-rMY/strings.xml b/packages/SystemUI/res/values-ms-rMY/strings.xml index c4b90608b152..98c14507dd22 100644 --- a/packages/SystemUI/res/values-ms-rMY/strings.xml +++ b/packages/SystemUI/res/values-ms-rMY/strings.xml @@ -238,7 +238,8 @@ "Data 4G dijeda" "Data selular dijeda" "Data dijeda" - "Oleh kerana had data tetap anda telah dicapai, peranti telah menjeda penggunaan data bagi baki kitaran ini.\n\nMenyambung semula boleh menyebabkan anda dikenakan bayaran daripada pembawa anda." + + "Sambung semula" "Tiada smbg Internet" "Wi-Fi disambungkan" diff --git a/packages/SystemUI/res/values-my-rMM/strings.xml b/packages/SystemUI/res/values-my-rMM/strings.xml index 62b7ad6f290a..fbfc4f7121d7 100644 --- a/packages/SystemUI/res/values-my-rMM/strings.xml +++ b/packages/SystemUI/res/values-my-rMM/strings.xml @@ -238,7 +238,8 @@ "4G data ခေတ္တရပ်တန့်သည်" "cellular data ခေတ္တရပ်တန့်သည်" "ဒေတာ ခေတ္တရပ်တန့်သည်" - "သင့် ဒေတာ အသုံးပြုမှု သတ်မှတ်ထားချက်သို့ ရောက်ရှိသောကြောင့်၊ ဤကာလအတွက် ကျန်ရှိသည့် ဒေတာအသုံးပြုမှုအား စက်ပစ္စည်းမှ ရပ်တန့်ထားသည်။\n\nဆက်လက်သွားပါက သင့်ဖုန်းဝန်ဆောင်မှုမှ သင့်အား ကုန်ကျစရိတ်တောင်းခံလိမ့်မည်။" + + "ပြန်ဆက်လုပ်ရန်" "အင်တာနက်မရှိ" "ကြိုးမဲ့ဆက်သွယ်မှု" diff --git a/packages/SystemUI/res/values-nb/strings.xml b/packages/SystemUI/res/values-nb/strings.xml index 6406a142e0ac..8f077423f0ea 100644 --- a/packages/SystemUI/res/values-nb/strings.xml +++ b/packages/SystemUI/res/values-nb/strings.xml @@ -238,7 +238,8 @@ "4G-data er satt på pause" "Mobildata er satt på pause" "Data er satt på pause" - "Fordi den angitte datagrensen ble nådd, har enheten satt databruk på pause for resten av denne syklusen. \n\nHvis du gjenopptar bruken, kan det føre til avgifter fra operatøren din." + + "Gjenoppta" "Ingen Internett-forbindelse" "Wi-Fi tilkoblet" diff --git a/packages/SystemUI/res/values-ne-rNP/strings.xml b/packages/SystemUI/res/values-ne-rNP/strings.xml index 4e1ec0849fa7..6933bdcca405 100644 --- a/packages/SystemUI/res/values-ne-rNP/strings.xml +++ b/packages/SystemUI/res/values-ne-rNP/strings.xml @@ -238,7 +238,8 @@ "4G डेटा रोकिएको छ" "सेल्यूलर डेटा रोकिएको छ" "डेटा रोकिएको छ" - "तपाईंले सेट गर्नुभएको डेटाको सीमा पुगेकाले, यन्त्रले यस चक्रको बाँकी भागका लागि डेटाको प्रयोग रोकेको छ।\n\nपुन: सुरू गर्दा तपाईंको क्यारियरले शुल्कहरू लिन सक्छ।" + + "पुनः सुरु गर्नुहोस्" "इन्टरनेट जडान छैन" "Wi-Fi जडित" diff --git a/packages/SystemUI/res/values-nl/strings.xml b/packages/SystemUI/res/values-nl/strings.xml index a1d1e275ac1c..ca3e4074c0b1 100644 --- a/packages/SystemUI/res/values-nl/strings.xml +++ b/packages/SystemUI/res/values-nl/strings.xml @@ -238,7 +238,8 @@ "4G-data zijn onderbroken" "Mobiele gegevens zijn onderbroken" "Gegevens zijn onderbroken" - "Omdat de ingestelde gegevenslimiet is bereikt, heeft het apparaat het gegevensverbruik onderbroken voor de rest van deze cyclus.\n\nAls u het gegevensverbruik hervat, kan je provider kosten in rekening brengen." + + "Hervatten" "Geen internetverbinding" "Verbonden via wifi" diff --git a/packages/SystemUI/res/values-pa-rIN/strings.xml b/packages/SystemUI/res/values-pa-rIN/strings.xml index 2f0e77243896..b6906b4a3181 100644 --- a/packages/SystemUI/res/values-pa-rIN/strings.xml +++ b/packages/SystemUI/res/values-pa-rIN/strings.xml @@ -238,7 +238,8 @@ "4G ਡੈਟਾ ਰੁਕ ਗਿਆ ਹੈ" "ਸੈਲਿਊਲਰ ਡੈਟਾ ਰੁਕ ਗਿਆ ਹੈ" "ਡੈਟਾ ਰੁਕ ਗਿਆ ਹੈ" - "ਕਿਉਂਕਿ ਤੁਹਾਡੀ ਸੈਟ ਡੈਟਾ ਸੀਮਾ ਪੂਰੀ ਹੋ ਗਈ ਸੀ, ਡੀਵਾਈਸ ਨੇ ਇਸ ਬਾਕੀ ਚੱਕਰ ਲਈ ਡੈਟਾ ਉਪਯੋਗ ਰੋਕ ਦਿੱਤਾ ਹੈ।\n\nਇਸਨੂੰ ਦੁਬਾਰਾ ਸ਼ੁਰੂ ਕਰਨ ਨਾਲ ਤੁਹਾਡੇ ਕੈਰੀਅਰ ਵੱਲੋਂ ਖ਼ਰਚੇ ਪਾਏ ਜਾ ਸਕਦੇ ਹਨ।" + + "ਦੁਬਾਰਾ ਸ਼ੁਰੂ ਕਰੋ" "ਕੋਈ ਇੰਟਰਨੈਟ ਕਨੈਕਸ਼ਨ ਨਹੀਂ" "Wi-Fi ਕਨੈਕਟ ਕੀਤਾ" diff --git a/packages/SystemUI/res/values-pl/strings.xml b/packages/SystemUI/res/values-pl/strings.xml index 7d69a9fd05ee..cd5187b41e8e 100644 --- a/packages/SystemUI/res/values-pl/strings.xml +++ b/packages/SystemUI/res/values-pl/strings.xml @@ -240,7 +240,8 @@ "Transmisja danych 4G została wstrzymana" "Komórkowa transmisja danych została wstrzymana" "Transmisja danych została wstrzymana" - "Ponieważ został osiągnięty ustawiony przez Ciebie limit danych, urządzenie wstrzymało użycie danych na pozostałą część tego cyklu.\n\nWznowienie może spowodować naliczenie opłat przez operatora." + + "Wznów" "Brak internetu" "Wi-Fi: połączono" diff --git a/packages/SystemUI/res/values-pt-rBR/strings.xml b/packages/SystemUI/res/values-pt-rBR/strings.xml index 91746f33fc4c..06873d9354e2 100644 --- a/packages/SystemUI/res/values-pt-rBR/strings.xml +++ b/packages/SystemUI/res/values-pt-rBR/strings.xml @@ -240,7 +240,8 @@ "Os dados 4G foram pausados" "Os dados da rede celular foram pausados" "Os dados foram pausados" - "Como seu limite de dados definido foi atingido, o dispositivo pausou o uso de dados para o restante deste ciclo.\n\nA retomada pode gerar cobranças por parte da sua operadora." + + "Retomar" "Sem conexão à Internet" "Wi-Fi conectado" diff --git a/packages/SystemUI/res/values-pt-rPT/strings.xml b/packages/SystemUI/res/values-pt-rPT/strings.xml index 496e05eb85c2..378040867352 100644 --- a/packages/SystemUI/res/values-pt-rPT/strings.xml +++ b/packages/SystemUI/res/values-pt-rPT/strings.xml @@ -238,7 +238,8 @@ "Dados 4G em pausa" "Dados de redes móveis em pausa" "Dados em pausa" - "Uma vez que foi atingido o limite de dados definido, foi interrompida a utilização de dados no seu dispositivo durante o tempo restante deste ciclo.\n\nSe retomar a utilização, o seu operador pode efetuar cobranças." + + "Retomar" "Sem ligação internet" "Wi-Fi ligado" diff --git a/packages/SystemUI/res/values-pt/strings.xml b/packages/SystemUI/res/values-pt/strings.xml index 91746f33fc4c..06873d9354e2 100644 --- a/packages/SystemUI/res/values-pt/strings.xml +++ b/packages/SystemUI/res/values-pt/strings.xml @@ -240,7 +240,8 @@ "Os dados 4G foram pausados" "Os dados da rede celular foram pausados" "Os dados foram pausados" - "Como seu limite de dados definido foi atingido, o dispositivo pausou o uso de dados para o restante deste ciclo.\n\nA retomada pode gerar cobranças por parte da sua operadora." + + "Retomar" "Sem conexão à Internet" "Wi-Fi conectado" diff --git a/packages/SystemUI/res/values-ro/strings.xml b/packages/SystemUI/res/values-ro/strings.xml index 115cf958f691..8d9338317115 100644 --- a/packages/SystemUI/res/values-ro/strings.xml +++ b/packages/SystemUI/res/values-ro/strings.xml @@ -241,7 +241,8 @@ "Conexiunea de date 4G este întreruptă" "Conexiunea de date mobile este întreruptă" "Conexiunea de date este întreruptă" - "Deoarece limita setată pentru date a fost atinsă, dispozitivul a întrerupt utilizarea datelor pentru restul acestui ciclu.\n\nReluarea utilizării de date poate genera aplicarea de taxe de către operator." + + "Reluați" "Fără conex. internet" "Wi-Fi conectat" diff --git a/packages/SystemUI/res/values-ru/strings.xml b/packages/SystemUI/res/values-ru/strings.xml index f15caf4122bb..c9ac1b0673c6 100644 --- a/packages/SystemUI/res/values-ru/strings.xml +++ b/packages/SystemUI/res/values-ru/strings.xml @@ -242,7 +242,8 @@ "Передача данных 4G приостановлена" "Передача мобильных данных приостановлена" "Передача данных приостановлена" - "Передача данных выключена до конца цикла, поскольку достигнут установленный вами лимит.\n\nЕсли вы возобновите ее, оператор может взимать плату за дополнительный расход трафика." + + "Возобновить" "Нет интернет-подключения" "Wi-Fi подключено" diff --git a/packages/SystemUI/res/values-si-rLK/strings.xml b/packages/SystemUI/res/values-si-rLK/strings.xml index f05ba9a8327f..3f5651deab0b 100644 --- a/packages/SystemUI/res/values-si-rLK/strings.xml +++ b/packages/SystemUI/res/values-si-rLK/strings.xml @@ -238,7 +238,8 @@ "4G දත්ත විරාම කර ඇත" "සෙලියුලර් දත්ත විරාම කර ඇත" "දත්ත විරාම කර ඇත" - "ඔබ සකසා ඇති දත්ත සීමාවට ළඟා වූ නිසා, උපාංගය මගින් මෙම චක්‍රයේ ඉතිරිය සඳහා දත්ත භාවිතය විරාම කර ඇත. \n\nනැවත පටන් ගැනීමෙන් ඔබගේ වාහකයෙන් අය කිරීම් වලට පොළඹවනු ඇත." + + "නැවත පටන්ගන්න" "අන්තර්ජාල සම්බන්ධතාවයක් නැත" "Wi-Fi සම්බන්ධිතයි" diff --git a/packages/SystemUI/res/values-sk/strings.xml b/packages/SystemUI/res/values-sk/strings.xml index 2fe207323c10..dacbbfffc6f1 100644 --- a/packages/SystemUI/res/values-sk/strings.xml +++ b/packages/SystemUI/res/values-sk/strings.xml @@ -242,7 +242,8 @@ "Dátové prenosy 4G sú pozastavené" "Mobilné dáta sú pozastavené" "Dáta sú pozastavené" - "Keďže ste dosiahli nastavený limit pre mobilné dáta, na zariadení bola pre zvyšok tohto cyklu pozastavená spotreba dát.\n\nJej opätovné spustenie môže mať za následok účtovanie poplatkov vaším operátorom." + + "Znova spustiť" "Bez prip. na Internet" "Wi-Fi: pripojené" diff --git a/packages/SystemUI/res/values-sl/strings.xml b/packages/SystemUI/res/values-sl/strings.xml index 2ab93909c492..ce8a3dcd707a 100644 --- a/packages/SystemUI/res/values-sl/strings.xml +++ b/packages/SystemUI/res/values-sl/strings.xml @@ -242,7 +242,8 @@ "Prenos podatkov v omrežju 4G je zaustavljen" "Prenos mobilnih podatkov je zaustavljen" "Prenos podatkov je zaustavljen" - "Dosegli ste nastavljeno omejitev količine prenesenih podatkov, zato je naprava zaustavila porabo podatkov za preostanek cikla.\n\nČe nadaljujete s porabo, boste morda morali plačati stroške operaterju." + + "Nadaljuj" "Ni internetne povez." "Wi-Fi povezan" diff --git a/packages/SystemUI/res/values-sq-rAL/strings.xml b/packages/SystemUI/res/values-sq-rAL/strings.xml index 146964dfcdc1..aea5d3eedd4c 100644 --- a/packages/SystemUI/res/values-sq-rAL/strings.xml +++ b/packages/SystemUI/res/values-sq-rAL/strings.xml @@ -238,7 +238,8 @@ "Të dhënat 4G janë ndërprerë" "Të dhënat celulare janë ndërprerë" "Të dhënat janë ndërprerë" - "Pajisja jote ka ndërprerë përdorimin e të dhënave për pjesën e mbetur të ciklit sepse është arritur kufiri i caktuar i të dhënave.\n\nVazhdimi mund të sjellë tarifa nga operatori celular." + + "Rifillo" "Nuk ka lidhje interneti" "Wi-Fi është i lidhur" diff --git a/packages/SystemUI/res/values-sr/strings.xml b/packages/SystemUI/res/values-sr/strings.xml index b1270280b565..27285cdf1aa0 100644 --- a/packages/SystemUI/res/values-sr/strings.xml +++ b/packages/SystemUI/res/values-sr/strings.xml @@ -239,7 +239,8 @@ "4G подаци су паузирани" "Мобилни подаци су паузирани" "Подаци су паузирани" - "Због тога што сте достигли подешено ограничење за податке, уређај је паузирао коришћење података током остатка овог циклуса.\n\nАко наставите, мобилни оператер може да вам наплати додатне трошкове." + + "Настави" "Нема интернет везе" "Wi-Fi је повезан" diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml index 6b7eacc9513f..224d2337b792 100644 --- a/packages/SystemUI/res/values-sv/strings.xml +++ b/packages/SystemUI/res/values-sv/strings.xml @@ -238,7 +238,8 @@ "4G-data har pausats" "Mobildata har pausats" "Dataanvändningen har pausats" - "Eftersom du har nått den angivna datagränsen har dataanvändningen pausats under resten av perioden.\n\nOm du återupptar dataanvändningen kan avgifter från operatören tillkomma." + + "Återuppta" "Ingen anslutning" "Wi-Fi-ansluten" diff --git a/packages/SystemUI/res/values-sw/strings.xml b/packages/SystemUI/res/values-sw/strings.xml index c6bd735bb0bd..30b3eb785694 100644 --- a/packages/SystemUI/res/values-sw/strings.xml +++ b/packages/SystemUI/res/values-sw/strings.xml @@ -238,7 +238,8 @@ "Data ya 4G imesitishwa" "Data ya simu ya mkononi imesitishwa" "Data imesitishwa" - "Kwa sababu ulifikia kiwango cha juu cha data kilichowekwa, kifaa kimesitisha matumizi ya data katika awamu hii iliyosalia.\n\n Kuendelea kunaweza kusababisha malipo kwa mtoa huduma wako." + + "Endelea" "Hakuna muunganisho wa mtandao" "Mtandao-hewa umeunganishwa" diff --git a/packages/SystemUI/res/values-ta-rIN/strings.xml b/packages/SystemUI/res/values-ta-rIN/strings.xml index ae2e4b0a8904..b9aad8ae9611 100644 --- a/packages/SystemUI/res/values-ta-rIN/strings.xml +++ b/packages/SystemUI/res/values-ta-rIN/strings.xml @@ -238,7 +238,8 @@ "4G டேட்டா இடைநிறுத்தப்பட்டது" "செல்லுலார் தரவு இடைநிறுத்தப்பட்டது" "தரவு இடைநிறுத்தப்பட்டது" - "அமைக்கப்பட்ட தரவின் வரம்பை அடைந்துவிட்டதால், இந்தச் சுழற்சியின் மீதமுள்ள நாட்களுக்கான தரவுப் பயன்பாட்டைச் சாதனம் இடைநிறுத்தியுள்ளது.\n\nமீண்டும் தொடங்குவது, மொபைல் நிறுவனக் கட்டணங்களுக்கு உட்படுத்தலாம்." + + "மீண்டும் தொடங்கு" "இணைய இணைப்பு இல்லை" "வைஃபை இணைக்கப்பட்டது" diff --git a/packages/SystemUI/res/values-te-rIN/strings.xml b/packages/SystemUI/res/values-te-rIN/strings.xml index eb0aec3bb43b..202f5c180780 100644 --- a/packages/SystemUI/res/values-te-rIN/strings.xml +++ b/packages/SystemUI/res/values-te-rIN/strings.xml @@ -238,7 +238,8 @@ "4G డేటా పాజ్ చేయబడింది" "సెల్యులార్ డేటా పాజ్ చేయబడింది" "డేటా పాజ్ చేయబడింది" - "మీ సెట్ చేయబడిన డేటా పరిమితిని చేరుకున్నందున పరికరం ఈ సైకిల్‌లో మిగిలిన భాగానికి డేటా వినియోగాన్ని పాజ్ చేసింది.\n\nపునఃప్రారంభించడం వలన మీ క్యారియర్ ఛార్జీలు విధించవచ్చు." + + "పునఃప్రారంభించు" "ఇంటర్నెట్ కనెక్షన్ లేదు" "Wi-Fi కనెక్ట్ చేయబడింది" diff --git a/packages/SystemUI/res/values-th/strings.xml b/packages/SystemUI/res/values-th/strings.xml index f31bb027c661..ec3ed8702394 100644 --- a/packages/SystemUI/res/values-th/strings.xml +++ b/packages/SystemUI/res/values-th/strings.xml @@ -238,7 +238,8 @@ "หยุดการใช้ข้อมูล 4G ชั่วคราวแล้ว" "หยุดการใช้ข้อมูลมือถือชั่วคราวแล้ว" "หยุดการใช้ข้อมูลชั่วคราวแล้ว" - "เนื่องจากใช้งานข้อมูลถึงขีดจำกัดที่กำหนดไว้แล้ว อุปกรณ์จึงหยุดการใช้งานข้อมูลไว้ชั่วคราวตลอดระยะเวลาที่เหลือของรอบนี้\n\nการทำให้กลับมาทำงานอีกครั้งอาจทำให้เกิดค่าใช้จ่ายจากผู้ให้บริการ" + + "ทำต่อ" "ไม่มีอินเทอร์เน็ต" "เชื่อมต่อ WiFi แล้ว" diff --git a/packages/SystemUI/res/values-tl/strings.xml b/packages/SystemUI/res/values-tl/strings.xml index 97e1b15dace8..94524b70eee1 100644 --- a/packages/SystemUI/res/values-tl/strings.xml +++ b/packages/SystemUI/res/values-tl/strings.xml @@ -238,7 +238,8 @@ "Naka-pause ang 4G data" "Naka-pause ang cellular data" "Naka-pause ang data" - "Dahil naabot ang iyong nakatakdang limitasyon sa data, na-pause ng device ang paggamit ng data para sa nalalabing bahagi ng cycle na ito.\n\nMaaaring makakuha ng mga singilin mula sa iyong carrier ang pagpapatuloy." + + "Ipagpatuloy" "Walang koneksyon sa Internet" "nakakonekta ang Wi-Fi" diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml index f336b34811d9..e295e1621bf9 100644 --- a/packages/SystemUI/res/values-tr/strings.xml +++ b/packages/SystemUI/res/values-tr/strings.xml @@ -238,7 +238,8 @@ "4G veri kullanımı duraklatıldı" "Hücresel veri kullanımı duraklatıldı" "Veri kullanımı duraklatıldı" - "Ayarlanmış olan veri sınırınıza ulaşıldığından, bu dönemin kalan süresi için cihazda veri kullanımı duraklatıldı.\n\nVeri kullanımını devam ettirmek, operatörünüzün sizden ödeme almasına neden olabilir." + + "Devam ettir" "İnternet bağlantısı yok" "Kablosuz bağlandı" diff --git a/packages/SystemUI/res/values-uk/strings.xml b/packages/SystemUI/res/values-uk/strings.xml index b760eee433ee..ce50be5168bb 100644 --- a/packages/SystemUI/res/values-uk/strings.xml +++ b/packages/SystemUI/res/values-uk/strings.xml @@ -242,7 +242,8 @@ "Передавання даних 4G призупинено" "Передавання мобільних даних призупинено" "Передавання даних призупинено" - "Пристрій призупинив передавання даних до кінця цього циклу, оскільки ваш ліміт перевищено.\n\nЯкщо ви відновите передавання даних, оператор може стягувати додаткову плату." + + "Відновити" "Немає з’єднання" "Wi-Fi під’єднано" diff --git a/packages/SystemUI/res/values-ur-rPK/strings.xml b/packages/SystemUI/res/values-ur-rPK/strings.xml index de1c5fa44ae0..933cff4ced08 100644 --- a/packages/SystemUI/res/values-ur-rPK/strings.xml +++ b/packages/SystemUI/res/values-ur-rPK/strings.xml @@ -238,7 +238,8 @@ "‏4G ڈیٹا موقوف کر دیا گیا" "سیلولر ڈیٹا موقوف کر دیا گیا" "ڈیٹا موقوف کر دیا گیا" - "چونکہ آپ کی سیٹ کردہ ڈیٹا کی حد تک پہنچ گیا، لہذا آلہ نے اس سائیکل کے بقیہ حصے کیلئے ڈیٹا کے استعمال کو موقوف کر دیا ہے۔\n\nدوبارہ شروع کرنے سے آپ کے کیریئر سے چارجز لگ سکتے ہیں۔" + + "دوبارہ شروع کریں" "کوئی انٹرنیٹ کنکشن نہیں" "‏Wi-Fi مربوط ہے" diff --git a/packages/SystemUI/res/values-uz-rUZ/strings.xml b/packages/SystemUI/res/values-uz-rUZ/strings.xml index 4e054cb7c42b..e947f0bcc778 100644 --- a/packages/SystemUI/res/values-uz-rUZ/strings.xml +++ b/packages/SystemUI/res/values-uz-rUZ/strings.xml @@ -240,7 +240,8 @@ "4G internet to‘xtatib qo‘yildi" "Mobil internetdan foydalanish to‘xtatib qo‘yildi" "Internetdan foydalanish to‘xtatib qo‘yildi" - "Siz o‘rnatgan mobil internet chekloviga yetgani bois joriy hisob-kitob davrining qolgan muddati uchun mobil internetdan foydalanish vaqtinchalik to‘xtatib qo‘yildi.\n\nAgar internetdan foydalanishni davom ettirsangiz, buning uchun uyali aloqa operatoringiz ortiqcha haq talab qilishi mumkin." + + "Davom etish" "Internetga ulanmagan" "Wi-Fi ulandi" diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml index 775f7ff22e66..00161fb7cce0 100644 --- a/packages/SystemUI/res/values-vi/strings.xml +++ b/packages/SystemUI/res/values-vi/strings.xml @@ -238,7 +238,8 @@ "Đã tạm dừng dữ liệu 4G" "Đã tạm dừng dữ liệu di động" "Đã tạm dừng dữ liệu" - "Vì bạn đã đạt tới giới hạn dữ liệu thiết lập nên thiết bị đã tạm dừng sử dụng dữ liệu cho phần còn lại của chu kỳ này.\n\nTiếp tục có thể dẫn tới nhà cung cấp dịch vụ của bạn sẽ tính phí." + + "Tiếp tục" "Ko có k.nối Internet" "Đã kết nối Wi-Fi" diff --git a/packages/SystemUI/res/values-zh-rCN/strings.xml b/packages/SystemUI/res/values-zh-rCN/strings.xml index c25acac23580..49d07badcf2b 100644 --- a/packages/SystemUI/res/values-zh-rCN/strings.xml +++ b/packages/SystemUI/res/values-zh-rCN/strings.xml @@ -238,7 +238,8 @@ "4G 数据网络已暂停使用" "移动数据网络已暂停使用" "数据网络已暂停使用" - "由于使用的数据流量已达到您所设置的上限,因此您的设备已暂停在此周期的剩余时间内使用数据流量。\n\n如果恢复数据流量使用,您的运营商可能会向您收取相应费用。" + + "恢复" "未连接互联网" "已连接到WLAN网络" diff --git a/packages/SystemUI/res/values-zh-rHK/strings.xml b/packages/SystemUI/res/values-zh-rHK/strings.xml index 7cd2d5d79913..633f32a35e95 100644 --- a/packages/SystemUI/res/values-zh-rHK/strings.xml +++ b/packages/SystemUI/res/values-zh-rHK/strings.xml @@ -240,7 +240,8 @@ "已暫停 4G 數據" "已暫停流動數據" "已暫停使用數據" - "由於您已達到設定的數據用量上限,裝置已暫停使用數據,直到週期結束。\n\n如恢復使用數據,流動網絡供應商可能會向您收取費用。" + + "恢復" "沒有互聯網連線" "Wi-Fi 已連線" diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml index d7f6f704682f..81bbbf8af6c7 100644 --- a/packages/SystemUI/res/values-zh-rTW/strings.xml +++ b/packages/SystemUI/res/values-zh-rTW/strings.xml @@ -238,7 +238,8 @@ "已暫停 4G 數據連線" "已暫停行動數據連線" "已暫停數據連線" - "由於數據用量已達設定上限,裝置在這個週期的剩餘時間將暫停使用數據連線。\n\n如果恢復使用,行動通訊業者可能會向您收取額外的連線費用。" + + "恢復連線" "沒有網際網路連線" "Wi-Fi 已連線" diff --git a/packages/SystemUI/res/values-zu/strings.xml b/packages/SystemUI/res/values-zu/strings.xml index 72fb812c47bb..7117a80077b4 100644 --- a/packages/SystemUI/res/values-zu/strings.xml +++ b/packages/SystemUI/res/values-zu/strings.xml @@ -238,7 +238,8 @@ "4G idatha imisiwe" "Idatha yeselula imisiwe" "Idatha imisiwe" - "Ngoba umkhawulo wakho wedatha osethiwe ufinyelelwe, idivayisi imise kancane ukusetshenziswa kwedatha ngesikhumbuzi salo mjikelezo.\n\nUkuqhuba futhi kungaholela kuzindleko kusuka kwinkampani yakho yenethiwekhi." + + "Qalisa kabusha" "Alukho uxhumano lwe-Inthanethi" "I-Wi-Fi ixhunyiwe" -- GitLab From be11bc5f0a95e00a63018aa758d86eb253bab3b2 Mon Sep 17 00:00:00 2001 From: Jim Miller Date: Wed, 28 Sep 2016 20:33:06 -0700 Subject: [PATCH 594/809] Reset mCurrentUserId when fingerprintd died A template fingerprint data is not loaded in fingerprintd when fingerprintd is died and restarted. FigerprintService tries to set userId after a restart of fingerprintd, but it's skipped because the service tries to set same userId already set to mCurrentUserId. To load correct template fingerprint data, reset mCurrentUserId when fingerprintd died. Bug: 31734514 Change-Id: I6b8d4b5b685765fe33ef8e654593b615240748a8 --- .../java/com/android/server/fingerprint/FingerprintService.java | 1 + 1 file changed, 1 insertion(+) diff --git a/services/core/java/com/android/server/fingerprint/FingerprintService.java b/services/core/java/com/android/server/fingerprint/FingerprintService.java index 73c8469ca709..9e132f761087 100644 --- a/services/core/java/com/android/server/fingerprint/FingerprintService.java +++ b/services/core/java/com/android/server/fingerprint/FingerprintService.java @@ -195,6 +195,7 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe public void binderDied() { Slog.v(TAG, "fingerprintd died"); mDaemon = null; + mCurrentUserId = UserHandle.USER_CURRENT; handleError(mHalDeviceId, FingerprintManager.FINGERPRINT_ERROR_HW_UNAVAILABLE); } -- GitLab From 09d32855038caf024cb77728bf141f87a6688917 Mon Sep 17 00:00:00 2001 From: Svetoslav Ganov Date: Tue, 27 Sep 2016 18:12:22 -0700 Subject: [PATCH 595/809] Don't touch usage stats before system ready When a content provider is accessed we update its foreground state and usage stats if the calling app is in the foreground. However we install system providers before the PHASE_SYSTEM_SERVICES_READY phase which means we cannot touch the the usage stats service as it calls into the content service triggering the sync manager creation before system ready violating the contract of the latter causing cascading issues. bug:31562236 Change-Id: Ied446cf3de8949e0850bab8f2b92155eac793591 --- .../java/com/android/server/am/ActivityManagerService.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index b623bc790139..85d2981aaa96 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -20669,8 +20669,11 @@ public final class ActivityManagerService extends ActivityManagerNative final long now = SystemClock.elapsedRealtime(); Long lastReported = userState.mProviderLastReportedFg.get(authority); if (lastReported == null || lastReported < now - 60 * 1000L) { - mUsageStatsService.reportContentProviderUsage( - authority, providerPkgName, app.userId); + if (mSystemReady) { + // Cannot touch the user stats if not system ready + mUsageStatsService.reportContentProviderUsage( + authority, providerPkgName, app.userId); + } userState.mProviderLastReportedFg.put(authority, now); } } -- GitLab From e930d5a5f45e238b6b3562862305a32bb9b269e2 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Wed, 28 Sep 2016 22:47:48 -0700 Subject: [PATCH 596/809] Import translations. DO NOT MERGE Change-Id: I0dcb3da3295eebdc6757f614a44aac04396eade0 Auto-generated-cl: translation import --- packages/SettingsLib/res/values-ja/strings.xml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/SettingsLib/res/values-ja/strings.xml b/packages/SettingsLib/res/values-ja/strings.xml index 812f53d28456..f657c1e21687 100644 --- a/packages/SettingsLib/res/values-ja/strings.xml +++ b/packages/SettingsLib/res/values-ja/strings.xml @@ -28,10 +28,8 @@ "WiFi接続エラー" "認証に問題" "圏外" - - - - + "インターネット アクセスを検出できないため、自動的に再接続されません。" + "インターネットに接続していません。" "%1$sで保存" "Wi‑Fiアシスタント経由で接続" "%1$s経由で接続" -- GitLab From e782434cc82b72754c7a1fb542f8d46ff6d0cfb1 Mon Sep 17 00:00:00 2001 From: David Friedman Date: Fri, 2 Sep 2016 18:11:53 -0700 Subject: [PATCH 597/809] Doc: New page in DAC Performance section: how to reduce overdraw in apps. Bug: 31314359 Change-Id: Iecff68c1bfe16767b27e7cace8ab4bd4a91497b8 --- docs/html/topic/performance/overdraw.jd | 197 ++++++++++++++++++++++++ 1 file changed, 197 insertions(+) create mode 100644 docs/html/topic/performance/overdraw.jd diff --git a/docs/html/topic/performance/overdraw.jd b/docs/html/topic/performance/overdraw.jd new file mode 100644 index 000000000000..c1feff57a26b --- /dev/null +++ b/docs/html/topic/performance/overdraw.jd @@ -0,0 +1,197 @@ +page.title=Reducing Overdraw +page.metaDescription=Improve performance by reducing unnecessary rendering. + +meta.tags="performance" +page.tags="performance" + +@jd:body + + + +

      +An app may draw the same pixel more than once within a single frame, an event +called overdraw. Overdraw is usually unnecessary, and best +eliminated. It manifests itself as a performance problem by wasting GPU time to +render pixels that don't contribute to what the user sees on the screen. +

      + +

      +This document explains overdraw: what it is, how to diagnose it, and actions you +can take to eliminate or mitigate it. +

      + +

      Understanding Overdraw

      + +

      +Overdraw refers to the system's drawing a pixel on the screen multiple times +in a single frame of rendering. For example, if we have a bunch of stacked UI +cards, each card hides a portion of the one below it. +

      + +

      +However, the system still needs to draw even the hidden portions of the cards +in the stack. This is because stacked cards are rendered according to the +painter's +algorithm: that is, in back-to-front order. +This sequence of rendering allows the system to apply proper alpha blending to +translucent objects such as shadows. +

      + +

      Finding Overdraw Problems

      + +

      +The platform offers several tools to help you determine if overdraw is +affecting your app's performance. These tools are available right on the device, +and accessible by turning on Developer Settings under +Settings. For more information about device developer settings, see +Run Apps on a +Hardware Device. +

      + +

      Debug GPU overdraw tool

      + +

      +The Debug GPU Overdraw tool uses color-coding to show the number of times your +app draws each pixel on the screen. The higher this count, the +more likely it is that overdraw affects your app's performance. +

      + +

      +For more information on how to use the tool, refer to the related +walkthrough +and + +codelab. +

      + +

      Profile GPU rendering tool

      + +

      +The Profile GPU Rendering tool displays, as a scrolling histogram, the time +each stage of the rendering pipeline takes to display a single frame. The +Process part of each bar, indicated in orange, shows when the system +is swapping buffers; this metric provides important clues about overdraw. +

      + +

      +On less performant GPUs, available fill-rate (the speed at which the GPU can +fill the frame buffer) can be quite low. As the number of +pixels required to draw a frame increases, the GPU may take longer to process +new commands, and ask the rest of the system to wait until it can catch up. +The Process bar shows that this spike happens as the GPU gets +overwhelmed trying to draw pixels as fast as possible. Issues other than +raw numbers of pixels may also cause this metric to spike. For example, +if the Debug GPU Overdraw tool shows heavy overdraw and Process spikes, +there's likely an issue with overdraw. +

      + +

      Note: The + +Profile GPU Rendering tool does not +work with apps that use the NDK. This is because the system pushes framework +messages to the background whenever OpenGL takes a full-screen context. In +such cases, you may find a profiling tool provided by the GPU manufacturer +helpful.

      + +

      Fixing Overdraw

      + +

      +There are several strategies you can pursue to reduce or eliminate overdraw: +

      + +
        +
      • Removing unneeded backgrounds in layouts.
      • +
      • Flattening the view hierarchy.
      • +
      • Reducing transparency.
      • +
      + +

      +This section provides information about each of these approaches. +

      + +

      Removing unneeded backgrounds in layouts

      + +

      +By default, a layout does not have a background, which means it does not render +anything directly by itself. When layouts do have backgrounds, however, they may +contribute to overdraw. +

      + +

      +Removing unnecessary backgrounds is a quick way of improving rendering +performance. An unnecessary background may never be visible because it's +completely covered by everything else the app is drawing on top of that +view. For example, the system may entirely cover up a parent's +background when it draws child views on top of it. +

      + +

      +To find out why you're overdrawing, walk through the hierarchy in +the Hierarchy Viewer tool. +As you do so, look out for any backgrounds you can eliminate because +they are not visible to the user. Cases where many containers share a +common background color offer another opportunity to eliminate unneeded +backgrounds: You can set the window background to the main background color +of your app, and leave all of the containers above it with no background values +defined. +

      + +

      Flattening view hierarchy

      + +

      +Modern layouts make it easy to stack and layer views to produce beautiful +design. However, doing so can degrade performance by resulting in overdraw, +especially in scenarios where each stacked view object is opaque, requiring the +drawing of both seen and unseen pixels to the screen. +

      + +

      +If you encounter this sort of issue, you may be able to improve performance by +optimizing your view hierarchy to reduce the number of overlapping UI objects. +For more information about how to accomplish this, see +Optimizing View +Hierarchies. +

      + +

      Reducing transparency

      + +

      +Rendering of transparent pixels on screen, known as alpha rendering, is a key +contributor to overdraw. Unlike standard overdraw, +in which the system completely hides existing drawn pixels by drawing +opaque pixels on top of them, transparent +objects require existing pixels to be drawn first, so that the right blending +equation can occur. Visual effects like transparent animations, fade-outs, and +drop shadows all involve some sort of transparency, and can therefore contribute +significantly to overdraw. You can improve overdraw in these situations by +reducing the number of transparent objects you render. For example, you can get +gray text by drawing black text in a {@link android.widget.TextView} with a +translucent alpha value set on it. But you can get the same effect with far +better performance by simply drawing the text in gray. +

      + +

      +To learn more about performance costs that transparency imposes throughout the +entire drawing pipeline, watch the video + +Hidden Costs of Transparency. +

      + -- GitLab From b202c67b00674f151e0a3824d057ee901c61609e Mon Sep 17 00:00:00 2001 From: David Friedman Date: Fri, 2 Sep 2016 11:19:18 -0700 Subject: [PATCH 598/809] Docs: New "Power" area for "Performance" section on DAC. Bug: 31314206 Change-Id: I918843bd8b703e2b267d5646658de3599d4ab037 --- docs/html/topic/performance/_book.yaml | 51 +++++---- docs/html/topic/performance/power/index.jd | 125 +++++++++++++++++++++ 2 files changed, 156 insertions(+), 20 deletions(-) create mode 100644 docs/html/topic/performance/power/index.jd diff --git a/docs/html/topic/performance/_book.yaml b/docs/html/topic/performance/_book.yaml index e053a2c1bdfe..6da92796dc9f 100644 --- a/docs/html/topic/performance/_book.yaml +++ b/docs/html/topic/performance/_book.yaml @@ -1,25 +1,38 @@ toc: -- title: Reducing Network Battery Drain - path: /topic/performance/power/network/index.html +- title: Optimizing for Battery Life + path: /topic/performance/power/index.html path_attributes: - name: description - value: Access the network while going easy on battery life. + value: Learn to make your app more battery-friendly. section: - - title: Collecting Network Traffic Data - path: /topic/performance/power/network/gather-data.html - - title: Analyzing Network Traffic Data - path: /topic/performance/power/network/analyze-data.html - - title: Optimizing User-Initiated Network Use - path: /topic/performance/power/network/action-user-traffic.html - - title: Optimizing Server-Initiated Network Use - path: /topic/performance/power/network/action-server-traffic.html - - title: Optimizing General Network Use - path: /topic/performance/power/network/action-any-traffic.html -- title: Implementing Doze - path: /training/monitoring-device-state/doze-standby.html - path_attributes: - - name: description - value: Help ensure the device isn't depleting the battery when not in use. + - title: Network Use and Battery Consumption + path: /topic/performance/power/network/index.html + section: + - title: Analyzing Data Traffic + path: /topic/performance/power/network/analyze-data.html + - title: Optimizing User-Initiated Network Use + path: /topic/performance/power/network/action-user-traffic.html + - title: Optimizing Server-Initiated Network Use + path: /topic/performance/power/network/action-server-traffic.html + - title: Optimizing General Network Use + path: /topic/performance/power/network/action-any-traffic.html + - title: Smaller Network Resources + path: /topic/performance/power/smaller-resources.html + - title: Doze and App Standby + path: /training/monitoring-device-state/doze-standby.html + path_attributes: + - name: description + value: Help ensure the device isn't depleting the battery when not in use. + - title: Battery Historian + path: /topic/performance/power/battery-historian.html +- title: Reducing Overdraw + path: /topic/performance/overdraw.html +- title: Using the Profile GPU Tool + path: /topic/performance/profile-gpu.html +- title: Intelligent Job-Scheduling + path: /topic/performance/scheduling.html +- title: Reducing Image Download Sizes + path: /topic/performance/network-xfer.html - title: Launch-Time Performance path: /topic/performance/launch-time.html - title: Better Performance through Threading @@ -28,7 +41,5 @@ toc: path: /topic/performance/optimizing-view-hierarchies.html - title: Background Optimization path: /topic/performance/background-optimization.html -- title: Intelligent Job-Scheduling - path: /topic/performance/scheduling.html - title: Reducing APK Size path: /topic/performance/reduce-apk-size.html diff --git a/docs/html/topic/performance/power/index.jd b/docs/html/topic/performance/power/index.jd new file mode 100644 index 000000000000..88addcea1f71 --- /dev/null +++ b/docs/html/topic/performance/power/index.jd @@ -0,0 +1,125 @@ +page.title=Optimizing for Battery Life +page.metaDescription=Learn how to help your app go easier on the battery. + +meta.tags="performance" +page.tags="performance" + +@jd:body + +
      +
      +

      + In this document +

      +
        +
      1. + Lazy First +
      2. +
      3. + Platform Features +
      4. +
      5. + Tooling +
      6. +
      +
      +
      + +

      Battery life is the single most important aspect of the mobile user +experience. A device without power offers no functionality at all. +For this reason, it is critically important that apps be as respectful of +battery life as possible.

      + +

      There are three important things to keep in mind in keeping your app +power-thrifty:

      +
        +
      • Make your apps Lazy First.
      • +
      • Take advantage of platform features that can help manage your app's battery +consumption.
      • +
      • Use tools that can help you identify battery-draining culprits.
      • +
      + +

      Lazy First

      + +

      Making your app Lazy First means looking for ways to reduce and optimize +operations that are particularly battery-intensive. The core questions +underpinning Lazy First design are: + +

        + +
      • Reduce: Are there redundant operations your app can cut +out? For example, can it cache downloaded data instead of repeatedly waking + up the radio to re-download the data?
      • + +
      • Defer: Does an app need to perform an action right + away? For example, + can it wait until the device is charging before it backs data up to the + cloud?
      • + +
      • Coalesce: Can work be batched, instead of putting the + device + into an active state many times? For example, is it really necessary for + several dozen apps to each turn on the radio at separate times to send + their messages? Can the messages instead be transmitted during a + single awakening of the radio?
      • +
      + +

      +You should ask these questions when it comes to using the CPU, +the radio, and the screen. Lazy First design is often a good way +to tame these battery killers. +

      + +

      +To help you achieve these and other efficiencies, the Android platform +provides a number of features to help maximize battery life. +

      + +

      Platform Features

      + +

      +Broadly speaking, the Android platform provides two categories of help +for you to optimize your app's battery use. First, it provides several +APIs that you can implement in your app. You can learn more about these APIs in +Intelligent Job Scheduling +and +Network Use and Battery Consumption. +

      + +

      +There are also internal mechanisms in the platform to help conserve +battery life. While they are not APIs that you implement programmatically, +you should still be aware of them so that your app can leverage them +successfully. For more information, see +Doze and +App Standby.

      + +

      +You can get even more benefit out of these features by using the tools +available for the platform to discover the parts of your app that consume +the most power. Finding what to target is a big step toward +successful optimization. +

      + +

      Tooling

      + +

      There are tools for Android, including +Profile GPU Rendering +and Battery Historian +to help you identify areas that you can optimize for better battery life. +Take advantage of these tools to target areas where you can apply the +principles of Lazy First. +

      + +
      +

      More resources

      +
      +
      +
      -- GitLab From 62a40f87b3f45cbd20fea101d977153e9a933891 Mon Sep 17 00:00:00 2001 From: Svet Ganov Date: Thu, 29 Sep 2016 00:43:51 -0700 Subject: [PATCH 599/809] Add a missing case when detecting if a toast can be added We allow only one toast window per UID to be added at a time. We ignore windows that run exit animation but we should also ignore windows that should be removed after the exit animation. bug:31340854 Change-Id: I51c21f2c0e04341697f61e4cc107f9116254b206 --- services/core/java/com/android/server/wm/DisplayContent.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index b90b864318f0..12399bd44b39 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -697,7 +697,8 @@ class DisplayContent { for (int i = 0; i < windowCount; i++) { WindowState window = windows.get(i); if (window.mAttrs.type == TYPE_TOAST && window.mOwnerUid == uid - && !window.mPermanentlyHidden && !window.mAnimatingExit) { + && !window.mPermanentlyHidden && !window.mAnimatingExit + && !window.mRemoveOnExit) { return false; } } -- GitLab From 92d0602a7ce9b87a2c712215d97fb8f6df2fd2c2 Mon Sep 17 00:00:00 2001 From: Jorim Jaggi Date: Thu, 29 Sep 2016 16:25:17 +0200 Subject: [PATCH 600/809] Fix crash if drawable doesn't have constant state Change-Id: I2364efb9dc1446bc1a8c50abf6bd34a73c226f7e Fixes: 31755893 --- .../com/android/internal/policy/BackdropFrameRenderer.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/java/com/android/internal/policy/BackdropFrameRenderer.java b/core/java/com/android/internal/policy/BackdropFrameRenderer.java index 619303f34c32..1abb59b006dd 100644 --- a/core/java/com/android/internal/policy/BackdropFrameRenderer.java +++ b/core/java/com/android/internal/policy/BackdropFrameRenderer.java @@ -110,12 +110,15 @@ public class BackdropFrameRenderer extends Thread implements Choreographer.Frame int statusBarColor, int navigationBarColor) { mDecorView = decorView; mResizingBackgroundDrawable = resizingBackgroundDrawable != null + && resizingBackgroundDrawable.getConstantState() != null ? resizingBackgroundDrawable.getConstantState().newDrawable() : null; mCaptionBackgroundDrawable = captionBackgroundDrawableDrawable != null + && captionBackgroundDrawableDrawable.getConstantState() != null ? captionBackgroundDrawableDrawable.getConstantState().newDrawable() : null; mUserCaptionBackgroundDrawable = userCaptionBackgroundDrawable != null + && userCaptionBackgroundDrawable.getConstantState() != null ? userCaptionBackgroundDrawable.getConstantState().newDrawable() : null; if (mCaptionBackgroundDrawable == null) { -- GitLab From 448489a991773b58f4be4ef06553a8a0b235f78b Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Thu, 29 Sep 2016 10:55:10 -0700 Subject: [PATCH 601/809] Work on issue #29422027: APR: Runtime restarts in system_server More debugability. Change-Id: I93b8e2ac63a25ca43d0eaedfcf8262ba92bc15d5 --- services/core/java/com/android/server/am/BroadcastQueue.java | 3 ++- services/core/java/com/android/server/am/BroadcastRecord.java | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/am/BroadcastQueue.java b/services/core/java/com/android/server/am/BroadcastQueue.java index f78f29c4ac6d..8b8e2c4097c2 100644 --- a/services/core/java/com/android/server/am/BroadcastQueue.java +++ b/services/core/java/com/android/server/am/BroadcastQueue.java @@ -227,7 +227,8 @@ public final class BroadcastQueue { public final boolean replaceParallelBroadcastLocked(BroadcastRecord r) { for (int i = mParallelBroadcasts.size() - 1; i >= 0; i--) { - if (r.intent.filterEquals(mParallelBroadcasts.get(i).intent)) { + final Intent curIntent = mParallelBroadcasts.get(i).intent; + if (r.intent.filterEquals(curIntent)) { if (DEBUG_BROADCAST) Slog.v(TAG_BROADCAST, "***** DROPPING PARALLEL [" + mQueueName + "]: " + r.intent); diff --git a/services/core/java/com/android/server/am/BroadcastRecord.java b/services/core/java/com/android/server/am/BroadcastRecord.java index 3437ae6195f6..1e7911a25f50 100644 --- a/services/core/java/com/android/server/am/BroadcastRecord.java +++ b/services/core/java/com/android/server/am/BroadcastRecord.java @@ -219,6 +219,9 @@ final class BroadcastRecord extends Binder { int _resultCode, String _resultData, Bundle _resultExtras, boolean _serialized, boolean _sticky, boolean _initialSticky, int _userId) { + if (_intent == null) { + throw new NullPointerException("Can't construct with a null intent"); + } queue = _queue; intent = _intent; targetComp = _intent.getComponent(); -- GitLab From bc243a962702cfa6fa9cdc56356e996a77acd307 Mon Sep 17 00:00:00 2001 From: Selim Cinek Date: Tue, 27 Sep 2016 16:35:13 -0700 Subject: [PATCH 602/809] Fixed a few bugs regarding big notification groups The overscrolling was listening to the paddingOverflow which didn't make sense. Also, we need to update the top padding if the height of the first element changes. This also fixes several cases where the notification size was wrong when the quick settings panel was expanded. It also fixes some flickering regarding the TopPaddingoverflow which was going rogue in a few cases. The transition from the locked shade is thereby also improved. Change-Id: I703ea27879b325c02a15fdacee3b58f5ef78fd20 Fixes: 30801139 --- .../phone/NotificationPanelView.java | 24 ++++--- .../statusbar/stack/AmbientState.java | 11 +-- .../stack/NotificationStackScrollLayout.java | 72 +++++++++++-------- 3 files changed, 65 insertions(+), 42 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java index f4b41bbf8eca..ae752293a423 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java @@ -328,7 +328,7 @@ public class NotificationPanelView extends PanelView implements } else if (!mQsExpanded) { setQsExpansion(mQsMinExpansionHeight + mLastOverscroll); } - updateStackHeight(getExpandedHeight()); + updateExpandedHeight(getExpandedHeight()); updateHeader(); // If we are running a size change animation, the animation takes care of the height of @@ -376,10 +376,7 @@ public class NotificationPanelView extends PanelView implements boolean animate = mNotificationStackScroller.isAddOrRemoveAnimationPending(); int stackScrollerPadding; if (mStatusBarState != StatusBarState.KEYGUARD) { - int bottom = mQsContainer.getHeader().getHeight(); - stackScrollerPadding = mStatusBarState == StatusBarState.SHADE - ? bottom + mQsPeekHeight - : mKeyguardStatusBar.getHeight(); + stackScrollerPadding = mQsContainer.getHeader().getHeight() + mQsPeekHeight; mTopPaddingAdjustment = 0; } else { mClockPositionAlgorithm.setup( @@ -1166,6 +1163,7 @@ public class NotificationPanelView extends PanelView implements private void updateQsState() { mQsContainer.setExpanded(mQsExpanded); + mNotificationStackScroller.setQsExpanded(mQsExpanded); mNotificationStackScroller.setScrollingEnabled( mStatusBarState != StatusBarState.KEYGUARD && (!mQsExpanded || mQsExpansionFromOverscroll)); @@ -1427,7 +1425,7 @@ public class NotificationPanelView extends PanelView implements setQsExpansion(mQsMinExpansionHeight + t * (getTempQsMaxExpansion() - mQsMinExpansionHeight)); } - updateStackHeight(expandedHeight); + updateExpandedHeight(expandedHeight); updateHeader(); updateUnlockIcon(); updateNotificationTranslucency(); @@ -1487,7 +1485,7 @@ public class NotificationPanelView extends PanelView implements maxQsHeight, mStatusBarState == StatusBarState.KEYGUARD ? mClockPositionResult.stackScrollerPadding - mTopPaddingAdjustment : 0) - + notificationHeight; + + notificationHeight + mNotificationStackScroller.getTopPaddingOverflow(); if (totalHeight > mNotificationStackScroller.getHeight()) { float fullyCollapsedHeight = maxQsHeight + mNotificationStackScroller.getLayoutMinHeight(); @@ -1730,6 +1728,14 @@ public class NotificationPanelView extends PanelView implements if (view == null && mQsExpanded) { return; } + ExpandableView firstChildNotGone = mNotificationStackScroller.getFirstChildNotGone(); + ExpandableNotificationRow firstRow = firstChildNotGone instanceof ExpandableNotificationRow + ? (ExpandableNotificationRow) firstChildNotGone + : null; + if (firstRow != null + && (view == firstRow || (firstRow.getNotificationParent() == firstRow))) { + requestScrollerTopPaddingUpdate(false); + } requestPanelHeightUpdate(); } @@ -2249,8 +2255,8 @@ public class NotificationPanelView extends PanelView implements mQsAutoReinflateContainer.setTranslationX(translation); } - protected void updateStackHeight(float stackHeight) { - mNotificationStackScroller.setStackHeight(stackHeight); + protected void updateExpandedHeight(float expandedHeight) { + mNotificationStackScroller.setExpandedHeight(expandedHeight); updateKeyguardBottomAreaAlpha(); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/AmbientState.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/AmbientState.java index 50e5b886488a..81da6720828a 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/AmbientState.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/AmbientState.java @@ -43,6 +43,7 @@ public class AmbientState { private boolean mShadeExpanded; private float mMaxHeadsUpTranslation; private boolean mDismissAllInProgress; + private int mLayoutMinHeight; public int getScrollY() { return mScrollY; @@ -137,10 +138,6 @@ public class AmbientState { mStackTranslation = stackTranslation; } - public int getLayoutHeight() { - return mLayoutHeight; - } - public void setLayoutHeight(int layoutHeight) { mLayoutHeight = layoutHeight; } @@ -154,7 +151,7 @@ public class AmbientState { } public int getInnerHeight() { - return mLayoutHeight - mTopPadding; + return Math.max(mLayoutHeight - mTopPadding, mLayoutMinHeight); } public boolean isShadeExpanded() { @@ -180,4 +177,8 @@ public class AmbientState { public boolean isDismissAllInProgress() { return mDismissAllInProgress; } + + public void setLayoutMinHeight(int layoutMinHeight) { + mLayoutMinHeight = layoutMinHeight; + } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java index 84a2770841b0..e87adae01b18 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java @@ -111,11 +111,7 @@ public class NotificationStackScrollLayout extends ViewGroup private int mCurrentStackHeight = Integer.MAX_VALUE; private final Paint mBackgroundPaint = new Paint(); - /** - * mCurrentStackHeight is the actual stack height, mLastSetStackHeight is the stack height set - * externally from {@link #setStackHeight} - */ - private float mLastSetStackHeight; + private float mExpandedHeight; private int mOwnScrollY; private int mMaxLayoutHeight; @@ -354,6 +350,7 @@ public class NotificationStackScrollLayout extends ViewGroup return object.getBackgroundFadeAmount(); } }; + private boolean mQsExpanded; public NotificationStackScrollLayout(Context context) { this(context, null); @@ -519,6 +516,7 @@ public class NotificationStackScrollLayout extends ViewGroup clampScrollPosition(); requestChildrenUpdate(); updateFirstAndLastBackgroundViews(); + updateAlgorithmLayoutMinHeight(); } private void requestAnimationOnViewResize(ExpandableNotificationRow row) { @@ -560,9 +558,14 @@ public class NotificationStackScrollLayout extends ViewGroup private void updateAlgorithmHeightAndPadding() { mAmbientState.setLayoutHeight(getLayoutHeight()); + updateAlgorithmLayoutMinHeight(); mAmbientState.setTopPadding(mTopPadding); } + private void updateAlgorithmLayoutMinHeight() { + mAmbientState.setLayoutMinHeight(mQsExpanded && !onKeyguard() ? getLayoutMinHeight() : 0); + } + /** * Updates the children views according to the stack scroll algorithm. Call this whenever * modifications to {@link #mOwnScrollY} are performed to reflect it in the view layout. @@ -659,19 +662,19 @@ public class NotificationStackScrollLayout extends ViewGroup } /** - * Update the height of the stack to a new height. + * Update the height of the panel. * - * @param height the new height of the stack + * @param height the expanded height of the panel */ - public void setStackHeight(float height) { - mLastSetStackHeight = height; + public void setExpandedHeight(float height) { + mExpandedHeight = height; setIsExpanded(height > 0.0f); int stackHeight; float translationY; float appearEndPosition = getAppearEndPosition(); float appearStartPosition = getAppearStartPosition(); if (height >= appearEndPosition) { - translationY = mTopPaddingOverflow; + translationY = 0; stackHeight = (int) height; } else { float appearFraction = getAppearFraction(height); @@ -698,8 +701,12 @@ public class NotificationStackScrollLayout extends ViewGroup * Measured relative to the resting position. */ private float getExpandTranslationStart() { - int startPosition = mTrackingHeadsUp || mHeadsUpManager.hasPinnedHeadsUp() - ? 0 : -getFirstChildIntrinsicHeight(); + int startPosition = 0; + if (!mTrackingHeadsUp && !mHeadsUpManager.hasPinnedHeadsUp()) { + startPosition = - Math.min(getFirstChildIntrinsicHeight(), + mMaxLayoutHeight - mIntrinsicPadding - mBottomStackSlowDownHeight + - mBottomStackPeekSize); + } return startPosition - mTopPadding; } @@ -722,7 +729,7 @@ public class NotificationStackScrollLayout extends ViewGroup ? mHeadsUpManager.getTopHeadsUpPinnedHeight() + mBottomStackPeekSize + mBottomStackSlowDownHeight : getLayoutMinHeight(); - return firstItemHeight + mTopPadding + mTopPaddingOverflow; + return firstItemHeight + (onKeyguard() ? mTopPadding : mIntrinsicPadding); } /** @@ -1152,6 +1159,10 @@ public class NotificationStackScrollLayout extends ViewGroup @Override public boolean isAntiFalsingNeeded() { + return onKeyguard(); + } + + private boolean onKeyguard() { return mPhoneStatusBar.getBarState() == StatusBarState.KEYGUARD; } @@ -2122,26 +2133,22 @@ public class NotificationStackScrollLayout extends ViewGroup */ public void updateTopPadding(float qsHeight, boolean animate, boolean ignoreIntrinsicPadding) { - float start = qsHeight; - float stackHeight = getHeight() - start; + int topPadding = (int) qsHeight; int minStackHeight = getLayoutMinHeight(); - if (stackHeight <= minStackHeight) { - float overflow = minStackHeight - stackHeight; - stackHeight = minStackHeight; - start = getHeight() - stackHeight; - mTopPaddingOverflow = overflow; + if (topPadding + minStackHeight > getHeight()) { + mTopPaddingOverflow = topPadding + minStackHeight - getHeight(); } else { mTopPaddingOverflow = 0; } - setTopPadding(ignoreIntrinsicPadding ? (int) start : clampPadding((int) start), + setTopPadding(ignoreIntrinsicPadding ? topPadding : clampPadding(topPadding), animate); - setStackHeight(mLastSetStackHeight); + setExpandedHeight(mExpandedHeight); } public int getLayoutMinHeight() { int firstChildMinHeight = getFirstChildIntrinsicHeight(); return Math.min(firstChildMinHeight + mBottomStackPeekSize + mBottomStackSlowDownHeight, - mMaxLayoutHeight - mTopPadding); + mMaxLayoutHeight - mIntrinsicPadding); } public int getFirstChildIntrinsicHeight() { @@ -3088,10 +3095,14 @@ public class NotificationStackScrollLayout extends ViewGroup updateScrollPositionOnExpandInBottom(view); clampScrollPosition(); notifyHeightChangeListener(view); + ExpandableNotificationRow row = view instanceof ExpandableNotificationRow + ? (ExpandableNotificationRow) view + : null; + if (row != null && (row == mFirstVisibleBackgroundChild + || row.getNotificationParent() == mFirstVisibleBackgroundChild)) { + updateAlgorithmLayoutMinHeight(); + } if (needsAnimation) { - ExpandableNotificationRow row = view instanceof ExpandableNotificationRow - ? (ExpandableNotificationRow) view - : null; requestAnimationOnViewResize(row); } requestChildrenUpdate(); @@ -3374,7 +3385,7 @@ public class NotificationStackScrollLayout extends ViewGroup } private int findDarkAnimationOriginIndex(@Nullable PointF screenLocation) { - if (screenLocation == null || screenLocation.y < mTopPadding + mTopPaddingOverflow) { + if (screenLocation == null || screenLocation.y < mTopPadding) { return AnimationEvent.DARK_ANIMATION_ORIGIN_INDEX_ABOVE; } if (screenLocation.y > getBottomMostNotificationBottom()) { @@ -3858,6 +3869,11 @@ public class NotificationStackScrollLayout extends ViewGroup mCurrentStackScrollState.removeViewStateForView(view); } + public void setQsExpanded(boolean qsExpanded) { + mQsExpanded = qsExpanded; + updateAlgorithmLayoutMinHeight(); + } + /** * A listener that is notified when some child locations might have changed. */ @@ -4081,7 +4097,7 @@ public class NotificationStackScrollLayout extends ViewGroup onDragCancelled(animView); // If we're on the lockscreen we want to false this. - if (mPhoneStatusBar.getBarState() == StatusBarState.KEYGUARD) { + if (isAntiFalsingNeeded()) { mHandler.removeCallbacks(mFalsingCheck); mHandler.postDelayed(mFalsingCheck, COVER_GEAR_DELAY); } -- GitLab From 9dd4194185a75aad1688bf70a9640c44f05ce1bd Mon Sep 17 00:00:00 2001 From: sreevanis Date: Thu, 29 Sep 2016 12:17:09 -0700 Subject: [PATCH 603/809] docs: Added account sync know issue. Bug:31822936 Change-Id: Idd32638eb6819a5a8c6a5c772c70714e7391e75d --- docs/html/wear/preview/support.jd | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/docs/html/wear/preview/support.jd b/docs/html/wear/preview/support.jd index 7636d863aa8c..6006627a4e16 100644 --- a/docs/html/wear/preview/support.jd +++ b/docs/html/wear/preview/support.jd @@ -319,6 +319,22 @@ page.tags="preview", "developer preview"
    23. +

      + Account sync +

      + +
        +
      • Account sync initiated from watch settings may not work reliably. + Instead, add accounts from the setup flow of the Android Wear app, or using + the Accounts settings for a device from the Android Wear app. +
      • + +
      • The list of accounts that can be synced is the same as the list of accounts + on the phone. So to add a new account, use the Android settings on the phone, + and then proceed to Android Wear app to sync that account. +
      • +
      +

      Devices

      -- GitLab From 1602d098cebb2d7ac48c2656394cad9ef9a5c99e Mon Sep 17 00:00:00 2001 From: Svetoslav Ganov Date: Tue, 27 Sep 2016 18:12:22 -0700 Subject: [PATCH 604/809] Don't touch usage stats before system ready When a content provider is accessed we update its foreground state and usage stats if the calling app is in the foreground. However we install system providers before the PHASE_SYSTEM_SERVICES_READY phase which means we cannot touch the the usage stats service as it calls into the content service triggering the sync manager creation before system ready violating the contract of the latter causing cascading issues. bug:31562236 Change-Id: Ied446cf3de8949e0850bab8f2b92155eac793591 (cherry picked from commit 09d32855038caf024cb77728bf141f87a6688917) --- .../java/com/android/server/am/ActivityManagerService.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index b623bc790139..85d2981aaa96 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -20669,8 +20669,11 @@ public final class ActivityManagerService extends ActivityManagerNative final long now = SystemClock.elapsedRealtime(); Long lastReported = userState.mProviderLastReportedFg.get(authority); if (lastReported == null || lastReported < now - 60 * 1000L) { - mUsageStatsService.reportContentProviderUsage( - authority, providerPkgName, app.userId); + if (mSystemReady) { + // Cannot touch the user stats if not system ready + mUsageStatsService.reportContentProviderUsage( + authority, providerPkgName, app.userId); + } userState.mProviderLastReportedFg.put(authority, now); } } -- GitLab From 4989f06937105023bdf841748dc5e4052c631d05 Mon Sep 17 00:00:00 2001 From: Svet Ganov Date: Thu, 29 Sep 2016 00:43:51 -0700 Subject: [PATCH 605/809] Add a missing case when detecting if a toast can be added We allow only one toast window per UID to be added at a time. We ignore windows that run exit animation but we should also ignore windows that should be removed after the exit animation. bug:31340854 Change-Id: I51c21f2c0e04341697f61e4cc107f9116254b206 (cherry picked from commit 62a40f87b3f45cbd20fea101d977153e9a933891) --- services/core/java/com/android/server/wm/DisplayContent.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index b90b864318f0..12399bd44b39 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -697,7 +697,8 @@ class DisplayContent { for (int i = 0; i < windowCount; i++) { WindowState window = windows.get(i); if (window.mAttrs.type == TYPE_TOAST && window.mOwnerUid == uid - && !window.mPermanentlyHidden && !window.mAnimatingExit) { + && !window.mPermanentlyHidden && !window.mAnimatingExit + && !window.mRemoveOnExit) { return false; } } -- GitLab From 47876e79de8c4a05b054a12fc2045910326788cd Mon Sep 17 00:00:00 2001 From: Hemal Patel Date: Fri, 16 Sep 2016 14:03:06 -0700 Subject: [PATCH 606/809] Docs: Added info about vector drawable Added overview of vector drawable in the class overview section. Bug: 25129687 Change-Id: I976177ddd3a8bddcbc6544cbc227b6b2099c7b0a --- graphics/java/android/graphics/drawable/Drawable.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/graphics/java/android/graphics/drawable/Drawable.java b/graphics/java/android/graphics/drawable/Drawable.java index 7f3a4373639b..31019ce5e070 100644 --- a/graphics/java/android/graphics/drawable/Drawable.java +++ b/graphics/java/android/graphics/drawable/Drawable.java @@ -109,6 +109,9 @@ import java.util.Collection; *
    24. Nine Patch: an extension to the PNG format allows it to * specify information about how to stretch it and place things inside of * it. + *
    25. Vector: a drawable defined in an XML file as a set of points, + * lines, and curves along with its associated color information. This type + * of drawable can be scaled without loss of display quality. *
    26. Shape: contains simple drawing commands instead of a raw * bitmap, allowing it to resize better in some cases. *
    27. Layers: a compound drawable, which draws multiple underlying -- GitLab From eb909e3cdac752ea041d1e5af7055fd106a657c7 Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Thu, 29 Sep 2016 14:35:15 -0700 Subject: [PATCH 607/809] Fix issue #31403654: Elevation of privilege vulnerability in deviceidle service Whoops, cleared the calling identity too soon. Change-Id: I93e3daeafafe8ee8ac92b81011f50f08a83e5229 --- .../android/server/DeviceIdleController.java | 56 +++++++++---------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/services/core/java/com/android/server/DeviceIdleController.java b/services/core/java/com/android/server/DeviceIdleController.java index 488f0e793c9a..4405c1b6135a 100644 --- a/services/core/java/com/android/server/DeviceIdleController.java +++ b/services/core/java/com/android/server/DeviceIdleController.java @@ -2726,12 +2726,12 @@ public class DeviceIdleController extends SystemService } } } else if ("whitelist".equals(cmd)) { - long token = Binder.clearCallingIdentity(); - try { - String arg = shell.getNextArg(); - if (arg != null) { - getContext().enforceCallingOrSelfPermission( - android.Manifest.permission.DEVICE_POWER, null); + String arg = shell.getNextArg(); + if (arg != null) { + getContext().enforceCallingOrSelfPermission( + android.Manifest.permission.DEVICE_POWER, null); + long token = Binder.clearCallingIdentity(); + try { do { if (arg.length() < 1 || (arg.charAt(0) != '-' && arg.charAt(0) != '+' && arg.charAt(0) != '=')) { @@ -2754,30 +2754,30 @@ public class DeviceIdleController extends SystemService pw.println(getPowerSaveWhitelistAppInternal(pkg)); } } while ((arg=shell.getNextArg()) != null); - } else { - synchronized (this) { - for (int j=0; j Date: Thu, 29 Sep 2016 14:45:14 -0700 Subject: [PATCH 608/809] docs: Updated wording on auto playback app requirement. Bug:30445851 Change-Id: I9cae3ca13722d9484032ddb21203c58d774ef330 --- docs/html/training/auto/audio/index.jd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/html/training/auto/audio/index.jd b/docs/html/training/auto/audio/index.jd index 3a1b1e883494..65883671f956 100644 --- a/docs/html/training/auto/audio/index.jd +++ b/docs/html/training/auto/audio/index.jd @@ -596,7 +596,7 @@ href="https://www.youtube.com/watch?v=xc2HZSwPcwM">

      Support Voice Actions

      -

      To reduce driver distractions, you can add voice actions in your audio playback app. With voice +

      To reduce driver distractions, you must add voice actions in your audio playback app. With voice action support, users can launch your app and play audio by providing voice input on Auto screens. If your audio playback app is already active and the user says “Play a song”, the system starts playing music without requiring the user to look at or touch -- GitLab From a80822a98b6928f56c5b9b40be45bb8c4340dd61 Mon Sep 17 00:00:00 2001 From: Hemal Patel Date: Thu, 29 Sep 2016 14:53:27 -0700 Subject: [PATCH 609/809] Docs: Fixed the code sample Added permission in the code sample Bug: 8770919 Change-Id: I5321100938bb876c3c061781f14c07ad9ca53180 --- docs/html/guide/topics/ui/accessibility/services.jd | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/docs/html/guide/topics/ui/accessibility/services.jd b/docs/html/guide/topics/ui/accessibility/services.jd index c6db855adba4..dbc69ef884ee 100644 --- a/docs/html/guide/topics/ui/accessibility/services.jd +++ b/docs/html/guide/topics/ui/accessibility/services.jd @@ -79,22 +79,15 @@ must also request the {@link android.Manifest.permission#BIND_ACCESSIBILITY_SERV as shown in the following sample:

      -<manifest>
      -  ...
      -  <uses-permission ... />
      -  ...
         <application>
      -    ...
           <service android:name=".MyAccessibilityService"
      -        android:label="@string/accessibility_service_label"
      -        android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE">
      +        android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"
      +        android:label="@string/accessibility_service_label">
             <intent-filter>
               <action android:name="android.accessibilityservice.AccessibilityService" />
             </intent-filter>
           </service>
      -    <uses-permission android:name="android.permission.BIND_ACCESSIBILITY_SERVICE" />
         </application>
      -</manifest>
       

      These declarations are required for all accessibility services deployed on Android 1.6 (API Level -- GitLab From 18037fa382fe6a7934ebaed11d3348df55a079cb Mon Sep 17 00:00:00 2001 From: David Friedman Date: Mon, 19 Sep 2016 17:19:52 -0700 Subject: [PATCH 610/809] Docs: Reducing image-download sizes doc for Performance section on DAC. Bug: 31312783 Change-Id: Ie6f1f2b29a9eb18359802576b49a364e12863fe8 --- .../performance/images/beforeafterindexed.png | Bin 0 -> 53800 bytes .../topic/performance/images/comparison.png | Bin 0 -> 137291 bytes .../topic/performance/images/decisions.png | Bin 0 -> 9935 bytes .../topic/performance/images/moarparrots.png | Bin 0 -> 629233 bytes .../html/topic/performance/images/palette.png | Bin 0 -> 3917 bytes docs/html/topic/performance/images/parrot.png | Bin 0 -> 441195 bytes docs/html/topic/performance/images/vq.gif | Bin 0 -> 2598 bytes docs/html/topic/performance/network-xfer.jd | 374 ++++++++++++++++++ 8 files changed, 374 insertions(+) create mode 100644 docs/html/topic/performance/images/beforeafterindexed.png create mode 100644 docs/html/topic/performance/images/comparison.png create mode 100644 docs/html/topic/performance/images/decisions.png create mode 100644 docs/html/topic/performance/images/moarparrots.png create mode 100644 docs/html/topic/performance/images/palette.png create mode 100644 docs/html/topic/performance/images/parrot.png create mode 100644 docs/html/topic/performance/images/vq.gif create mode 100644 docs/html/topic/performance/network-xfer.jd diff --git a/docs/html/topic/performance/images/beforeafterindexed.png b/docs/html/topic/performance/images/beforeafterindexed.png new file mode 100644 index 0000000000000000000000000000000000000000..dc7762ed42a4341a850f9fdfcd2a86d66846370b GIT binary patch literal 53800 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 literal 0 HcmV?d00001 diff --git a/docs/html/topic/performance/images/comparison.png b/docs/html/topic/performance/images/comparison.png new file mode 100644 index 0000000000000000000000000000000000000000..18f204c31d1bde0d683ea8267c444db58749272c GIT binary patch literal 137291 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

      MxmRi^U3de6WlyZ;*e~X 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

      eLR8CKJF2J>Pceglowyaja$n_P9hU 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 aP4TkB$r>Tp_cLOm>%5Jlb;aqc3I7WuYvqdo literal 0 HcmV?d00001 diff --git a/docs/html/topic/performance/images/decisions.png b/docs/html/topic/performance/images/decisions.png new file mode 100644 index 0000000000000000000000000000000000000000..d4f21f8f770b00ab0f775aa31d10930c9393187a GIT binary patch literal 9935 zcmbW7cU%+M7w8F~hy_^`8wiR5D$+!x7ZpLJsYoaZ#igmV00PoNEGuFGT?hd}S+Sr5 zh|~~D5-XYzz(oj{0HK5yX^9~~C~pR~xWCVP|2#e)?tC)$%(>^z+&Slb&z7N7goKnF74T2^XJ|whPw2;rWET$G0Yt<|qn*Q3S7{)r&Zj)jZR@i0{ z|3g~9of~y>P&OWa;)O3Fg7V};AV!!1^zx$J!wA7Q=H4Bey zIhhJoN5=HD&h^&x*N%O#*Jea?RWUXgie;XK2tO66kDZ=faB0D9gV)x`+~kIM9%?nt ztPgSNy&lNq%Q>rd%Eg4y#w~*5mL??O4vvW7NzIDE48QjLY7#VoH>mBbo)ZPFN)Tb& zM~6M(j--%}&rlMmgR%(vy3dCkkZc2&j1)7$gRy#2XuB?Af=V$2=NK4y?y$rv{N~eZf%<1(K;vNuNSkWO*cd8J(pE~5U&CKv3p`V&bv*oce zqW9B+(YcBojJMgqg6$o%!l49C45lrjF2=z~vt^$!7j^b@)%~aPn-_{wisEybw6mSH z>INH2T2K9ogPRkwM0W92YvD?v&4HdI4;E*pq6pJiJvF9!vQV8GkpPj>$)bB)Z-wwh z85^6z+dTL#Ud91$NHR4|+|YX6txj`q$T75xG4<$PC;YC(g&wKs+J};M`v-Z8f0|@4 zU=?%5uyVJZRKXTG&JVkE(dYax6S_mSiwb$AcxHT1Noqq(Tv=>FVnX+@SNtndkb~pY z2cN(W#&E*|btu-Pf@PiOl^4)V<7>gF#P0ZfCiSfQiGvv1qgBi(QvW=b8%&SSeMBqr z_e^>ZJE22pXE|sJvuOJbZJ((w@H)5LH^N)_)u94~(OFYXfgKy)C1>K6`&vH)#uaKB z4CrxV3$@*Q+9Li?_I_=F?TuzqF1`>AX_MmLpu2%*CXbbLfEJzIxL?J=Otg?2qRu#o zVNNxDoS%22pM9BL^0qiuAK!b0a!ML=+sWufU@?j|=1yv+IujqtA>5u*V`2{bebDt9 zp5}xN)tgS3E}5qCX0tVrPlKOiI1_k=6>l>vB22uz;_Vac;Ccsa7lt~kZU+z-!-;k( zT8*Tt4K=0&(-~e4_INhe{s$SStaxldB+++1YZ_~n1DKpB1z%3_?yMaMY*XcHldesu zc5g+fYGpHDCEqC4s_JooK9}1n{a9|lpI>Q^mp|0J%zuQv=pdnm3zg22^VnxL(}4;M z`Rva*d>oqRBwhC2O}f^!wETigHH-!gsB1KEr>Kh4xR2H~QDM;jaOIeivv)bVsz0b@ zL0$89cdPDKvRsnOa`I?sgCkZEs=8_CnqpK>tA~?Bo0aEhYInBH)AL#^>w}rUgwYno zBp@#B%&2SV5W}@vX*!?oolnknC{V?@B>xt)jFx{E^`)(z4A=$AJCL@eazi|(fZp7&HS(o=BHpZg_>_+yB%ifc8tagZq*Zpz zOi5N(iFjVvfpKvy<{w0)+oeFjq|4S9J$r`~wonzehv&zb(iw&~GF<5cr+;vaGTNJf zd#xL?!5J_o<=_rPt{t>c&U_rnwTvjwcCI#H2H&c#Lsrjb!z!OHcHClF^EdtCx8Z0Z z0cq~x_K+5AK==g*3t}M4?`eTwTPtcynkP5VmAw5#JdQOv(FV(l|~&KPumru@Edv_h}CIRL3E$ zfmLHk(S0t_ykq5As)NC59dJt8&_^-{B_XLO{!h=sl!3SmL~5NO7%8_PP^gn&m;^_c zMOahz0xMzVYH-AL|6aY$5R?FeF8EMne!3Qt1nAEJ1E{p2cafo}{1*3IU~@gGB$7gh z)m$m$H!prPX}G*<04m|i1UghD#v!wrjFcX8JS7ipHJ9 zAX3-RW!2|{^TpR0{y}>{dU#c|)sh17xH1S{E+#HBa&}+v({JW$WD%B_tK`4CgNOg_ zzFNY3S?vgsRBYwk30)PWJe%tHOS#>8KZW+0gD8}QTJoFVuSpHEfXWvSw42F^a~Jbd zTk7~XUM(pOH<6cBma`!cDUmIOUPnIS_#Gy| z1C?r(hcHaWryRsX=uMkvb)vw9^M}H<8gPQ(Iv6Q(uF(bW%T3_Pi*;{9_ymEI1J_J# z(++UTE1FB;zbRY-XSkxX1Y+g_1ZovxDNPCCM-EEf~}iIA1++{jSz@9*Pzfh-RWOg?PLex>Bj+xn*NJ*8gpA%^QESAz zQqgjA!fRu0f!D(w2sa{DC`e-Fk^4yjxCrfp%35~07lXjOvS+;^%B;diL2wB#Y1fak zz1=W3l+TraU7oPZD0n<{*)>0-^Ii^SvZAV%H;oyiz2_%(8dt_b#m8S28o0m+A$amq z_oP?JJH#{jTGKlPIKqWBigtIiD*RirbOUG5{*(0Kr52k|f${h5(Oi8|;8Nf=L|mkt zYZ+T1^`g*XA-*b@iES@x*LDUp`8V9_AYY0|KqkL#WP}uvTk@0Z;98K(*BUo6+A@}T z!bnN$meias;$V{{;Vekmg(r4;!-r51+8ot%Og+gcL5;+T29x7UC z;~lWj#PT|qUP;AO|H6H7Fcf}3!|y(M(JCPp+D*Me=$@;auT z(3;=MdY&Hw{8Iqn&Pv~%DMlM;r?({1ieQh?1m2xnJl%aU(O04Eys&*;cY>7$GJJaE zu602*VWqk8O?N>jwPI)Cd-rNR+7;Wxg|80hF~qTXeL+~5y-`$Y%mY|*{m@L&-;!ZD zws==(8>spA(wvMI1nml=yE3YfHe4_1IcLA#ElWdr9#-vCaRS4~65N_YmxiQ3uexu= zjRJ2t=t}`0S@mxKU4Y~Pny>;Apxg?WfM)>u06psJ{Qx}mI>Qw}fv6)vpZfrG&=4um zeU2O* zx!RqkFlM1VFDM#wgn8k>gi~4?mCs6W6reYV#_$$;0U?pY+7sL&lx_N;X<0RYaFQ!9 z=y{pZQ&zte-A3-a0+ABivJ*kSJ~!VVShU@s0lqu-YuGz2Vc%279n;6GjVE6_Dw5mA z9~{kJ9*Y6dN@s{;U5o#s)C&^TSMGzY2%B8P!h4VNn0X}gfyL~UMxR~W`k}EaOXKOZ z#NB137 z9+S|!tM+@Lqfx^*FmbNOcy+-O!j^s$j7mRXg$!1gf9RMXRrF`b*Vq;4VuH7a87(i_ zK%pA>u1>xF(6|)CiDyr)*9s-`s7ZM!=6#E_S?c^{aGoeMn1Ce5tuv ziwW#8CuWG~d+KO-R(KpS#1qfU_UGVCJL|SDHpCnMi`?om3K)n@sMS7n$}| zR@@0uCuA{GK%yeG+;$Ja%|%B647oY3gcoZalMo$13ZJ#{bY+?Z&-G*iVPw1J@wbGb&or6o^o=R~Ahsw?a>7e#6X_iKdtounfk33G} zvMRqfwu2N!K#!b8MV5=ZDB0wB6{s>=gwhO_jZ)(#+fe0LIC0tZ#cijU!$#U+={}9T zNKdjPjJRl;0aqvF>S#R4++(+K=!YqJ=$?xw!3yfoGH_Z4!`P3HQ}W3Rh%uM0g=^t$ zV(dW*HCE%hMko{U#UIstBNprPhz$#i!;??ujM0n;$EDq#Jo3`;iyNIqGadW;7l5d^ zmpvc7Al3_TOGSQj;{5lV-tP}lwsz@gv|Ny1mAZz`+}>Vz=SXd1a?!ZiIC(IL-k+b)?{&rmD$(?rz!6qurHZX{XJYuP^ zGGAfRhn=l~7*By{V6=xh<$ly{o=8f-ZwGPuZhbpPJ6}$(tI5f8J)F81AXH3yd3dbK zGgFM*%epOylF+NC2lsD`z)EKUS@H3lsU{yPhpHP;Lgr)IG-07NYQusU>$33 z9cMniv^)Lt`XHzv9LZI%clW7brrZD+3(PL<#!(tl&xSi+@+8P}YA8uJJ$Csi44!t> zC7`@K9i3ZWQPsVketiubDv3?q+p?E&##P@@8|T+`b9X9=7IAie#=s|Ij~g0k&J~j9 zQYIBN*yZin?PR$)pEdA0hA%+4(2>*1`f2PSp(0Pngg=o-h>52p$Rg&9Z=}i6e4P(k zP-q#K3Jx&+IoDqfb$E33)27|&%%({9#HmyliYhWY^!Ee#HW@Fe1A!j{jI*Lez z?$TsaXF>zLIl2MQaXa;LCE-dDF=?kg$#Tv{7EdmgI;Hq&geo0KC0fm#hG4kqK3lMf z+E3TOjWS;6V7S1t6k-@hDhTH4=T;JF0ybX)W3gpF$K!EU@!(*k+!mspn;&iSY>>oI zJ=~%(kOQ<9-zy5z#tFp~{Z#qD?fPB*52J9FfX*17Q`JHIwKq-k%D-WlEz@4apn_LH z%be?_#W@^fBPGpLyaxr1_`Ilk(_KPKH;p@Vto%rpNGo*x4o$XPZ1Nyn?G3btlf{pS z>pDc|KEm^dZt~O~zrR+BHP|><&wFtfpzZ{F>hxV;ux1*EdKMldVXe0w8|J3g^0Z#$ zN`b61R6D?ygK;v;iYu!`8(%M=9D??%xVJc34c6cGjEGc&;bI5_{gd&b?sz+ z*!-gve2EmE+cB_h%T2m-!;mhDW4{ATy>*X60%`-kHJm9>P z2)72?`tk8bRUp*>PNapGZ!-Q9Izh@-6k*1D9FPqeC<%~_DwH4oOjdv>5aq!b4-_W< z!%jOOQXpIbHAhRzT>kGs>b=TqKz;y}6jxyiL?|%M1DQBD=)amQSJH@oI8AI7mllmk)=34nXR83UF9SOhd+P60GPkL>@Y8#EP=`&R_8 zPZl)tZw>!n-7C!aw+7G)e`3<847imCsxV`V!3nz=HapUnJ!cW)$k zfB7ZyS=G;oy6tc*W;-}V5tVhn$6VGA7F}E&c_gsmGN7`PF(mZ(8b;A{yg1gz)qZk03#YGEC}53qINexJkySfXYgihXCr1xt#W!T29^kp6E?>safI?%Uvq$DYS;_{&tCm_ih%uIUW(!MVd=DZmRZg2E`f$Fc| z0thH!d5sq5$9+Z0xUo5fwfhcZ+$@Gm+7bo5(WD9G$vAGMO@K`N^8G#nW)jQ59s-Jm zmC~zD2Vww$2tRIc7QCh3st~+-({{|_h$*{&Ga*G0v3Y?}6gxgjC>S5LUE6YBGu8ef zihKCmsy9hOVNs~S(gL$tgIl=ZGTy#-5?bN8QH*g5pJ8V0vc+b}zWFz8i4pGyH`aKh zRulYt-r7gL&ngS>>@AQOYBpXV<;U%E7&{4Vu|?H{Tm)eRS&LrKRLendeqK>kA=O%v>>A#T{bYh8JZjMYb~ z$6dqYecKu+SBs#%j>=2PbE$aLYgZvH$- zd5(Dt&&S3TLQ7=K#%iP!7GmtR0S4982KT&hX)UIO^Iuw^8%-8pZW+F4qZs}BU*RzG z9wgecmrxXtpLhvV%75(RP;9>3&c8!)WSf?cC7Z=6G6`fi8(YGA=418vC-ZF`jG|C@ zn1`S$#Z!UBIKFue*3Zr#Yx4*6bH^*Uoo- zar@N%Bjx>0;#yzQ_~4G4(P7iK!YB4919!j3o zJ8hmo9Tjjul%DTj*bx0qTr*X@rGj_@suUO_Q<7T9O03q!YTP2GvRs-qQVI2IIZ?dG zn_8)67+OTL&!+nNzms|;CO*I`-Yp@KBltAP zt#>%DRJigO4B9nE>Iym0pR%Ph6XU3?rG(uGaAOP^E;Nh0?7N{%zu$U&P4N%b+e zDR!gkpS;-!GSOke05DV&cTpj)%QdO(B-zv1u}~wGn9GU^(M#n5bpbD_3wr4)IByP; zml>h#0#A$(@HDVoMuC-k%tDMq%tCTm2Z}Zx(o_DNWarRQ1nUnjZp2=03e@?cfn6!I zut?#+d-wfr4N@_&_#k{T845U4az#Y@&dDMX(;{N!SayvDF<0rjefijHy2mJ@ja6HiSs zlF({hCIB!SX=6U=?Zo0ws@Gtl+G+CDaZ0h*3Q;r$u+vC#IFLHy%6H|NG8Y#?PyP!+ zC#AM;N6q{5{puRW_m!|7L~ewWny<_mzkyaC(sMg=2xkYR7w>sr^k|0#>mtgL1nUg(@?Zyo^=K%AJ|YhJ1T~@`8sGbY*EMd6|(&E7!$}rn`#f5fMeLqgp;sDw~GD|g7qUnA@>x~PMDG}YEt_Te@}a%z13 zAD?^$Mcqd$*pNM~gsw5Pl4%=f|BD#cz5 zmt#o!BoOXrmycr`^Bc3|Tk5|&(P#5ma&NnaG(&e?Db=dRDk_ZJiqB#}gj01ro?uFp zbx?=4JilkT;1|SzN%F0sL(ra@M=w8ZyCjpLJj!0OI;WL(Yj(>94rRfPq!p@l+G=n& zmKaoRvgP)8N{Q`Vbad&^bUK>CLN?R#Inx;;YNPLVUv@&kwK|lCKcZ&muG&@U-D={6BIk@DBQB`!#<4;LN7fr9jy*}W(T=C z+Ff6V*02lskVQre$b|vx0E7St0QlAe0{jpIvgn`s#DHPM0K-;9|CR!O{w4MIMWEDQ z3PGvAF8WCKI!wAU&)nYI>7%wh%K+xy=_NjaH4p&B^uJDkDJ4*E{Oa6eO&jKopYr=O7J~fq`2F?z{m9yUUc4iMdc9zg!2A0xHHHN(ipZBD;VCkfvnQ5y{LYf&idQ9enP(9YLh9vxa#VY?TUTz#O-1||kE(2WpI=HvTk^UYin zm%nPjie3bVE)nNBA1y8>X*L9Q3e1K4q#}!;goKfBZSs5xnLllkp{4h zVFrn&h31!*!WMlanNA8xCqm{QMt{W^&8rLB3mfJ?R$uL-R<-}O*+O?~gmm32S;TH@ zEU>J=$wfL+{9u*vAz12SwfQ)&w-`tEY8XY&i&A^TCR_cMgyr&rD?$rl|Fcas-FK@$ zDwZF#cuz+fz}5h)%B7-23-^+^ZRILL)uq&Rd)PBE6hG|I#s*GHxcdpM$J>lbSk|Sm7sNvbqfoZ_wJA}@ zj04%1EyWw^p505*XI}AN##S{Xv8sy-hxaVoNXjBS_-c1laG`$a5`A`dcA;a351aSy z`gqfo{M~nn=sHt3KS9Jvdz zJRpkhP~Ll?Cvv_alB`hM{dqy_tHWWC#q1|5_eIr9oCk+wiXx^qS(Hw6P6h4u&Wi7W z>2=6OCD)Yo*k|9RjSou1^LK{1wb#vl(QhZ$`HwE~ag}$-qsLdimrCPcx)`CcBW8o= zmQMjMpI+L2;Kc*iH}D364g$pXmDLY+0?Q9v;w!HRWMxqUrUNT#)h~dlC2+0!&kAn6 cnp~Es4{p;OJeqk>4EQ^9%E7Aig!j$=15-c#qW}N^ literal 0 HcmV?d00001 diff --git a/docs/html/topic/performance/images/moarparrots.png b/docs/html/topic/performance/images/moarparrots.png new file mode 100644 index 0000000000000000000000000000000000000000..ee10ec158936e9c47d1ca1f5a389c137003f7a2d GIT binary patch literal 629233 zcmV*IKxe;+P)SaGOVVWRI9E$!Kx^Uwn~d4tb&3t zE59Jv$}RA>G73Dc)cgfja={!cp=hQRUp&oB}1(6ilJ6`)nF^M>QgJM z_A@K2?o%tg{!=TWVGx7c4WC(#hQXGjX$Z$5R&>))#t%BMfN_?)=XlF~;Y7=Q{zPlR zoJrQa*%Pe!b0%;cujBkV9Op6Id8~(2-eAkW zV6f#^^r;n4!YCfZ@nb8XbYOgB1(ey_#oR9V$O_Eo_2+(O1!oPhLU^vwlu=elyqgsk zGu{ewOtiwoCtDF=Q!Gd5bSo-krWF;)_dR3|W409=I@^j1-$Bm6Sf+O30XEC1g#q;&Ucg@wwxzxZH78 zQqe>!w|0(IzBtfoT9sri+gM<&*-Vd_TR(sMlXd0Nch^$I%FN& zv)ekbb+fg5{VHo~=VEK)@&;?ok{YYCz1&*XRA4QxI_NW7GYueAjvW^|tO~}4o@pBp1%)cO{Bz0cxa@`{&>0H!%E}rbl#W2NayX0_=Q$Rf<5Xs@8hw0 zOuREZ%rSbLhdIVRPR6YN63+Xx6MXo-^4jglN#^Tf*wJR!WQ?kMrm6l0YjxDVV=c0(INm4zMzk z1MLVl_sf0UpOz3{rE)t}j}72`a!iPol@@O0WI3$-+<2?FAeDdrGOY5l9IK+Dz^bV! zwd(3BtfrC;k9IaMMYm?Q~TxT^jR9kiRs%rAB(y|PzpeVu0$&0qqGs3Nu)L<)t?|&@6_72BF%Mrf73JacNg$B&A zg8gPOW?F$hGpzvc860P6$aa5Bv-~`#X!v?ew!9ZkvOE_|vb^0VSw6DuK7rd4H9QxL zXH2leY?!wvpJ1a3~oV8%K33nacbbJ0xH*209vOQ zj~QuApE!y!`r5yiwPmBNAsvm?$*8YPL}hUdN{b>InG6kA!#hXn04s!7F4uh&Q-F1{EIj?k!XwxXo)M$r6~pr-j(~R>&!05}ez~8)x8PIw7Y*if ze}=%aK?p2oR188u`N!O5lzn2yM?B^u1Qv5&5wE-8GX&)fMo`93grp5eaKb2r#*IUG z%tVAcCL$tyG9tsKAu?nJqC;kZXhU4+To7%D51)gCh`Aa`k@G>cAtg%2xk!thi}d(; zNKc%PwB&h6O__z1wCPC7n2MyVDM-kgjQH${AleX{=Z3`M@yMu}hQbyP)UAlZqV-u= zy}c4!_O)Wyp-${OwgCrEZo`SQdvNyrL7cyQ6qmm~jqkp{h$}ySjjPwb!!^b)KVQN1 zU#^09!;N2l!L92zap%{Yxc$p-xO4qC+`I8R9^AZz$A8?xlRxg_>8*R{x_uw7?mx!s zC(kvy8P?-2yn6H!-49=(=aI#I7J9q7@uurF-aLN|qK)G#^gexszGtsF_Tu&99`thC zdeV(mdwC2W`}7UoK6!)Jk9yJbq)(&w>02K22EE+h!~L%w^k@)q zysp=Hb&uzixZjHx9J}tm#>;zsc=hldtOswo{|%4tZz#_VLP?fC3e$Z-oFOmC6NDOalROw4 zlRb1hFWF1?=cjm~Ak7B_slFWjP?+Y=k&zyN!puMvWdxu&!(YcDxy>llZAMm*MzM~v zKhSlI^Eg5c1)02_EIFS)2t*KV$m2O>BxpdqA(z)6BVmH9a?D8bMtXvm zD>C9a#(A2E_e5&EJ5u7@IWE*lOIXPL9>}ndkuj6U5oCNk_a}NFlRUL(5xsRwqjvdb1GRke@3q%-St3;sLP7OpsN)X@o zKyI7&A&+5RzkM!l=Opp{Ne<)~!0VLTjAUOvuY@13QJ%+-_xbWQ`|x_X-wxTI!63*q zh&YXuST7K6NR9DA8Y7*z(|B7#?n{aBKx(uHlA}D380mooMq-pFlA^sBK0Jo!jQ2-c zVgQIUR}gW?;A_%Imf*g`AUgsloY0-tTYpq z6*;J_EkS*K85$ZZ(9~Rmw)SQaa9G~4l(7seSFXgWRjWb3Vcoh-*tlUU*00-w4ePct zwqfJ??RtCd+D$xWBM3LF>|BG66`knlSb^osmxFNQIhSD3qD5$JZRPVc@%d^|TUUkZ znleTS>Ke+?)KZ1^_C_AR2%RfeU^Sn2!}^Wbws|{t@7RO=dk)~>{-Zc@@H9>wIgiuF zzhqp-xl>=`(z)+(;oJ|nc>YIRzHkkM87`i?%I%+US+>t#)%#@srSsQt;p~q*{zsfY z`vcCN{tl;4euGmdz5?-vLx<1civuUHfA10O+_?{%xAL`a-iS5p*P^3yIog)+HMG{C zw!Q=vRkNc^4=@W-@9I5-|wh3-e9EIr|r%xP-=@Uj`+JuqTzZNy8 zp}8&zbrrFwBHSvAq6xPM6y}B+yyf{LJ(oXZc?$`*`A8&`;)|vrs&G6aibf;6WF$h% zh9Hbc39A+ieWnNsBi6#3h?!E~a{83H$sg;Nk)G6`{&6A@c80nxRD zU+qXl3%rQKh`PawHvwfxE#X#2xYarF#%m_ZB6%$i9v5kE3;1NejM0s9y+h4wB1|1k zg9t(5jc5yN{0N~9L|iRFR7Dt-eT;x2LMm@4{4$5bKW!9z<43_KW(>R?V~MwM@Cx8J zju*d4_)WEN{v^21o2+3FH&FpMkKb5=J3Y>q-&lcT2sbx)M-gwagj*8fmhn0Kvxg$E zU@$R8w3U7a|KdT4w1A3F;3rV4;B_&A1^_Oo^b-V^60ya6Kls?-9Kwy~3Q6VHHfbC} zW5**rig0sGfg^kxqQdw-hY8$f5^e@<5=lf`V#GWoIf(oy0xf0%e?b##ar5{KdoEHF zXCpOv4$@LMrV($MGmxA;jc}WY1i~#ocRb?q#`0@A2B{TOP}uB_>g6G5TAhFuTZ*t{ ze=~L;?ZCdHYjE(yCLBGzgLvEL!rPbMoWc)3Uc|MZzQ)hjz9rgz#Et9M@cRv-?Z$Q7 z{o@bZ`~42?6KnTx{DJ$w{f6`ay+tqY>wU)U$FB*u*92IP#;XT{wH`({0mtVj<}70DrC{!XV9iF`!?!%1 z=p*d9@AoR=UUGaX;{#%k=jgiIO{l)a!yC_V|JO&j^YdNYym}MAe)lu3efd4UJ$o6K zj-OJz9ow@L`!}z{&UGuWb=4wlSl);=i>tA+wG>Mm^3YzJNxbnNzmgc#7DS+$|MXQ5 zZ>7Xr5%E@-Mv$d?55SuT|M+vX(PqM1qaf8s;pPg#TZV+d?Vot_x5EIgI6F{7G3PwS zKCVdMmKk7&Z2O@g!^Ru2n3vigxhV_*OEU43;zPI*PK1&GE|Z|kAf7acDTNh*l}3!E z6Ji3kG$Jld@g}JA(vaga<8AQCNN}YSUYUvJ9L|vYmaT9zk)6WlOA(y;Dqzhu z@>=746mEjJG;Ry%4DS4Nf0_+BgE=3Awip|4aXz{~MG(h*$f4VovVM&Tt?%D+>A9u_(+> zL}^hPD$24@Q(cI<+EUcll@nBzXl-kB0j{HC3Gvo}Rh^w!y=E;TH2`nx&A4vuW{#V& zmT+6WYJ=i!#fnu}(a}kSbztez4xVe7!mX{X4b3ghXl$xSeM1fE>MBuPU5d)8BGm92 zoPb=kxP|9fidCyS3B(Q9ykUzCxV;42AsqbTIF21UgOkTDGABxLYpe@yb7zdfeBL*YqlDmX?hL|>P@6Yxw8q?NV=$YyXHOle zdo8xcgAhn?Q{I6ghzv1RDO$DqoO5nLhH#{H!qA-LpY!fgFX2t`uj8Z;mQU4c=b#C za_t-3Al_~fZg>9p4G(Vrjt4~A!&|rU==NPaCDfkZxlgP;VB90v?h`qWU_E?7pgp&< zZqGFOp1nlhbE55;pzIY9Mx;F#kiF83+q)Nnw_e@%{<+zfW8S~)#h=z21)PK)_wo(i zzj(*T^(p$^JeN#dFX7gU9**5lxc&4s`kn~rxbIQ7#;XT{wjM=W&m+OyE8UjtTF;|5 z+)tEk?G>KhdWpw3yYN8p_R}5Q{P6~^fA7TG zCF1QQP94~f!#lTP-{!U0v340Yb+lm3qFQveRbWMP36|F9qP;pD%@s*#D2+p1VI->a zh_@W#jYula@UsEuV={0GI8XlJ_f)(|=FN#V12V*jcA!Ujvg=131aPNhsooCnw@G z3zsOk^HjWPMomI8ZZ5oenrxbe!C8hgduM0Ubbo@EqRhkqpe5S3HS1=M$&pC*ab?+Z zK7gBZ+lK)2Re0t7BkNX>9;oBMD3CGL;7t*mY91qqb7IZ8?R+lhdy&O`nRb>hgYZfx zz|tiPmtgQF7)vL{GU9wR((Mdes%GE3Ocu_CH$k0b)_fFj0yV*#!Y#%F3DF)Li8%$F zuM2M(g15wAGbS0tWf5_i8X=m2Q{V~WIA$gBZ<}P^k^)_L%SsDJE&*4N9fP901mZ0f z0NOm!q+{ zTAzQ((l+98Db}uDg^lahW6Q=Z*tLBRcJKTG`}ZBep@S!Jl+Y5mojv&_&Yt>O5hj_m zi$t1)piM$DaOVlN3umt=+RmO9+!^4>V@{p=3dfFL(2%U#!GkBTfB#|Z+O-c`x9!Bn zjhp!TSD|C&ax7ieiuOfyXlN=!WlbJR$}*6bpMb3FXr%CKkwAFIMtdVV(i2hP3lR}K z4`G3G5aLg?DcEM(fSb{uakByE1e>qNqz^J~POLezYBEarxUz5)Tu_rtoY%Z@@RD)C z1kJt))I4msnXH?e3vmLt1;pBd8EyoeY>zWpx0!DJ(>Zq7euw8H$iHqDSynZSW=;tcb?X5UzL| zqHuFawyKG6lCjyKM*tVyI)rc=qJYy*@m4$yv87WGS3$g06K{3n2)8jd+=d&xHA<;duIW=#?rbEw>Oa;@ zTv*+QcoT3s8U$*?G-D_c-6GdN)MOA9sf1h0AVjqAJWY~$`$#i-L6x5%sALcV2_nC2 zgEya)5sEkO7&mx3#=$d~c=IFPJSSk`LXHb0^ELo(RKGj_Ls&rE&G+IrmH&8n1dW47 zm>az09Py)hz7g3=v|unoa{2Yl`kZ(hNxY3kSp0Y`nL3EKsK^Z>9dfWHUo(n(~y`m8Hsrlk&rh5vAJ%lZ| z5qZt?P}LEHmUVIH*qV*?dn&QxU>o)xS%HHm*5l}@Z8&*mH_n{@0vEnKiZ8!Ajjz8u zgDY1q;-_n0(co)wIH_5QQAlSO@KG5w~ z51tY}U3l~KrJ}9p=~JTZIq}wozAk|pQT3Fggp^31S?GJwjrXtK5NUlxnE*0A{Ybmvd|}&WZ)z_r&+iM90hNT*N>ct z>oFO*dqmp3KD^{8NV6VDMy^-!_VPaQcK@v&^MY^_z&*cf5pcxYb-~+h+`RG|u7CRz zu3Y>YU!OjQOUI7m^!|M~vU3aeZ(f7#YnBji%~-p*1}j_3u)MJlOX_maTA43vY~k0xplZ$<^!|5hUeP!Y$h_ojS{>uIwAfbOBtVL7jwT z(=uG;PA^4Uh7Gd}dtaurEUM*B8)pMbq4InRv}6M?XQ?zh*~f;Rm%>f2k;mlnm^>Mi zeeH~)DQV{LJc_pze^tUrn(3X^<@e;$$qsGS&Nsn6L3on-lTN8dL7mgX&Z^R4H{cqCDYZbHz?j#u3SU# ztwzW4l~}xV8QKW9HYu03wKAH~+|sC-x7xZ&R8^Ots;Ur`75S)O)YO$~_OGS2o_K5~ z02g8Psug_B)qKv4*tTUSc5K^=J-ZLtcsqj=$Ij!_iHnTOIDPVK!tC1th`Xv;Hp#G^ zca=!LSGdV2**1C1DdO+gu?skS6B3O6tod)QX=)3Gfrj}%AA`3rqDbeuHJK8nlu4yz>TqVT6hH=VQhJP$ES6;6w6tk5 zZxJ;^5m8CVm5)%oMV5?1RPh7?j*uvvtaIL+Xp@L9p20u<+%6;DDkmYnhA5~Z3hGBA zrg5a=Ev9+6qD!-ZyhedmSd(Pk2HErS2J1CO5Nr-9o${I@Y`i(MZqY46Otcz+I$HU- z){Isb2xk@^OhtTGdK7|@S7-@-$1?-;o&(+ z@#e8$G8WFC;+p3saFhKqCvKq+zwrY3pF;@0xuj$oO9UnmZ3LkoVHl7z6afW83C6() zEEl-(`6~w@xSC@%kyibYMu==z{u`l$TqtoDT+Hhx-lSw2nmY_(S;G;YPMjz6>zptF z5wVlth@OflhmE(0*_wGvh_JJ64wG$5jUw1$7y`FAqAh+t|Der9dh$G^r4nx$#9Jou zmPNc}PeDS?BqS6}Kz#mK!fg!VO2#0mavU<7rlVwuCu%#x(7quFo!j%UX@3oNA6bk8 zCsyO|sZBV3b_Y(L-Ho#szQC8?9K$!?pT@V0tJf~!m!H4EZ@>P4+c$s0-J8GQ;jJ4A zx91P;GVbHq{RhO$L!#y}UOjwD=seM}`{8r+5O2Ltx)g7{#M|4hF1&wf5n$bTOQ^kj z-h+3~UYU4d?|ae1<2ZKp5O74>%eVN;dWZk*{TqMvyvI8t?%hkl+*|zp>K*7%VYXoH>V! zM~~t37sT6+E!exM)8K7c6V|p@qmy{+Xez*x+AQKN6;0&{Xef(>}*`Vlv30D%sjYM1Gy~Cz)ARNsW3~jPLef~(x;X{J+&NaN}*;xnwhs| zXV(;H&TN|JfbepK9IuZP)JbN|i6$+L`j~86vYD6XyuLhMlY~IcRT7o?Yl1IAtU!>a z5!gT1O|j<0TYvV=`FIn~QgXn5nFHsibKn$j_MA4sngA|C=DgWiw~PURlhWzH?3-rb zq(o{%OiQ6LHsE5tU5Fc4E=`g-aKxKrqLyn zm>Q;Y+Dryc%BW^OoMh%CBrE5{U3OZy&V9?xjxqD!3X&9XWhI%Ytjt4gO%WO!$_cnC z0;PdaX~oi|i_y{1L6iyL)?n@G^@=sgwr!B?8@Jcl^W6k+D?8U|$y76MOPBK;OVQqL z=DM}CH1XVZnst-8ZdFw!gj*rXN^=!&RRm;RT^X91suf8c%NJqQ$_}Ej6Pq>&-gaPz zWZ!mufiLzQRlprNd>Y4(p2x}K7a3nF#!P%eoPEpqPN8=846#PoIq@d<%W*Qt?d0)G zI8MABIdmEa4<6U7+wR@_v32`)tlz}fwWgD=e;Jl8Ye!pq1L_+qP+ePq@``K}6(!RX zF-T7hM{=UUTeQOik)aC)WZg`;)QL9%o6K$NN8EHpo5{LOc4gN7TY1#S1-bF?<=;;U zpMR81Jq2@i*3Ahx&$;8ZMCv|A@Wx|iGdOxU;U=gf+}!PwsVSS9Y@C!+Wt=}_%z*Og z7}tC_DWlG@GjOw~8Mw`vI_AUd+ds>wu5zl$x+&r$J7@M2ZxzufFOjTU1PZc(k;`9r zS^Pzp$zNpYnf$@a=6^vs?ugHtjo6&&h|1<4^W0GgFC^YdK1WFTV1!hCs@bYAf+(bZ zkezW8xS3`J2S+KDO14Y0S1rRnL{N)te{RZ?^`>b-GH($z!xV3kl_L>VF$R&vW6hkm z!byrZje^NqE|rKcp00R{FQ1Bp>dA<&8;|(0`~5g-Pa3 zAV+kDHyUV$6LArWO}SQrQW`2+c`eODK0v1vZ{dWSpiRyfT>ozb)o`pFq~*(if+6r1 zyrqwTPs%9xC5?r545c5&2;w)P|0H;MPl1QWBv-?N!i}-eo%^_dA@L^VRj;7&@DArU zTI3kwO&~}RrhTsG4=Nglz@owWoWV}CRefUM#_I{G`8P*iTlN3wc1V>Ia5CSG@GcyR zu)NO^o;?ELX=4yUyhS8Tgd=W>jkoEFw>Zaajl@XPn2;Q`fa5&7RJuUnmY%?E!Yxha zxTV^2+|p+vIdi(gEh&$9%b!SeyCJ5KUmxN;o?qkCx=F}upM$DSf3&QR#*O5ioe{vNLpCR7P?ZD~tdvWQjL-^|3qxkOolel{IJbwN4OWgSFJKVbYBkunG z6XAB9aTAYj|E_R*`REC{9z4R!2ao&F_V}5JN6!g1OUtBhyI$f=*K^Ihy|XO*-Se6t zdyT(eO7wDDN}{icuWpTZF1)=_xc#U5PyEdgut{d_@7}lg-#6UcZ#<6 z&kfGrJeP9ndv3qSo2N1-?ybVD?|GjYpY~}JgkXW_A8A@H4Mqw7@pLsY zWEl;Fy!y+da$lmiX3BJ)U9#OM!S_Z=wgzklPMTd)s5!Cb1eUMPQ`3x@ zWY@S|z$hfViqrWX@bwkxJVGbd%- zrUO$hb(TzXcsrY8cB^ie<}|DBwCfS7TM@S_T2PY6I4fm zE7uTjE3u4lTdZ)Ca%mfyo14+p++Z3NYKfm};;pg-73BtRWuEae5a4}YQuHf^m!^Vx9v2E)P?B2c)dv_kdzTJm#;EUrpeDE~mERG$yh!e*y;S@n8 z%?Ac+-)J^Y=ChqS{guhI@jla>a2dx4Kf&LzBWG~%zzG~Ua149*9>lgCyRd1i%ynCh z&Q%>)-mysEk0#B!@wzK=QCyOS{QP+0EsB2!LXngZpmW`#919T{wgBP5a};kfx6NeU zq+B{v=ePCGar^Jh3C>0YpM@s;1a>yooKX9qalyXrIbX7FlQ>SY8x|xC+)RUl-Ka2Y zoZ?MJ!P|lXXwx}wcDBu#Wiw?}w+{gK&l2jqX|g>QbEil%!x+q+=BD%C1|m+I7YH=X zz-gw<&b&<;HE>>>^{=wh2oy`XR7$1%MVHH8fSLSZ&dBgXS_XfJGCh!#IS;WJGZ39U z6^`uj2q)e`3x^}DjCiXUg5ZilnspQWgi7{`z>$nw1Ysi$3*pV5YI!kI;WVUw?pTYN z`=)qn9;RqB**Cj%S~CKUs*#8&8>!u<(WT?HY#LKCMd21#G}R6}>sHLMlu2I#Nklc< z=xpO_X}2?PEraxYp;9&_;)3d=Z2Bo7H5mQ{!wlXsM!+v+H2e~Yx2SRO5`+cwo5`;q zZwnVphKIWZzp)mWY}`W0%K7rR0RATsGFBTMd}7?-lRyYc)=e5A@(8!$AqeF2$y~SK z3d#I^qMfwC8pK+yiQt<5(K&gcg1QRsD;tEc;=u^#b%tjTM?~f*M5MV9Z{y*JpNNQP zneRrtMNCJmV`l;^y^laOdU~-243+(RLkA@7=_+`?vApk>KqS ztVaSinbX##^V@n{+b=i@++N|`%U5{&;-zNX{(MDjz3MY_*k1PFFK++!O6IP;HW1_e za-U|=ER$9H+l9Axdi$^LcLd;j&ALhU?eAA||6jcCy*4jM6NAK?X9V1{_X;@;-q$D1 z4bKhc`iMGb7pe(+&fB9mI=&*}Ea@^O+PWD%j~P#hwsDyP zqL|n!&NPh&ia5P(=C_qdqe51o3vd1N-s}$4%>D)jgSucB?wpxB!CV0&Khs%0^>^V$ z=fMfuTyx<}Db<+;bCxm%TUp5lVY1I;(Y#DaR3`G~FX*`z7P1ox0M1kRo6U(8dpE_wGQrxkh=tnym{k_#2Rc%T1BYTYv#v zk}1t*+nuG-gpi%+?`lNIO6YG=P?$++QzFL9c}sWAY4g?0SwGCj8srR2aeo5!d9XWhfAA8`76WF&;x=X*n_8q$kw{6(4X(Lvx z=|IQIMOd=58Le%#sB0iP`5u*(XQ8M#6?u6HG=&4H$)QM$C*Gonw{R($&LiGt6K}H> zZl+1Wj842c;U;MN@8wc%^Y5gTM*S8Vym>E}@WI?S=h&ZhlaAAg8m^90=_qyK&Cb5f zcEW9(T`C>xYE+nSZ%es!fs{=Lgu4@UGu^bA!NAR}Kc<@7bEfrY-ez-q;M_N7)@|nG z(e_-o(I3uvld@@1Q5e5LLlkY<{I4u4UEt=A^mP6ZrSk_SVzZ^ zVJ^H4Lulm?gb*nqHPX2$WysI$B|_}^ZZ_Toa*?gW6mb0${|76AGz-`4Tq?vY!6EbA z9JM15Sv3lg6{F!$yiFk7Ci9Q|WW*Fr;UE4f3O2!;G%CcEOhZD2;BA@zbM4Ks*r9jw^Wa%tly3O8w9h_K7MGB3}eF=Rlg^mEO;$vL81P1Z1~&A?4UvUrkx z3v2#2UprA$OFUJ6hQN{`2q=(}CXtms0{*GQTY{SbSQx*Ff+o7~re#xs+X9n;^WZn5 zhZo`I!(;sU4H-o6g%NL&W8fP*8oo&*;h(|C8IHh$p?t2v2rB=KAS0x!`1PnZU9SQ* zY03zejGK)&DW3}7!YcV5@G)V8Uqr!h;%y|t(?=sbg?LLGkBIn5aKsSHk<$?En67Y3 zaLh$wsZhVKkH-E(aKYqgFJHIL3x*psn-0s7A@))lk zKOt#rP9Y;=q2DJi}wD7$*7s^n!wDS!)6({3BqLjyIV4AeRf&&ox$1*!tSM% zN8f7}?r)CH`y~F-_>=b=z{$1%PUFR&MB`tKKNW3#T_*F^E6a;W8TGL&Aws}Ce(M@v zKQ>6~eq_2$Up;!q+wal+(Cq7eVgM(glg!(TJ1_CBW`(8Lys{bVmeyc(dpSB93$Uan3yUh#&{CF&#*$dn z7e%ACAX4#GnH`F9{yr(q2mfID7NRl6%mBR zjFK#8lR|(3t|TYejvzY>$$ac2CEu&d2=oJ~{sfS+&%Dyvcqi*v$MiKi51pMH$B;fm>>z zX538YZs35|X|kG{b+bEr<@f?EyBf5bE>mez@Hbti1DYeuTs$9LCM3h2%a*0{-lX%? z2{S2;%Kg6maMSs0-mZoO*W9*fPaA4xzMC{Kn1%%}7ucL3**U?Rlua{}0!?E=YCqmG zQ%$xlR{_T{J;Y?+G$Uuqs@a;A3)07DBnFwea8gQ54K>S#$lSLq8*q69TwyXwiqcRf z4Ga}IsIE4E62P^!)?>+%HU-@B<;w`O73f^K3M&}`IYHc-HG~`Swo*Gy&3re-n|7I+ z%v+0gnKq!lz8bYP6{xH%LAjJni8sl*3Es*|vkAC7yLqAtZ7q#hvZx))mM+B#!g1~D zwOF@yBQ|c>g6&%j;P&j?N5CDx{=G->#r_jGeDDm89zIW)UBt1&mvQ{amjvBcIC1Q< zX5>yByU6>`;n!0qB2-l6ptvL*`2|VH&51=ungc0G(yS1G*eGwsTZH0m4nhNF+F7^h3O6U-#vup#F1o5&#=bYy@5OM}@25_cqI^JF;WSm_xl~SqT z&2C;8(7@otnru5WaP9*-PfgZM?i;HaHz(dC>o(iQ+rV%F&V;jEItsHsK%4^4`d48= z81i#Mki%cJnfyV|o+6cZj$+~@{5z+Dy!Wus2 z`|$|@H5kEVg12Fcw}6aM@J}JSh&SJ;am3pM_ykRI;my-yDm>j83#Y=vL*T}JJ{6xdtoTf(33h25zCU?p)pfAhgbOz=k-> zrqW@{VB8)9LK+U{^B{_o9KSebN;2r{Q2@v9{--``%CbTvQ$Vnp5A_e$Hd!1;?0$H z`|c-PyKFj5FCRaJbB7KRZ`-hM^D69Iw**@{o3M6C6;`$sV_8EU7T0E?y($GQ(mBYnxM_AzfmFGSLeMI2;eeptZ9>i zpO#8Xvt*G3+i51UQ>3wAKuJ`?+%~078)hDep`a+8dYS;k{)sW%?JWA0bFXdiIf;m*IYJ(Ixj7oI+qM_mQ!`f zkSLRZljC>cW|6WZIlrH;Ei6eQM^-ATBSh|F+D9({ieWJ@;)O`~+}08IpaAKu)%l zPX%!CI{&S#I2{!PR3!mbtqlwn#G7Qmny_?fy8^DGV;S+b5-V49x-xJwN|&i~nULkn zSMYde*>n+F+FA*pCgQCTb@jD8cO~&wit_Rzf-N5<#l%oi7ROAKYx6`g@mPVDrg}bi zD-pOz*PN54fz<@u`t=*JdDB(`ZkG+X{aQlZyXUZ$QDq*Slu`w8M-CHlM=s&S(aXGj zfpL~`hWpRxoVmUGk6_Qf!`MXtZriyRo3?Dj`i&c~X6;?tNxCMGm zLx88??Za$af4S7ozR8?6h6`^4(AM9)&|f|kybT1Nvvle#mkz|6G%85Lf?{p9n`Y$n z7}s1klYN^vV7U-y2dcAVYWCZJv$JoqbjTc{?gPNt**9k=>Oj2Bu)9v3bKkUVT3E>c zPWa1BvTm9D!Oi3ka~glCB&T>FF>L|jQf4D6WjZ3$C&Q6F5n(xF5mqo-@fKD(RGSsT zYldi-sacqJkb+H1r7eS9A#1)lbiUXyg`4b)X*VcR%n?hnhFa8sg?gjvMr!6w@D^1* z*6ubX%F3o{M`C%#(THspyqS`zz%5+L zq%Hl|Da)Fe4%xx|%YevwZq369w&8ZUbQofJy)kW{n??m9FuI-NA_8s^&(|vR=l*T7 zZ?gP|V7Brz(>#z*yk(CdwnoA)c?^8w$G|t5cnjw@o}GE~^dizcrWm-nPbTE1=sv-l zcL0wInV@ss4jfYRk%BE$;MVYO4MAmC z9fN=ildN0SCkQM1)MVWXha)0)Bpg|z3H7o3nvX|h!bC*HO+{1`;T|y^F^-u?ka=!W zDka|1V-_Ma&cjtMHCea0W-Yh0IWD;Ak|5eyYBwkpjYVwnD1O~WBCdQS5^6>vy?H$H zmrO@#$9&YT_C@>VNObN@!}@*s*mkf2`%kps=(&|Rad87qU)qKXU+q@BeShUB;dT-~ zUpq^*MxY zV(xtx@%Hi+{SF+rPlt~G=?mjJ@x-xB+bc&kAdEaXJ^o@qe$k|!8mv1%e_IJ0z z+F#v&;Xl29GycN=zUIjN|J!5Z?xiyuN4&lIOOJiWeQycCcU=;HYDrb*xb;0D>Yo0o zfa@dR`lKwXWz#+v?z(Nz$uTlY=jqFbJ$xTt;o0pjJo)_@9$c5jd4I=^E5G8`@2=tM zoBI62k^o3qQ*iMKKhfm;aC7OZg7$PVh?w!;Ou z95WYA8yal1mF9$KNU7D;^pNSqO%U>>3sdl>$T68LT?;L(e=*x!hGyIb#sHw@y09}a z(>Ab7>g~$jIk$6D25$S>aP#{h%cdb&N6DUzuwLnP&#!k1e_7??OKpm7w6SEa0YVe_WErm)8?g_HwndB zv@F8wr6pD8av=&jyX({-&%@PmnjF*L*x<^%>6|wyn+Dk+3)KdN+_e4>tT_QE_qpc5 zX{TwBZfB(iX<0Qp)j8)aROh{E`80!g%Zf7P(}KkQLW z5N;bbZp2#6xS3@^+S=>T)Le=Bh7wd&6K-W0+N4mBpMc!#SY)OVdL^$d^gFu z4VdpHV3YExf^LdwVwh#aZRX@LF1!s~Dn!evQ$|_;$}0@ye;5A9;xB-V6hEZ%7fCXI zu_PwBBQAL!qLXLx5BXF$(kCGzOXj<|nZR)?Dj6-oS%1mY z*}O1>cp{?OhM2G?{>z*f6lf7BzZN5fG*O7SLT)7a9<`soQVL|nX$ zxVX}(3OX$S$3Qs0nF`*tSz#jaHWqPB25(xHmF!>JX9_n7(`YcrT$`3miMtk)4UB5; zZ&VPx#qzoZZnCZ5Y?pKKb+&zih_;W-*kb0lYTGZy{{V-U!5$y~R9 z+|LmxjS8hh5L78}`_w#ton!zF-gK-d*ccJSTR34CUc+nUHAa*Z*CoRcQ7}RqQ6jV5 z5Sca>k;&r`mB9Boeme2S2%mvC$1Ef|=9*Gzv^z3lJs1o5OWKr7)9vn3o#&Qr7U50G zCfsuQwaK4s!_AFfuhIN^jYNFK2ts=VlIzDHvvm>*m(D_E=R!1Y2*lEDu~@w;0~?69 z9Y?CL|6~h}oLzyF7dGJhl&2a+z@Z2Dh(&hr7hv z!{2|#)7v-Db?+8l+#}u|+(Y-Hhv6>RSHS_jommM!&5O5YjWf4u5 z4Y*$ID%E*!GXITudvEpVoVWK@pJwF#Qn0FX=ntnlrb3%X3msr~zK zX!~aD*(jZ+vN&&@;%x=-wyZ7}i|qMsEjHd7iefbLR-J1yZxuG)$~03JU`n4EzAnU> zQmGfWydTvtv~A~88{yo-kgwgcEk3sQ|Fw+X4Y%dd2VTDQDezcY6#xa?o;{nh34ieZ6J^g+!9&;O*>GRV#SK(j1I<1g`0Glu2|8D zjvsznf(c)D)1V;7{d36>iGg?xJ|TqIZLLqO=hhh zZ-TTjM4DTF!@^8^&YO)hcl-9d0c*YK@*x9Csiu57+O=q}3vvT6H%G=P&eG`^7v3}m zbf3DqO|$d-kd;Za@s~s@|C35dAlwo?5T7s~(FwB=l{Axo$ceYK3B=o2MC8dQ9Z1>q zb8T1%uNsE1>cOs$mojD2!5ZOq`PA8Us&n9^X+bhq?L!UVT1_@i@D|xL9Fg`?A&$Bc z25*(bTj>}?myJgZ;TA0=Q^L)Ow%C%Xntcs15 z8Co$I!No&~Hv%hb1o1W+e#v8rHzF*W7z>}Ec=MKSQy-$ubBf~4Tgs<`H=jw`i7MGS zfu3(P9~U=Pvv&cRqqP*P=jL++mlJPQgS0szwC)odZ2x1T&Wz#Q7cQB%>W>h?>x&@v zBFgwWi}_yX3*1H{GLvvi8;7Xm3HBWBs>-Boc0kg_AVnCUe}POGhB4;&a5+3`Zir&KWJ^klQ{D zCClcaW{o$RH-#wPR_#v5#xDx7^Jpy&oL+=u=U3tMrOmkbm6S~P;oBb$;>Rn;a7{|4 z*Usa{&ysoj8h5ULj|ab9!{eL3;_0p5@Z#<*Sa)jj#xtA_;6BV7hW*Kd<}{(?BN zGz+JhI706I3*wFOw(Esy>2|e`vTAIKF5l`@Kg*q?;*S|ho z!T*^DXG*4$dCSpm)c*Nrru1o=3|yJFWK$mPFP++1HHqYb**5z;x)g|v-W+{CnBSIf ze}tGb1L(}WX{prCv=yfJe>#QE50v2kGG22f&r!?gZ00pCCDJ;1%v!#WYjeY~A}0)s z3E38&znPe8mg5q=(UK&``=WtS8RvyELaa2#110<&P{iK_MUi$m+))_ej$%ep_}I$Yo?Q(z!oP*MeM#lqe4cT&m(uvTz1(DN$Z7#A%nRU1D|amnB6MZ?5cHAm86$ z1)B?R&XTF#4(0n4ruzrNE=S9&QX&o0Y+H_9UNxW#*LiO_nth8vUY2}xR*aedR*;DD z(sWdoXQQerA2l_Fy8c^BOEubC>#Cz&uQWl9(7^5vQlleut$IPElDwp>3BOS5im zZD?(2)}==po9a+oSB;w5Dl_M;tPrIoc`m#aMzSt)pb#+`b za{Klk!CsTH zHJzv7O{NP~%9qjY!xV6GpDfQ|7VssEwBywI(O9DpRW$~YWs-H9NW4wqNW5{BZ7Gw+ zl}^{tlBsr?PS*9^66z-)w%(0+8->{B;U>GM*Yc?gZw`V>=d9ToLhXK)xp>XPY`A@n z*!JN%$4yGSaf^8#-i~Y=s^!<{MV}#hG2z!Pi2Fp(7v3bFarzlTYWSX14Ar@4fqBD; zw~+`;9}WMMu_p5tH9_aR3Cz6xCz~vr=Tya;m#4F2O1K3wLii2r;C~myn_s*e{8Puk zFJmMEaz`Mja5#cXOyh_%>n5KTAx#rnDjk5gum;Jz5pMQew+Q0WQOeg^Gy+k?Ta;wo zGTacAO1SZB9;Nf$B=bhRMG$WeGv_TO%AV)uDwpz?vBJ%)=a!aEyk$-|4GMWvkW@fS z7mX*}#v-el+AZF3lwZI8w3J?Yqdun4=4 z*WvKlr8seMEzW(p6_>s?c>CdpBe?qG3H*HZ4DogWzyI9o0L^0Q}^<3&PB5pR9O8sq=H{f}<{ z-SbZ8)d}wYeDx>sCYd$@?)jgZeS6nsx=tFwfpD%xl@6TSwm&Z@z{Gr3d+a4U=u?f33 zbYRPhW~^OQh1D%3inpaTg17X3ycG%FqEVM`09TzKfeHeyoR})hGU!sk*~^A#Q-Xj^ z;pVMt!8u`P@FpFl0p>BXEQp;+bHdFT6@*&F0F0IAh1p{WD)K`(azCRyKg?_^K~eA=?w^AaZkGnnMlr|2(D}#7A zg||Gxnqn@5+opu7`|P=J&QT*h%s|eWsZ-p^J_9)coZ^ij$+I(XWyPub(OFd$GXE@} zh$WKBd|3o+G>A=r2m5;=7uJP8?)Sr11yj8gH zmgT}*QDLTbp95MV{E-mtgSbd9M29c5GjH=;bKU~IrxR^c;HO}l z06zjt%B7N7^BI6QSNAC4rpLJ3-K7gAd{7SkZy%TC?QR+zyaqtfd)|11x48yt`WdHo z=FQo8YBF$R6?4u`Q}@~Se76~W><~cKQ&g|R37=X9g zQ`|6%Xw&#d=52-(Z~q@(Z~Y(Ty?ybX|Kc9$Ij4dYwXb z8gji+@McB8FW5Sc9mipCLe z){SC~<&S@`sRm?=IsmS2qpAhQdKiei*StQy z4pH9B+A9NZPBAIW<$Yy^mt|JSv{XZh2vK;OE3MPNYo*VWn2>vPOM}dwB{j$_+5e|Vj>p_3>3HNN51#&SFj&0w4i5=^|!k&%a;DF4#5#SDO+lXVkwz3Ftdv+OkJ9q$R4;@y3J1c72 zQ3GyrT1ueJETlhzUc%kE69RchH21Anz|Kxaiofg;ne9u%$ulhgri1L$YfrvI3D!`vpNB^!hQv=rjS)6$7nrmD{p?og0@T(jOr$B zQvzEaOwaz|on->(|O0AGzEBLoMFlxk(6|q{U zk_lH?EXROQ-@L%twAcVxi}9;x#yuLR@Fs23atr3{``zUzEeLFvTH(6|{o4;j5j68_ zi8{X~tx;9k_#AD7r-eK&C9J*A&txS(n~kh(JiWU#9eYdCu)ib~`v_}$OH#0(KzF1v z9lg~VxIn18Sm(s0W)Cj1&NXJCry&#Pnq0Wl>cNG2p00DCuf>J)jTtywlZLa^tXc

      =vp5Uy-y=MSaU)$^4ra_0@T3B&;+y6r-)B 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

      xuAUjki$2TQ=dAZlhop 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

      yOl;MUhygn|BI^ijGA zaP3{J@|I6{%SUrtE}B~jZ!KwPXyT!^J^|-zVsMu5R#p*Ac=IE?(Q8-i`Vnv0r=5^h zj~DFpbfB#$hZ9N)(9=|dfwm^J2yrTsqEHn01_}rM z2IVjR0z=x5(o;usxF33BLQv&oi?ilt=x}qxR7e=QT|7{#ZAcLE#EsIkcsVqN7yX0S zs;I<70lnvoOR(MCif3JAR%0hQoJh};I>shDqobdK)W&^LL z*6`!V0)CjJ|AWOXJRY6HW_2@W>2aGit=R1x!j-yqtQVcdTp|x$u1=^mGeMiZJ?0~0 zaOq?YZWWebx1bmsDQOrB4o07kCz>5?QEy|0c1J68*qfu%&J0~Prs$>5zfpSKh8*os ztD}QT4Q(_Snq$b_A6v<}cyhi4uX~5^hK*(|IEAYrewep3#K3WBj2)N4G{J2~SsYXJ z#W_Zp84?%5pqL;A2{%KMg50RhF#^sw>sLmAV`2OI*H0@+aG0AUxQ)`6FvAvjllJKBoa(vl;*Nn!Cgfs*jSnmk7c0fREa=%?SIM@#@cQX=Rj$n{8z zqDxX3J(K}CF^m#Y#|W*X@^t)!)G-1EL+F%}IM)x3Es-_L1~f33vFe;W!HrNiM%VWf zXPVFIffS1V`w&1LaVbO8vSi?KGGGZquh}d?ExOaEk4d0 zvGIhrcyGkTv&&vcU==x5fs5o%5X^&xU>Ph*coT<(zZ9$j6k!*n0p}2X zxP_b27lb9;!c5`ds|Q<89k>OUA}q!QNvQ!yOAkRtMmRE0Mj<;r8tJ@n@Zy3H9p;Td zA18P?Tfo`Q7*00EaI`joJAH^b(+8KGxiL(1wGbH;fEyQf@aD #3W#D2j&g4^wt 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

      g;hA>`RkD<~_ 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

      5AM4WFCV%IkL>*`4sY|s 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 AMF0Q* literal 0 HcmV?d00001 diff --git a/docs/html/topic/performance/images/palette.png b/docs/html/topic/performance/images/palette.png new file mode 100644 index 0000000000000000000000000000000000000000..eb6be6b4246c81ca572e9493dc5df64f7b98af6d GIT binary patch literal 3917 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 literal 0 HcmV?d00001 diff --git a/docs/html/topic/performance/images/parrot.png b/docs/html/topic/performance/images/parrot.png new file mode 100644 index 0000000000000000000000000000000000000000..7a8b86a97b1e2e08bd487d7c4622b59611897a4a GIT binary patch literal 441195 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 I`3V33J0Qjh)c^nh literal 0 HcmV?d00001 diff --git a/docs/html/topic/performance/network-xfer.jd b/docs/html/topic/performance/network-xfer.jd new file mode 100644 index 000000000000..7fe5594ca899 --- /dev/null +++ b/docs/html/topic/performance/network-xfer.jd @@ -0,0 +1,374 @@ +page.title=Reducing Image Download Sizes +page.metaDescription=Improve network performance by optimizing image size. + +meta.tags="performance" +page.tags="performance" + +@jd:body + +

      + +

      +Most download traffic consists of images. As a result, the smaller you can make +your downloadable images, the better a network experience your app can provide +for users. This page provides guidance on making image files smaller and more +network-friendly. +

      + +

      Understanding Image Formats

      + +

      Android apps typically use images that are in one or more of the following file +formats: PNG, JPG, and WebP. For each of these formats, there are steps you can +take to reduce image sizes. +

      + +

      PNG

      + +

      +A key to making your PNG files smaller is reducing the number of unique +colors used in each row of pixels that comprises the image. By using fewer +colors, you improve the compression potential at all of the other stages of +the pipeline. +

      + +

      +Reducing the number of unique colors makes a significant difference because PNG +compression effectiveness is partly a function of the degree to which +horizontally adjacent pixel colors vary. Thus, reducing the number of unique +colors in each row of your PNG images can help in reducing their file sizes. +

      + +

      +When deciding whether to pursue this strategy, you should keep in mind that +reducing the number of unique colors effectively amounts to applying a lossy +encoding stage to the image. However, an encoding tool may not be a good +judge of how bad a seemingly small error looks to the human eye. Therefore, +you should perform this work manually in order to help ensure +the right balance between efficient compression and acceptable image quality. +

      + +

      +There are two particularly useful approaches you can take: striving for indexed +formats, and applying vector quantization. +

      + + +

      Strive for indexed formats

      + +

      +Any attempt at color reduction should start with trying to optimize your colors +so that you can use the INDEXED format when exporting the image as a PNG. The +INDEXED color mode works by choosing the best 256 colors to use, and replacing +all pixel values with indices into that color palette. The result is a +reduction from 16 million (potential) colors to only 256 colors: from 3 (without +transparency) or 4 (with transparency) bytes per pixel to 1 byte per pixel. +This change is a significant first-step file size reduction. +

      + +

      +Figure 1 shows shows an image and its indexed variant. +

      + + +

      +Figure 1. An image before and after conversion to the INDEXED format. +

      + + +

      +Figure 2 shows the color palette for the image in Figure 1: +

      + + +

      +Figure 2. The color palette for the image in Figure 1. +

      + +

      +Representing your image as a paletted image goes a long way toward +significantly improving the file size, so it's worth investigating if the +majority of your images can be converted. +

      + +

      +Of course, not every image can be accurately represented with only 256 colors. +Some images, for example, might need 257, 310, 512, or 912 colors to +look correct. In such cases, vector quantization can also be helpful. +

      + +

      Vector quantization

      + +

      +The process of creating an indexed image may be better described as vector +quantization (VQ). VQ serves as a rounding process for multidimensional +numbers. In this process, all the colors in your image get grouped based upon +their similarity. For a given group, all colors in that group are replaced by a +single center point value, which minimizes error for colors in that +cell (or "site" if you're using the Voronoi terminology). In Figure 3, +the green dots represent input colors, and the red dots are the center points +that replace the input colors. Each cell is bounded by blue lines. +

      + + +

      +Figure 3. Applying vector quantization to the colors in an image. +

      + +

      +The result of applying VQ to an image reduces the number of unique colors, +replacing each group of colors with a single color that's "pretty close" +in visual quality. +

      + +

      +This technique also allows you to define the maximum number of unique colors in +your image. For example, Figure 4 shows the a parrot head in 16.7 million colors +(24 bits per pixel, or bpp) alongside a version that only allows only +16 (3 bpp) unique colors to be used. +

      + + +

      +Figure 4. Image before and after application of vector quantification. +

      + +

      +Immediately, you can see that there's a loss of quality; most of the gradient +colors have been replaced, imparting a banding effect to the image. This image +needs more than 16 unique colors. +

      + +

      +Setting up a VQ step in your pipeline can help you get a better sense of the +true number of unique colors that your image uses, and can help you reduce them +significantly. There are a number of readily available tools that you can use +to help you implement this technique. +

      + +

      JPG

      + +

      +If you are using JPG images, there are several small changes you can make that +potentially provide significant file-size savings. These include: +

      + +
        +
      • +Producing a smaller file size through different encoding methods (without +impacting quality). +
      • + +
      • +Adjusting quality slightly in order to yield better compression. +
      • +
      + +

      Pursuing these strategies can often net you file-size reductions of up to +25%. +

      + +

      +When choosing tools, remember that photo exporting tools can +insert unnecessary metadata, such as GPS information, into your images. At +a minimum, try to leverage existing tools to help strip out this information +from your files. +

      + +

      WebP

      + +

      +WebP is a newer image format supported from Android 4.2.1 (API level 17). This +format provides superior lossless and lossy compression for images on the web. +Using WebP, developers can create smaller, richer images. WebP lossless image +files are, on average, + +26% smaller than PNGs. These image files also support +transparency (also known as alpha channel) at a cost of just + +22% more bytes. +

      + +

      +WebP lossy images are + +25-34% smaller than comparable JPG images at equivalent +SSIM +quality indices. For cases when lossy RGB compression is acceptable, lossy +WebP also supports transparency, typically producing file sizes 3 times smaller +than PNG. +

      + +

      +For more information about WebP, visit the +WebP site. +

      + +

      Selecting a Format

      + +

      +Different image formats are suitable for different types of images. JPG and PNG +have very different compression processes, and they produce quite different +results. +

      + +

      +The decision between PNG and JPG often comes down to the complexity of the +image itself. Figure 5 shows two images that come out quite differently +depending on which compression scheme the developer applies. The image on the +left has many small details, and thus compresses more efficiently with JPG. The +image on the right, with runs of the same color, compresses more efficiently +with PNG. +

      + + +

      +Figure 5. Suitable cases for JPG vs. PNG +

      + + +

      +WebP as a format can support both lossy and lossless modes, making it an ideal +replacement for both PNG and JPG. The only thing to keep in mind is that it +only has native support on devices running Android 4.2.1 (API level 17) and +higher. Fortunately, the large + +majority of devices satisfy that requirement. +

      + +

      +Figure 6 provides a simple visualization to help you decide which compression +scheme to use. +

      + + +

      +Figure 6. Deciding on a compression scheme +

      + +

      Determining Optimal Quality Values

      + +

      +There are several techniques you can use to achieve the right balance between +compression and image quality. One technique uses scalar values and therefore +only works for JPG and WebP. The other technique takes advantage of the +Butteraugli library, and is usable for all image formats. +

      + +

      Scalar values (JPG and WebP only)

      + +

      +The power of JPG and WebP comes from the fact that you can use a scalar value +to balance quality against file size. The trick is finding out what the correct +quality value is for your image. Too low a quality level produces a small file +at the cost of image quality. Too high a quality level increases file size +without providing a noticeable benefit to the user. +

      + +

      +The most straightforward solution is to pick some non-maximum value, and use +that value. However, be aware that the quality value affects every image +differently. While a quality of 75%, for example, may look fine on most images, +there may be some cases do not fare as well. You should make sure to test your +chosen maximum value against a representative sample of images. Also, make +sure to perform all of your tests against the original images, and not on +compressed versions. +

      + +

      +For large media applications that upload and re-send millions of JPGs a day, +hand-tuning for each asset is impractical. You might address this challenge by +specifying several different quality levels, according to image category. For +example, you might set 35% as the quality setting for thumbnails, since a +smaller image hides more compression artifacts. +

      + +

      Butteraugli

      + +

      +The Butteraugli project is a library to test an image's Psychovisual Error +Threshold: the point at which a viewer starts to notice image degradation. In +other words, this project attempts to quantify how distorted your compressed +image is. +

      + +

      +Butteraugli allows you to define a goal for visual quality, and then run PNG, +JPG, WebP lossy, and WebP lossless compressions. You can then choose the image +that is the best balance of file size and Butteraugli level. Figure 7 shows an +example of how Butteraugli was used to find the minimal JPG quality level +before the visual distortion was high enough for a user could perceive a +problem; the result is a roughly 65% reduction in file size. +

      + + +

      +Figure 7. An image before and after application of Butteraugli technology. +

      + +

      +Butteraugli allows you to proceed based on either output or input. That is, you +can look for the lowest quality setting before a user perceives noticeable +distortion in the resulting image, or you can iteratively set image-distortion +levels to learn their associated quality levels. +

      + +

      Serving Sizes

      + +

      +It is tempting to keep only a single resolution of an image on a server. When a +device accesses the image, the server serves it at that one resolution and +leaves downscaling to the device. +

      + +

      +This solution is convenient for the developer, but potentially painful for the +user, because the solution forces the user to download much more data than they +need. + +You should instead store multiple sizes of images, and serve the size that is +most appropriate for a particular use case. For example, for a thumbnail, +serving an actual thumbnail image instead of serving and downscaling a +full-size version consumes much less network bandwidth +

      + +

      +This approach is good for download speed, and is less costly for users who may +be using limited or metered data plans. Proceeding like this also results in +the image's taking less space on the device and in main memory. In the +case of large images, such as 4K ones, this approach also saves the device +from having to resize images before loading them. +

      + +

      +Implementing this approach requires that you have a backend image service to +provide images at various resolutions with proper caching. There are existing +services that can provide help with this task. For example, +App Engine comes +with image resizing functionality already installed. +

      -- GitLab From 09af67aaa3720b3250a2b97125a3773f05587ca9 Mon Sep 17 00:00:00 2001 From: Bert McMeen Date: Thu, 29 Sep 2016 14:51:42 -0700 Subject: [PATCH 611/809] Docs: Emulator-related updates Bug: 31819645 Change-Id: I54ac73c091f162bef427c8e97c256c6581beb2f6 --- docs/html/wear/preview/downloads.jd | 71 +++++++++++++++++++++++++---- 1 file changed, 63 insertions(+), 8 deletions(-) diff --git a/docs/html/wear/preview/downloads.jd b/docs/html/wear/preview/downloads.jd index 08ed233afc8c..83a3f98452c8 100644 --- a/docs/html/wear/preview/downloads.jd +++ b/docs/html/wear/preview/downloads.jd @@ -626,7 +626,7 @@ This is the Android Wear SDK Preview License Agreement (the “License Agreement the accounts on the phone.
    28. -
    29. Choose a Google account to add and sync to your watch. +
    30. Choose a Google Account to add and sync to your watch.
    31. Confirm the screen lock and enter the password to start the copying of @@ -647,8 +647,13 @@ This is the Android Wear SDK Preview License Agreement (the “License Agreement
    32. - To test with the Android Emulator, create a virtual device in Android - Studio as follows: + To test with the Android Emulator, + confirm that you have the latest version of the Android SDK + Platform-tools from the SDK Manager. +

      + +

      Create a new virtual device in Android Studio as follows:

        @@ -659,8 +664,8 @@ This is the Android Wear SDK Preview License Agreement (the “License Agreement
      1. Click Create Virtual Device.
      2. -
      3. In the Category pane, select Wear and - choose a hardware profile. +
      4. In the Category pane, select Wear + and choose a hardware profile. The Android Wear 2.0 Developer Preview is only optimized for round devices currently, so we recommend not using the square or chin profiles for now. @@ -679,16 +684,66 @@ This is the Android Wear SDK Preview License Agreement (the “License Agreement
      5. Verify the configuration of the Android Virtual Device (AVD) and click Finish.
      6. + +
      7. Start the emulator by selecting the new virtual device, clicking the + Play button, and waiting until + the emulator initializes and shows the Android Wear home screen. +

      - You can now test an application with a virtual preview device + Pair the phone with the emulator, and sync a Google Account, as follows: +

      + +
        +
      1. On the phone, install the Android Wear app from Google Play. +
      2. + +
      3. On the phone, enable Developer Options and USB Debugging. +
      4. + +
      5. Connect the phone to your computer through USB. +
      6. + +
      7. Forward the AVD's communication port to the connected handheld device + (each time the phone is connected):
        + adb -d forward tcp:5601 tcp:5601 +
      8. + +
      9. On the phone, in the Android Wear app, begin the standard pairing + process. For example, on the Welcome screen, tap the + Set It Up button. + Alternatively, if an existing watch already is paired, in the upper-left + drop-down, tap Add a New Watch. +
      10. + +
      11. On the phone, in the Android Wear app, tap the + Overflow button, and then tap + Pair with Emulator. +
      12. + +
      13. Tap the Settings icon. +
      14. + +
      15. Under Device Settings, tap Emulator. +
      16. + +
      17. Tap Accounts and select a Google Account, + and follow the steps in the wizard to + sync the account with the emulator. If necessary, type the screen-lock + device password, and Google Account password, to start the account sync. +
      18. +
      + +

      + You can now test an app with a virtual preview device in the Android Emulator. For more information about using virtual devices, see Managing AVDs with the AVD - Manager. + "{@docRoot}tools/devices/managing-avds.html"> + Create and Manage Virtual Devices.

      + -- GitLab From 01915a1a2b5b4584ece9bfd2e2c3c05d3b8c1088 Mon Sep 17 00:00:00 2001 From: Justin Paupore Date: Wed, 28 Sep 2016 17:41:26 -0700 Subject: [PATCH 612/809] SystemUI: Disable alternate nav bar in car mode Change ag/813926 introduced larger navigation buttons when in car mode, and ag/891860 hid the recents button while car mode is active. This change deprecates these behaviors, and puts them behind a flag. A future change will remove this behavior entirely. Bug: 31754884 Bug: 31754537 Change-Id: Iab7ec657105c08d8c45f76646ce0edbf3a5aa017 --- .../statusbar/phone/NavigationBarView.java | 42 ++++++++++++------- .../server/policy/PhoneWindowManager.java | 38 +++++++++-------- 2 files changed, 47 insertions(+), 33 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java index 45d51b01210e..0bc70b53ac52 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarView.java @@ -59,6 +59,8 @@ public class NavigationBarView extends LinearLayout { // slippery nav bar when everything is disabled, e.g. during setup final static boolean SLIPPERY_WHEN_DISABLED = true; + final static boolean ALTERNATE_CAR_MODE_UI = false; + final Display mDisplay; View mCurrentView = null; View[] mRotatedViews = new View[4]; @@ -94,7 +96,8 @@ public class NavigationBarView extends LinearLayout { private OnVerticalChangedListener mOnVerticalChangedListener; private boolean mLayoutTransitionsEnabled = true; private boolean mWakeAndUnlocking; - private boolean mCarMode = false; + private boolean mUseCarModeUi = false; + private boolean mInCarMode = false; private boolean mDockedStackExists; private final SparseArray mButtonDisatchers = new SparseArray<>(); @@ -290,7 +293,9 @@ public class NavigationBarView extends LinearLayout { mMenuIcon = ctx.getDrawable(R.drawable.ic_sysbar_menu); mImeIcon = ctx.getDrawable(R.drawable.ic_ime_switcher_default); - updateCarModeIcons(ctx); + if (ALTERNATE_CAR_MODE_UI) { + updateCarModeIcons(ctx); + } } } @@ -341,14 +346,14 @@ public class NavigationBarView extends LinearLayout { // carmode, respectively. Recents are not available in CarMode in nav bar so change // to recent icon is not required. Drawable backIcon = (backAlt) - ? getBackIconWithAlt(mCarMode, mVertical) - : getBackIcon(mCarMode, mVertical); + ? getBackIconWithAlt(mUseCarModeUi, mVertical) + : getBackIcon(mUseCarModeUi, mVertical); getBackButton().setImageDrawable(backIcon); updateRecentsIcon(); - if (mCarMode) { + if (mUseCarModeUi) { getHomeButton().setImageDrawable(mHomeCarModeIcon); } else { getHomeButton().setImageDrawable(mHomeDefaultIcon); @@ -376,9 +381,9 @@ public class NavigationBarView extends LinearLayout { final boolean disableHome = ((disabledFlags & View.STATUS_BAR_DISABLE_HOME) != 0); - // Disable recents always in car mode. - boolean disableRecent = ( - mCarMode || (disabledFlags & View.STATUS_BAR_DISABLE_RECENT) != 0); + // Always disable recents when alternate car mode UI is active. + boolean disableRecent = mUseCarModeUi + || ((disabledFlags & View.STATUS_BAR_DISABLE_RECENT) != 0); final boolean disableBack = ((disabledFlags & View.STATUS_BAR_DISABLE_BACK) != 0) && ((mNavigationIconHints & StatusBarManager.NAVIGATION_HINT_BACK_ALT) == 0); final boolean disableSearch = ((disabledFlags & View.STATUS_BAR_DISABLE_SEARCH) != 0); @@ -623,14 +628,19 @@ public class NavigationBarView extends LinearLayout { boolean uiCarModeChanged = false; if (newConfig != null) { int uiMode = newConfig.uiMode & Configuration.UI_MODE_TYPE_MASK; - if (mCarMode && uiMode != Configuration.UI_MODE_TYPE_CAR) { - mCarMode = false; - uiCarModeChanged = true; - getHomeButton().setCarMode(mCarMode); - } else if (uiMode == Configuration.UI_MODE_TYPE_CAR) { - mCarMode = true; - uiCarModeChanged = true; - getHomeButton().setCarMode(mCarMode); + final boolean isCarMode = (uiMode == Configuration.UI_MODE_TYPE_CAR); + + if (isCarMode != mInCarMode) { + mInCarMode = isCarMode; + getHomeButton().setCarMode(isCarMode); + + if (ALTERNATE_CAR_MODE_UI) { + mUseCarModeUi = isCarMode; + uiCarModeChanged = true; + } else { + // Don't use car mode behavior if ALTERNATE_CAR_MODE_UI not set. + mUseCarModeUi = false; + } } } return uiCarModeChanged; diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index 7162b9466a56..3ec3ceaf544f 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -182,6 +182,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { // No longer recommended for desk docks; static final boolean ENABLE_DESK_DOCK_HOME_CAPTURE = false; + static final boolean ALTERNATE_CAR_MODE_NAV_SIZE = false; + static final int SHORT_PRESS_POWER_NOTHING = 0; static final int SHORT_PRESS_POWER_GO_TO_SLEEP = 1; static final int SHORT_PRESS_POWER_REALLY_GO_TO_SLEEP = 2; @@ -2336,22 +2338,24 @@ public class PhoneWindowManager implements WindowManagerPolicy { mNavigationBarWidthForRotationDefault[mSeascapeRotation] = res.getDimensionPixelSize(com.android.internal.R.dimen.navigation_bar_width); - // Height of the navigation bar when presented horizontally at bottom - mNavigationBarHeightForRotationInCarMode[mPortraitRotation] = - mNavigationBarHeightForRotationInCarMode[mUpsideDownRotation] = - res.getDimensionPixelSize( - com.android.internal.R.dimen.navigation_bar_height_car_mode); - mNavigationBarHeightForRotationInCarMode[mLandscapeRotation] = - mNavigationBarHeightForRotationInCarMode[mSeascapeRotation] = res.getDimensionPixelSize( - com.android.internal.R.dimen.navigation_bar_height_landscape_car_mode); + if (ALTERNATE_CAR_MODE_NAV_SIZE) { + // Height of the navigation bar when presented horizontally at bottom + mNavigationBarHeightForRotationInCarMode[mPortraitRotation] = + mNavigationBarHeightForRotationInCarMode[mUpsideDownRotation] = + res.getDimensionPixelSize( + com.android.internal.R.dimen.navigation_bar_height_car_mode); + mNavigationBarHeightForRotationInCarMode[mLandscapeRotation] = + mNavigationBarHeightForRotationInCarMode[mSeascapeRotation] = res.getDimensionPixelSize( + com.android.internal.R.dimen.navigation_bar_height_landscape_car_mode); - // Width of the navigation bar when presented vertically along one side - mNavigationBarWidthForRotationInCarMode[mPortraitRotation] = - mNavigationBarWidthForRotationInCarMode[mUpsideDownRotation] = - mNavigationBarWidthForRotationInCarMode[mLandscapeRotation] = - mNavigationBarWidthForRotationInCarMode[mSeascapeRotation] = - res.getDimensionPixelSize( - com.android.internal.R.dimen.navigation_bar_width_car_mode); + // Width of the navigation bar when presented vertically along one side + mNavigationBarWidthForRotationInCarMode[mPortraitRotation] = + mNavigationBarWidthForRotationInCarMode[mUpsideDownRotation] = + mNavigationBarWidthForRotationInCarMode[mLandscapeRotation] = + mNavigationBarWidthForRotationInCarMode[mSeascapeRotation] = + res.getDimensionPixelSize( + com.android.internal.R.dimen.navigation_bar_width_car_mode); + } } /** {@inheritDoc} */ @@ -2483,7 +2487,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { } private int getNavigationBarWidth(int rotation, int uiMode) { - if ((uiMode & UI_MODE_TYPE_MASK) == UI_MODE_TYPE_CAR) { + if (ALTERNATE_CAR_MODE_NAV_SIZE && (uiMode & UI_MODE_TYPE_MASK) == UI_MODE_TYPE_CAR) { return mNavigationBarWidthForRotationInCarMode[rotation]; } else { return mNavigationBarWidthForRotationDefault[rotation]; @@ -2504,7 +2508,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { } private int getNavigationBarHeight(int rotation, int uiMode) { - if ((uiMode & UI_MODE_TYPE_MASK) == UI_MODE_TYPE_CAR) { + if (ALTERNATE_CAR_MODE_NAV_SIZE && (uiMode & UI_MODE_TYPE_MASK) == UI_MODE_TYPE_CAR) { return mNavigationBarHeightForRotationInCarMode[rotation]; } else { return mNavigationBarHeightForRotationDefault[rotation]; -- GitLab From ef40606eb9e5978cfab47ccc76e4a641d1f31da4 Mon Sep 17 00:00:00 2001 From: Selim Cinek Date: Thu, 29 Sep 2016 17:33:13 -0700 Subject: [PATCH 613/809] Fixed a bug with the scrollability of notifications The accessibility node info wasn't up to date when we scrolled into the view, so you could never scroll up anymore. This is now fixed. Change-Id: Ic71e5005edf89e7dc8a9129206342ed97820e687 Fixes: 31545848 --- .../stack/NotificationStackScrollLayout.java | 61 +++++++++++++------ 1 file changed, 41 insertions(+), 20 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java index e87adae01b18..90e12ec3fabd 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java @@ -351,6 +351,8 @@ public class NotificationStackScrollLayout extends ViewGroup } }; private boolean mQsExpanded; + private boolean mForwardScrollable; + private boolean mBackwardScrollable; public NotificationStackScrollLayout(Context context) { this(context, null); @@ -596,7 +598,7 @@ public class NotificationStackScrollLayout extends ViewGroup if (startingPosition < mOwnScrollY) { // This child starts off screen, so let's keep it offscreen to keep the others visible - mOwnScrollY += childHeight; + setOwnScrollY(mOwnScrollY + childHeight); } } } @@ -619,7 +621,7 @@ public class NotificationStackScrollLayout extends ViewGroup // Only apply the scroll if we're scrolling the view upwards, or the view is so far up // that it is not visible anymore. if (mOwnScrollY < targetScroll || outOfViewScroll < mOwnScrollY) { - mOwnScrollY = targetScroll; + setOwnScrollY(targetScroll); } } } @@ -639,7 +641,7 @@ public class NotificationStackScrollLayout extends ViewGroup private void clampScrollPosition() { int scrollRange = getScrollRange(); if (scrollRange < mOwnScrollY) { - mOwnScrollY = scrollRange; + setOwnScrollY(scrollRange); } } @@ -1406,7 +1408,7 @@ public class NotificationStackScrollLayout extends ViewGroup false /* onTop */, false /* animate */); } - mOwnScrollY = range; + setOwnScrollY(range); scrollAmount = 0.0f; } return scrollAmount; @@ -1437,7 +1439,7 @@ public class NotificationStackScrollLayout extends ViewGroup setOverScrolledPixels(currentTopPixels - newScrollY, true /* onTop */, false /* animate */); - mOwnScrollY = 0; + setOwnScrollY(0); scrollAmount = 0.0f; } return scrollAmount; @@ -1652,7 +1654,7 @@ public class NotificationStackScrollLayout extends ViewGroup } private void customScrollTo(int y) { - mOwnScrollY = y; + setOwnScrollY(y); updateChildren(); } @@ -1663,7 +1665,7 @@ public class NotificationStackScrollLayout extends ViewGroup final int oldX = mScrollX; final int oldY = mOwnScrollY; mScrollX = scrollX; - mOwnScrollY = scrollY; + setOwnScrollY(scrollY); if (clampedY) { springBack(); } else { @@ -1693,12 +1695,12 @@ public class NotificationStackScrollLayout extends ViewGroup if (overScrolledTop) { onTop = true; newAmount = -mOwnScrollY; - mOwnScrollY = 0; + setOwnScrollY(0); mDontReportNextOverScroll = true; } else { onTop = false; newAmount = mOwnScrollY - scrollRange; - mOwnScrollY = scrollRange; + setOwnScrollY(scrollRange); } setOverScrollAmount(newAmount, onTop, false); setOverScrollAmount(0.0f, onTop, true); @@ -1826,6 +1828,19 @@ public class NotificationStackScrollLayout extends ViewGroup if (scrollable != mScrollable) { mScrollable = scrollable; setFocusable(scrollable); + updateForwardAndBackwardScrollability(); + } + } + + private void updateForwardAndBackwardScrollability() { + boolean forwardScrollable = mScrollable && mOwnScrollY < getScrollRange(); + boolean backwardsScrollable = mScrollable && mOwnScrollY > 0; + boolean changed = forwardScrollable != mForwardScrollable + || backwardsScrollable != mBackwardScrollable; + mForwardScrollable = forwardScrollable; + mBackwardScrollable = backwardsScrollable; + if (changed) { + sendAccessibilityEvent(AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED); } } @@ -2084,13 +2099,13 @@ public class NotificationStackScrollLayout extends ViewGroup float topAmount = getCurrentOverScrollAmount(true); float bottomAmount = getCurrentOverScrollAmount(false); if (velocityY < 0 && topAmount > 0) { - mOwnScrollY -= (int) topAmount; + setOwnScrollY(mOwnScrollY - (int) topAmount); mDontReportNextOverScroll = true; setOverScrollAmount(0, true, false); mMaxOverScroll = Math.abs(velocityY) / 1000f * getRubberBandFactor(true /* onTop */) * mOverflingDistance + topAmount; } else if (velocityY > 0 && bottomAmount > 0) { - mOwnScrollY += bottomAmount; + setOwnScrollY((int) (mOwnScrollY + bottomAmount)); setOverScrollAmount(0, false, false); mMaxOverScroll = Math.abs(velocityY) / 1000f * getRubberBandFactor(false /* onTop */) * mOverflingDistance @@ -2441,11 +2456,11 @@ public class NotificationStackScrollLayout extends ViewGroup if (endPosition <= mOwnScrollY) { // This child is fully scrolled of the top, so we have to deduct its height from the // scrollPosition - mOwnScrollY -= childHeight; + setOwnScrollY(mOwnScrollY - childHeight); } else if (startingPosition < mOwnScrollY) { // This child is currently being scrolled into, set the scroll position to the start of // this child - mOwnScrollY = startingPosition; + setOwnScrollY(startingPosition); } } @@ -3026,7 +3041,7 @@ public class NotificationStackScrollLayout extends ViewGroup public void onExpansionStopped() { mIsExpansionChanging = false; if (!mIsExpanded) { - mOwnScrollY = 0; + setOwnScrollY(0); mPhoneStatusBar.resetUserExpandedStates(); // lets make sure nothing is in the overlay / transient anymore @@ -3059,7 +3074,7 @@ public class NotificationStackScrollLayout extends ViewGroup public void resetScrollPosition() { mScroller.abortAnimation(); - mOwnScrollY = 0; + setOwnScrollY(0); } private void setIsExpanded(boolean isExpanded) { @@ -3128,7 +3143,7 @@ public class NotificationStackScrollLayout extends ViewGroup } int stackEnd = getStackEndPosition(); if (endPosition > stackEnd) { - mOwnScrollY += endPosition - stackEnd; + setOwnScrollY((int) (mOwnScrollY + endPosition - stackEnd)); mDisallowScrollingInThisMotion = true; } } @@ -3690,15 +3705,14 @@ public class NotificationStackScrollLayout extends ViewGroup @Override public void onInitializeAccessibilityNodeInfoInternal(AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfoInternal(info); - final int scrollRange = getScrollRange(); - if (scrollRange > 0) { + if (mScrollable) { info.setScrollable(true); - if (mScrollY > 0) { + if (mBackwardScrollable) { info.addAction( AccessibilityNodeInfo.AccessibilityAction.ACTION_SCROLL_BACKWARD); info.addAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_SCROLL_UP); } - if (mScrollY < scrollRange) { + if (mForwardScrollable) { info.addAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_SCROLL_FORWARD); info.addAction(AccessibilityNodeInfo.AccessibilityAction.ACTION_SCROLL_DOWN); } @@ -3874,6 +3888,13 @@ public class NotificationStackScrollLayout extends ViewGroup updateAlgorithmLayoutMinHeight(); } + public void setOwnScrollY(int ownScrollY) { + if (ownScrollY != mOwnScrollY) { + mOwnScrollY = ownScrollY; + updateForwardAndBackwardScrollability(); + } + } + /** * A listener that is notified when some child locations might have changed. */ -- GitLab From 655230c2978403561276488ecdac33c321fc477e Mon Sep 17 00:00:00 2001 From: David Friedman Date: Fri, 23 Sep 2016 01:54:07 -0700 Subject: [PATCH 614/809] Docs: Adds new Battery Historian guide to Performance and Power section. Bug: 31312625 Change-Id: Iba421a8663f729b41d035d6c1dc7d3465cc9efc8 --- .../topic/performance/images/app-rankings.png | Bin 0 -> 60019 bytes .../topic/performance/images/dropdown.png | Bin 0 -> 11139 bytes .../performance/images/generic-timeline.png | Bin 0 -> 182322 bytes .../performance/images/pug-visualization.png | Bin 0 -> 68452 bytes .../performance/images/pugspecificdata.png | Bin 0 -> 71368 bytes .../performance/images/s-generic-closeup.png | Bin 0 -> 603414 bytes .../performance/power/battery-historian.jd | 247 ++++++++++++++++++ 7 files changed, 247 insertions(+) create mode 100644 docs/html/topic/performance/images/app-rankings.png create mode 100644 docs/html/topic/performance/images/dropdown.png create mode 100644 docs/html/topic/performance/images/generic-timeline.png create mode 100644 docs/html/topic/performance/images/pug-visualization.png create mode 100644 docs/html/topic/performance/images/pugspecificdata.png create mode 100644 docs/html/topic/performance/images/s-generic-closeup.png create mode 100644 docs/html/topic/performance/power/battery-historian.jd diff --git a/docs/html/topic/performance/images/app-rankings.png b/docs/html/topic/performance/images/app-rankings.png new file mode 100644 index 0000000000000000000000000000000000000000..9dd60e54735f8c7bafa4a358e4f06bcb84898760 GIT binary patch literal 60019 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 literal 0 HcmV?d00001 diff --git a/docs/html/topic/performance/images/dropdown.png b/docs/html/topic/performance/images/dropdown.png new file mode 100644 index 0000000000000000000000000000000000000000..59ec6110e5ef514641c46adf85b365eeb0e12623 GIT binary patch literal 11139 zcmZ{~RahKd6Smt(a1HM61b2eFyL+&pgS!SvfM7v_6WncZ2@>4h-QC^)dB436{(Z1d zW=;3Cx@L9P^iy?Ltq4_R8B`=fBme+V8dz20vCue^jKv7`VYyTX2o2vdq4rQzkr$A( zgXL>f)ucP|s*@IQGn!4uX}nmS#x6ME=+%s|#qEB1EAstPYMp;Ir=tknP_T=dx_#Wf zr?#v5JGW$a`Z}ub+x@0b5ekHKnOY&cTD3soqrhELcjbmdj&XEn*ziZnp`!@lLQ=I% z)w)gDYLSL>3*%`c!^CqYME*)Z3{AV~6!be@;2}Xy@zHY>)ZLzic;c5vVk3o#HLr@4 z5~Q7_F}8$fYoo!1czaaS+or{o(tZR)msKYpcPvbcX%Fk|<&LY9yPS8}WGz*U#O&?g z#tS$-?Y4N^lGWCfpaC{~4`#Ti?wXoMZ$`)xRFIP;m8SK@>AoX<TUlBYBNEcIxlRj0=e-_^0~g+mMzH&eB*Of(ig%D)uPagy-y4tRm9QKi3$9V;bC z%hf^w0Eg_lS``@JI%F#H%EbjtNqo4NP?-0beZ+(w8|k%s>$(7UuAn7nsr-OEN0lBM zPO51BhJb0JF8Rn42TrO`)BRXfgXr(>4I6Mnwo3oAyv45JWyVdjKn8x2>7-h+n^Jc^ zjUE>%M7>mA}qu`%$@)C_!&W`JY&$LMX9nj}nQ4J5of* z0MlZ|x6!=$CkMZm7gr6Q~^3eU8ssA+R2yc%VK+zPM(lqyC=)KnY=Vlcpj4k?j= zQ$@Dh4d#PWqLBMy4S~8#yyyl30K`Cx1Rw86S(|vDq%ZzbrssRYgp0pLm2UBFQMjR~QngKlQmbze>GH`Lq(Verai9 zZz4>%w%Cfd5>rJ+g4L&@lu0gN@hb%!JVYD=RF%E;i-TZ*eDJ>h?PUJ^w_Jr*ccA4g zG9eSl8Z3$ggRhi#f8bA;s0qtqb5A9Fq^TCaQn&`YDC0=+Lwi?f`rx^d6wvts#Cb!k z$+$_zBgi;EdWfTA$g+tK5C8?rDHp5{9<(10^;K|h06yuA(h`QM7C-hyc+)1z#xbv- z89&-G5)XQAET90C>1lb0Z^}(sY$fIy1)w@P6}iYdxhK{!0Rg5;RHdDb2LwI<;HiAe zLIEtttKZ&;*gn4=@?*+ubVHFpKP6ffEH^pIGL$-$bm%5FvubuikqaWLmxc$O9IHZ$ zs@(M@G3iwL(Ue5Ms@~niWBDG1>pugcOcDOxyF*D#CW1mJKzF8mW?_{Ka_3eQi38B7 zoS~kWorGWa^@)l!*&_~!2{!W+1gf2Hk*{HcvI+x2LIs|f!B7C)_iku_B)~Yb>$8Tg z%A3H9>MX>|34hg6928F(s*aI4S1jh^;VLHM6Fh0_2|sqi0kSTo*eebL@>EBIqjHE<>hkPUERW_4s9!;EP_Eu|M z_1V9Ik;-b?{f>t>oAiRdbwCy-rZM32NKr-OfOzdpBPjSCikMgOF-1Am{-M?LSvJPQ zgVf)_5-RG0{wG9WgMehTu_kx`Vf^S@R^-Bf@Vk`1yHfYYLGv=2>6cf5^*~QkM{y&& zKD$X&;R&A#jbV&X>g6C*5doiw{68H}qkptjV!%b&u*u{-(`Z~#CqVc!@)s%t&wXm; zx^Cra!7qdL)2}!n$2cFCI-ytjAR5ew;A^O-Y`60-Y$+zh(~$d8nq>nduunw-DV^g@ z5&iT9A{bQ z{~ag4L>3>0+q!Pw&M9u8P9E;Y9v0;v+ZB7KNL`MH6;j+qJhPg!rC1|#s!i8f$rNfc zJho1|T)A*yy*d!awDb4QABv&KeN2!StV19F0a=p>e1Z^?o6xSie)dkA+iMi)_0`{W z+YV=U6_a5Pis3zgfRF8|lk?oiM4E!Z)&OuqClg(VY#aIa2!ee8u~N%C+_j??Y7Y z7p#!2!zpf(f(WxO=E%&IE=j1(lVWu^&H=|pEn)xuFmLDHI6Bnv(U%cLvBGgGh$Y~+ zy7S1BWBd@mFW5CI2X(lDzD#?XkYFG}qh~mrw9IN{HyThQjM$S&9E>fh28&|EUu&70 z`#*b{H;#oPi7UHDE3x3N4k6<_oC+?x9FJuhL>GBP!BTiPVu&|hiNivx%`8^3ho05% zgdPoN(E67PajIg+PkTXTRz77Q1b;Po{VP|$QnvmH13^;F`_`y&iM1#UL9&%~UF=}2 z7eS&6!QYc#9y^7zAQauI+&j8(PbV#H>r!YqL&?N56O~{u!}WA!kFpMI{Dn_0&o+ zvo{{4g62bp%SkgLtTfp?Z~AU6Q?{vEgPwhSlDJR#%a@+t`5UZ2dJJnAnd%ey&Tg3^ zyV7Lc@#i+y#hNEb-4)#ex;uEAdG@78lU=KYrKHNH3wdkg5HTJnPLNcZH%j}ZZrikK zQTu}oJ2NTJG(wy4kdv1sYb1mQRdhPO)zbWAkTyEAC{Xf?a^Vm5%?ca+>O+4%5qiFBINBy^AR{)9u+0;!oZaZHbvGH5;$fkUET*G!y$0qivH> z47E6K;q<9}c~W5H>S{~zcYuz5n$}W3ru`4)LDniEoT0-K8xoGPNXK#a*oD6VwAC}#Nlf(!+2!0kkCo3;J;xj zh#3Azq%P2`ze9CbP|)DiKNa^tE>xVvME<0FpN_v!#TxjJf5Kcf6S5&yXa5ICGzcc5CzWR50RdYJu;!>!nn9=*wy+s+E z=(JImaSo=`<79jObuT8gl95!bx$d9ighPHvdZEejcs^qqpgJa%p3qE3^MPQN8t7KT z_~pS9&`s$x&EOy{9dMFtZ^{?>&qetZYeC7F9lFy`EHvAwZ!#aH$$*`!ApW{BinI|IkD$c~A`Wo11tNq+){ zIoX=&y(8h-L$>MghnC3C<~fpKX>n=b3H(w|Va=eWr&UwlDLWyQkdo@2a5TJLUBK{E zc2)ftoBXB$L4p-^9FLmMC}o6joar?IUdh&^tEzSyGBR2LWFm{`Opw#VkK8{97j?3J z`9yF3*2cbpwGO~X*(-rfCx9rY-iLtf|B*-vtH}9!N8s^XMORms@BP`RYzP}<+GMJr zXJu4WRC@X{DBzk%z;f#9`t9{uy~J(vUlPdxc#>a(1KRs(zEx=6S%qVEI>w)l^8(aB4QRw%$+Y1x+y|NIEz+xSj_wt>;E;qP%m@vIw+LQ z%!3)ubj?Ao&RY!|K|w(d5xwD4nxnmgZX{4$%O6#^$^h(NO+vqC$j1@UmF=jC?BI$~ zWa>ZFG%Zfa*WdTVY&2o@fAq9RLPO&bl2um=99f`n1IvHJt3K6bmGd;ycj_#p;+UGq zPM=B}wDD0~#wTmr9*Ec>fr9F~oQ;ea8eB79hTgKh9d=Upus0C(`-=N@4LJiY6URwi+V(UQ!|s zDRvAtUEwSvpjn?PLrAhVz{JEfxZG>Uq9`&wtegBaj}0<~+cSLPa@)-3n3)=i?<^m$ z%o_GlbEfehcXpRuv(_0>PaYa4DbWCe#D68LSKt&SCnhEBoEkB9BEb-czdBx83L>_~t4qB}2ci4Po-tUqBH2nt#bjbCkBxM&hAe*UtAIlLj#9P2-H~<~g8JgJ8 z_nH(f@BHU{&oYjsIR~?2fD$yrl`#CvFZBm(3-fC9kU;(Y+droq7~n*4QNhjvoB#C)AMDvF5D z8dW%j`RCZRKqrmRtMo$`XLPr>IQz5WU&ZEBnTGnfv-XoN>1K|VFndQe?@(XPqGLaH zXyAT+dk&d|7M(daq(INFgZo;WH$+RVynlWUFD9Tdqf{%R40a+%DDX4&d-0I|`ezXB#5jqiv)eZT15Crq z_0Q5p4!Occ_B*6lralDUwCQE_07c;u&^qfvveHZ?P%NXA@X5g zEHWAw7brqo7d~7qY0`J93>250&mu?{F#f(}X9*lFA)C06A;fMI6(&-ef20IVTbxog z!V}+OXd?*4e;kt3X5DMARmO>DHL7A)2e|&>4aT01W_~Ub0(F^^{x}>#28_KnKSWDU zudky6u6rYT^|rGa{H`Nc`0RMxk-6pN_qsW7g0UCJvgs%CH-yy=8UmDLX>(#CGXW+9S$IzUuk6-4G{h^HUz4 zJ43q!pMDI)(2dTTrh-t4*l5(@wKOoISCyYP=y*QRE>3LMEMj~Nz+7B7nMQRL?> zn4OqgY(W5H6#;;nx~G=H>=aFS9+fwVra&jufC5(8MWMtKbH?QWNwuCYBA|h!ABt6h9Qma{&{n&sg#*K4oOyOqS;Sz(q%>1{LHgl2Y>h|rHy2{O^ z*%y&OkHb-wNU5(a@tJ#{yD;WlLfFT7&h21W(sbiym!en!i^mdY|tQuD$ceG%YQB4ro)0JYzg?sa4XJ_Z+q|LPaayqu^W-Sjxyg|6? zD#u7&XBFw2j*vsV7#@byVyhsQ?cyJ46RW`6wE@q{ILEQjr^2D7!NtYJ!NG{Kgk)^_ z9l~j!R720bhYj-G{PB>b_cR@b=>s@hWMm@Qdz`AXx9R7CqBRdPhvp?gX$n!eQI4Z{ z<6Klr%7pQ!hQpoT!mWd=J~sz}CsAv4+8d=BKM9jC0gPOFgGxbHKPQ0yI5y3eX;@_5 zeSB^(T~K&|ryNvaRjr`(Z{{uZvTM(bM7nuGuxE>J&}}}K(ia{Lc9Gp z@U7u-r9-@IOJ{mV=bFM!?k{bVmO=e?TPX3bYi>eTaTg_dazGp*#0DoH9})tE+x@%N zUM5k-ey!DUu*3)J*h=w_z}*M25)V}-pwjygi3n?6+#uycf72#dXlU(t0NV1Yj5`S`g1z9*=>?AOl6`kO3`zp zxBGHBKR-Lh%8xm)HvRqe^w#l0?^ID0yEmhu|A4H7Ay3Z9KOb?y zlj=1>5b$<;Z+`xoIVQExTJdA(=~Y`eDwm!q{Jt_nbL)YQtS^us4c60pru7__^$&eD zIG5h8YGZfgy=}~7-?B_4=PN4Ie{(~eb`m;zGU5KMSsOjIR$bBey!tybUT)Hn(H=w% z@jW1omuo4TEfOrDtKd?f62N~OUQh918;XF^CelD(D^!5_c3jJHySniK+j95z$hPR7 z#j3qXD60z^kesg+QHT6)RX}7ept!ULJ~P$qkDtmX$p)q!w0aDl`$gy-b$(WCUl}hQ zxaK_cn9PiTS1R-lm&|*~X!@dIx^5R!p8CJy*+p(uj1H&=I_-3avi7GM9~=AITnt|_ z{6zv*w1gWKu(sN1P9BfdYdxAdgDCyp;;zx0Pb~Ds88GgQ%hrb$TO(0L)v(h$(vTbR z%T^p1kTRry>MQ54gK#WQZEE_t`pjW#C+l$j-rg~h`MEJa+HE}9N5l|59tZ#n zPbY&v1l~3WdouF?#YQdP+WRNnkXab%xhd~&R52p_guj1Ur6YXPtu}@F%aPeKTWp#z zm-`=#bOgLoRr)%=AYRVVwXPkZ2>PGkJf}J$#_$Qdt5L=?8{91f(yq_VHMk#ZBM+-| zg9Kwl>}J-p{gCt_hE;6*3_F9uin2|w?uq!`K4VhkXPb_@DLD09mPE1bp3jg*I?J$O z)k9R$mWz-!fq(mYe3A5b54IK+jEa~qWEw-HX^N2$ZeOFvanzq?=k0LiB3Dn(z?H54 zz)DU{N9TTd{q3$M9|I__s0h4oT@PMV93351VoVxK<+Of#c~qozwL(J(>3TU5OU??= z{|SkAVh9XL@-@1O=YlqcZ~!Dl>wvHlgtTf>A>`ow^dGI&*4DPRwoZ;L{F_!`O6Yii zuwzOQG3Q_!mqs_*e`UJ9uK$L;d1Q~T{SdCiIGKp~uQ9cdL-Jqou3AD6(wVCNe>zi< z)&?_mx0ll0e8U8!TZPI)G4@EZ_A|obYU4aea$iQ+3FKO5K!THYJ{cAU`fLs)#SY3S zYl-~zSa6J@B~^MUR$S|kOqsvi(*cx zh%w?Oh}l0y4=D-{zh(7Z#<#SXFqUSwE;cQnp4!G{*1}X{uOo=-rxxwS`f{7vQ>Y_$$t3mX8(n4nIbA82c)C%5)y8A3BSSdRqg z;x`R9o<5|mEj~$vKE{vOs`Yg~=AO+i7nv^qaF8Sm=bZ!Z`S)REt3d48)2HmX zY?m6ay9DFiGMhKbwdfvm-gOK>;}<8OT&?jn+3mU_LbU zDpCJIXQO47Y}6t)F>#yRI+srlcE*Z5n-)l!Ct!N0bo$FT7>G4<4yGvcZ|0>q0Hd7Z zMT|M!um4eD*2&JAVR@q@FSXr&@M<&f-h%!u;dcH+^fG4S!3RgTA&hQ$ipN1gFrEO5 z7^Aw|-kqUUv&aY+e1ch+S2(N!*7-%y7$Kb4B9=f51;swAp`DxGCU$lqJyulm1xrg~ za9KJ<0hMy_0;BckumPN$m!poc+}IubOCtS|3rk7p^R32k7{#IYAq8$NEB1H3x+Lym zW{2+2!!L=yC56GodTttx2lQwFuubLuaUsid*H-V>_Y*_)fBbz!WG2n(;NSDwUTu>n z#4|kBv^!ja_Tz=oW8*YMvmyt~BxG$fTVOgSrrT)CaO5BL%x*Nb3R8;b(nB=r6*31) zPFTF|aU?23HpUM=j(U1}W4QR3=f%{z*?U#RZ%sYU}AY05&I1nE1RF|!4w1Zpcgy0i1{-I{J%QF3PV(8 z^g@b=%?;6?jGB;Anc1Z{E)Z9`wzM5)bn;t5DP5)^347QZbi%Iqi2ym<;3*?VT5CJC zPYv(A;K>0^;Wrr0_Axb^5wgfjB||$ zG;ls|-t!qccw+s7zOJA#9vIOy>cuGL_n@Z0^fS-W9;do`N^0HW?++VbI;r8W00}gJ z%(8_*0f^%_PMZuA`IkZZgUCq#?FE1aD#Wwpy+F8}_X=rA!NF)2pbE`ax7fJoxS@^0 zn7YvOz0g~V;5BA|l=bt;PzR(FLb3J6c*UNlS5S*x&yt;u`-;W&0LX&^WCbZ%kHQup-?&_Ac>I0RDKby|^ z!To_0KofNVdfjPB;!Tywd55Zhfl|b0U9dEc%78}wx+*0oyxe$mqksRH*y3K%HlauTx^238MUc6q?rCe#^i^6*k0XLR1$GmK&3oY)XkLajbA z581l?f~=GO;&${XjKKT%HMX7+l=s*5cmM6a=;cO`D<3gji1Y1{R+7A>r6mqA@k`L( z0L1SeQI1Df;!!bM0wMtUf)B{)+aN$2tCYR;18_Yg$KjO@+CML64RbOf+eZ@}f?_^^ z6A$X_N*(1=v2Lout6eX3)P{SAmCau&K!m0h-|5*Mazocu;hM)I1Cc?LhM|KWS}``l zYGOA{^XmaB@NM4#8#b#IIVX<6jaK`dHhO{~4QJ!yc6rB-)H6y_XSu*?Se37`bWQCi zm&rUyLq@_w#(SeYZdtXRAx+doGd&1WZNK1BIf9Ht2JRFvOoo3AaY2o=h{4CleRoqI zKD$A{0LH_j3x8&Nm}2YN?}gR@6Sz0Dx#2(%TOmcLCOF=C&8K^SBQxx?INDd+%{|2d zN@(Dl(lZjF?OZ%H8-fITC`jE>>04<9^Y%DAR!T3;=8ecfNm|*mSPE^L3%$Oc+)>vx zRqhU!^IBgXRG|>^0OlxF9V#a$A3wh{A8~=Y_t{D_zw6#tE<$*CcvjXb_}G-ibWkAe zcaK+Xi><;Kpz~KApZJr>*GO^gaO5yZ-r0>8nH!g5(PD<3rU~BMrRc-!B{1xPf+B|t zrbmJ(PO8^OEXS(I1(1o&ndi~h$)~exGeTnE>-`r?^SO2jCB@+EiFuW}!}`fwkpO{B z+n@B2U=G9R#E5KuOGteiERJv}>q3mson$9lgn=k}@ER{S{Sl?VVEvCuksBbYYTnl{ z`PbU*XgdZ?gPkfVj};hJ-F zPzlm5$oX1R4+e{WRV*NdFZ}ek>dg!4fB?@Zjl1j5cMPGO5BWDXUk*~e4SBx8pG8wx zgkXTDN@lhd@tzSqJ-?BcH-Afc2r2{3bEDZW@BJ(Z)Lv3A(`C}gTr7(xNdlk|VA9khQKa)S9}f=7Dg)o}Sh*o^tSgKfSrYaQsexGaVTG$pG=|wx%B0C^L(G zI0Lx;+t+thI(;Bdfos~~gJ<1eqa3nD<3sYz_LV{X=?qNFWJc}`1#?1FM3g-cr0~Jb zGcm(`*7h&TM!(SU&sC5n!iI>BN?Wf5+oh7(% zUm_Kf*Ds-sOHmGsQhqKr2~`$$jrDd5ydoWyyB$Yzf-NddB?%3RUkq6sh}w(P28piL z-wjd!Oe?W;E$qFOW#h^@P7uNZBp+m0>rqiwiid?>3Ou}b7+ENBANVBh7d23McfjGX z=q61{Wjvnl)F#inn=dUyuU8EUGO@;F*(pXbCL)I9&66S%9)}mt^8{s7Ce`(KOD)O1 zwFj#4b)HQo9^CH}`?igrs#^3kemEIyS30~t@!Zp>(0*yDbkT0~C|;fS!u$$xOe9BT z)@Xms;hDJzBiRh0&!FqEK;_dl3}`>A%I@perYoDfV2Sx)vd74T9NwT@`n{`z`jMEt z@2vH=_rsNYWN*vGn=AOm&o|pl9HVagh~fxwmyKOEx7w_?i``P{-ht^m2b)!9QadiR zkV?k3RKp%wQXK@q(^*M`eMpi)dR@}kQWU3u{1Ok(tU&sE7fIa(yr(+$-iVG3T)e!E zb#+|p_;c^M2hvM22-fWhw~8i>e9Cy|E6uKNFW&X~qgJ*1 z!iblOod3(JDpM~)CaX3&dnRM=T8TA`TfLgiN7HnYmurprQtIy)YNmFYVuLnVVn+h3 zZ$BgHxnUM5Nc`YvDM@cwbRT6r>m7EidPy!&VQ(oRWA@!YCjxwLxAxz^fDHG0VFB_sZO->Q;}yC*2s*Zc->TD;)UZLPg1&-l zg0EszzhOP4cFs-I0tg#p>$BfBv0hiUJ^x(DkgV)gU{@}xgqkDc|UKRj|1m7BOqmfYgfq10U>_P29D_a$p zbI;2L9z|p_eRt{6nYX#K(9f(@x3=>Lso0j5y-v|XgH~C5kKTth9WX%Gt^QvT>vR3A zOBOh2U})+3zWMwQx-#wgW9UZv%@OYYcsd54dXF90;iYHU;hc##z2z+)8}2NL+xF{e zKc0%L9q*kVLz(q-G$0+Mpw{`3WMt9zWZ`h92@AM0w!7PZHM{-XvMc{c&$fC}p)}UL zd2F%<9dt~`QAO0BPNby^?(H3lRIl@lJHr%in9geC8*^)ebOR3#=%ad<+Ppc%Fd$^D zTA~>e60)|oHhpTD(Ujuw#4S)4>$xXsnUgqu{(zxUsHmhdWaoW?E}zimKuYoc(0E!w z^*NaJx2U$ZcFP@lF6SFv3768vtB!AOsdff^K(|e}k5#qXxu8ENLlJ9n^aWpN(W}Vz zyz7itSPqBXx`l>MnEdTJ`+euqix{ncXh^<78yyu@=>6pyeIS-(i2?Y-1%7`TuTsuv z8hg2~Ue^~H{B_IuTV|;0Y27-+p%BT31)_n>`5B;dVGBvv}+b1ykFbV>GLlaXk+* zl6d=gX6qMuZy{fp?UE}qAm`QhVk5KG9|k&qBLfVI0;Bj7FF@Bf_Xu%s5nUrU<8ALa zcyF_MATTFQ;zz$j;}j`c$D=;ddJk`IIkQ-#wV7Ss}Hi_V#uNk;@P} zXLRWr7#yFTzUt<}0TL1tVq#)@x#1*B?D!);L;g3|!|3@u*|2~4?(yILnUtdmM;6HL q8n|o4Yr8->Y6#6+{=YQ;jvk?9czmX+cn;Y{3&=?+OIC`Te)~V$nT$dJ literal 0 HcmV?d00001 diff --git a/docs/html/topic/performance/images/generic-timeline.png b/docs/html/topic/performance/images/generic-timeline.png new file mode 100644 index 0000000000000000000000000000000000000000..04388b6f4abbf658ed9d7d07c50997c4ea70bf90 GIT binary patch literal 182322 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 XJl}k)Hl2zApqHemoJft3LD2sPwJ`Rt literal 0 HcmV?d00001 diff --git a/docs/html/topic/performance/images/pug-visualization.png b/docs/html/topic/performance/images/pug-visualization.png new file mode 100644 index 0000000000000000000000000000000000000000..8270d0e37d1d12c63c9284e8062a94edd3373c8f GIT binary patch literal 68452 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�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 z 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 H{%`+3me(@; literal 0 HcmV?d00001 diff --git a/docs/html/topic/performance/power/battery-historian.jd b/docs/html/topic/performance/power/battery-historian.jd new file mode 100644 index 000000000000..79ea59d21419 --- /dev/null +++ b/docs/html/topic/performance/power/battery-historian.jd @@ -0,0 +1,247 @@ +page.title=Analyzing Power Use with Battery Historian +page.metaDescription=Improve network performance by optimizing image size. + +meta.tags="power" +page.tags="power" + +@jd:body + + + +

      +The Battery Historian tool provides insight into a device’s battery consumption +over time. At a system-wide level, the tool visualizes power-related events from +the system logs in an HTML representation. At an app-specific level, the tool +provides a variety of data that can help you identify battery-draining app +behavior. +

      + +

      +This document describes some of the ways you can use Battery Historian +to learn about battery-consumption patterns. The document begins by explaining +how to read the system-wide data that Battery Historian reports. Then, +it presents ways in which you can use Battery Historian to diagnose +and troubleshoot your own app's behavior related to battery consumption. +Last, it offers several tips on scenarios in which Battery Historian may be +particularly useful. +

      + +

      System-wide View

      + +

      +The Battery Historian tool provides a system-wide visualization of various +app and system behaviors, along with their correlation against battery +consumption over time. This view, shown in Figure 1, can help you +diagnose and identify power use issues with your app. +

      + + +

      +Figure 1. +Battery Historian’s display of system-wide events affecting power +consumption. +

      + +

      +Of particular interest in this figure is the black, horizontal, downward trend +line representing Battery Level, measured on the y-axis. For example, at the +very beginning of the Battery Level line, at approximately 6:50 AM, the +visualization shows a relatively steep drop in battery level. +

      + +

      +Figure 2 provides a close-up of that part of the display. +

      + + +

      +Figure 2. +A close-up of the Battery Historian timeline from roughly 6:50 AM to 7:20 AM. +

      + +

      +At the very beginning of the Battery Level line, as battery decline steeply, +the display shows three things happening: The CPU is running, an app has +acquired a wakelock, and the screen is on. In this way, Battery Historian helps +you understand what events are happening when battery consumption is high. You +can then target these behaviors in your app and investigate whether there are +related optimizations you can make. +

      + +

      +The system-wide visualization can provide other clues, as well. For instance, if +it shows that the mobile radio is frequently being turned off and on, there may +be an opportunity to optimize this behavior through intelligent scheduling APIs such as JobScheduler or +Firebase Job Dispatcher. +

      + +

      +The next section explains how to investigate behavior and events specific to +your own app. +

      + +

      +

      App-Specific Data

      +

      + +

      +In addition to the macro-level data provided by the system-wide view, Battery +Historian also provides tables and some visualization of data specific to each +app running on your device. The tabular data includes: +

      + +
        +
      • The app’s estimated power use on the device.
      • +
      • Network information.
      • +
      • Wakelocks.
      • +
      • Services.
      • +
      • Process info.
      • +
      + +

      +The tables provide two dimensions of data about your app. First, you can look +up where your app’s power usage ranks compared to other apps. To do so, click +Device Power Estimates table under Tables. This example +examines a fictional app called Pug Power. +

      + + +

      +Figure 3. Investigating which apps consume the most power. +

      + +

      +The table in Figure 3 reveals that Pug Power is the ninth biggest consumer of +battery power on this device, and the third biggest app that is not part of the +OS. This data suggests that this app bears deeper investigation. +

      + +

      +To look up the data for a specific app, enter its package name into the lower +of the two dropdown menus under App Selection, located under the left +side of the visualization. +

      + + +

      +Figure 4. Entering a specific app whose data to view. +

      + +

      +When you select a specific app, the following data visualization categories +change to display app-specific data instead of system-wide data: +

      + +
        +
      • SyncManager.
      • +
      • Foreground process.
      • +
      • Userspace Wakelock.
      • +
      • Top app.
      • +
      • JobScheduler.
      • +
      • Activity Manager Proc.
      • +
      + +The SyncManager and JobScheduler visualizations immediately make it obvious if +your app performs syncs and executes jobs more frequently than necessary. In +doing so, they can quickly reveal an opportunity to optimize your app’s +behavior for improved battery performance. + +

      +You can also obtain one more piece of app-specific visualization data, +Userspace Wakelock. To include this information in the bug report, +enter the following command in your terminal window: +

      + +
      +$ adb shell dumpsys batterystats --enable full-wake-history
      +
      + +

      +Note: From Android 6.0 (API level 23), the platform includes +Doze functionality, which imposes certain optimizations on apps. For example, +Doze batches jobs to take place during brief maintenance windows, regardless of +how JobScheduler has scheduled them. +

      + +

      +Figures 5 and 6 show data for Pug Power: Figure 5 +shows the visualization of +the app-specific data, and Figure 6 shows the corresponding tabular data. +

      + + +

      +Figure 5. Visualization of data for fictional app Pug Power. +

      + + +

      +Figure 6. Tabular data for the fictional Pug Power app. +

      + +

      +A look at the visualization does not show anything immediately obvious. +The JobScheduler line shows that the app has no jobs scheduled. The SyncManager +line shows that the app has not performed any syncs. +

      + +

      +However, examination of the Wakelocks segment of the tabular data +reveals that Pug Power acquires wakelocks totaling over an hour. This unusual +and costly behavior can account for the app’s high level of power consumption. +This piece of information helps the developer target an area where optimization +is likely to greatly help. In this case, why does the app acquire so much +wakelock time, and how can the developer ameliorate this behavior? +

      + +

      Other Cases Where Battery Historian Can Help

      + +

      +There are many other cases in which Battery Historian can help you diagnose +opportunities for improving battery behavior. For example, Battery Historian +can tell you if your app is: +

      + +
        +
      • Firing wakeup alarms overly frequently (every 10 seconds or less).
      • +
      • Continuously holding a GPS lock.
      • +
      • Scheduling jobs every 30 seconds or less.
      • +
      • Scheduling syncs every 30 seconds or less.
      • +
      • Using the cellular radio more frequently than you expect.
      • +
      + -- GitLab From b65b81a07442d48713683a22358ba4b29b1848fc Mon Sep 17 00:00:00 2001 From: David Friedman Date: Fri, 23 Sep 2016 12:29:40 -0700 Subject: [PATCH 615/809] Docs: New document on interpreting Profile GPU tool results Bug: 31312918 Change-Id: Ic0f181585087c2f0bf739ad319b9c5baf1c94f64 --- docs/html/topic/performance/images/bars.png | Bin 0 -> 337862 bytes .../performance/images/s-profiler-legend.png | Bin 0 -> 83021 bytes docs/html/topic/performance/profile-gpu.jd | 406 ++++++++++++++++++ 3 files changed, 406 insertions(+) create mode 100644 docs/html/topic/performance/images/bars.png create mode 100644 docs/html/topic/performance/images/s-profiler-legend.png create mode 100644 docs/html/topic/performance/profile-gpu.jd diff --git a/docs/html/topic/performance/images/bars.png b/docs/html/topic/performance/images/bars.png new file mode 100644 index 0000000000000000000000000000000000000000..3afea465c975a766b39ecfe33e7dd3e25761e5ce GIT binary patch literal 337862 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 literal 0 HcmV?d00001 diff --git a/docs/html/topic/performance/images/s-profiler-legend.png b/docs/html/topic/performance/images/s-profiler-legend.png new file mode 100644 index 0000000000000000000000000000000000000000..968fd381156a363bce0ad6d763b23804f1a33f2f GIT binary patch literal 83021 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 literal 0 HcmV?d00001 diff --git a/docs/html/topic/performance/profile-gpu.jd b/docs/html/topic/performance/profile-gpu.jd new file mode 100644 index 000000000000..11c38e40783d --- /dev/null +++ b/docs/html/topic/performance/profile-gpu.jd @@ -0,0 +1,406 @@ +page.title=Analyzing Rendering with Profile GPU +page.metaDescription=Use the Profile GPU tool to help you optimize your app's rendering performance. + +meta.tags="power" +page.tags="power" + +@jd:body + + + +

      +The +Profile GPU Rendering tool indicates the relative time that each stage of +the rendering pipeline takes to render the previous frame. This knowledge +can help you identify bottlenecks in the pipeline, so that you +can know what to optimize to improve your app's rendering performance. +

      + +

      +This page briefly explains what happens during each pipeline stage, and +discusses issues that can cause bottlenecks there. Before reading +this page, you should be familiar with the information presented in the +Profile GPU +Rendering Walkthrough. In addition, to understand how all of the +stages fit together, it may be helpful to review + +how the rendering pipeline works. +

      + +

      Visual Representation

      + +

      +The Profile GPU Rendering tool displays stages and their relative times in the +form of a graph: a color-coded histogram. Figure 1 shows an example of +such a display. +

      + + +

      +Figure 1. Profile GPU Rendering Graph +

      + +

      + +

      +Each segment of each vertical bar displayed in the Profile GPU Rendering +graph represents a stage of the pipeline and is highlighted using a specific +color in +the bar graph. Figure 2 shows a key to the meaning of each displayed color. +

      + + +

      +Figure 2. Profile GPU Rendering Graph Legend +

      + +

      +Once you understand what each color signfiies, +you can target specific aspects of your +app to try to optimize its rendering performance. +

      + +

      Stages and Their Meanings

      + +

      +This section explains what happens during each stage corresponding +to a color in Figure 2, as well as bottleneck causes to look out for. +

      + + +

      Input Handling

      + +

      +The input handling stage of the pipeline measures how long the app +spent handling input events. This metric indicates how long the app +spent executing code called as a result of input event callbacks. +

      + +

      When this segment is large

      + +

      +High values in this area are typically a result of too much work, or +too-complex work, occurring inside the input-handler event callbacks. +Since these callbacks always occur on the main thread, solutions to this +problem focus on optimizing the work directly, or offloading the work to a +different thread. +

      + +

      +It’s also worth noting that {@link android.support.v7.widget.RecyclerView} +scrolling can appear in this phase. +{@link android.support.v7.widget.RecyclerView} scrolls immediately when it +consumes the touch event. As a result, +it can inflate or populate new item views. For this reason, it’s important to +make this operation as fast as possible. Profiling tools like Traceview or +Systrace can help you investigate further. +

      + +

      Animation

      + +

      +The Animations phase shows you just how long it took to evaluate all the +animators that were running in that frame. The most common animators are +{@link android.animation.ObjectAnimator}, +{@link android.view.ViewPropertyAnimator}, and +Transitions. +

      + +

      When this segment is large

      + +

      +High values in this area are typically a result of work that’s executing due +to some property change of the animation. For example, a fling animation, +which scrolls your {@link android.widget.ListView} or +{@link android.support.v7.widget.RecyclerView}, causes large amounts of view +inflation and population. +

      + +

      Measurement/Layout

      + +

      +In order for Android to draw your view items on the screen, it executes +two specific operations across layouts and views in your view hierarchy. +

      + +

      +First, the system measures the view items. Every view and layout has +specific data that describes the size of the object on the screen. Some views +can have a specific size; others have a size that adapts to the size +of the parent layout container +

      + +

      +Second, the system lays out the view items. Once the system calculates +the sizes of children views, the system can proceed with layout, sizing +and positioning the views on the screen. +

      + +

      +The system performs measurement and layout not only for the views to be drawn, +but also for the parent hierarchies of those views, all the way up to the root +view. +

      + +

      When this segment is large

      + +

      +If your app spends a lot of time per frame in this area, it is +usually either because of the sheer volume of views that need to be +laid out, or problems such as + +double taxation at the wrong spot in your +hierarchy. In either of these cases, addressing performance involves +improving +the performance of your view hierarchies. +

      + +

      +Code that you’ve added to +{@link android.view.View#onLayout(boolean, int, int, int, int)} or +{@link android.view.View#onMeasure(int, int)} +can also cause performance +issues. Traceview and +Systrace can help you examine +the callstacks to identify problems your code may have. +

      + +

      Drawing

      + +

      +The draw stage translates a view’s rendering operations, such as drawing +a background or drawing text, into a sequence of native drawing commands. +The system captures these commands into a display list. +

      + +

      +The Draw bar records how much time it takes to complete capturing the commands +into the display list, for all the views that needed to be updated on the screen +this frame. The measured time applies to any code that you have added to the UI +objects in your app. Examples of such code may be the +{@link android.view.View#onDraw(android.graphics.Canvas) onDraw()}, +{@link android.view.View#dispatchDraw(android.graphics.Canvas) dispatchDraw()}, +and the various draw ()methods belonging to the subclasses of the +{@link android.graphics.drawable.Drawable} class. +

      + +

      When this segment is large

      + +

      +In simplified terms, you can understand this metric as showing how long it took +to run all of the calls to +{@link android.view.View#onDraw(android.graphics.Canvas) onDraw()} +for each invalidated view. This +measurement includes any time spent dispatching draw commands to children and +drawables that may be present. For this reason, when you see this bar spike, the +cause could be that a bunch of views suddenly became invalidated. Invalidation +makes it necessary to regenerate views' display lists. Alternatively, a +lengthy time may be the result of a few custom views that have some extremely +complex logic in their +{@link android.view.View#onDraw(android.graphics.Canvas) onDraw()} methods. +

      + +

      Sync/Upload

      + +

      +The Sync & Upload metric represents the time it takes to transfer +bitmap objects from CPU memory to GPU memory during the current frame. +

      + +

      +As different processors, the CPU and the GPU have different RAM areas +dedicated to processing. When you draw a bitmap on Android, the system +transfers the bitmap to GPU memory before the GPU can render it to the +screen. Then, the GPU caches the bitmap so that the system doesn’t need to +transfer the data again unless the texture gets evicted from the GPU texture +cache. +

      + +

      Note: On Lollipop devices, this stage is +purple. +

      + +

      When this segment is large

      + +

      +All resources for a frame need to reside in GPU memory before they can be +used to draw a frame. This means that a high value for this metric could mean +either a large number of small resource loads or a small number of very large +resources. A common case is when an app displays a single bitmap that’s +close to the size of the screen. Another case is when an app displays a +large number of thumbnails. +

      + +

      +To shrink this bar, you can employ techniques such as: +

      + +
        +
      • +Ensuring your bitmap resolutions are not much larger than the size at which they +will be displayed. For example, your app should avoid displaying a 1024x1024 +image as a 48x48 image. +
      • + +
      • +Taking advantage of {@link android.graphics.Bitmap#prepareToDraw()} +to asynchronously pre-upload a bitmap before the next sync phase. +
      • +
      + +

      Issuing Commands

      + +

      +The Issue Commands segment represents the time it takes to issue all +of the commands necessary for drawing display lists to the screen. +

      + +

      +For the system to draw display lists to the screen, it sends the +necessary commands to the GPU. Typically, it performs this action through the +OpenGL ES API. +

      + +

      +This process takes some time, as the system performs final transformation +and clipping for each command before sending the command to the GPU. Additional +overhead then arises on the GPU side, which computes the final commands. These +commands include final transformations, and additional clipping. +

      + +

      When this segment is large

      + +

      +The time spent in this stage is a direct measure of the complexity and +quantity of display lists that the system renders in a given +frame. For example, having many draw operations, especially in cases where +there's a small inherent cost to each draw primitive, could inflate this time. +For example: +

      + +
      +for (int i = 0; i < 1000; i++)
      +canvas.drawPoint()
      +
      + +

      +is a lot more expensive to issue than: +

      + +
      +canvas.drawPoints(mThousandPointArray);
      +
      + +

      +There isn’t always a 1:1 correlation between issuing commands and +actually drawing display lists. Unlike Issue Commands, +which captures the time it takes to send drawing commands to the GPU, +the Draw metric represents the time that it took to capture the issued +commands into the display list. +

      + +

      +This difference arises because the display lists are cached by +the system wherever possible. As a result, there are situations where a +scroll, transform, or animation requires the system to re-send a display +list, but not have to actually rebuild it—recapture the drawing +commands—from scratch. As a result, you can see a high “Issue +commands” bar without seeing a high Draw commands bar. +

      + +

      Processing/Swapping Buffers

      + +

      +Once Android finishes submitting all its display list to the GPU, +the system issues one final command to tell the graphics driver that it's +done with the current frame. At this point, the driver can finally present +the updated image to the screen. +

      + +

      When this segment is large

      + +

      +It’s important to understand that the GPU executes work in parallel with the +CPU. The Android system issues draw commands to the GPU, and then moves on to +the next task. The GPU reads those draw commands from a queue and processes +them. +

      + +

      +In situations where the CPU issues commands faster than the GPU +consumes them, the communications queue between the processors can become +full. When this occurs, the CPU blocks, and waits until there is space in the +queue to place the next command. This full-queue state arises often during the +Swap Buffers stage, because at that point, a whole frame’s worth of +commands have been submitted. +

      + +

      +The key to mitigating this problem is to reduce the complexity of work occurring +on the GPU, in similar fashion to what you would do for the “Issue Commands” +phase. +

      + + +

      Miscellaneous

      + +

      +In addition to the time it takes the rendering system to perform its work, +there’s an additional set of work that occurs on the main thread and has +nothing to do with rendering. Time that this work consumes is reported as +misc time. Misc time generally represents work that might be occurring +on the UI thread between two consecutive frames of rendering. +

      + +

      When this segment is large

      + +

      +If this value is high, it is likely that your app has callbacks, intents, or +other work that should be happening on another thread. Tools such as +Method +Tracing or Systrace can provide +visibility into the tasks that are running on +the main thread. This information can help you target performance improvements. +

      -- GitLab From 0b611f1cb445116f8c0a2630e2032c9a2517f624 Mon Sep 17 00:00:00 2001 From: David Friedman Date: Thu, 29 Sep 2016 19:53:23 -0700 Subject: [PATCH 616/809] Docs: Loose ends from release of Performance and Power docs, 2nd iteration. Change-Id: I09fe9f0554ebaff6e0a4852a8d48d971ce8a3cee --- docs/html/_redirects.yaml | 4 ++ docs/html/topic/performance/_book.yaml | 40 +++++++++---- docs/html/topic/performance/index.jd | 2 +- .../performance}/memory-overview.jd | 9 ++- .../articles => topic/performance}/memory.jd | 27 ++++----- .../html/topic/performance/rendering/index.jd | 60 +++++++++++++++++++ .../optimizing-view-hierarchies.jd | 0 .../performance/{ => rendering}/overdraw.jd | 0 .../{ => rendering}/profile-gpu.jd | 0 docs/html/training/_book.yaml | 23 ------- docs/html/training/articles/perf-tips.jd | 6 +- docs/html/training/best-performance.jd | 7 ++- 12 files changed, 119 insertions(+), 59 deletions(-) rename docs/html/{training/articles => topic/performance}/memory-overview.jd (99%) rename docs/html/{training/articles => topic/performance}/memory.jd (98%) create mode 100644 docs/html/topic/performance/rendering/index.jd rename docs/html/topic/performance/{ => rendering}/optimizing-view-hierarchies.jd (100%) rename docs/html/topic/performance/{ => rendering}/overdraw.jd (100%) rename docs/html/topic/performance/{ => rendering}/profile-gpu.jd (100%) diff --git a/docs/html/_redirects.yaml b/docs/html/_redirects.yaml index 8ddb98239038..e71cf2b8d18d 100644 --- a/docs/html/_redirects.yaml +++ b/docs/html/_redirects.yaml @@ -842,6 +842,10 @@ redirects: to: /topic/performance/power/network/gather-data.html - from: /training/performance/battery/network/index.html to: /topic/performance/power/network/index.html +- from: /training/articles/memory.html + to: /topic/performance/memory.html +- from: /topic/performance/optimizing-view-hierarchies.html + to: /topic/performance/rendering/optimizing-view-hierarchies.html # Redirects for the new [dac]/topic/libraries/ area diff --git a/docs/html/topic/performance/_book.yaml b/docs/html/topic/performance/_book.yaml index 6da92796dc9f..ba7c8b54e699 100644 --- a/docs/html/topic/performance/_book.yaml +++ b/docs/html/topic/performance/_book.yaml @@ -8,16 +8,18 @@ toc: - title: Network Use and Battery Consumption path: /topic/performance/power/network/index.html section: + - title: Collecting Network Traffic Data + path: /topic/performance/power/network/gather-data.html - title: Analyzing Data Traffic path: /topic/performance/power/network/analyze-data.html - title: Optimizing User-Initiated Network Use path: /topic/performance/power/network/action-user-traffic.html + - title: Optimizing App-Initiated Network Use + path: topic/performance/power/network/action-app-traffic.html - title: Optimizing Server-Initiated Network Use path: /topic/performance/power/network/action-server-traffic.html - title: Optimizing General Network Use path: /topic/performance/power/network/action-any-traffic.html - - title: Smaller Network Resources - path: /topic/performance/power/smaller-resources.html - title: Doze and App Standby path: /training/monitoring-device-state/doze-standby.html path_attributes: @@ -25,21 +27,35 @@ toc: value: Help ensure the device isn't depleting the battery when not in use. - title: Battery Historian path: /topic/performance/power/battery-historian.html -- title: Reducing Overdraw - path: /topic/performance/overdraw.html -- title: Using the Profile GPU Tool - path: /topic/performance/profile-gpu.html +- title: Rendering + path: /topic/performance/rendering/index.html + path_attributes: + - name: description + value: Speed up your app's rendering + section: + - title: Reducing Overdraw + path: /topic/performance/rendering/overdraw.html + - title: Optimizing View Hierarchies + path: /topic/performance/rendering/optimizing-view-hierarchies.html + - title: Using the Profile GPU Tool + path: /topic/performance/rendering/profile-gpu.html - title: Intelligent Job-Scheduling path: /topic/performance/scheduling.html +- title: Background Optimization + path: /topic/performance/background-optimization.html +- title: Reducing APK Size + path: /topic/performance/reduce-apk-size.html - title: Reducing Image Download Sizes path: /topic/performance/network-xfer.html - title: Launch-Time Performance path: /topic/performance/launch-time.html - title: Better Performance through Threading path: /topic/performance/threads.html -- title: Optimizing View Hierarchies - path: /topic/performance/optimizing-view-hierarchies.html -- title: Background Optimization - path: /topic/performance/background-optimization.html -- title: Reducing APK Size - path: /topic/performance/reduce-apk-size.html +- title: Manage Your App's Memory + path: /topic/performance/memory.html +- title: Overview of Memory Managemement + path: /topic/performance/memory-overview.html + path_attributes: + - name: description + value: How to keep your app's memory footprint small in order to improve performance on a variety of mobile devices. + diff --git a/docs/html/topic/performance/index.jd b/docs/html/topic/performance/index.jd index e08db15baa08..2b6b1972a03b 100644 --- a/docs/html/topic/performance/index.jd +++ b/docs/html/topic/performance/index.jd @@ -1,4 +1,4 @@ -page.title=Performance +page.title=Performance and Power page.article=true page.metaDescription=Improve your app's performance by learning how to optimize power consumption, launch times, and other important areas of performance. diff --git a/docs/html/training/articles/memory-overview.jd b/docs/html/topic/performance/memory-overview.jd similarity index 99% rename from docs/html/training/articles/memory-overview.jd rename to docs/html/topic/performance/memory-overview.jd index f61a230197a0..58067d2be4b8 100644 --- a/docs/html/training/articles/memory-overview.jd +++ b/docs/html/topic/performance/memory-overview.jd @@ -1,11 +1,10 @@ page.title=Overview of Android Memory Management page.tags=ram,memory,paging,mmap -page.article=true -@jd:body +@jd:body -
      -
      +
      +

      In this document

        @@ -286,4 +285,4 @@ page.article=true can be killed, see the Processes and Threads guide. -

        \ No newline at end of file +

        diff --git a/docs/html/training/articles/memory.jd b/docs/html/topic/performance/memory.jd similarity index 98% rename from docs/html/training/articles/memory.jd rename to docs/html/topic/performance/memory.jd index 885112168e25..ef1c4ae0aeea 100644 --- a/docs/html/training/articles/memory.jd +++ b/docs/html/topic/performance/memory.jd @@ -1,36 +1,35 @@ page.title=Manage Your App's Memory page.tags=ram,low memory,OutOfMemoryError,onTrimMemory -page.article=true -@jd:body +@jd:body -
        -
        +
        +

        In this document

        -
          +
          1. Monitor Available Memory and Memory Usage -
              +
            +
          2. -
          3. Use More Efficient Code Constructst -
              +
            1. Use More Efficient Code Constructs +
            +
          4. Remove Memory-Intensive Resources and Libraries -
              +
            +

          See Also

          @@ -365,8 +364,8 @@ private ActivityManager.MemoryInfo getAvailableMemory() { You should generally avoid use of persistent services because of the on-going demands they place on available memory. Instead, we recommend that you use an alternative implementation - such as {@llink android.app.job.JobScheduler}. For more information about - how to use {@llink android.app.job.JobScheduler} to schedule background + such as {@link android.app.job.JobScheduler}. For more information about + how to use {@link android.app.job.JobScheduler} to schedule background processes, see Background Optimizations.

          diff --git a/docs/html/topic/performance/rendering/index.jd b/docs/html/topic/performance/rendering/index.jd new file mode 100644 index 000000000000..e04605cc7eee --- /dev/null +++ b/docs/html/topic/performance/rendering/index.jd @@ -0,0 +1,60 @@ +page.title=Rendering +page.article=true + +page.tags=battery +page.metaDescription=Learn how to optimize your app's rendering performance. + +@jd:body + + + + +

          + A key aspect of your app that influences your users' perception of quality is + the smoothness with which it renders images and text to the screen. It is + important to avoid jank and sluggish responsiveness when your app is drawing + to the screen. +

          + +

          + This section helps you learn several ways to optimize your app's rendering + performance: reducing overdraw, optimizing view hierarchies, and taking + advantage of the Profile GPU tool. +

          + +

          Rendering Actions

          + +
          +
          + + Reducing Overdraw +
          +
          + Minimize the number of times you app redraws the same pixel in a single + frame. +
          + +
          + + Optimizing View Hierarchies +
          +
          + Make sure your layout and measurement are executing efficiently, and + avoid double taxation. +
          + + +
          + + Using the Profile GPU Tool +
          +
          + Take advantage of this on-device tool to identify bottlenecks that + may be slowing your app's rendering down. +
          + + +
          diff --git a/docs/html/topic/performance/optimizing-view-hierarchies.jd b/docs/html/topic/performance/rendering/optimizing-view-hierarchies.jd similarity index 100% rename from docs/html/topic/performance/optimizing-view-hierarchies.jd rename to docs/html/topic/performance/rendering/optimizing-view-hierarchies.jd diff --git a/docs/html/topic/performance/overdraw.jd b/docs/html/topic/performance/rendering/overdraw.jd similarity index 100% rename from docs/html/topic/performance/overdraw.jd rename to docs/html/topic/performance/rendering/overdraw.jd diff --git a/docs/html/topic/performance/profile-gpu.jd b/docs/html/topic/performance/rendering/profile-gpu.jd similarity index 100% rename from docs/html/topic/performance/profile-gpu.jd rename to docs/html/topic/performance/rendering/profile-gpu.jd diff --git a/docs/html/training/_book.yaml b/docs/html/training/_book.yaml index e9635be74ec3..fa50aa064204 100644 --- a/docs/html/training/_book.yaml +++ b/docs/html/training/_book.yaml @@ -1242,15 +1242,9 @@ toc: path: /training/scheduling/wakelock.html - title: Scheduling Repeating Alarms path: /training/scheduling/alarms.html - - title: Best Practices for Performance path: /training/best-performance.html section: - - title: Managing Your App's Memory - path: /training/articles/memory.html - path_attributes: - - name: description - value: How to keep your app's memory footprint small in order to improve performance on a variety of mobile devices. - title: Performance Tips path: /training/articles/perf-tips.html path_attributes: @@ -1282,23 +1276,6 @@ toc: - name: description value: How to minimize the amount of power your app requires by adapting to current power conditions and performing power-hungry tasks at proper intervals. section: - - title: Reducing Network Battery Drain - path: /training/performance/battery/network/index.html - section: - - title: Collecting Network Traffic Data - path: /training/performance/battery/network/gather-data.html - - title: Analyzing Network Traffic Data - path: /training/performance/battery/network/analyze-data.html - - title: Optimizing User-Initiated Network Use - path: /training/performance/battery/network/action-user-traffic.html - - title: Optimizing App-Initiated Network Use - path: /training/performance/battery/network/action-app-traffic.html - - title: Optimizing Server-Initiated Network Use - path: /training/performance/battery/network/action-server-traffic.html - - title: Optimizing General Network Use - path: /training/performance/battery/network/action-any-traffic.html - - title: Optimizing for Doze and App Standby - path: /training/monitoring-device-state/doze-standby.html - title: Monitoring the Battery Level and Charging State path: /training/monitoring-device-state/battery-monitoring.html path_attributes: diff --git a/docs/html/training/articles/perf-tips.jd b/docs/html/training/articles/perf-tips.jd index 82de69a55249..30cab14d5da6 100644 --- a/docs/html/training/articles/perf-tips.jd +++ b/docs/html/training/articles/perf-tips.jd @@ -28,7 +28,8 @@ when combined, but it's unlikely that these changes will result in dramatic performance effects. Choosing the right algorithms and data structures should always be your priority, but is outside the scope of this document. You should use the tips in this document as general coding practices that you can incorporate into your habits for general code -efficiency.

          +efficiency. +

          There are two basic rules for writing efficient code:

            @@ -49,8 +50,7 @@ code for a device with a JIT is not always the best code for a device without.

            To ensure your app performs well across a wide variety of devices, ensure -your code is efficient at all levels and agressively optimize your performance.

            - +your code is efficient at all levels and aggressively optimize your performance.

            Avoid Creating Unnecessary Objects

            diff --git a/docs/html/training/best-performance.jd b/docs/html/training/best-performance.jd index 8ea6fd5be4e5..bb88e990ce48 100644 --- a/docs/html/training/best-performance.jd +++ b/docs/html/training/best-performance.jd @@ -5,4 +5,9 @@ page.trainingcourse=true

            These classes and articles help you build an app that's smooth, responsive, -and uses as little battery as possible.

            \ No newline at end of file +and uses as little battery as possible.

            + +

            Along with this section, you can find additional information about optimizing +your app in the Performance and +Power section.

            + -- GitLab From 1eabf5343719aaebd0582c8b83b73f77bbd434dc Mon Sep 17 00:00:00 2001 From: Tao Bao Date: Tue, 27 Sep 2016 11:15:42 -0700 Subject: [PATCH 617/809] Handle the race condition when calling uncrypt services. We call uncrypt services to setup / clear bootloader control block (BCB) for scheduling tasks under recovery (applying OTAs, performing FDR). However, we cannot start multiple requests simultaneously. Because they all use the same socket (/dev/socket/uncrypt) for communication and init deletes the socket on service exits. This CL fixes the issue by a) adding synchronized blocks for the service requests; b) checking the availability of the socket before initiating a new one. Note that adding synchronized blocks to RecoverySystem doesn't help, because the calls could be made from different processes (e.g. priv-app, system_server). Bug: 31526152 Test: FDR works while a priv-app keeps calling clear BCB. Change-Id: I95308989e849a9c98a9503ac509f2bc51ed3de19 (cherry picked from commit 794c8b0b3fe16051843c22232d58d6b184dde49b) --- core/java/android/os/IRecoverySystem.aidl | 1 + core/java/android/os/RecoverySystem.java | 41 ++-- .../android/server/RecoverySystemService.java | 214 ++++++++++++------ 3 files changed, 168 insertions(+), 88 deletions(-) diff --git a/core/java/android/os/IRecoverySystem.aidl b/core/java/android/os/IRecoverySystem.aidl index 12830a4996aa..c5ceecd7c8b9 100644 --- a/core/java/android/os/IRecoverySystem.aidl +++ b/core/java/android/os/IRecoverySystem.aidl @@ -25,4 +25,5 @@ interface IRecoverySystem { boolean uncrypt(in String packageFile, IRecoverySystemProgressListener listener); boolean setupBcb(in String command); boolean clearBcb(); + void rebootRecoveryWithCommand(in String command); } diff --git a/core/java/android/os/RecoverySystem.java b/core/java/android/os/RecoverySystem.java index 90bd11fe83bc..605b0d16df64 100644 --- a/core/java/android/os/RecoverySystem.java +++ b/core/java/android/os/RecoverySystem.java @@ -692,28 +692,22 @@ public class RecoverySystem { * @throws IOException if something goes wrong. */ private static void bootCommand(Context context, String... args) throws IOException { - synchronized (sRequestLock) { - LOG_FILE.delete(); + LOG_FILE.delete(); - StringBuilder command = new StringBuilder(); - for (String arg : args) { - if (!TextUtils.isEmpty(arg)) { - command.append(arg); - command.append("\n"); - } + StringBuilder command = new StringBuilder(); + for (String arg : args) { + if (!TextUtils.isEmpty(arg)) { + command.append(arg); + command.append("\n"); } + } - // Write the command into BCB (bootloader control block). - RecoverySystem rs = (RecoverySystem) context.getSystemService( - Context.RECOVERY_SERVICE); - rs.setupBcb(command.toString()); - - // Having set up the BCB, go ahead and reboot. - PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE); - pm.reboot(PowerManager.REBOOT_RECOVERY); + // Write the command into BCB (bootloader control block) and boot from + // there. Will not return unless failed. + RecoverySystem rs = (RecoverySystem) context.getSystemService(Context.RECOVERY_SERVICE); + rs.rebootRecoveryWithCommand(command.toString()); - throw new IOException("Reboot failed (no permissions?)"); - } + throw new IOException("Reboot failed (no permissions?)"); } // Read last_install; then report time (in seconds) and I/O (in MiB) for @@ -907,6 +901,17 @@ public class RecoverySystem { return false; } + /** + * Talks to RecoverySystemService via Binder to set up the BCB command and + * reboot into recovery accordingly. + */ + private void rebootRecoveryWithCommand(String command) { + try { + mService.rebootRecoveryWithCommand(command); + } catch (RemoteException ignored) { + } + } + /** * Internally, recovery treats each line of the command file as a separate * argv, so we only need to protect against newlines and nulls. diff --git a/services/core/java/com/android/server/RecoverySystemService.java b/services/core/java/com/android/server/RecoverySystemService.java index 276687f844da..3c8c699a65bb 100644 --- a/services/core/java/com/android/server/RecoverySystemService.java +++ b/services/core/java/com/android/server/RecoverySystemService.java @@ -21,6 +21,7 @@ import android.net.LocalSocket; import android.net.LocalSocketAddress; import android.os.IRecoverySystem; import android.os.IRecoverySystemProgressListener; +import android.os.PowerManager; import android.os.RecoverySystem; import android.os.RemoteException; import android.os.SystemProperties; @@ -50,8 +51,15 @@ public final class RecoverySystemService extends SystemService { // The socket at /dev/socket/uncrypt to communicate with uncrypt. private static final String UNCRYPT_SOCKET = "uncrypt"; + // The init services that communicate with /system/bin/uncrypt. + private static final String INIT_SERVICE_UNCRYPT = "init.svc.uncrypt"; + private static final String INIT_SERVICE_SETUP_BCB = "init.svc.setup-bcb"; + private static final String INIT_SERVICE_CLEAR_BCB = "init.svc.clear-bcb"; + private static final int SOCKET_CONNECTION_MAX_RETRY = 30; + private static final Object sRequestLock = new Object(); + private Context mContext; public RecoverySystemService(Context context) { @@ -69,95 +77,155 @@ public final class RecoverySystemService extends SystemService { public boolean uncrypt(String filename, IRecoverySystemProgressListener listener) { if (DEBUG) Slog.d(TAG, "uncrypt: " + filename); - mContext.enforceCallingOrSelfPermission(android.Manifest.permission.RECOVERY, null); + synchronized (sRequestLock) { + mContext.enforceCallingOrSelfPermission(android.Manifest.permission.RECOVERY, null); - // Write the filename into UNCRYPT_PACKAGE_FILE to be read by - // uncrypt. - RecoverySystem.UNCRYPT_PACKAGE_FILE.delete(); + final boolean available = checkAndWaitForUncryptService(); + if (!available) { + Slog.e(TAG, "uncrypt service is unavailable."); + return false; + } - try (FileWriter uncryptFile = new FileWriter(RecoverySystem.UNCRYPT_PACKAGE_FILE)) { - uncryptFile.write(filename + "\n"); - } catch (IOException e) { - Slog.e(TAG, "IOException when writing \"" + RecoverySystem.UNCRYPT_PACKAGE_FILE + - "\": ", e); - return false; - } + // Write the filename into UNCRYPT_PACKAGE_FILE to be read by + // uncrypt. + RecoverySystem.UNCRYPT_PACKAGE_FILE.delete(); - // Trigger uncrypt via init. - SystemProperties.set("ctl.start", "uncrypt"); + try (FileWriter uncryptFile = new FileWriter(RecoverySystem.UNCRYPT_PACKAGE_FILE)) { + uncryptFile.write(filename + "\n"); + } catch (IOException e) { + Slog.e(TAG, "IOException when writing \"" + + RecoverySystem.UNCRYPT_PACKAGE_FILE + "\":", e); + return false; + } - // Connect to the uncrypt service socket. - LocalSocket socket = connectService(); - if (socket == null) { - Slog.e(TAG, "Failed to connect to uncrypt socket"); - return false; - } + // Trigger uncrypt via init. + SystemProperties.set("ctl.start", "uncrypt"); - // Read the status from the socket. - DataInputStream dis = null; - DataOutputStream dos = null; - try { - dis = new DataInputStream(socket.getInputStream()); - dos = new DataOutputStream(socket.getOutputStream()); - int lastStatus = Integer.MIN_VALUE; - while (true) { - int status = dis.readInt(); - // Avoid flooding the log with the same message. - if (status == lastStatus && lastStatus != Integer.MIN_VALUE) { - continue; - } - lastStatus = status; - - if (status >= 0 && status <= 100) { - // Update status - Slog.i(TAG, "uncrypt read status: " + status); - if (listener != null) { - try { - listener.onProgress(status); - } catch (RemoteException ignored) { - Slog.w(TAG, "RemoteException when posting progress"); - } + // Connect to the uncrypt service socket. + LocalSocket socket = connectService(); + if (socket == null) { + Slog.e(TAG, "Failed to connect to uncrypt socket"); + return false; + } + + // Read the status from the socket. + DataInputStream dis = null; + DataOutputStream dos = null; + try { + dis = new DataInputStream(socket.getInputStream()); + dos = new DataOutputStream(socket.getOutputStream()); + int lastStatus = Integer.MIN_VALUE; + while (true) { + int status = dis.readInt(); + // Avoid flooding the log with the same message. + if (status == lastStatus && lastStatus != Integer.MIN_VALUE) { + continue; } - if (status == 100) { - Slog.i(TAG, "uncrypt successfully finished."); - // Ack receipt of the final status code. uncrypt - // waits for the ack so the socket won't be - // destroyed before we receive the code. + lastStatus = status; + + if (status >= 0 && status <= 100) { + // Update status + Slog.i(TAG, "uncrypt read status: " + status); + if (listener != null) { + try { + listener.onProgress(status); + } catch (RemoteException ignored) { + Slog.w(TAG, "RemoteException when posting progress"); + } + } + if (status == 100) { + Slog.i(TAG, "uncrypt successfully finished."); + // Ack receipt of the final status code. uncrypt + // waits for the ack so the socket won't be + // destroyed before we receive the code. + dos.writeInt(0); + break; + } + } else { + // Error in /system/bin/uncrypt. + Slog.e(TAG, "uncrypt failed with status: " + status); + // Ack receipt of the final status code. uncrypt waits + // for the ack so the socket won't be destroyed before + // we receive the code. dos.writeInt(0); - break; + return false; } - } else { - // Error in /system/bin/uncrypt. - Slog.e(TAG, "uncrypt failed with status: " + status); - // Ack receipt of the final status code. uncrypt waits - // for the ack so the socket won't be destroyed before - // we receive the code. - dos.writeInt(0); - return false; } + } catch (IOException e) { + Slog.e(TAG, "IOException when reading status: ", e); + return false; + } finally { + IoUtils.closeQuietly(dis); + IoUtils.closeQuietly(dos); + IoUtils.closeQuietly(socket); } - } catch (IOException e) { - Slog.e(TAG, "IOException when reading status: ", e); - return false; - } finally { - IoUtils.closeQuietly(dis); - IoUtils.closeQuietly(dos); - IoUtils.closeQuietly(socket); - } - return true; + return true; + } } @Override // Binder call public boolean clearBcb() { if (DEBUG) Slog.d(TAG, "clearBcb"); - return setupOrClearBcb(false, null); + synchronized (sRequestLock) { + return setupOrClearBcb(false, null); + } } @Override // Binder call public boolean setupBcb(String command) { if (DEBUG) Slog.d(TAG, "setupBcb: [" + command + "]"); - return setupOrClearBcb(true, command); + synchronized (sRequestLock) { + return setupOrClearBcb(true, command); + } + } + + @Override // Binder call + public void rebootRecoveryWithCommand(String command) { + if (DEBUG) Slog.d(TAG, "rebootRecoveryWithCommand: [" + command + "]"); + synchronized (sRequestLock) { + if (!setupOrClearBcb(true, command)) { + return; + } + + // Having set up the BCB, go ahead and reboot. + PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE); + pm.reboot(PowerManager.REBOOT_RECOVERY); + } + } + + /** + * Check if any of the init services is still running. If so, we cannot + * start a new uncrypt/setup-bcb/clear-bcb service right away; otherwise + * it may break the socket communication since init creates / deletes + * the socket (/dev/socket/uncrypt) on service start / exit. + */ + private boolean checkAndWaitForUncryptService() { + for (int retry = 0; retry < SOCKET_CONNECTION_MAX_RETRY; retry++) { + final String uncryptService = SystemProperties.get(INIT_SERVICE_UNCRYPT); + final String setupBcbService = SystemProperties.get(INIT_SERVICE_SETUP_BCB); + final String clearBcbService = SystemProperties.get(INIT_SERVICE_CLEAR_BCB); + final boolean busy = "running".equals(uncryptService) || + "running".equals(setupBcbService) || "running".equals(clearBcbService); + if (DEBUG) { + Slog.i(TAG, "retry: " + retry + " busy: " + busy + + " uncrypt: [" + uncryptService + "]" + + " setupBcb: [" + setupBcbService + "]" + + " clearBcb: [" + clearBcbService + "]"); + } + + if (!busy) { + return true; + } + + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + Slog.w(TAG, "Interrupted:", e); + } + } + + return false; } private LocalSocket connectService() { @@ -176,7 +244,7 @@ public final class RecoverySystemService extends SystemService { try { Thread.sleep(1000); } catch (InterruptedException e) { - Slog.w(TAG, "Interrupted: ", e); + Slog.w(TAG, "Interrupted:", e); } } } @@ -190,6 +258,12 @@ public final class RecoverySystemService extends SystemService { private boolean setupOrClearBcb(boolean isSetup, String command) { mContext.enforceCallingOrSelfPermission(android.Manifest.permission.RECOVERY, null); + final boolean available = checkAndWaitForUncryptService(); + if (!available) { + Slog.e(TAG, "uncrypt service is unavailable."); + return false; + } + if (isSetup) { SystemProperties.set("ctl.start", "setup-bcb"); } else { @@ -232,7 +306,7 @@ public final class RecoverySystemService extends SystemService { return false; } } catch (IOException e) { - Slog.e(TAG, "IOException when communicating with uncrypt: ", e); + Slog.e(TAG, "IOException when communicating with uncrypt:", e); return false; } finally { IoUtils.closeQuietly(dis); -- GitLab From 159dfb78e92a7db9c6a10543d0e6635489fc5fc1 Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Fri, 30 Sep 2016 09:41:03 -0400 Subject: [PATCH 618/809] Fix talkback reading battery 0% on boot Don't send battery callbacks if we don't have the info yet. Change-Id: I52bc60bb269f7e7ceda0f42bb70d557d921b1b5a Fixes: 30436961 --- .../systemui/statusbar/policy/BatteryControllerImpl.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java index b9c7a4b411ef..6726c9200a58 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BatteryControllerImpl.java @@ -53,6 +53,7 @@ public class BatteryControllerImpl extends BroadcastReceiver implements BatteryC protected boolean mCharged; protected boolean mPowerSave; private boolean mTestmode = false; + private boolean mHasReceivedBattery = false; public BatteryControllerImpl(Context context) { mContext = context; @@ -92,6 +93,7 @@ public class BatteryControllerImpl extends BroadcastReceiver implements BatteryC synchronized (mChangeCallbacks) { mChangeCallbacks.add(cb); } + if (!mHasReceivedBattery) return; cb.onBatteryLevelChanged(mLevel, mPluggedIn, mCharging); cb.onPowerSaveChanged(mPowerSave); } @@ -108,6 +110,7 @@ public class BatteryControllerImpl extends BroadcastReceiver implements BatteryC final String action = intent.getAction(); if (action.equals(Intent.ACTION_BATTERY_CHANGED)) { if (mTestmode && !intent.getBooleanExtra("testmode", false)) return; + mHasReceivedBattery = true; mLevel = (int)(100f * intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0) / intent.getIntExtra(BatteryManager.EXTRA_SCALE, 100)); -- GitLab From 69dac2b45b859e435920f9cc1ef0bcb2251a1d54 Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Fri, 30 Sep 2016 10:15:16 -0400 Subject: [PATCH 619/809] QS: Fix RTL handling for listening RTL is hard, math is hard, so yeah... Change-Id: I290c5b05ed5a7f383b9b7ba9a48ed104168a07a3 Fixes: 30478996 --- .../src/com/android/systemui/qs/PagedTileLayout.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/qs/PagedTileLayout.java b/packages/SystemUI/src/com/android/systemui/qs/PagedTileLayout.java index afedbe3ad21f..1c242e9b6092 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/PagedTileLayout.java +++ b/packages/SystemUI/src/com/android/systemui/qs/PagedTileLayout.java @@ -88,9 +88,9 @@ public class PagedTileLayout extends ViewPager implements QSTileLayout { if (mListening == listening) return; mListening = listening; if (mListening) { - mPages.get(mPosition).setListening(listening); + setPageListening(mPosition, true); if (mOffPage) { - mPages.get(mPosition + 1).setListening(listening); + setPageListening(mPosition + 1, true); } } else { // Make sure no pages are listening. @@ -131,6 +131,9 @@ public class PagedTileLayout extends ViewPager implements QSTileLayout { private void setPageListening(int position, boolean listening) { if (position >= mPages.size()) return; + if (isLayoutRtl()) { + position = mPages.size() - 1 - position; + } mPages.get(position).setListening(listening); } -- GitLab From b7738077597e53671503bcbcf6e5f55161108804 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Fri, 30 Sep 2016 09:30:31 -0700 Subject: [PATCH 620/809] Import translations. DO NOT MERGE Auto-generated-cl: translation import Bug: 31424274 Change-Id: I4e63c1919847b8e742f4f0a87370afdfff5d4a2f --- packages/SystemUI/res/values-af/strings.xml | 3 +-- packages/SystemUI/res/values-am/strings.xml | 3 +-- packages/SystemUI/res/values-ar/strings.xml | 3 +-- packages/SystemUI/res/values-az-rAZ/strings.xml | 3 +-- packages/SystemUI/res/values-b+sr+Latn/strings.xml | 3 +-- packages/SystemUI/res/values-be-rBY/strings.xml | 3 +-- packages/SystemUI/res/values-bg/strings.xml | 3 +-- packages/SystemUI/res/values-bn-rBD/strings.xml | 3 +-- packages/SystemUI/res/values-bs-rBA/strings.xml | 3 +-- packages/SystemUI/res/values-ca/strings.xml | 3 +-- packages/SystemUI/res/values-cs/strings.xml | 3 +-- packages/SystemUI/res/values-da/strings.xml | 3 +-- packages/SystemUI/res/values-de/strings.xml | 3 +-- packages/SystemUI/res/values-el/strings.xml | 3 +-- packages/SystemUI/res/values-en-rAU/strings.xml | 3 +-- packages/SystemUI/res/values-en-rGB/strings.xml | 3 +-- packages/SystemUI/res/values-en-rIN/strings.xml | 3 +-- packages/SystemUI/res/values-es-rUS/strings.xml | 3 +-- packages/SystemUI/res/values-es/strings.xml | 3 +-- packages/SystemUI/res/values-et-rEE/strings.xml | 3 +-- packages/SystemUI/res/values-eu-rES/strings.xml | 3 +-- packages/SystemUI/res/values-fa-land/strings.xml | 2 +- packages/SystemUI/res/values-fa/strings.xml | 5 ++--- packages/SystemUI/res/values-fa/strings_tv.xml | 2 +- packages/SystemUI/res/values-fi/strings.xml | 3 +-- packages/SystemUI/res/values-fr-rCA/strings.xml | 3 +-- packages/SystemUI/res/values-fr/strings.xml | 5 ++--- packages/SystemUI/res/values-gl-rES/strings.xml | 3 +-- packages/SystemUI/res/values-gu-rIN/strings.xml | 3 +-- packages/SystemUI/res/values-hi/strings.xml | 3 +-- packages/SystemUI/res/values-hr/strings.xml | 3 +-- packages/SystemUI/res/values-hu/strings.xml | 3 +-- packages/SystemUI/res/values-hy-rAM/strings.xml | 3 +-- packages/SystemUI/res/values-in/strings.xml | 3 +-- packages/SystemUI/res/values-is-rIS/strings.xml | 3 +-- packages/SystemUI/res/values-it/strings.xml | 3 +-- packages/SystemUI/res/values-iw/strings.xml | 3 +-- packages/SystemUI/res/values-ja/strings.xml | 3 +-- packages/SystemUI/res/values-ka-rGE/strings.xml | 3 +-- packages/SystemUI/res/values-kk-rKZ/strings.xml | 3 +-- packages/SystemUI/res/values-km-rKH/strings.xml | 3 +-- packages/SystemUI/res/values-kn-rIN/strings.xml | 3 +-- packages/SystemUI/res/values-kn-rIN/strings_tv.xml | 2 +- packages/SystemUI/res/values-ko/strings.xml | 3 +-- packages/SystemUI/res/values-ky-rKG/strings.xml | 3 +-- packages/SystemUI/res/values-lo-rLA/strings.xml | 3 +-- packages/SystemUI/res/values-lt/strings.xml | 3 +-- packages/SystemUI/res/values-lv/strings.xml | 3 +-- packages/SystemUI/res/values-mk-rMK/strings.xml | 3 +-- packages/SystemUI/res/values-ml-rIN/strings.xml | 3 +-- packages/SystemUI/res/values-mn-rMN/strings.xml | 3 +-- packages/SystemUI/res/values-mr-rIN/strings.xml | 3 +-- packages/SystemUI/res/values-ms-rMY/strings.xml | 3 +-- packages/SystemUI/res/values-my-rMM/strings.xml | 3 +-- packages/SystemUI/res/values-nb/strings.xml | 3 +-- packages/SystemUI/res/values-ne-rNP/strings.xml | 3 +-- packages/SystemUI/res/values-nl/strings.xml | 3 +-- packages/SystemUI/res/values-pa-rIN/strings.xml | 3 +-- packages/SystemUI/res/values-pl/strings.xml | 3 +-- packages/SystemUI/res/values-pt-rBR/strings.xml | 3 +-- packages/SystemUI/res/values-pt-rPT/strings.xml | 3 +-- packages/SystemUI/res/values-pt/strings.xml | 3 +-- packages/SystemUI/res/values-ro/strings.xml | 3 +-- packages/SystemUI/res/values-ru/strings.xml | 3 +-- packages/SystemUI/res/values-si-rLK/strings.xml | 3 +-- packages/SystemUI/res/values-sk/strings.xml | 3 +-- packages/SystemUI/res/values-sl/strings.xml | 3 +-- packages/SystemUI/res/values-sq-rAL/strings.xml | 3 +-- packages/SystemUI/res/values-sr/strings.xml | 3 +-- packages/SystemUI/res/values-sv/strings.xml | 3 +-- packages/SystemUI/res/values-sw/strings.xml | 3 +-- packages/SystemUI/res/values-ta-rIN/strings.xml | 3 +-- packages/SystemUI/res/values-te-rIN/strings.xml | 3 +-- packages/SystemUI/res/values-th/strings.xml | 3 +-- packages/SystemUI/res/values-tl/strings.xml | 3 +-- packages/SystemUI/res/values-tr/strings.xml | 3 +-- packages/SystemUI/res/values-uk/strings.xml | 3 +-- packages/SystemUI/res/values-ur-rPK/strings.xml | 3 +-- packages/SystemUI/res/values-uz-rUZ/strings.xml | 3 +-- packages/SystemUI/res/values-vi/strings.xml | 3 +-- packages/SystemUI/res/values-zh-rCN/strings.xml | 3 +-- packages/SystemUI/res/values-zh-rHK/strings.xml | 3 +-- packages/SystemUI/res/values-zh-rTW/strings.xml | 3 +-- packages/SystemUI/res/values-zu/strings.xml | 3 +-- 84 files changed, 86 insertions(+), 167 deletions(-) diff --git a/packages/SystemUI/res/values-af/strings.xml b/packages/SystemUI/res/values-af/strings.xml index 8c1de43e2d6e..c07fa2344835 100644 --- a/packages/SystemUI/res/values-af/strings.xml +++ b/packages/SystemUI/res/values-af/strings.xml @@ -238,8 +238,7 @@ "4G-data is laat wag" "Sellulêre data is onderbreek" "Data is onderbreek" - - + "Jy het die datalimiet wat jy gestel het, bereik. Jy gebruik nie meer sellulêre data nie.\n\nAs jy voortgaan, kan heffings vir datagebruik geld." "Hervat" "Geen internetverbinding nie" "Wi-Fi gekoppel" diff --git a/packages/SystemUI/res/values-am/strings.xml b/packages/SystemUI/res/values-am/strings.xml index a3492dc93680..1e54459dbe5e 100644 --- a/packages/SystemUI/res/values-am/strings.xml +++ b/packages/SystemUI/res/values-am/strings.xml @@ -238,8 +238,7 @@ "4ጂ ውሂብ ላፍታ ቆሟል" "የተንቀሳቃሽ ስልክ ውሂብ ላፍታ ቆሟል" "ውሂብ ላፍታ ቆሟል" - - + "እርስዎ ያስቀመጡት የውሂብ ገደብ ላይ ተደርሷል። ከእንግዲህ ተንቀሳቃሽ ውሂብ እየተጠቀሙ አይደለም ያሉት።\n\nከቆመበት ከቀጠሉ የውሂብ አጠቃቀም ክፍያዎች ተፈጻሚ ሊሆኑ ይችላሉ።" "ከቆመበት ቀጥል" "ምንም በይነመረብ ተያያዥ የለም።" "Wi-Fi ተያይዟል" diff --git a/packages/SystemUI/res/values-ar/strings.xml b/packages/SystemUI/res/values-ar/strings.xml index 0364365634e9..de321ebeb7f3 100644 --- a/packages/SystemUI/res/values-ar/strings.xml +++ b/packages/SystemUI/res/values-ar/strings.xml @@ -242,8 +242,7 @@ "تم إيقاف بيانات شبكة الجيل الرابع مؤقتًا" "تم إيقاف بيانات شبكة الجوّال مؤقتًا" "تم إيقاف البيانات مؤقتًا" - - + "تم الوصول إلى حد البيانات الذي عيَّنته، ولم يعد بإمكانك استخدام بيانات شبكة الجوّال.\n\nعند الاستئناف، قد يتم تحصيل رسوم مقابل استخدام البيانات." "استئناف" "لا يوجد اتصال إنترنت" "‏Wi-Fi متصل" diff --git a/packages/SystemUI/res/values-az-rAZ/strings.xml b/packages/SystemUI/res/values-az-rAZ/strings.xml index 80d5233a9ce9..53e38eb43fe6 100644 --- a/packages/SystemUI/res/values-az-rAZ/strings.xml +++ b/packages/SystemUI/res/values-az-rAZ/strings.xml @@ -238,8 +238,7 @@ "4G məlumatlarına fasilə verildi" "Mobil məlumatlara fasilə verildi" "Məlumatlara fasilə verildi" - - + "Daha limitini keçdiniz. Artıq mobil data istifadə etmirsiniz.\n\nDavam etsəniz, data istifadəsi üçün ödəniş tətbiq oluna bilər." "Davam et" "İnternet bağlantısı yoxdur" "Wi-Fi qoşulub" diff --git a/packages/SystemUI/res/values-b+sr+Latn/strings.xml b/packages/SystemUI/res/values-b+sr+Latn/strings.xml index 2bcdcf48a01b..80eae135f84d 100644 --- a/packages/SystemUI/res/values-b+sr+Latn/strings.xml +++ b/packages/SystemUI/res/values-b+sr+Latn/strings.xml @@ -239,8 +239,7 @@ "4G podaci su pauzirani" "Mobilni podaci su pauzirani" "Podaci su pauzirani" - - + "Ograničenje potrošnje podataka koje ste podesili je dostignuto. Više ne koristite mobilne podatke.\n\nAko nastavite, možda će biti naplaćeni troškovi za potrošnju podataka." "Nastavi" "Nema internet veze" "Wi-Fi je povezan" diff --git a/packages/SystemUI/res/values-be-rBY/strings.xml b/packages/SystemUI/res/values-be-rBY/strings.xml index 697062154890..14b5017f3c1f 100644 --- a/packages/SystemUI/res/values-be-rBY/strings.xml +++ b/packages/SystemUI/res/values-be-rBY/strings.xml @@ -242,8 +242,7 @@ "Перадача даных 4G прыпынена" "Мабільная перадача даных прыпынена" "Перадача даных прыпынена" - - + "Ліміт даных, які вы задалі, быў дасягнуты. Вы больш не выкарыстоўваеце сотавую перадачу даных.\n\nКалі вы ўзновіце карыстанне, можа спаганяцца плата за выкарыстанне трафіка." "Узнавіць" "Няма падключэння да Iнтэрнэту" "Wi-Fi падключаны" diff --git a/packages/SystemUI/res/values-bg/strings.xml b/packages/SystemUI/res/values-bg/strings.xml index a9b81265f920..7360e8d576b3 100644 --- a/packages/SystemUI/res/values-bg/strings.xml +++ b/packages/SystemUI/res/values-bg/strings.xml @@ -238,8 +238,7 @@ "Данните от 4G са поставени на пауза" "Мобилните данни са поставени на пауза" "Данните са поставени на пауза" - - + "Достигнахте зададеното от вас ограничение за данните. Вече не използвате мобилната мрежа.\n\nАко възобновите връзката с нея, може да бъдете таксувани за пренос на данни." "Възобновяване" "Няма връзка с интернет" "Wi-Fi: Има връзка" diff --git a/packages/SystemUI/res/values-bn-rBD/strings.xml b/packages/SystemUI/res/values-bn-rBD/strings.xml index 717d4fe23f0f..7b5d347d9427 100644 --- a/packages/SystemUI/res/values-bn-rBD/strings.xml +++ b/packages/SystemUI/res/values-bn-rBD/strings.xml @@ -238,8 +238,7 @@ "4G ডেটা বিরতি দেওয়া হয়েছে" "সেলুলার ডেটা বিরতি দেওয়া হয়েছে" "ডেট বিরতি দেওয়া হয়েছে" - - + "আপনার সেটা করা ডেটা সীমা ছাড়িয়ে গেছে৷ আপনি আর সেলুলার ডেটা ব্যবহার করতে পারবেন না৷\n\nআপনি যদি আবার ব্যবহার করতে শুরু করেন তাহলে ডেটা ব্যবহারের জন্য চার্জ লাগতে পারে৷" "পুনঃসূচনা করুন" "কোনো ইন্টারনেট সংযোগ নেই" "ওয়াই-ফাই সংযুক্ত হয়েছে" diff --git a/packages/SystemUI/res/values-bs-rBA/strings.xml b/packages/SystemUI/res/values-bs-rBA/strings.xml index cbab5832d911..923c48f208ff 100644 --- a/packages/SystemUI/res/values-bs-rBA/strings.xml +++ b/packages/SystemUI/res/values-bs-rBA/strings.xml @@ -239,8 +239,7 @@ "4G prijenos podataka je pauzirano" "Mobilni podaci su pauzirani" "Prijenos podataka je pauziran" - - + "Dostigli ste ograničenje za podatke koje ste postavili. Više ne koristite mobilne podatke.\n\nUkoliko nastavite koristiti mobilne podatke, mogući su troškovi za korištenje podataka." "Nastavi" "Nema internet veze" "Wi-Fi veza aktivna" diff --git a/packages/SystemUI/res/values-ca/strings.xml b/packages/SystemUI/res/values-ca/strings.xml index e815375f3c4c..18ee9b1c7879 100644 --- a/packages/SystemUI/res/values-ca/strings.xml +++ b/packages/SystemUI/res/values-ca/strings.xml @@ -238,8 +238,7 @@ "Les dades 4G estan aturades" "Les dades mòbils estan aturades" "Les dades estan aturades" - - + "S\'ha assolit el límit de dades establert. Ja no estàs utilitzant dades mòbils. \n\n Si reprens l\'ús de les dades, es poden aplicar càrrecs." "Reprèn" "No hi ha connexió a Internet" "Wi-Fi: connectada" diff --git a/packages/SystemUI/res/values-cs/strings.xml b/packages/SystemUI/res/values-cs/strings.xml index 1e0c8f921055..43495a12ad4e 100644 --- a/packages/SystemUI/res/values-cs/strings.xml +++ b/packages/SystemUI/res/values-cs/strings.xml @@ -242,8 +242,7 @@ "Data 4G jsou pozastavena" "Mobilní data jsou pozastavena" "Data jsou pozastavena" - - + "Bylo dosaženo limitu dat. Používání mobilních dat bylo vypnuto.\n\nPokud jej obnovíte, mohou vám být účtovány poplatky za využití dat." "Pokračovat" "Žádné přip. k internetu" "Wi-Fi: připojeno" diff --git a/packages/SystemUI/res/values-da/strings.xml b/packages/SystemUI/res/values-da/strings.xml index 3fc72baf23c0..a643f8d11a1b 100644 --- a/packages/SystemUI/res/values-da/strings.xml +++ b/packages/SystemUI/res/values-da/strings.xml @@ -238,8 +238,7 @@ "4G-data er sat på pause" "Mobildata er sat på pause" "Data er sat på pause" - - + "Du har nået den angivne datagrænse. Du vil ikke længere bruge mobildata.\n\nHvis du fortsætter, vil du muligvis blive opkrævet betaling for dit dataforbrug." "Genoptag" "Ingen internetforb." "Wi-Fi er forbundet" diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml index 62b0333c0e17..3f38683378ec 100644 --- a/packages/SystemUI/res/values-de/strings.xml +++ b/packages/SystemUI/res/values-de/strings.xml @@ -240,8 +240,7 @@ "4G-Daten pausiert" "Mobilfunkdaten pausiert" "Daten pausiert" - - + "Das von dir festgelegte Datenlimit wurde erreicht. Die mobile Datennutzung wurde deaktiviert.\n\nWenn du weiterhin mobile Daten nutzt, können Gebühren anfallen." "Fortsetzen" "Keine Internetverbindung" "WLAN verbunden" diff --git a/packages/SystemUI/res/values-el/strings.xml b/packages/SystemUI/res/values-el/strings.xml index bbf27b2c8d5a..88eb05df03ae 100644 --- a/packages/SystemUI/res/values-el/strings.xml +++ b/packages/SystemUI/res/values-el/strings.xml @@ -238,8 +238,7 @@ "Τα δεδομένα 4G τέθηκαν σε παύση" "Τα δεδομένα κινητής τηλεφωνίας τέθηκαν σε παύση" "Τα δεδομένα τέθηκαν σε παύση" - - + "Το όριο δεδομένων που ορίσατε έχει εξαντληθεί. Δεν χρησιμοποιείτε πλέον δεδομένα κινητής τηλεφωνίας.\n\nΑν συνεχίσετε, ενδέχεται να ισχύσουν χρεώσεις για τη χρήση δεδομένων." "Συνέχιση" "Χωρ. σύνδ. στο Διαδ." "Wi-Fi συνδεδεμένο" diff --git a/packages/SystemUI/res/values-en-rAU/strings.xml b/packages/SystemUI/res/values-en-rAU/strings.xml index 27083f3dc3ba..5dc062cd30d2 100644 --- a/packages/SystemUI/res/values-en-rAU/strings.xml +++ b/packages/SystemUI/res/values-en-rAU/strings.xml @@ -238,8 +238,7 @@ "4G data is paused" "Mobile data is paused" "Data is paused" - - + "The data limit you have set has been reached. You are no longer using mobile data.\n\nIf you resume, charges may apply for data usage." "Resume" "No Internet connection" "Wi-Fi connected" diff --git a/packages/SystemUI/res/values-en-rGB/strings.xml b/packages/SystemUI/res/values-en-rGB/strings.xml index 27083f3dc3ba..5dc062cd30d2 100644 --- a/packages/SystemUI/res/values-en-rGB/strings.xml +++ b/packages/SystemUI/res/values-en-rGB/strings.xml @@ -238,8 +238,7 @@ "4G data is paused" "Mobile data is paused" "Data is paused" - - + "The data limit you have set has been reached. You are no longer using mobile data.\n\nIf you resume, charges may apply for data usage." "Resume" "No Internet connection" "Wi-Fi connected" diff --git a/packages/SystemUI/res/values-en-rIN/strings.xml b/packages/SystemUI/res/values-en-rIN/strings.xml index 27083f3dc3ba..5dc062cd30d2 100644 --- a/packages/SystemUI/res/values-en-rIN/strings.xml +++ b/packages/SystemUI/res/values-en-rIN/strings.xml @@ -238,8 +238,7 @@ "4G data is paused" "Mobile data is paused" "Data is paused" - - + "The data limit you have set has been reached. You are no longer using mobile data.\n\nIf you resume, charges may apply for data usage." "Resume" "No Internet connection" "Wi-Fi connected" diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml index c3e0c1ab4307..79e4b2f026f1 100644 --- a/packages/SystemUI/res/values-es-rUS/strings.xml +++ b/packages/SystemUI/res/values-es-rUS/strings.xml @@ -240,8 +240,7 @@ "Datos 4G pausados" "Datos móviles pausados" "Datos pausados" - - + "Se alcanzó el límite de datos que estableciste. Ya no estás usando datos móviles.\n\nSi reanudas el uso de datos, es posible que se apliquen cargos." "Reanudar" "Sin conexión a Internet" "Wi-Fi conectado" diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml index 0a4773b45dda..93c23c980c9e 100644 --- a/packages/SystemUI/res/values-es/strings.xml +++ b/packages/SystemUI/res/values-es/strings.xml @@ -240,8 +240,7 @@ "Datos 4G pausados" "Datos móviles pausados" "Datos pausados" - - + "Se ha alcanzado el límite de datos establecido. Ya no estás utilizando datos móviles.\n\nSi vuelves a activar el uso de datos, es posible que se apliquen cargos." "Reanudar" "Sin conexión a Internet" "Con conexión Wi-Fi" diff --git a/packages/SystemUI/res/values-et-rEE/strings.xml b/packages/SystemUI/res/values-et-rEE/strings.xml index 6a36d72f3e14..d8a7ca760214 100644 --- a/packages/SystemUI/res/values-et-rEE/strings.xml +++ b/packages/SystemUI/res/values-et-rEE/strings.xml @@ -240,8 +240,7 @@ "4G andmekasutus on peatatud" "Mobiilse andmeside kasutus on peatatud" "Andmekasutus on peatatud" - - + "Olete jõudnud enda määratud andmemahupiiranguni. Te ei kasuta enam mobiilset andmesidet.\n\nKui jätkate, võivad rakenduda andmekasutustasud." "Jätka" "Interneti-ühendus puudub" "WiFi on ühendatud" diff --git a/packages/SystemUI/res/values-eu-rES/strings.xml b/packages/SystemUI/res/values-eu-rES/strings.xml index 64348837ac0d..bed00b9a4934 100644 --- a/packages/SystemUI/res/values-eu-rES/strings.xml +++ b/packages/SystemUI/res/values-eu-rES/strings.xml @@ -240,8 +240,7 @@ "4G datuen erabilera eten da" "Sare mugikorreko datuen erabilera eten da" "Datuen erabilera eten da" - - + "Gainditu egin da ezarri duzun datu-muga. Datu-konexioa erabiltzeari utzi diozu.\n\nBerriro hasten bazara erabiltzen, baliteke datuen erabileraren kostua ordaindu behar izatea." "Jarraitu erabiltzen" "Ez duzu Interneteko konexiorik" "Wi-Fi konektatuta" diff --git a/packages/SystemUI/res/values-fa-land/strings.xml b/packages/SystemUI/res/values-fa-land/strings.xml index adc2b118894f..fe67cf0a7d41 100644 --- a/packages/SystemUI/res/values-fa-land/strings.xml +++ b/packages/SystemUI/res/values-fa-land/strings.xml @@ -19,5 +19,5 @@ - "صفحه اکنون در جهت افقی قفل است." + "صفحه اکنون در حالت افقی قفل است." diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml index 181c04a22882..021637e01389 100644 --- a/packages/SystemUI/res/values-fa/strings.xml +++ b/packages/SystemUI/res/values-fa/strings.xml @@ -238,8 +238,7 @@ "‏داده 4G موقتاً متوقف شده است" "داده شبکه همراه موقتاً متوقف شده است" "داده موقتاً متوقف شده است" - - + "به حداکثر محدودیت داده‌ای که تنظیم کردید رسیدید. دیگر از داده شبکه تلفن همراه استفاده نمی‌کنید.\n\nدر صورت ازسرگیری، ممکن است مصرف داده هزینه‌هایی دربرداشته باشد." "از سر‌گیری" "اتصال اینترنتی ندارید" "‏Wi-Fi متصل شد" @@ -485,7 +484,7 @@ "نمایه کاری" "برای بعضی افراد سرگرم‌کننده است اما نه برای همه" "‏«تنظیم‌کننده واسط کاربری سیستم» روش‌های بیشتری برای تنظیم دقیق و سفارشی کردن واسط کاربری Android در اختیار شما قرار می‌دهد. ممکن است این ویژگی‌های آزمایشی تغییر کنند، خراب شوند یا در نسخه‌های آینده جود نداشته باشند. با احتیاط ادامه دهید." - "ممکن است این ویژگی‌های آزمایشی تغییر کنند، خراب شوند یا در نسخه‌های آینده وجود نداشته باشند. با احتیاط ادامه دهید." + "ممکن است این قابلیت‌های آزمایشی تغییر کنند، خراب شوند یا در نسخه‌های آینده وجود نداشته باشد. بااحتیاط ادامه دهید." "متوجه شدم" "تبریک می‌گوییم! «تنظیم‌کننده واسط کاربری سیستم» به «تنظیمات» اضافه شد" "حذف از تنظیمات" diff --git a/packages/SystemUI/res/values-fa/strings_tv.xml b/packages/SystemUI/res/values-fa/strings_tv.xml index 2894abba3b92..b97a64650dfc 100644 --- a/packages/SystemUI/res/values-fa/strings_tv.xml +++ b/packages/SystemUI/res/values-fa/strings_tv.xml @@ -25,7 +25,7 @@ "مکث" "‏کنترل PIP ‏با نگه‌داشتن ""HOME" "تصویر در تصویر" - "تا زمانی که ویدیوی دیگری را پخش کنید، این صفحه حالت ویدیو در ویدیوی شما را حفظ می‌کند. برای کنترل آن، دکمه ""صفحه اصلی"" را فشار دهید و نگه دارید." + "تا زمانی که ویدئوی دیگری را پخش کنید، این صفحه حالت ویدئو در ویدئوی شما را حفظ می‌کند. برای کنترل آن، دکمه ""صفحه اصلی"" را فشار دهید و نگه دارید." "متوجه شدم" "رد کردن" diff --git a/packages/SystemUI/res/values-fi/strings.xml b/packages/SystemUI/res/values-fi/strings.xml index 554871ac2754..56e4ee5091f8 100644 --- a/packages/SystemUI/res/values-fi/strings.xml +++ b/packages/SystemUI/res/values-fi/strings.xml @@ -238,8 +238,7 @@ "4G-tiedonsiirto keskeytettiin" "Mobiilitiedonsiirto keskeytettiin" "Tiedonsiirto keskeytettiin" - - + "Määrittämäsi datankäyttöraja on täynnä. Mobiilidata poistettiin käytöstä.\n\nOperaattorisi voi veloittaa sinua, jos jatkat mobiilidatan käyttöä." "Jatka" "Ei internetyhteyttä" "Wi-Fi yhdistetty" diff --git a/packages/SystemUI/res/values-fr-rCA/strings.xml b/packages/SystemUI/res/values-fr-rCA/strings.xml index eabe03b13736..a93c25e8f937 100644 --- a/packages/SystemUI/res/values-fr-rCA/strings.xml +++ b/packages/SystemUI/res/values-fr-rCA/strings.xml @@ -240,8 +240,7 @@ "Données 4G désactivées" "Données cellulaires désactivées" "Données désactivées" - - + "La limite de données que vous avez définie a été atteinte. Vous n\'utilisez plus les données cellulaires.\n\nSi vous rétablissez la connexion de données cellulaires, des frais peuvent s\'appliquer." "Reprendre" "Aucune connexion Internet" "Connecté au Wi-Fi" diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml index a2e79501df64..4f8d57b6b8a5 100644 --- a/packages/SystemUI/res/values-fr/strings.xml +++ b/packages/SystemUI/res/values-fr/strings.xml @@ -240,8 +240,7 @@ "Données 4G désactivées" "Données mobiles désactivées" "Données désactivées" - - + "La limite de consommation des données que vous avez définie a été atteinte. Vous n\'utilisez plus les données mobiles.\n\nSi vous les réactivez, des frais pourront être facturés." "Réactiver" "Aucune connexion Internet" "Connecté au Wi-Fi" @@ -449,7 +448,7 @@ "Appeler" "Système" - "Faire sonner" + "Sonnerie" "Multimédia" "Alarme" diff --git a/packages/SystemUI/res/values-gl-rES/strings.xml b/packages/SystemUI/res/values-gl-rES/strings.xml index aa6564c8cc53..62014013a1a2 100644 --- a/packages/SystemUI/res/values-gl-rES/strings.xml +++ b/packages/SystemUI/res/values-gl-rES/strings.xml @@ -240,8 +240,7 @@ "Os datos 4G están en pausa" "Os datos de móbiles están en pausa" "Os datos están en pausa" - - + "Alcanzouse o límite de datos establecido e xa non utilizas datos móbiles.\n\nSe continúas, é posible que se apliquen cargos por uso de datos." "Retomar" "Sen Internet" "Wi-Fi conectada" diff --git a/packages/SystemUI/res/values-gu-rIN/strings.xml b/packages/SystemUI/res/values-gu-rIN/strings.xml index f8b4c41a8bec..5ef386c3d691 100644 --- a/packages/SystemUI/res/values-gu-rIN/strings.xml +++ b/packages/SystemUI/res/values-gu-rIN/strings.xml @@ -238,8 +238,7 @@ "4G ડેટા થોભાવ્યો છે" "સેલ્યુલર ડેટા થોભાવ્યો છે" "ડેટા થોભાવ્યો છે" - - + "તમારા દ્વારા સેટ કરેલ ડેટા મર્યાદા પર તમે પહોંચી ગયાં છો. તમે હવે સેલ્યુલર ડેટાનો ઉપયોગ કરી રહ્યાં નથી.\n\nજો તમે ફરી શરૂ કરો છો, તો ડેટા વપરાશ માટે શુલ્ક લાગુ થઈ શકે છે." "ફરી શરૂ કરો" "કોઈ ઇન્ટરનેટ કનેક્શન નથી" "Wi-Fi કનેક્ટ કર્યું" diff --git a/packages/SystemUI/res/values-hi/strings.xml b/packages/SystemUI/res/values-hi/strings.xml index a2f9c14eb12c..6339eee035c4 100644 --- a/packages/SystemUI/res/values-hi/strings.xml +++ b/packages/SystemUI/res/values-hi/strings.xml @@ -238,8 +238,7 @@ "4G डेटा रोक दिया गया है" "सेल्युलर डेटा रोक दिया गया है" "डेटा रोक दिया गया है" - - + "आपकी सेट की हुई डेटा सीमा समाप्त हो गई है. अब आप सेल्युलर डेटा का उपयोग नहीं कर रहे हैं.\n\nयदि आप फिर से शुरू करते हैं, तो डेटा उपयोग के लिए शुल्क लग सकता है." "फिर से शुरू करें" "कोई इंटरनेट कनेक्शन नहीं" "वाई-फ़ाई कनेक्‍ट किया गया" diff --git a/packages/SystemUI/res/values-hr/strings.xml b/packages/SystemUI/res/values-hr/strings.xml index 9412cca45be3..5fca7386fb18 100644 --- a/packages/SystemUI/res/values-hr/strings.xml +++ b/packages/SystemUI/res/values-hr/strings.xml @@ -239,8 +239,7 @@ "4G podaci pauzirani" "Mobilni podaci pauzirani" "Podaci su pauzirani" - - + "Dosegnuto je vaše ograničenje podataka. Više ne upotrebljavate mobilne podatke.\n\nAko nastavite, moguća je naplata za potrošnju podataka." "Nastavi" "Nema internetske veze" "Wi-Fi povezan" diff --git a/packages/SystemUI/res/values-hu/strings.xml b/packages/SystemUI/res/values-hu/strings.xml index ecb68a0d5b7b..6542fd42feca 100644 --- a/packages/SystemUI/res/values-hu/strings.xml +++ b/packages/SystemUI/res/values-hu/strings.xml @@ -238,8 +238,7 @@ "A 4G adatforgalom szünetel" "A mobilhálózati adatforgalom szünetel" "Az adatforgalom szünetel" - - + "Elérte a beállított adatkorlátot. A továbbiakban nem használ mobiladat-forgalmat.\n\nHa a folytatást választja, szolgáltatója adathasználati díjat számíthat fel." "Folytatás" "Nincs internet" "Wi-Fi csatlakoztatva" diff --git a/packages/SystemUI/res/values-hy-rAM/strings.xml b/packages/SystemUI/res/values-hy-rAM/strings.xml index 8944d8878dab..3d392ee59af9 100644 --- a/packages/SystemUI/res/values-hy-rAM/strings.xml +++ b/packages/SystemUI/res/values-hy-rAM/strings.xml @@ -238,8 +238,7 @@ "4Գ տվյալների օգտագործումը դադարեցված է" "Բջջային տվյալների օգտագործումը դադարեցված է" "Տվյալների օգտագործումը դադարեցված է" - - + "Տվյալների օգտագործման համար նշված սահմանաչափը լրացել է: Դուք բջջային տվյալներ այլևս չեք օգտագործում:\n\nԵթե վերսկսեք բջջային տվյալների օգտագործումը, դրա համար կարող են վճարներ գանձվել:" "Վերսկսել" "Ինտերնետ կապ չկա" "Wi-Fi-ը միացված է" diff --git a/packages/SystemUI/res/values-in/strings.xml b/packages/SystemUI/res/values-in/strings.xml index e5db9b273d9c..9155434149fc 100644 --- a/packages/SystemUI/res/values-in/strings.xml +++ b/packages/SystemUI/res/values-in/strings.xml @@ -238,8 +238,7 @@ "Data 4G dijeda" "Data seluler dijeda" "Data dijeda" - - + "Batas data yang disetel telah tercapai. Anda tidak menggunakan data seluler lagi.\n\nJika Anda melanjutkan, biaya penggunaan data mungkin berlaku." "Lanjutkan" "Tidak ada sambungan internet" "Wi-Fi tersambung" diff --git a/packages/SystemUI/res/values-is-rIS/strings.xml b/packages/SystemUI/res/values-is-rIS/strings.xml index 96eebab85f26..030e4aac4cde 100644 --- a/packages/SystemUI/res/values-is-rIS/strings.xml +++ b/packages/SystemUI/res/values-is-rIS/strings.xml @@ -238,8 +238,7 @@ "Slökkt er á 4G-gögnum" "Slökkt er á farsímagögnum" "Slökkt er á gagnanotkun" - - + "Gagnamörkunum sem þú stilltir hefur verið náð. Þú ert ekki lengur að nota farsímagögn.\n\nEf þú heldur áfram gætu gjöld fyrir gagnanotkun átt við." "Halda áfram" "Engin nettenging" "Wi-Fi tengt" diff --git a/packages/SystemUI/res/values-it/strings.xml b/packages/SystemUI/res/values-it/strings.xml index a1ce58e2328b..3a17fa93d0fb 100644 --- a/packages/SystemUI/res/values-it/strings.xml +++ b/packages/SystemUI/res/values-it/strings.xml @@ -240,8 +240,7 @@ "Dati 4G sospesi" "Dati cellulari sospesi" "Dati sospesi" - - + "È stato raggiunto il limite di dati impostato. La rete dati è stata disattivata.\n\nSe la riattivi, potrebbero essere applicati costi per l\'utilizzo dei dati." "Riprendi" "Nessuna connessione" "Wi-Fi connesso" diff --git a/packages/SystemUI/res/values-iw/strings.xml b/packages/SystemUI/res/values-iw/strings.xml index 6beab82f8202..f1df4c5416c0 100644 --- a/packages/SystemUI/res/values-iw/strings.xml +++ b/packages/SystemUI/res/values-iw/strings.xml @@ -240,8 +240,7 @@ "‏השימוש בנתוני 4G מושהה" "השימוש בנתונים סלולריים מושהה" "השימוש בנתונים מושהה" - - + "הגעת למגבלת הנתונים שהגדרת. אתה כבר לא משתמש בנתונים סלולריים.\n\nאם תמשיך, ייתכנו חיובים לשימוש בנתונים." "המשך" "אין חיבור לאינטרנט" "‏Wi-Fi מחובר" diff --git a/packages/SystemUI/res/values-ja/strings.xml b/packages/SystemUI/res/values-ja/strings.xml index ba7429a24186..7b84277634cc 100644 --- a/packages/SystemUI/res/values-ja/strings.xml +++ b/packages/SystemUI/res/values-ja/strings.xml @@ -240,8 +240,7 @@ "4Gデータは一時停止中です" "モバイルデータは一時停止中です" "データの一時停止" - - + "設定されたデータの上限に達しているため、モバイルデータの使用を停止しました。\n\n再開すると、携帯通信会社からデータ使用量に応じた通信料を課金される可能性があります。" "再開" "インターネット未接続" "Wi-Fi接続済み" diff --git a/packages/SystemUI/res/values-ka-rGE/strings.xml b/packages/SystemUI/res/values-ka-rGE/strings.xml index 15cd127191bd..69a6f44f275e 100644 --- a/packages/SystemUI/res/values-ka-rGE/strings.xml +++ b/packages/SystemUI/res/values-ka-rGE/strings.xml @@ -238,8 +238,7 @@ "4G მონაცემები შეჩერებულია" "ფიჭური მონაცემები შეჩერებულია" "მონაცემები შეჩერებულია" - - + "მიღწეულია მონაცემთა მოხმარების თქვენ მიერ მითითებული ლიმიტი. ამიტომ, მობილური ინტერნეტის გამოყენება აღარ ხდება.\n\nგანახლების შემთხვევაში, შეიძლება მობილური ინტერნეტის საფასურის გადახდა მოგიწიოთ." "გაგრძელება" "ინტერნეტ კავშირი არ არის" "Wi-Fi დაკავშირებულია" diff --git a/packages/SystemUI/res/values-kk-rKZ/strings.xml b/packages/SystemUI/res/values-kk-rKZ/strings.xml index 4c45092f6cd5..0a0b7b284410 100644 --- a/packages/SystemUI/res/values-kk-rKZ/strings.xml +++ b/packages/SystemUI/res/values-kk-rKZ/strings.xml @@ -238,8 +238,7 @@ "4G деректері кідіртілді" "Ұялы деректер кідіртілді" "Деректер кідіртілді" - - + "Белгіленген деректер шегіне жеттіңіз. Ұялы деректер енді пайдаланылмайды.\n\nЕгер жалғастырсаңыз, деректер трафигі үшін ақы алынуы мүмкін." "Жалғастыру" "Интернет байланысы жоқ" "Wi-Fi қосулы" diff --git a/packages/SystemUI/res/values-km-rKH/strings.xml b/packages/SystemUI/res/values-km-rKH/strings.xml index e7ac8a0fc655..21c79f7c0019 100644 --- a/packages/SystemUI/res/values-km-rKH/strings.xml +++ b/packages/SystemUI/res/values-km-rKH/strings.xml @@ -238,8 +238,7 @@ "ទិន្នន័យ 4G ត្រូវបានផ្អាក" "ទិន្នន័យចល័តត្រូវបានផ្អាក" "ទិន្នន័យត្រូវបានផ្អាក" - - + "បានឈានដល់កម្រិតទិន្នន័យដែលអ្នកបានកំណត់ហើយ។ អ្នកមិនអាចប្រើទិន្នន័យចល័តបានទៀតទេ។\n\nអាចនឹងគិតថ្លៃលើការប្រើទិន្នន័យ ប្រសិនបើអ្នកបន្តប្រើ។" "បន្ត" "គ្មាន​ការ​តភ្ជាប់​អ៊ីនធឺណិត" "បាន​ភ្ជាប់​វ៉ាយហ្វាយ" diff --git a/packages/SystemUI/res/values-kn-rIN/strings.xml b/packages/SystemUI/res/values-kn-rIN/strings.xml index 43960764165c..18ca57bc139e 100644 --- a/packages/SystemUI/res/values-kn-rIN/strings.xml +++ b/packages/SystemUI/res/values-kn-rIN/strings.xml @@ -238,8 +238,7 @@ "4G ಡೇಟಾ ವಿರಾಮಗೊಳಿಸಲಾಗಿದೆ" "ಸೆಲ್ಯುಲಾರ್ ಡೇಟಾ ವಿರಾಮಗೊಳಿಸಲಾಗಿದೆ" "ಡೇಟಾ ವಿರಾಮಗೊಳಿಸಲಾಗಿದೆ" - - + "ನೀವು ಹೊಂದಿಸಿರುವ ಡೇಟಾ ಮಿತಿ ತಲುಪಿದೆ. ನೀವು ಎಂದಿಗೂ ಸೆಲ್ಯುಲಾರ್ ಡೇಟಾವನ್ನು ಬಳಸದೆ ಇರಬಹುದು.\n\nನೀವು ಮುಂದುವರಿಸಿದರೆ, ಡೇಟಾ ಬಳಕೆಗೆ ಶುಲ್ಕಗಳು ಅನ್ವಯವಾಗಬಹುದು." "ಮುಂದುವರಿಸು" "ಇಂಟರ್ನೆಟ್ ಸಂಪರ್ಕವಿಲ್ಲ" "ವೈ-ಫೈ ಸಂಪರ್ಕಗೊಂಡಿದೆ" diff --git a/packages/SystemUI/res/values-kn-rIN/strings_tv.xml b/packages/SystemUI/res/values-kn-rIN/strings_tv.xml index 5afb322d3ea6..edaa8e60a444 100644 --- a/packages/SystemUI/res/values-kn-rIN/strings_tv.xml +++ b/packages/SystemUI/res/values-kn-rIN/strings_tv.xml @@ -25,7 +25,7 @@ "ವಿರಾಮ" "PIP ನಿಯಂತ್ರಿಸಲು ""HOME"" ಕೀಯನ್ನು ಹಿಡಿದುಕೊಳ್ಳಿ" "ಚಿತ್ರದಲ್ಲಿ ಚಿತ್ರ" - "ನೀವು ಮತ್ತೊಂದನ್ನು ಪ್ಲೇ ಮಾಡುವ ತನಕ ಇದು ನಿಮ್ಮ ವೀಡಿಯೋವನ್ನು ವೀಕ್ಷಣೆಯಲ್ಲಿರಿಸುತ್ತದೆ. ಅದನ್ನು ನಿಯಂತ್ರಿಸಲು ""ಹೋಮ್"" ಅನ್ನು ಒತ್ತಿ ಹಿಡಿಯಿರಿ." + "ನೀವು ಮತ್ತೊಂದನ್ನು ಪ್ಲೇ ಮಾಡುವ ತನಕ ಇದು ನಿಮ್ಮ ವೀಡಿಯೋವನ್ನು ವೀಕ್ಷಣೆಯಲ್ಲಿರಿಸುತ್ತದೆ. ಅದನ್ನು ನಿಯಂತ್ರಿಸಲು ""ಮುಖಪುಟ"" ಅನ್ನು ಒತ್ತಿ ಹಿಡಿಯಿರಿ." "ಅರ್ಥವಾಯಿತು" "ವಜಾಗೊಳಿಸಿ" diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml index 00dc1b656bef..4917bb80a433 100644 --- a/packages/SystemUI/res/values-ko/strings.xml +++ b/packages/SystemUI/res/values-ko/strings.xml @@ -240,8 +240,7 @@ "4G 데이터 사용 중지됨" "모바일 데이터 사용 중지됨" "데이터 사용 중지됨" - - + "설정한 데이터 한도에 도달했습니다. 더 이상 모바일 데이터를 사용하지 않습니다.\n\n계속 사용하면 데이터 사용 요금이 부과될 수 있습니다." "재개" "인터넷에 연결되지 않음" "Wi-Fi 연결됨" diff --git a/packages/SystemUI/res/values-ky-rKG/strings.xml b/packages/SystemUI/res/values-ky-rKG/strings.xml index d1b4df7fd965..db469ca08f94 100644 --- a/packages/SystemUI/res/values-ky-rKG/strings.xml +++ b/packages/SystemUI/res/values-ky-rKG/strings.xml @@ -238,8 +238,7 @@ "4G дайындары тындырылды" "Уюлдук дайындар тындырылды" "Дайындар тындырылды" - - + "Сиз койгон дайындардын чегине жетти. Сиз мобилдик дайындарды колдонгон жоксуз.\n\nЭгер улантсаңыз, мобилдик дайындарды колдонгонуңуз үчүн акы алынышы мүмкүн." "Улантуу" "Интернет байланыш жок" "Wi-Fi байланышта" diff --git a/packages/SystemUI/res/values-lo-rLA/strings.xml b/packages/SystemUI/res/values-lo-rLA/strings.xml index f2d53a1dcfe4..a728921d8658 100644 --- a/packages/SystemUI/res/values-lo-rLA/strings.xml +++ b/packages/SystemUI/res/values-lo-rLA/strings.xml @@ -238,8 +238,7 @@ "ຂໍ້​ມູນ 4G ຢຸດ​ຊົ່ວ​ຄາວແລ້ວ" "ຂໍ້​ມູນເຊວ​ລູ​ລາຢຸດ​ຊົ່ວ​ຄາວແລ້ວ" "ຂໍ້​ມູນ​ຢຸດ​ຊົ່ວ​ຄາວແລ້ວ" - - + "ທ່ານໃຊ້ອິນເຕີເນັດຮອດຈຳນວນທີ່ທ່ານຈຳກັດປະລິມານໄວ້ແລ້ວ. ທ່ານຈະບໍ່ນຳໃຊ້ການເຊື່ອມຕໍ່ຜ່ານເຄືອຂ່າຍມືຖືອີກຕໍ່ໄປ.\n\nຫາກທ່ານສືບຕໍ່ໃຊ້ໄປອີກ, ທ່ານອາດຖືກຮຽກເກັບເງິນຄ່າບໍລິການໄດ້." "ເລີ່ມຕໍ່" "ບໍ່ມີການເຊື່ອມຕໍ່ອິນເຕີເນັດ" "ເຊື່ອມ​ຕໍ່ Wi-​-Fi ແລ້ວ" diff --git a/packages/SystemUI/res/values-lt/strings.xml b/packages/SystemUI/res/values-lt/strings.xml index 134f9306f1e2..444045b8512a 100644 --- a/packages/SystemUI/res/values-lt/strings.xml +++ b/packages/SystemUI/res/values-lt/strings.xml @@ -240,8 +240,7 @@ "4G duomenys pristabdyti" "Korinio ryšio duomenys pristabdyti" "Duomenys pristabdyti" - - + "Pasiektas nustatytas duomenų apribojimas. Nebenaudojate mobiliojo ryšio duomenų.\n\nJei atnaujinsite, gali būti taikomi mokesčiai už duomenų naudojimą." "Atnaujinti" "Nėra interneto ryš." "Prisij. prie „Wi-Fi“" diff --git a/packages/SystemUI/res/values-lv/strings.xml b/packages/SystemUI/res/values-lv/strings.xml index ee13d0849ec9..de4c3cac8882 100644 --- a/packages/SystemUI/res/values-lv/strings.xml +++ b/packages/SystemUI/res/values-lv/strings.xml @@ -239,8 +239,7 @@ "4G datu lietojums ir apturēts" "Mobilo datu lietojums ir apturēts" "Datu lietojums ir apturēts" - - + "Ir sasniegts jūsu iestatītais datu ierobežojums. Jūs vairs neizmantojat mobilos datus.\n\nJa atsāksiet, var tikt piemērota maksa par datu lietojumu." "Atsākt" "Nav interneta sav." "Izv. sav. ar Wi-Fi" diff --git a/packages/SystemUI/res/values-mk-rMK/strings.xml b/packages/SystemUI/res/values-mk-rMK/strings.xml index 1c1c5e50f210..a173056bf12d 100644 --- a/packages/SystemUI/res/values-mk-rMK/strings.xml +++ b/packages/SystemUI/res/values-mk-rMK/strings.xml @@ -238,8 +238,7 @@ "Податоците 4G се паузирани" "Мобилните податоци се паузирани" "Податоците се паузирани" - - + "Го достигнавте ограничувањето за сообраќај на податоци што сте го поставиле. Веќе не користите мобилен интернет.\n\nДоколку продолжите, ќе ви биде наплатено за потрошениот сообраќај." "Продолжи" "Нема интернет" "Поврзано на Wi-Fi" diff --git a/packages/SystemUI/res/values-ml-rIN/strings.xml b/packages/SystemUI/res/values-ml-rIN/strings.xml index cb0ceb68a91d..7e1b4f76c793 100644 --- a/packages/SystemUI/res/values-ml-rIN/strings.xml +++ b/packages/SystemUI/res/values-ml-rIN/strings.xml @@ -238,8 +238,7 @@ "4G ഡാറ്റ താൽക്കാലികമായി നിർത്തി" "സെല്ലുലാർ ഡാറ്റ താൽക്കാലികമായി നിർത്തി" "ഡാറ്റ താൽക്കാലികമായി നിർത്തി" - - + "നിങ്ങൾ സജ്ജമാക്കിയ ഡാറ്റ പരിധി എത്തിക്കഴിഞ്ഞു. ഇനിയങ്ങോട്ട് നിങ്ങൾ സെല്ലുലാർ ഡാറ്റ ഉപയോഗിക്കില്ല.\n\nതുടരുകയാണെങ്കിൽ, ഡാറ്റാ ഉപയോഗത്തിന് നിരക്കുകൾ ബാധകമായേക്കാം." "പുനരാരംഭിക്കുക" "ഇന്റർനെറ്റ് കണക്ഷൻ ഇല്ല" "വൈഫൈ കണക്‌റ്റുചെയ്‌തു" diff --git a/packages/SystemUI/res/values-mn-rMN/strings.xml b/packages/SystemUI/res/values-mn-rMN/strings.xml index 72ec7cbfb6a3..0fcd1abb8cea 100644 --- a/packages/SystemUI/res/values-mn-rMN/strings.xml +++ b/packages/SystemUI/res/values-mn-rMN/strings.xml @@ -236,8 +236,7 @@ "4G дата-г түр зогсоосон байна" "Гар утасны дата-г түр зогсоосон байна" "Дата-г түр зогсоосон байна" - - + "Таны тогтоосон дата хэмжээний хязгаарт хүрсэн байна. Та одоогоор мобайл датаг ашиглаагүй байна.\n\nҮргэлжлүүлсэн тохиолдолд төлбөр гарах болно." "Үргэлжлүүлэх" "Интернет холболт байхгүй" "Wi-Fi холбогдсон" diff --git a/packages/SystemUI/res/values-mr-rIN/strings.xml b/packages/SystemUI/res/values-mr-rIN/strings.xml index 6bdac6cb9eab..34acc11b5a48 100644 --- a/packages/SystemUI/res/values-mr-rIN/strings.xml +++ b/packages/SystemUI/res/values-mr-rIN/strings.xml @@ -238,8 +238,7 @@ "4G डेटास विराम दिला आहे" "सेल्युलर डेटास विराम दिला आहे" "डेटास विराम दिला आहे" - - + "आपण सेट केलेली डेटा मर्यादा गाठली आहे. आपण यापुढे मोबाइल डेटा वापरणार नाही.\n\nआपण पुन: सुरु केल्यास, डेटा वापरासाठी शुल्क आकारले जाऊ शकतात." "पुन्हा सुरु करा" "इंटरनेट कनेक्शन नाही" "वाय-फाय कनेक्ट केले" diff --git a/packages/SystemUI/res/values-ms-rMY/strings.xml b/packages/SystemUI/res/values-ms-rMY/strings.xml index 98c14507dd22..b0c591efbe7b 100644 --- a/packages/SystemUI/res/values-ms-rMY/strings.xml +++ b/packages/SystemUI/res/values-ms-rMY/strings.xml @@ -238,8 +238,7 @@ "Data 4G dijeda" "Data selular dijeda" "Data dijeda" - - + "Had data yang anda tetapkan telah dicapai. Anda tidak lagi menggunakan data selular.\n\nJika anda menyambung semula, caj mungkin dikenakan untuk penggunaan data." "Sambung semula" "Tiada smbg Internet" "Wi-Fi disambungkan" diff --git a/packages/SystemUI/res/values-my-rMM/strings.xml b/packages/SystemUI/res/values-my-rMM/strings.xml index fbfc4f7121d7..d01faeeb5ae0 100644 --- a/packages/SystemUI/res/values-my-rMM/strings.xml +++ b/packages/SystemUI/res/values-my-rMM/strings.xml @@ -238,8 +238,7 @@ "4G data ခေတ္တရပ်တန့်သည်" "cellular data ခေတ္တရပ်တန့်သည်" "ဒေတာ ခေတ္တရပ်တန့်သည်" - - + "သင်သတ်မှတ်ထားသော ဒေတာကန့်သတ်ချက်သို့ ရောက်နေပါပြီ။ သင်သည် ဆယ်လူလာဒေတာကို သုံးနေတော့မည်မဟုတ်ပါ။\n\nသင်ဆက်လုပ်မည်ဆိုလျှင် ဒေတာသုံးစွဲမှုအတွက် အခငွေ ကျသင့်မှုရှိနိုင်ပါသည်။" "ပြန်ဆက်လုပ်ရန်" "အင်တာနက်မရှိ" "ကြိုးမဲ့ဆက်သွယ်မှု" diff --git a/packages/SystemUI/res/values-nb/strings.xml b/packages/SystemUI/res/values-nb/strings.xml index 8f077423f0ea..4e67111d1fd6 100644 --- a/packages/SystemUI/res/values-nb/strings.xml +++ b/packages/SystemUI/res/values-nb/strings.xml @@ -238,8 +238,7 @@ "4G-data er satt på pause" "Mobildata er satt på pause" "Data er satt på pause" - - + "Datagrensen du satte, er nådd. Du bruker ikke mobildata lenger.\n\nHvis du gjenopptar bruk av mobildata, kan gebyrer for databruk påløpe." "Gjenoppta" "Ingen Internett-forbindelse" "Wi-Fi tilkoblet" diff --git a/packages/SystemUI/res/values-ne-rNP/strings.xml b/packages/SystemUI/res/values-ne-rNP/strings.xml index 6933bdcca405..2fb31d172da2 100644 --- a/packages/SystemUI/res/values-ne-rNP/strings.xml +++ b/packages/SystemUI/res/values-ne-rNP/strings.xml @@ -238,8 +238,7 @@ "4G डेटा रोकिएको छ" "सेल्यूलर डेटा रोकिएको छ" "डेटा रोकिएको छ" - - + "तपाईँले सेट गर्नुभएको डेटाको सीमामा पुगिएको छ। अबदेखि तपाईँ सेलुलर डेटाको प्रयोग गर्नुहुने छैन। \n\nतपाईँले प्रयोग जारी राख्नुभयो भने डेटा प्रयोगका शुल्कहरू लाग्न सक्छन्।" "पुनः सुरु गर्नुहोस्" "इन्टरनेट जडान छैन" "Wi-Fi जडित" diff --git a/packages/SystemUI/res/values-nl/strings.xml b/packages/SystemUI/res/values-nl/strings.xml index ca3e4074c0b1..695dbcd9d73a 100644 --- a/packages/SystemUI/res/values-nl/strings.xml +++ b/packages/SystemUI/res/values-nl/strings.xml @@ -238,8 +238,7 @@ "4G-data zijn onderbroken" "Mobiele gegevens zijn onderbroken" "Gegevens zijn onderbroken" - - + "De ingestelde datalimiet is bereikt. Je gebruikt geen mobiele data meer.\n\nAls je hervat, kunnen er kosten voor datagebruik in rekening worden gebracht." "Hervatten" "Geen internetverbinding" "Verbonden via wifi" diff --git a/packages/SystemUI/res/values-pa-rIN/strings.xml b/packages/SystemUI/res/values-pa-rIN/strings.xml index b6906b4a3181..ec2f76ab4064 100644 --- a/packages/SystemUI/res/values-pa-rIN/strings.xml +++ b/packages/SystemUI/res/values-pa-rIN/strings.xml @@ -238,8 +238,7 @@ "4G ਡੈਟਾ ਰੁਕ ਗਿਆ ਹੈ" "ਸੈਲਿਊਲਰ ਡੈਟਾ ਰੁਕ ਗਿਆ ਹੈ" "ਡੈਟਾ ਰੁਕ ਗਿਆ ਹੈ" - - + "ਤੁਸੀਂ ਤੁਹਾਡੇ ਵੱਲੋਂ ਸੈੱਟ ਕੀਤੀ ਗਈ ਡੈਟਾ ਸੀਮਾ \'ਤੇ ਪਹੁੰਚ ਚੁੱਕੇ ਹੋ। ਤੁਸੀਂ ਹੁਣ ਸੈਲਿਊਲਰ ਡੈਟੇ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕਰ ਰਹੇ ਹੋ।\n\nਜੇਕਰ ਤੁਸੀਂ ਮੁੜ-ਸ਼ੁਰੂ ਕਰਦੇ ਹੋ, ਤਾਂ ਡੈਟਾ ਵਰਤੋਂ ਲਈ ਖਰਚੇ ਲਾਗੂ ਹੋ ਸਕਦੇ ਹਨ।" "ਦੁਬਾਰਾ ਸ਼ੁਰੂ ਕਰੋ" "ਕੋਈ ਇੰਟਰਨੈਟ ਕਨੈਕਸ਼ਨ ਨਹੀਂ" "Wi-Fi ਕਨੈਕਟ ਕੀਤਾ" diff --git a/packages/SystemUI/res/values-pl/strings.xml b/packages/SystemUI/res/values-pl/strings.xml index cd5187b41e8e..4452ad1b56ae 100644 --- a/packages/SystemUI/res/values-pl/strings.xml +++ b/packages/SystemUI/res/values-pl/strings.xml @@ -240,8 +240,7 @@ "Transmisja danych 4G została wstrzymana" "Komórkowa transmisja danych została wstrzymana" "Transmisja danych została wstrzymana" - - + "Osiągnięto ustawiony limit danych. Nie korzystasz już z komórkowej transmisji danych.\n\nJeśli włączysz ją ponownie, może zostać naliczona opłata za transmisję danych." "Wznów" "Brak internetu" "Wi-Fi: połączono" diff --git a/packages/SystemUI/res/values-pt-rBR/strings.xml b/packages/SystemUI/res/values-pt-rBR/strings.xml index 06873d9354e2..9f279e336dc3 100644 --- a/packages/SystemUI/res/values-pt-rBR/strings.xml +++ b/packages/SystemUI/res/values-pt-rBR/strings.xml @@ -240,8 +240,7 @@ "Os dados 4G foram pausados" "Os dados da rede celular foram pausados" "Os dados foram pausados" - - + "O limite de dados que você definiu foi atingido. Você não está mais usando os dados da rede celular.\n\nSe retomar o uso de dados, cobranças poderão ser aplicadas." "Retomar" "Sem conexão à Internet" "Wi-Fi conectado" diff --git a/packages/SystemUI/res/values-pt-rPT/strings.xml b/packages/SystemUI/res/values-pt-rPT/strings.xml index 378040867352..a46ef71588d5 100644 --- a/packages/SystemUI/res/values-pt-rPT/strings.xml +++ b/packages/SystemUI/res/values-pt-rPT/strings.xml @@ -238,8 +238,7 @@ "Dados 4G em pausa" "Dados de redes móveis em pausa" "Dados em pausa" - - + "O limite de dados definido foi atingido. Já não está a utilizar dados móveis.\n\nSe retomar, podem aplicar-se custos relativos à utilização de dados." "Retomar" "Sem ligação internet" "Wi-Fi ligado" diff --git a/packages/SystemUI/res/values-pt/strings.xml b/packages/SystemUI/res/values-pt/strings.xml index 06873d9354e2..9f279e336dc3 100644 --- a/packages/SystemUI/res/values-pt/strings.xml +++ b/packages/SystemUI/res/values-pt/strings.xml @@ -240,8 +240,7 @@ "Os dados 4G foram pausados" "Os dados da rede celular foram pausados" "Os dados foram pausados" - - + "O limite de dados que você definiu foi atingido. Você não está mais usando os dados da rede celular.\n\nSe retomar o uso de dados, cobranças poderão ser aplicadas." "Retomar" "Sem conexão à Internet" "Wi-Fi conectado" diff --git a/packages/SystemUI/res/values-ro/strings.xml b/packages/SystemUI/res/values-ro/strings.xml index 8d9338317115..1fda1f9dd819 100644 --- a/packages/SystemUI/res/values-ro/strings.xml +++ b/packages/SystemUI/res/values-ro/strings.xml @@ -241,8 +241,7 @@ "Conexiunea de date 4G este întreruptă" "Conexiunea de date mobile este întreruptă" "Conexiunea de date este întreruptă" - - + "A fost atinsă limita de date setată. Datele mobile nu mai sunt folosite \n\nDacă reluați, este posibil să se aplice taxe pentru utilizarea datelor." "Reluați" "Fără conex. internet" "Wi-Fi conectat" diff --git a/packages/SystemUI/res/values-ru/strings.xml b/packages/SystemUI/res/values-ru/strings.xml index c9ac1b0673c6..a9b7346bb9db 100644 --- a/packages/SystemUI/res/values-ru/strings.xml +++ b/packages/SystemUI/res/values-ru/strings.xml @@ -242,8 +242,7 @@ "Передача данных 4G приостановлена" "Передача мобильных данных приостановлена" "Передача данных приостановлена" - - + "Достигнут установленный вами лимит на передачу мобильных данных.\n\nЕсли вы продолжите, может взиматься дополнительная плата." "Возобновить" "Нет интернет-подключения" "Wi-Fi подключено" diff --git a/packages/SystemUI/res/values-si-rLK/strings.xml b/packages/SystemUI/res/values-si-rLK/strings.xml index 3f5651deab0b..9b941627484f 100644 --- a/packages/SystemUI/res/values-si-rLK/strings.xml +++ b/packages/SystemUI/res/values-si-rLK/strings.xml @@ -238,8 +238,7 @@ "4G දත්ත විරාම කර ඇත" "සෙලියුලර් දත්ත විරාම කර ඇත" "දත්ත විරාම කර ඇත" - - + "ඔබ සැකසූ දත්ත සීමාව ළඟා වී ඇත. ඔබ තවදුරටත් සෙලියුලර් දත්ත භාවිත නොකරයි. \n\nඔබ නැවත ආරම්භ කළහොත්, දත්ත භාවිතය සඳහා ගාස්තු අදාළ විය හැකිය." "නැවත පටන්ගන්න" "අන්තර්ජාල සම්බන්ධතාවයක් නැත" "Wi-Fi සම්බන්ධිතයි" diff --git a/packages/SystemUI/res/values-sk/strings.xml b/packages/SystemUI/res/values-sk/strings.xml index dacbbfffc6f1..3784318c2e06 100644 --- a/packages/SystemUI/res/values-sk/strings.xml +++ b/packages/SystemUI/res/values-sk/strings.xml @@ -242,8 +242,7 @@ "Dátové prenosy 4G sú pozastavené" "Mobilné dáta sú pozastavené" "Dáta sú pozastavené" - - + "Dosiahli ste nastavený limit dát. Už nepoužívate mobilné dátové pripojenie.\n\nAk ho však obnovíte, môžu vám byť účtované poplatky za spotrebu dát." "Znova spustiť" "Bez prip. na Internet" "Wi-Fi: pripojené" diff --git a/packages/SystemUI/res/values-sl/strings.xml b/packages/SystemUI/res/values-sl/strings.xml index ce8a3dcd707a..b889cf946d81 100644 --- a/packages/SystemUI/res/values-sl/strings.xml +++ b/packages/SystemUI/res/values-sl/strings.xml @@ -242,8 +242,7 @@ "Prenos podatkov v omrežju 4G je zaustavljen" "Prenos mobilnih podatkov je zaustavljen" "Prenos podatkov je zaustavljen" - - + "Dosegli ste nastavljeno omejitev porabe podatkov. Prenosa podatkov v mobilnih omrežjih ne uporabljate več.\n\nČe nadaljujete, lahko nastanejo stroški prenosa podatkov." "Nadaljuj" "Ni internetne povez." "Wi-Fi povezan" diff --git a/packages/SystemUI/res/values-sq-rAL/strings.xml b/packages/SystemUI/res/values-sq-rAL/strings.xml index aea5d3eedd4c..b965b3240e48 100644 --- a/packages/SystemUI/res/values-sq-rAL/strings.xml +++ b/packages/SystemUI/res/values-sq-rAL/strings.xml @@ -238,8 +238,7 @@ "Të dhënat 4G janë ndërprerë" "Të dhënat celulare janë ndërprerë" "Të dhënat janë ndërprerë" - - + "Kufiri i të dhënave që ke caktuar është arritur. Nuk po përdor më të dhënat celulare.\n\nNëse vazhdon, mund të zbatohen tarifa për përdorimin e të dhënave." "Rifillo" "Nuk ka lidhje interneti" "Wi-Fi është i lidhur" diff --git a/packages/SystemUI/res/values-sr/strings.xml b/packages/SystemUI/res/values-sr/strings.xml index 27285cdf1aa0..2f339a45a1e0 100644 --- a/packages/SystemUI/res/values-sr/strings.xml +++ b/packages/SystemUI/res/values-sr/strings.xml @@ -239,8 +239,7 @@ "4G подаци су паузирани" "Мобилни подаци су паузирани" "Подаци су паузирани" - - + "Ограничење потрошње података које сте подесили је достигнуто. Више не користите мобилне податке.\n\nАко наставите, можда ће бити наплаћени трошкови за потрошњу података." "Настави" "Нема интернет везе" "Wi-Fi је повезан" diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml index 224d2337b792..87b50a4a569d 100644 --- a/packages/SystemUI/res/values-sv/strings.xml +++ b/packages/SystemUI/res/values-sv/strings.xml @@ -238,8 +238,7 @@ "4G-data har pausats" "Mobildata har pausats" "Dataanvändningen har pausats" - - + "Den angivna datagränsen har uppnåtts. Du använder inte längre mobildata.\n\nOm du fortsätter kan avgifter för dataanvändning tillkomma." "Återuppta" "Ingen anslutning" "Wi-Fi-ansluten" diff --git a/packages/SystemUI/res/values-sw/strings.xml b/packages/SystemUI/res/values-sw/strings.xml index 30b3eb785694..54d49f5559ed 100644 --- a/packages/SystemUI/res/values-sw/strings.xml +++ b/packages/SystemUI/res/values-sw/strings.xml @@ -238,8 +238,7 @@ "Data ya 4G imesitishwa" "Data ya simu ya mkononi imesitishwa" "Data imesitishwa" - - + "Umefikia kikomo cha data ulichoweka. Hutaweza kutumia tena data ya simu ya mkononi.\n\nIkiwa utaendelea, huenda ukatozwa ada za matumizi ya data." "Endelea" "Hakuna muunganisho wa mtandao" "Mtandao-hewa umeunganishwa" diff --git a/packages/SystemUI/res/values-ta-rIN/strings.xml b/packages/SystemUI/res/values-ta-rIN/strings.xml index b9aad8ae9611..6b44b09d06e9 100644 --- a/packages/SystemUI/res/values-ta-rIN/strings.xml +++ b/packages/SystemUI/res/values-ta-rIN/strings.xml @@ -238,8 +238,7 @@ "4G டேட்டா இடைநிறுத்தப்பட்டது" "செல்லுலார் தரவு இடைநிறுத்தப்பட்டது" "தரவு இடைநிறுத்தப்பட்டது" - - + "நீங்கள் அமைத்த தரவு வரம்பை அடைந்துவிட்டீர்கள். இப்போது செல்லுலார் தரவைப் பயன்படுத்த முடியாது.\n\nமீண்டும் தொடங்கினால், தரவுப் பயன்பாட்டிற்குக் கட்டணங்கள் விதிக்கப்படலாம்." "மீண்டும் தொடங்கு" "இணைய இணைப்பு இல்லை" "வைஃபை இணைக்கப்பட்டது" diff --git a/packages/SystemUI/res/values-te-rIN/strings.xml b/packages/SystemUI/res/values-te-rIN/strings.xml index 202f5c180780..fae5ca67d8d3 100644 --- a/packages/SystemUI/res/values-te-rIN/strings.xml +++ b/packages/SystemUI/res/values-te-rIN/strings.xml @@ -238,8 +238,7 @@ "4G డేటా పాజ్ చేయబడింది" "సెల్యులార్ డేటా పాజ్ చేయబడింది" "డేటా పాజ్ చేయబడింది" - - + "మీరు సెట్ చేసిన డేటా పరిమితిని చేరుకున్నారు. మీరు ఇప్పుడు సెల్యులార్ డేటాను ఉపయోగించడం లేదు.\n\nమీరు పునఃప్రారంభిస్తే, డేటా వినియోగానికి ఛార్జీలు వర్తించవచ్చు." "పునఃప్రారంభించు" "ఇంటర్నెట్ కనెక్షన్ లేదు" "Wi-Fi కనెక్ట్ చేయబడింది" diff --git a/packages/SystemUI/res/values-th/strings.xml b/packages/SystemUI/res/values-th/strings.xml index ec3ed8702394..9314e5912f40 100644 --- a/packages/SystemUI/res/values-th/strings.xml +++ b/packages/SystemUI/res/values-th/strings.xml @@ -238,8 +238,7 @@ "หยุดการใช้ข้อมูล 4G ชั่วคราวแล้ว" "หยุดการใช้ข้อมูลมือถือชั่วคราวแล้ว" "หยุดการใช้ข้อมูลชั่วคราวแล้ว" - - + "คุณใช้อินเทอร์เน็ตเกินปริมาณที่กำหนดไว้แล้ว คุณจะไม่สามารถใช้ข้อมูลเครือข่ายมือถืออีก\n\nหากใช้ต่อ อาจมีค่าบริการสำหรับปริมาณการใช้อินเทอร์เน็ต" "ทำต่อ" "ไม่มีอินเทอร์เน็ต" "เชื่อมต่อ WiFi แล้ว" diff --git a/packages/SystemUI/res/values-tl/strings.xml b/packages/SystemUI/res/values-tl/strings.xml index 94524b70eee1..849dc45a150d 100644 --- a/packages/SystemUI/res/values-tl/strings.xml +++ b/packages/SystemUI/res/values-tl/strings.xml @@ -238,8 +238,7 @@ "Naka-pause ang 4G data" "Naka-pause ang cellular data" "Naka-pause ang data" - - + "Naabot na ang limitasyon sa data na itinakda mo. Hindi ka na gumagamit ng cellular data.\n\nKung magpapatuloy ka, maaari kang masingil para sa paggamit ng data." "Ipagpatuloy" "Walang koneksyon sa Internet" "nakakonekta ang Wi-Fi" diff --git a/packages/SystemUI/res/values-tr/strings.xml b/packages/SystemUI/res/values-tr/strings.xml index e295e1621bf9..98f493cadcf6 100644 --- a/packages/SystemUI/res/values-tr/strings.xml +++ b/packages/SystemUI/res/values-tr/strings.xml @@ -238,8 +238,7 @@ "4G veri kullanımı duraklatıldı" "Hücresel veri kullanımı duraklatıldı" "Veri kullanımı duraklatıldı" - - + "Ayarladığınız veri limitine ulaşıldı. Artık hücresel verilerinizi kullanmıyorsunuz.\n\nHücresel veri kullanımını devam ettirirseniz veri kullanım ücretleri ödemeniz gerekebilir." "Devam ettir" "İnternet bağlantısı yok" "Kablosuz bağlandı" diff --git a/packages/SystemUI/res/values-uk/strings.xml b/packages/SystemUI/res/values-uk/strings.xml index ce50be5168bb..0f278c87d19f 100644 --- a/packages/SystemUI/res/values-uk/strings.xml +++ b/packages/SystemUI/res/values-uk/strings.xml @@ -242,8 +242,7 @@ "Передавання даних 4G призупинено" "Передавання мобільних даних призупинено" "Передавання даних призупинено" - - + "Ви досягнули вказаного ліміту даних. Мобільний трафік вимкнено.\n\nЯкщо продовжите, може стягуватися плата за використання трафіку." "Відновити" "Немає з’єднання" "Wi-Fi під’єднано" diff --git a/packages/SystemUI/res/values-ur-rPK/strings.xml b/packages/SystemUI/res/values-ur-rPK/strings.xml index 933cff4ced08..790726e57ae8 100644 --- a/packages/SystemUI/res/values-ur-rPK/strings.xml +++ b/packages/SystemUI/res/values-ur-rPK/strings.xml @@ -238,8 +238,7 @@ "‏4G ڈیٹا موقوف کر دیا گیا" "سیلولر ڈیٹا موقوف کر دیا گیا" "ڈیٹا موقوف کر دیا گیا" - - + "آپ کی سیٹ کردہ ڈیٹا کی حد پوری ہو گئی ہے۔ آپ اب سیلولر ڈیٹا استعمال نہیں کر رہے۔\n\nاگر آپ دوبارہ شروع کرتے ہیں تو ڈیٹا کے استعمال کے چارجز لاگو ہو سکتے ہیں۔" "دوبارہ شروع کریں" "کوئی انٹرنیٹ کنکشن نہیں" "‏Wi-Fi مربوط ہے" diff --git a/packages/SystemUI/res/values-uz-rUZ/strings.xml b/packages/SystemUI/res/values-uz-rUZ/strings.xml index e947f0bcc778..dccab11591f1 100644 --- a/packages/SystemUI/res/values-uz-rUZ/strings.xml +++ b/packages/SystemUI/res/values-uz-rUZ/strings.xml @@ -240,8 +240,7 @@ "4G internet to‘xtatib qo‘yildi" "Mobil internetdan foydalanish to‘xtatib qo‘yildi" "Internetdan foydalanish to‘xtatib qo‘yildi" - - + "O‘rnatilgan trafik sarflab bo‘lindi. Endi mobil internetdan foydalana olmaysiz.\n\nDavom ettiradigan bo‘lsangiz, trafik uchun to‘lov olinishi mumkin." "Davom etish" "Internetga ulanmagan" "Wi-Fi ulandi" diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml index 00161fb7cce0..158fbf6efd3d 100644 --- a/packages/SystemUI/res/values-vi/strings.xml +++ b/packages/SystemUI/res/values-vi/strings.xml @@ -238,8 +238,7 @@ "Đã tạm dừng dữ liệu 4G" "Đã tạm dừng dữ liệu di động" "Đã tạm dừng dữ liệu" - - + "Đã đạt đến giới hạn dữ liệu mà bạn đặt. Bạn hiện không còn sử dụng dữ liệu di động.\n\nNếu tiếp tục, bạn có thể bị tính phí khi sử dụng dữ liệu." "Tiếp tục" "Ko có k.nối Internet" "Đã kết nối Wi-Fi" diff --git a/packages/SystemUI/res/values-zh-rCN/strings.xml b/packages/SystemUI/res/values-zh-rCN/strings.xml index 49d07badcf2b..cfabc0844e5c 100644 --- a/packages/SystemUI/res/values-zh-rCN/strings.xml +++ b/packages/SystemUI/res/values-zh-rCN/strings.xml @@ -238,8 +238,7 @@ "4G 数据网络已暂停使用" "移动数据网络已暂停使用" "数据网络已暂停使用" - - + "您的数据用量已达到设置的上限。您无法再使用移动数据网络。\n\n如果您继续操作,可能需要支付相应的数据流量费用。" "恢复" "未连接互联网" "已连接到WLAN网络" diff --git a/packages/SystemUI/res/values-zh-rHK/strings.xml b/packages/SystemUI/res/values-zh-rHK/strings.xml index 633f32a35e95..75cef9a6a2e0 100644 --- a/packages/SystemUI/res/values-zh-rHK/strings.xml +++ b/packages/SystemUI/res/values-zh-rHK/strings.xml @@ -240,8 +240,7 @@ "已暫停 4G 數據" "已暫停流動數據" "已暫停使用數據" - - + "已達到您設定的數據上限。系統將停止使用流動數據網絡。\n\n如果您恢復使用流動數據網絡,可能需要支付數據費用。" "恢復" "沒有互聯網連線" "Wi-Fi 已連線" diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml index 81bbbf8af6c7..b25830a7df0b 100644 --- a/packages/SystemUI/res/values-zh-rTW/strings.xml +++ b/packages/SystemUI/res/values-zh-rTW/strings.xml @@ -238,8 +238,7 @@ "已暫停 4G 數據連線" "已暫停行動數據連線" "已暫停數據連線" - - + "你的數據用量已達設定的用量上限,因此系統已停止使用行動數據連線。\n\n如果你繼續使用行動數據連線,可能需要支付相關的數據傳輸費用。" "恢復連線" "沒有網際網路連線" "Wi-Fi 已連線" diff --git a/packages/SystemUI/res/values-zu/strings.xml b/packages/SystemUI/res/values-zu/strings.xml index 7117a80077b4..2b2adb54b974 100644 --- a/packages/SystemUI/res/values-zu/strings.xml +++ b/packages/SystemUI/res/values-zu/strings.xml @@ -238,8 +238,7 @@ "4G idatha imisiwe" "Idatha yeselula imisiwe" "Idatha imisiwe" - - + "Umkhawulo wedatha owusethayo ufikiwe. Awusasebenzisi idatha yeselula.\n\nUma uqalisa kabusha, izindleko zingasebenza ekusetshenzisweni kwedatha." "Qalisa kabusha" "Alukho uxhumano lwe-Inthanethi" "I-Wi-Fi ixhunyiwe" -- GitLab From be6919995f5e8010c2aecaa236067f8eea7f100f Mon Sep 17 00:00:00 2001 From: Tyler Gunn Date: Fri, 30 Sep 2016 09:40:26 -0700 Subject: [PATCH 621/809] Increase char limit for string. Translation requested an increase in the char limit for this string; there is plenty of room so increasing to 50. Bug: 31814596 Change-Id: I07e1b51ad9335b961ce503233b13c008e9bcda2d --- core/res/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml index 26d24bc0d1ac..f42c9ed15624 100644 --- a/core/res/res/values/strings.xml +++ b/core/res/res/values/strings.xml @@ -3553,7 +3553,7 @@ Edit - + Data usage alert Tap to view usage and settings. -- GitLab From 0046284c0f08a46ae54de7f93e3c0fc8470420df Mon Sep 17 00:00:00 2001 From: Eric Schmidt Date: Fri, 30 Sep 2016 09:53:54 -0700 Subject: [PATCH 622/809] docs: Broken at link in Memory article. Change-Id: Ia06dea536a891dd321cadcbe47212acbf6c067cc --- docs/html/training/articles/memory.jd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/html/training/articles/memory.jd b/docs/html/training/articles/memory.jd index 885112168e25..a4e645a46b5a 100644 --- a/docs/html/training/articles/memory.jd +++ b/docs/html/training/articles/memory.jd @@ -365,8 +365,8 @@ private ActivityManager.MemoryInfo getAvailableMemory() { You should generally avoid use of persistent services because of the on-going demands they place on available memory. Instead, we recommend that you use an alternative implementation - such as {@llink android.app.job.JobScheduler}. For more information about - how to use {@llink android.app.job.JobScheduler} to schedule background + such as {@link android.app.job.JobScheduler}. For more information about + how to use {@link android.app.job.JobScheduler} to schedule background processes, see Background Optimizations.

            -- GitLab From 780931dd46aa313578656e96c485aa4d38a301c5 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Fri, 30 Sep 2016 09:57:53 -0700 Subject: [PATCH 623/809] Import translations. DO NOT MERGE Auto-generated-cl: translation import Bug: 31424274 Change-Id: Ibd2890c12c630e9bfc41fe222fa626ab87b77500 --- packages/SystemUI/res/values-fa-land/strings.xml | 2 +- packages/SystemUI/res/values-fa/strings.xml | 6 +++--- packages/SystemUI/res/values-fr/strings.xml | 2 +- packages/SystemUI/res/values-kn-rIN/strings.xml | 4 ++-- packages/SystemUI/res/values-kn-rIN/strings_tv.xml | 2 +- packages/SystemUI/res/values-lt/strings.xml | 4 ++-- packages/SystemUI/res/values-sv/strings.xml | 2 +- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/packages/SystemUI/res/values-fa-land/strings.xml b/packages/SystemUI/res/values-fa-land/strings.xml index adc2b118894f..fe67cf0a7d41 100644 --- a/packages/SystemUI/res/values-fa-land/strings.xml +++ b/packages/SystemUI/res/values-fa-land/strings.xml @@ -19,5 +19,5 @@ - "صفحه اکنون در جهت افقی قفل است." + "صفحه اکنون در حالت افقی قفل است." diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml index 39f8c3e3c45d..b75ff601a672 100644 --- a/packages/SystemUI/res/values-fa/strings.xml +++ b/packages/SystemUI/res/values-fa/strings.xml @@ -254,10 +254,10 @@ "تنظیمات اعلان" "تنظیمات %s" "صفحه به صورت خودکار می‌چرخد." - "صفحه اکنون در جهت افقی قفل است." + "صفحه اکنون در حالت افقی قفل است." "صفحه اکنون در جهت عمودی قفل است." "صفحه اکنون به صورت خودکار می‌چرخد." - "صفحه اکنون روی جهت افقی قفل شده است." + "صفحه اکنون در حالت افقی قفل است." "صفحه اکنون روی جهت عمودی قفل شده است." "ویترین دسر" "محافظ صفحه" @@ -482,7 +482,7 @@ "نمایه کاری" "برای بعضی افراد سرگرم‌کننده است اما نه برای همه" "‏«تنظیم‌کننده واسط کاربری سیستم» روش‌های بیشتری برای تنظیم دقیق و سفارشی کردن واسط کاربری Android در اختیار شما قرار می‌دهد. ممکن است این ویژگی‌های آزمایشی تغییر کنند، خراب شوند یا در نسخه‌های آینده جود نداشته باشند. با احتیاط ادامه دهید." - "ممکن است این ویژگی‌های آزمایشی تغییر کنند، خراب شوند یا در نسخه‌های آینده وجود نداشته باشند. با احتیاط ادامه دهید." + "ممکن است این قابلیت‌های آزمایشی تغییر کنند، خراب شوند یا در نسخه‌های آینده وجود نداشته باشد. بااحتیاط ادامه دهید." "متوجه شدم" "تبریک می‌گوییم! «تنظیم‌کننده واسط کاربری سیستم» به «تنظیمات» اضافه شد" "حذف از تنظیمات" diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml index 447255ba85d2..1ed0c29935b7 100644 --- a/packages/SystemUI/res/values-fr/strings.xml +++ b/packages/SystemUI/res/values-fr/strings.xml @@ -446,7 +446,7 @@ "Appeler" "Système" - "Faire sonner" + "Sonnerie" "Multimédia" "Alarme" diff --git a/packages/SystemUI/res/values-kn-rIN/strings.xml b/packages/SystemUI/res/values-kn-rIN/strings.xml index c62a8db9cb45..d0a0a514ac10 100644 --- a/packages/SystemUI/res/values-kn-rIN/strings.xml +++ b/packages/SystemUI/res/values-kn-rIN/strings.xml @@ -593,8 +593,8 @@ "ಬಟನ್ ಸೇರಿಸು" "ಉಳಿಸು" "ಮರುಹೊಂದಿಸು" - "ಯಾವುದೇ ಹೋಮ್ ಬಟನ್ ಕಂಡುಬಂದಿಲ್ಲ" - "ಈ ಸಾಧನವನ್ನು ನ್ಯಾವಿಗೇಟ್ ಮಾಡಲು ಹೋಮ್ ಬಟನ್ ಅಗತ್ಯವಿರುತ್ತದೆ. ಉಳಿಸುವ ಮೊದಲು ದಯವಿಟ್ಟು ಹೋಮ್ ಬಟನ್ ಸೇರಿಸಿ." + "ಯಾವುದೇ ಮುಖಪುಟ ಬಟನ್ ಕಂಡುಬಂದಿಲ್ಲ" + "ಈ ಸಾಧನವನ್ನು ನ್ಯಾವಿಗೇಟ್ ಮಾಡಲು ಮುಖಪುಟ ಬಟನ್ ಅಗತ್ಯವಿರುತ್ತದೆ. ಉಳಿಸುವ ಮೊದಲು ದಯವಿಟ್ಟು ಮುಖಪುಟ ಬಟನ್ ಸೇರಿಸಿ." "ಬಟನ್ ಅಳತೆ ಹೊಂದಿಸು" "ಕ್ಲಿಪ್‌ಬೋರ್ಡ್" "ಐಟಂಗಳನ್ನು ನೇರವಾಗಿ ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ಗೆ ಡ್ರ್ಯಾಗ್ ಮಾಡಲು ಕ್ಲಿಪ್‌ಬೋರ್ಡ್ ಅನುಮತಿಸುತ್ತದೆ. ಐಟಂಗಳು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವಾಗ ಅವುಗಳನ್ನು ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ನಿಂದ ನೇರವಾಗಿ ಹೊರಗೆ ಹಾಕಬಹುದಾಗಿರುತ್ತದೆ." diff --git a/packages/SystemUI/res/values-kn-rIN/strings_tv.xml b/packages/SystemUI/res/values-kn-rIN/strings_tv.xml index 5afb322d3ea6..edaa8e60a444 100644 --- a/packages/SystemUI/res/values-kn-rIN/strings_tv.xml +++ b/packages/SystemUI/res/values-kn-rIN/strings_tv.xml @@ -25,7 +25,7 @@ "ವಿರಾಮ" "PIP ನಿಯಂತ್ರಿಸಲು ""HOME"" ಕೀಯನ್ನು ಹಿಡಿದುಕೊಳ್ಳಿ" "ಚಿತ್ರದಲ್ಲಿ ಚಿತ್ರ" - "ನೀವು ಮತ್ತೊಂದನ್ನು ಪ್ಲೇ ಮಾಡುವ ತನಕ ಇದು ನಿಮ್ಮ ವೀಡಿಯೋವನ್ನು ವೀಕ್ಷಣೆಯಲ್ಲಿರಿಸುತ್ತದೆ. ಅದನ್ನು ನಿಯಂತ್ರಿಸಲು ""ಹೋಮ್"" ಅನ್ನು ಒತ್ತಿ ಹಿಡಿಯಿರಿ." + "ನೀವು ಮತ್ತೊಂದನ್ನು ಪ್ಲೇ ಮಾಡುವ ತನಕ ಇದು ನಿಮ್ಮ ವೀಡಿಯೋವನ್ನು ವೀಕ್ಷಣೆಯಲ್ಲಿರಿಸುತ್ತದೆ. ಅದನ್ನು ನಿಯಂತ್ರಿಸಲು ""ಮುಖಪುಟ"" ಅನ್ನು ಒತ್ತಿ ಹಿಡಿಯಿರಿ." "ಅರ್ಥವಾಯಿತು" "ವಜಾಗೊಳಿಸಿ" diff --git a/packages/SystemUI/res/values-lt/strings.xml b/packages/SystemUI/res/values-lt/strings.xml index 46e50fbc3461..a95ece894c55 100644 --- a/packages/SystemUI/res/values-lt/strings.xml +++ b/packages/SystemUI/res/values-lt/strings.xml @@ -275,10 +275,10 @@ "„Bluetooth“ išjungta" "Nėra pasiekiamų susietų įrenginių" "Šviesumas" - "Automatinis kaitaliojimas" + "Automatinis pasukimas" "Automatiškai sukti ekraną" "Nustatyti kaip %s" - "Kaitaliojimas užrakintas" + "Pasukimas užrakintas" "Stačias" "Gulsčias" "Įvesties metodas" diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml index e6988d702137..cf341d9c94d4 100644 --- a/packages/SystemUI/res/values-sv/strings.xml +++ b/packages/SystemUI/res/values-sv/strings.xml @@ -352,7 +352,7 @@ "+%d" "Mindre brådskande aviseringar nedan" "Tryck igen för att öppna" - "Svep uppåt om du vill låsa upp" + "Svep uppåt för att låsa upp" "Svep från ikonen och öppna telefonen" "Svep från ikonen och öppna röstassistenten" "Svep från ikonen och öppna kameran" -- GitLab From deebfec90b9e79d0c193464bcd2418d3d5d3de73 Mon Sep 17 00:00:00 2001 From: Christopher Wiley Date: Fri, 16 Sep 2016 11:14:36 -0700 Subject: [PATCH 624/809] Notify NetworkPolicyManagerService on tethering changes (cherry-pick of d73faf07606d40d3915d22a72fa14f7ba956d459) No longer do this in ConnectivityService#tether/untether. Instead, have Tethering do it when an interface is actually tethered. Bug: 31405407 Test: Toggling hotspot now disables data saver Change-Id: I9910a2e488c30c92d45f817c8f5df0fac5510de6 --- .../com/android/server/ConnectivityService.java | 14 +------------- .../android/server/connectivity/Tethering.java | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index b7dfd1962717..c61a90b2e6f1 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -816,7 +816,7 @@ public class ConnectivityService extends IConnectivityManager.Stub mTestMode = SystemProperties.get("cm.test.mode").equals("true") && SystemProperties.get("ro.build.type").equals("eng"); - mTethering = new Tethering(mContext, mNetd, statsService); + mTethering = new Tethering(mContext, mNetd, statsService, mPolicyManager); mPermissionMonitor = new PermissionMonitor(mContext, mNetd); @@ -3036,12 +3036,6 @@ public class ConnectivityService extends IConnectivityManager.Stub ConnectivityManager.enforceTetherChangePermission(mContext); if (isTetheringSupported()) { final int status = mTethering.tether(iface); - if (status == ConnectivityManager.TETHER_ERROR_NO_ERROR) { - try { - mPolicyManager.onTetheringChanged(iface, true); - } catch (RemoteException e) { - } - } return status; } else { return ConnectivityManager.TETHER_ERROR_UNSUPPORTED; @@ -3055,12 +3049,6 @@ public class ConnectivityService extends IConnectivityManager.Stub if (isTetheringSupported()) { final int status = mTethering.untether(iface); - if (status == ConnectivityManager.TETHER_ERROR_NO_ERROR) { - try { - mPolicyManager.onTetheringChanged(iface, false); - } catch (RemoteException e) { - } - } return status; } else { return ConnectivityManager.TETHER_ERROR_UNSUPPORTED; diff --git a/services/core/java/com/android/server/connectivity/Tethering.java b/services/core/java/com/android/server/connectivity/Tethering.java index 927f8f98284f..74fdf6d75bc8 100644 --- a/services/core/java/com/android/server/connectivity/Tethering.java +++ b/services/core/java/com/android/server/connectivity/Tethering.java @@ -33,6 +33,7 @@ import android.content.res.Resources; import android.hardware.usb.UsbManager; import android.net.ConnectivityManager; import android.net.ConnectivityManager.NetworkCallback; +import android.net.INetworkPolicyManager; import android.net.INetworkStatsService; import android.net.LinkProperties; import android.net.Network; @@ -49,6 +50,7 @@ import android.os.INetworkManagementService; import android.os.Looper; import android.os.Message; import android.os.Parcel; +import android.os.RemoteException; import android.os.ResultReceiver; import android.os.SystemProperties; import android.os.UserHandle; @@ -123,6 +125,7 @@ public class Tethering extends BaseNetworkObserver implements IControlsTethering private final INetworkManagementService mNMService; private final INetworkStatsService mStatsService; + private final INetworkPolicyManager mPolicyManager; private final Looper mLooper; private static class TetherState { @@ -177,10 +180,11 @@ public class Tethering extends BaseNetworkObserver implements IControlsTethering private boolean mWifiTetherRequested; public Tethering(Context context, INetworkManagementService nmService, - INetworkStatsService statsService) { + INetworkStatsService statsService, INetworkPolicyManager policyManager) { mContext = context; mNMService = nmService; mStatsService = statsService; + mPolicyManager = policyManager; mPublicSync = new Object(); @@ -1908,6 +1912,15 @@ public class Tethering extends BaseNetworkObserver implements IControlsTethering " with error " + error); } + try { + // Notify that we're tethering (or not) this interface. + // This is how data saver for instance knows if the user explicitly + // turned on tethering (thus keeping us from being in data saver mode). + mPolicyManager.onTetheringChanged(iface, state == IControlsTethering.STATE_TETHERED); + } catch (RemoteException e) { + // Not really very much we can do here. + } + switch (state) { case IControlsTethering.STATE_UNAVAILABLE: case IControlsTethering.STATE_AVAILABLE: -- GitLab From fa6a48661576d2bd93b5e817d3629cca0a50e6c6 Mon Sep 17 00:00:00 2001 From: Christopher Wiley Date: Mon, 19 Sep 2016 08:58:06 -0700 Subject: [PATCH 625/809] Implement untetherAll as calls to stopTethering (cherry-pick of 5df6ed4a878c778971f388e3cb88e53b8db43b35) Calling untether() on an interface name leaves the system in an inconsistent state, since this is an API for use by network subsystems to start or stop the tethering of a prepared downstream network interface. The proper way to disable tethering is to call stopTethering() with an appropriate technology. untetherAll() is called in parts of the system UI to disable all tethering on system state changes (e.g. on the enabling of data saver). Bug: 31405407 Test: Enabling data saver now correctly disables tethering Change-Id: I8e5724a31e015721910a8d278e100daf697c34d7 --- .../java/com/android/server/connectivity/Tethering.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/services/core/java/com/android/server/connectivity/Tethering.java b/services/core/java/com/android/server/connectivity/Tethering.java index 74fdf6d75bc8..50faf3b72a47 100644 --- a/services/core/java/com/android/server/connectivity/Tethering.java +++ b/services/core/java/com/android/server/connectivity/Tethering.java @@ -626,12 +626,9 @@ public class Tethering extends BaseNetworkObserver implements IControlsTethering } public void untetherAll() { - synchronized (mPublicSync) { - if (DBG) Log.d(TAG, "Untethering " + mTetherStates.keySet()); - for (int i = 0; i < mTetherStates.size(); i++) { - untether(mTetherStates.keyAt(i)); - } - } + stopTethering(ConnectivityManager.TETHERING_WIFI); + stopTethering(ConnectivityManager.TETHERING_USB); + stopTethering(ConnectivityManager.TETHERING_BLUETOOTH); } public int getLastTetherError(String iface) { -- GitLab From 27d595a5e4e65d753568c02f2a1869003ad170dc Mon Sep 17 00:00:00 2001 From: Cheryl Potter Date: Fri, 30 Sep 2016 10:57:35 -0700 Subject: [PATCH 626/809] docs: help button redirects, see go/AS-help-buttons b/31810305 Change-Id: I9574ab873df6bec23910ae19f0a3b88afc60318e --- docs/html/_redirects.yaml | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/docs/html/_redirects.yaml b/docs/html/_redirects.yaml index e71cf2b8d18d..29a74a094a6c 100644 --- a/docs/html/_redirects.yaml +++ b/docs/html/_redirects.yaml @@ -1246,6 +1246,44 @@ redirects: to: /studio/write/lint.html?utm_source=android-studio - from: /r/studio-ui/gradle-console.html to: /studio/run/index.html?utm_source=android-studio#gradle-console +- from: /r/studio-ui/app-indexing-test.html + to: /studio/write/app-link-indexing.html#appindexingtest?utm_source=android-studio +- from: /r/studio-ui/vcs.html + to: /studio/intro/index.html#version_control_basics?utm_source=android-studio +- from: /r/studio-ui/create-new-module.html + to: /studio/projects/index.html#ApplicationModules?utm_source=android-studio +- from: /r/studio-ui/build-variants.html + to: /studio/run/index.html#changing-variant?utm_source=android-studio +- from: /r/studio-ui/generate-signed-apk.html + to: /studio/publish/app-signing.html#release-mode?utm_source=android-studio +- from: /r/studio-ui/import-project-vcs.html + to: /studio/projects/create-project.html#ImportAProject?utm_source=android-studio +- from: /r/studio-ui/apk-analyzer.html + to: /studio/build/apk-analyzer.html?utm_source=android-studio +- from: /r/studio-ui/breakpoints.html + to: /studio/debug/index.html#breakPointsView?utm_source=android-studio +- from: /r/studio-ui/attach-debugger-to-process.html + to: /studio/debug/index.html?utm_source=android-studio +- from: /r/studio-ui/import-sample.html + to: /samples/index.html?utm_source=android-studio +- from: /r/studio-ui/import-module.html + to: /studio/projects/add-app-module.html#ImportAModule?utm_source=android-studio +- from: /r/studio-ui/import-project.html + to: /studio/projects/create-project.html#ImportAProject?utm_source=android-studio +- from: /r/studio-ui/create-project.html + to: /studio/projects/create-project.html?utm_source=android-studio +- from: /r/studio-ui/new-activity.html + to: /studio/projects/template.html?utm_source=android-studio +- from: /r/studio-ui/new-resource-file.html + to: /studio/write/add-resources.html?utm_source=android-studio +- from: /r/studio-ui/new-resource-dir.html + to: /studio/write/add-resources.html#add_a_resource_directory?utm_source=android-studio +- from: /r/studio-ui/configure-component.html + to: /studio/write/add-resources.html?utm_source=android-studio +- from: /r/studio-ui/ninepatch.html + to: /studio/write/draw9patch.html?utm_source=android-studio +- from: /r/studio-ui/firebase-assistant.html + to: /studio/write/firebase.html?utm_source=android-studio # Redirects from (removed) N Preview documentation - from: /preview/features/afw.html -- GitLab From e848dee93995d87feb4f5473657435bb6332c13c Mon Sep 17 00:00:00 2001 From: Jorim Jaggi Date: Wed, 28 Sep 2016 13:30:27 +0200 Subject: [PATCH 627/809] Fix NPE in overridePlayingAppAnimations It's not guaranteed that findMainWindow() is non-null, which can happen if the window was just added, so we should not crash in that case. Change-Id: I1f04876ef48bfc7636320124b7f60d6dfa0b24a2 Fixes: 31767124 (cherry picked from commit 6e5f3d2e9fc130cd4118296a50a88f3cddb21fda) --- services/core/java/com/android/server/wm/AppWindowToken.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/services/core/java/com/android/server/wm/AppWindowToken.java b/services/core/java/com/android/server/wm/AppWindowToken.java index a8a0b0efb784..b1d2edfcbdda 100644 --- a/services/core/java/com/android/server/wm/AppWindowToken.java +++ b/services/core/java/com/android/server/wm/AppWindowToken.java @@ -846,6 +846,9 @@ class AppWindowToken extends WindowToken { void overridePlayingAppAnimations(Animation a) { if (mAppAnimator.isAnimating()) { final WindowState win = findMainWindow(); + if (win == null) { + return; + } final int width = win.mContainingFrame.width(); final int height = win.mContainingFrame.height(); mAppAnimator.setAnimation(a, width, height, false, STACK_CLIP_NONE); -- GitLab From e7863c231be354202c95e77295e583df01ebb8fd Mon Sep 17 00:00:00 2001 From: Jim Miller Date: Wed, 28 Sep 2016 20:33:06 -0700 Subject: [PATCH 628/809] Reset mCurrentUserId when fingerprintd died A template fingerprint data is not loaded in fingerprintd when fingerprintd is died and restarted. FigerprintService tries to set userId after a restart of fingerprintd, but it's skipped because the service tries to set same userId already set to mCurrentUserId. To load correct template fingerprint data, reset mCurrentUserId when fingerprintd died. Bug: 31734514 Change-Id: I6b8d4b5b685765fe33ef8e654593b615240748a8 (cherry picked from commit be11bc5f0a95e00a63018aa758d86eb253bab3b2) --- .../java/com/android/server/fingerprint/FingerprintService.java | 1 + 1 file changed, 1 insertion(+) diff --git a/services/core/java/com/android/server/fingerprint/FingerprintService.java b/services/core/java/com/android/server/fingerprint/FingerprintService.java index 73c8469ca709..9e132f761087 100644 --- a/services/core/java/com/android/server/fingerprint/FingerprintService.java +++ b/services/core/java/com/android/server/fingerprint/FingerprintService.java @@ -195,6 +195,7 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe public void binderDied() { Slog.v(TAG, "fingerprintd died"); mDaemon = null; + mCurrentUserId = UserHandle.USER_CURRENT; handleError(mHalDeviceId, FingerprintManager.FINGERPRINT_ERROR_HW_UNAVAILABLE); } -- GitLab From f0968050f6ae40a35b92dda32d19c571fcc0b15c Mon Sep 17 00:00:00 2001 From: Mark Lu Date: Thu, 29 Sep 2016 18:11:38 -0700 Subject: [PATCH 629/809] Docs: Updates to backup documentation Change-Id: I9349e5f8585687b1159f13029b6c13b89dafd8c9 --- docs/html/_redirects.yaml | 10 +- docs/html/guide/_book.yaml | 7 + docs/html/guide/guide_toc.cs | 11 +- docs/html/guide/topics/data/autobackup.jd | 257 +++++ docs/html/guide/topics/data/backup.jd | 958 +----------------- .../topics/data/images/backup-framework.png | Bin 0 -> 43423 bytes docs/html/guide/topics/data/index.jd | 18 - docs/html/guide/topics/data/keyvaluebackup.jd | 884 ++++++++++++++++ docs/html/guide/topics/data/testingbackup.jd | 181 ++++ docs/html/training/_book.yaml | 12 +- docs/html/training/backup/autosyncapi.jd | 370 ------- docs/html/training/backup/backupapi.jd | 200 ---- docs/html/training/backup/index.jd | 47 - docs/html/training/training_toc.cs | 18 - 14 files changed, 1378 insertions(+), 1595 deletions(-) create mode 100644 docs/html/guide/topics/data/autobackup.jd create mode 100644 docs/html/guide/topics/data/images/backup-framework.png create mode 100644 docs/html/guide/topics/data/keyvaluebackup.jd create mode 100644 docs/html/guide/topics/data/testingbackup.jd delete mode 100644 docs/html/training/backup/autosyncapi.jd delete mode 100644 docs/html/training/backup/backupapi.jd delete mode 100644 docs/html/training/backup/index.jd diff --git a/docs/html/_redirects.yaml b/docs/html/_redirects.yaml index 8ddb98239038..10afc8eb5d3c 100644 --- a/docs/html/_redirects.yaml +++ b/docs/html/_redirects.yaml @@ -430,7 +430,13 @@ redirects: - from: /training/cloudsync/aesync.html to: /google/gcm/index.html - from: /training/cloudsync/index.html - to: /training/backup/index.html + to: /guide/topics/data/backup.html +- from: /training/backup/index.html + to: /guide/topics/data/backup.html +- from: /training/backup/autosyncapi.html + to: /guide/topics/data/autobackup.html +- from: /training/backup/backupapi.html + to: /guide/topics/data/keyvaluebackup.html - from: /training/basics/location/... to: /training/location/... - from: /training/monetization/index.html @@ -796,7 +802,7 @@ redirects: - from: /preview/features/app-linking.html to: /training/app-links/index.html - from: /preview/backup/index.html - to: /training/backup/autosyncapi.html + to: /guide/topics/data/backup/autobackup.html - from: /preview/features/power-mgmt.html to: /training/monitoring-device-state/doze-standby.html - from: /preview/dev-community diff --git a/docs/html/guide/_book.yaml b/docs/html/guide/_book.yaml index 20ee4838fab5..6889fe090511 100644 --- a/docs/html/guide/_book.yaml +++ b/docs/html/guide/_book.yaml @@ -396,6 +396,13 @@ toc: path: /guide/topics/data/data-storage.html - title: Data Backup path: /guide/topics/data/backup.html + section: + - title: Auto Backup + path: /guide/topics/data/autobackup.html + - title: Key/Value Backup + path: /guide/topics/data/keyvaluebackup.html + - title: Testing Backup and Restore + path: /guide/topics/data/testingbackup.html - title: App Install Location path: /guide/topics/data/install-location.html diff --git a/docs/html/guide/guide_toc.cs b/docs/html/guide/guide_toc.cs index 9257a76e93f2..8fe3f201fc2e 100644 --- a/docs/html/guide/guide_toc.cs +++ b/docs/html/guide/guide_toc.cs @@ -545,9 +545,16 @@

          • Storage Options
          • -
          • +
          • +
        + +
      1. App Install Location
      2. diff --git a/docs/html/guide/topics/data/autobackup.jd b/docs/html/guide/topics/data/autobackup.jd new file mode 100644 index 000000000000..3be09d712884 --- /dev/null +++ b/docs/html/guide/topics/data/autobackup.jd @@ -0,0 +1,257 @@ +page.title=Auto Backup for Apps +page.tags=backup, marshmallow, androidm +page.keywords=backup, autobackup +page.image=images/cards/card-auto-backup_2x.png + +@jd:body + +
        + +
        + +Since Android 6.0 (API 23), Android has offered the Auto Backup for Apps feature as +a way for developers to quickly add backup functionality to their apps. Auto +Backup preserves app data by uploading it to the user’s Google Drive account. +The amount of data is limited to 25MB per user of your app and there is no +charge for storing backup data. + +

        Files that are backed up

        +

        By default, Auto Backup includes files in most of the directories that are +assigned to your app by the system: +

          +
        • Shared preferences files. +
        • Files in the directory returned by {@link android.content.Context#getFilesDir()}. +
        • Files in the directory returned by {@link android.content.Context#getDatabasePath(String)}, + which also includes files created with the + {@link android.database.sqlite.SQLiteOpenHelper} class. +
        • Files in directories created with {@link android.content.Context#getDir(String,int)}. +
        • Files on external storage in the directory returned by + {@link android.content.Context#getExternalFilesDir(String)}.
        + +

        Auto Backup excludes files in directories returned by + {@link android.content.Context#getCacheDir()}, + {@link android.content.Context#getCodeCacheDir()}, or + {@link android.content.Context#getNoBackupFilesDir()}. The files saved + in these locations are only needed temporarily, or are intentionally + excluded from backup operations. + +

        You can configure your app to include and exclude particular files. +For more information, see the Include and exclude files +section. + +

        Backup location

        +

        Backup data is stored in a private folder in the user's Google Drive account, +limited to 25MB per app. The saved data does not count towards the user's +personal Google Drive quota. Only the most recent backup is stored. When a +backup is made, the previous backup (if one exists) is deleted. + +

        Users can see a list of apps that have been backed up in the Google Drive app under +Settings -> Auto Backup for apps -> Manage backup. The +backup data cannot be read by the user or other applications on the device. + +

        Backups from each device-setup-lifetime are stored in separate datasets +as shown in the following examples: +

          +
        • If the user owns two devices, then a backup dataset exists for each device. +
        • If the user factory resets a device and then sets up the device with the + same account, the backup is stored in a new dataset. Obsolete datasets are + automatically deleted after a period of inactivity.
        + +

        Caution: Once the amount of data reaches +25MB, the app is banned from sending data to the +cloud, even if the amount of data later falls under the 25MB threshold. The ban +affects only the offending device (not other devices that the user owns) and +lasts for the entire device-setup-lifetime. For example, if the user removes and +reinstalls the application, the ban is still in effect. The ban is lifted when +the user performs factory reset on the device. + +

        Backup schedule

        +

        Backups occur automatically when all of the following conditions are met: +

          +
        • The user has enabled backup on the device in Settings > + Backup & Reset. +
        • At least 24 hours have elapsed since the last backup. +
        • The device is idle and charging. +
        • The device is connected to a Wi-Fi network. If the device is never connected + to a wifi network, then Auto Backup never occurs.
        + +

        In practice, these conditions occur roughly every night. To conserve network +bandwidth, upload takes place only if app data has changed. + +

        During Auto Backup, the system shuts down the app to make sure it is no longer +writing to the file system. By default, the backup system ignores apps that are +running in the foreground because users would notice their apps being shut down. +You can override the default behavior by setting the +backupInForeground +attribute to true. + +

        To simplify testing, Android includes tools that let you manually initiate +a backup of your app. For more information, see +Testing Backup and Restore. + +

        Restore schedule

        +

        Data is restored whenever the app is installed, either from the Play store, +during device setup (when the system installs previously installed apps), or +from running adb install. The restore operation occurs after the APK is +installed, but before the app is available to be launched by the user. + +

        During the initial device setup wizard, the user is shown a list of available backup +datasets and is asked which one to restore the data from. Whichever backup +dataset is selected becomes the ancestral dataset for the device. The device can +restore from either its own backups or the ancestral dataset. The device +prioritize its own backup if backups from both sources are available. If the +user didn't go through the device setup wizard, then the device can restore only from +its own backups. + +

        To simplify testing, Android includes tools that let you manually initiate +a restore of your app. For more information, see +Testing Backup and Restore. + +

        Enabling and disabling backup

        +

        Apps that target Android 6.0 (API level 23) or higher automatically participate +in Auto Backup. This is because the +android:allowBackup +attribute, which enables/disables backup, defaults to true if omitted. +To avoid confusion, we recommend you explicitly set the attribute in the <application> +element of your AndroidManifest.xml. For example: + +

        <application ...
        +    android:allowBackup="true">
        +</app>
        + +

        To disable Auto Backup, add either of the following attributes to the +application element in your manifest file: + +

          +
        • set android:allowBackup to false. This completely disables data + backup. You may want to disable backups when your app can recreate its state + through some other mechanism or when your app deals with sensitive + information that should not be backed up.
        • +
        • set android:allowBackup to true and + android:fullBackupOnly to false. With these settings, + your app always participates in Key/Value Backup, even when running on devices that + support Auto Backup.
        + +

        Including and excluding files

        +

        By default, the system backs up almost all app data. For more information, +see Files that are backed up. This section shows you how to +define custom XML rules to control what gets backed up. + +

          +
        1. In AndroidManifest.xml, add the android:fullBackupContent attribute to the + <application> element. This attribute points to an XML file that contains backup + rules. For example: +
          <application ...
          +    android:fullBackupContent="@xml/my_backup_rules">
          +  </app>
        2. +
        3. Create an XML file called my_backup_rules.xml in the res/xml/ directory. Inside the file, add rules with the <include> and <exclude> elements. The following sample backs up all shared preferences except device.xml: +
          <?xml version="1.0" encoding="utf-8"?>
          +<full-backup-content>
          +    <include domain="sharedpref" path="."/>
          +    <exclude domain="sharedpref" path="device.xml"/>
          +</full-backup-content>
        4. + +

          XML Config Syntax

          +

          The XML syntax for the configuration file is shown below: + +

          <full-backup-content>
          +    <include domain=["file" | "database" | "sharedpref" | "external" | "root"]
          +    path="string" />
          +    <exclude domain=["file" | "database" | "sharedpref" | "external" | "root"]
          +    path="string" />
          +</full-backup-content>
          + +

          Inside the <full-backup-content> tag, you can define <include> and <exclude> +elements: + +

            +
          • <include> - Specifies a file or folder to backup. By default, Auto Backup +includes almost all app files. If you specify an <include> element, the system +no longer includes any files by default and backs up only the files +specified. To include multiple files, use multiple <include> elements. +

            note: Files in directories returned by getCacheDir(), getCodeCacheDir(), or +getNoBackupFilesDir() are always excluded even if you try to include them.

          • + +
          • <exclude> - Specifies a file or folder to exclude during backup. Here are +some files that are typically excluded from backup:
              +
            • Files that have device specific identifiers, either issued by a server or +generated on the device. For example, Google Cloud Messaging (GCM) needs to +generate a registration token every time a user installs your app on a new +device. If the old registration token is restored, the app may behave +unexpectedly. +
            • Account credentials or other sensitive information. Consider asking the +user to reauthenticate the first time they launch a restored app rather than +allowing for storage of such information in the backup. +
            • Files related to app debugging, such as instant run files. To exclude instant run files, add the rule <exclude +domain="file" path="instant-run"/> +
            • Large files that cause the app to exceed the 25MB backup quota.
            +
          + +

          Note: If your configuration file specifies both elements, then the +backup contains everything captured by the <include> elements minus the +resources named in the <exclude> elements. In other words, +<exclude> takes precedence. + +

          Each element must include the following two attributes: +

            +
          • domain - specifies the location of resource. Valid values for this attribute +include the following:
              +
            • root - the directory on the filesystem where all private files belonging to +this app are stored. +
            • file - directories returned by {@link android.content.Context#getFilesDir()}. +
            • database - directories returned by {@link android.content.Context#getDatabasePath(String) getDatabasePath()}. +Databases created with {@link android.database.sqlite.SQLiteOpenHelper} +are stored here. +
            • sharedpref - the directory where {@link android.content.SharedPreferences} +are stored. +
            • external the directory returned by {@link android.content.Context#getExternalFilesDir(String) getExternalFilesDir()} +

              Note: You cannot backup files outside of these locations.

            +
          • path: Specifies a file or folder to include in or exclude from backup. Note +that:
              +
            • This attribute does not support wildcard or regex syntax. +
            • You can use . to reference the current directory, however, you cannot +reference the parent directory .. for security reasons. +
            • If you specify a directory, then the rule applies to all files in the +directory and recursive sub-directories.
          + +

          Implementing BackupAgent

          +

          Apps that implement Auto Backup do not need to implement {@link android.app.backup.BackupAgent}. However, you can optionally implement a custom {@link android.app.backup.BackupAgent}. Typically, there are two reasons for doing this: +

            +
          • You want to receive notification of backup events such as, +{@link android.app.backup.BackupAgent#onRestoreFinished()} or {@link android.app.backup.BackupAgent#onQuotaExceeded(long,long)}. These callback methods are executed +even if the app is not running. +
          • You can't easily express the set of files you want to backup with XML rules. +In these very rare cases, you can implement a BackupAgent that overrides {@link android.app.backup.BackupAgent#onFullBackup(FullBackupDataOutput)} to +store what you want. To retain the system's default implementation, call the +corresponding method on the superclass with super.onFullBackup().
          + +

          Note: Your BackupAgent must +implement the abstract methods +{@link android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) onBackup()} +and {@link android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) onRestore()}. +Those methods are used for Key/Value Backup. So if +you are not using Key/Value Backup, implement those methods and leave them blank. + +

          For more information, see +Extending +BackupAgent. \ No newline at end of file diff --git a/docs/html/guide/topics/data/backup.jd b/docs/html/guide/topics/data/backup.jd index 619c79021870..a688c6e9889b 100644 --- a/docs/html/guide/topics/data/backup.jd +++ b/docs/html/guide/topics/data/backup.jd @@ -1,930 +1,34 @@ -page.title=Data Backup -@jd:body - - -

          -
          - -

          Quickview

          -
            -
          • Back up the user's data to the cloud in case the user loses it
          • -
          • If the user upgrades to a new Android-powered device, your app can restore the user's -data onto the new device
          • -
          • Easily back up SharedPreferences and private files with BackupAgentHelper
          • -
          • Requires API Level 8
          • -
          - -

          In this document

          -
            -
          1. The Basics
          2. -
          3. Declaring the Backup Agent in Your Manifest
          4. -
          5. Registering for Android Backup Service
          6. -
          7. Extending BackupAgent -
              -
            1. Required Methods
            2. -
            3. Performing backup
            4. -
            5. Performing restore
            6. -
            -
          8. -
          9. Extending BackupAgentHelper -
              -
            1. Backing up SharedPreferences
            2. -
            3. Backing up Private Files
            4. -
            -
          10. -
          11. Checking the Restore Data Version
          12. -
          13. Requesting Backup
          14. -
          15. Requesting Restore
          16. -
          17. Testing Your Backup Agent
          18. -
          - -

          Key classes

          -
            -
          1. {@link android.app.backup.BackupManager}
          2. -
          3. {@link android.app.backup.BackupAgent}
          4. -
          5. {@link android.app.backup.BackupAgentHelper}
          6. -
          - -

          See also

          -
            -
          1. {@code bmgr} tool
          2. -
          - -
          -
          - -

          Android's {@link android.app.backup backup} service allows you to copy your persistent -application data to remote "cloud" storage, in order to provide a restore point for the -application data and settings. If a user performs a factory reset or converts to a new -Android-powered device, the system automatically restores your backup data when the application -is re-installed. This way, your users don't need to reproduce their previous data or -application settings. This process is completely transparent to the user and does not affect the -functionality or user experience in your application.

          - -

          During a backup operation (which your application can request), Android's Backup Manager ({@link -android.app.backup.BackupManager}) queries your application for backup data, then hands it to -a backup transport, which then delivers the data to the cloud storage. During a -restore operation, the Backup Manager retrieves the backup data from the backup transport and -returns it to your application so your application can restore the data to the device. It's -possible for your application to request a restore, but that shouldn't be necessary—Android -automatically performs a restore operation when your application is installed and there exists -backup data associated with the user. The primary scenario in which backup data is restored is when -a user resets their device or upgrades to a new device and their previously installed -applications are re-installed.

          - -

          Note: The backup service is not designed for -synchronizing application data with other clients or saving data that you'd like to access during -the normal application lifecycle. You cannot read or write backup data on demand and cannot access -it in any way other than through the APIs provided by the Backup Manager.

          - -

          The backup transport is the client-side component of Android's backup framework, which is -customizable by -the device manufacturer and service provider. The backup transport may differ from device to device -and which backup transport is available on any given device is transparent to your application. The -Backup Manager APIs isolate your application from the actual backup transport available on a given -device—your application communicates with the Backup Manager through a fixed set of APIs, -regardless of the underlying transport.

          - -

          Data backup is not guaranteed to be available on all Android-powered -devices. However, your application is not adversely affected in the event -that a device does not provide a backup transport. If you believe that users will benefit from data -backup in your application, then you can implement it as described in this document, test it, then -publish your application without any concern about which devices actually perform backup. When your -application runs on a device that does not provide a backup transport, your application operates -normally, but will not receive callbacks from the Backup Manager to backup data.

          - -

          Although you cannot know what the current transport is, you are always assured that your -backup data cannot be read by other applications on the device. Only the Backup Manager and backup -transport have access to the data you provide during a backup operation.

          - -

          Caution: Because the cloud storage and transport service can -differ from device to device, Android makes no guarantees about the security of your data while -using backup. You should always be cautious about using backup to store sensitive data, such as -usernames and passwords.

          - - -

          The Basics

          - -

          To backup your application data, you need to implement a backup agent. Your backup -agent is called by the Backup Manager to provide the data you want to back up. It is also called -to restore your backup data when the application is re-installed. The Backup Manager handles all -your data transactions with the cloud storage (using the backup transport) and your backup agent -handles all your data transactions on the device.

          - -

          To implement a backup agent, you must:

          - -
            -
          1. Declare your backup agent in your manifest file with the {@code -android:backupAgent} attribute.
          2. -
          3. Register your application with a backup service. Google offers Android Backup Service as a backup -service for most Android-powered devices, which requires that you register your application in -order for it to work. Any other backup services available might also require you to register -in order to store your data on their servers.
          4. -
          5. Define a backup agent by either:

            -
              -
            1. Extending BackupAgent -

              The {@link android.app.backup.BackupAgent} class provides the central interface with -which your application communicates with the Backup Manager. If you extend this class -directly, you must override {@link -android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) -onBackup()} and {@link -android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) -onRestore()} to handle the backup and restore operations for your data.

              -

              Or

              -
            2. Extending BackupAgentHelper -

              The {@link android.app.backup.BackupAgentHelper} class provides a convenient -wrapper around the {@link android.app.backup.BackupAgent} class, which minimizes the amount of code -you need to write. In your {@link android.app.backup.BackupAgentHelper}, you must use one or more -"helper" objects, which automatically backup and restore certain types of data, so that you do not -need to implement {@link -android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) -onBackup()} and {@link -android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) -onRestore()}.

              -

              Android currently provides backup helpers that will backup and restore complete files -from {@link android.content.SharedPreferences} and internal storage.

              -
            3. -
            -
          6. -
          - - - -

          Declaring the Backup Agent in Your Manifest

          - -

          This is the easiest step, so once you've decided on the class name for your backup agent, declare -it in your manifest with the {@code -android:backupAgent} attribute in the {@code -} tag.

          - -

          For example:

          - -
          -<manifest ... >
          -    ...
          -    <application android:label="MyApplication"
          -                 android:backupAgent="MyBackupAgent">
          -        <activity ... >
          -            ...
          -        </activity>
          -    </application>
          -</manifest>
          -
          - -

          Another attribute you might want to use is {@code -android:restoreAnyVersion}. This attribute takes a boolean value to indicate whether you -want to restore the application data regardless of the current application version compared to the -version that produced the backup data. (The default value is "{@code false}".) See Checking the Restore Data Version for more information.

          - -

          Note: The backup service and the APIs you must use are -available only on devices running API Level 8 (Android 2.2) or greater, so you should also -set your {@code android:minSdkVersion} -attribute to "8".

          - - - - -

          Registering for Android Backup Service

          - -

          Google provides a backup transport with Android Backup Service for most -Android-powered devices running Android 2.2 or greater.

          - -

          In order for your application to perform backup using Android Backup Service, you must -register your application with the service to receive a Backup Service Key, then -declare the Backup Service Key in your Android manifest.

          - -

          To get your Backup Service Key, register for Android Backup Service. -When you register, you will be provided a Backup Service Key and the appropriate {@code -} XML code for your Android manifest file, which you must include as a child of the -{@code } element. For example:

          - -
          -<application android:label="MyApplication"
          -             android:backupAgent="MyBackupAgent">
          -    ...
          -    <meta-data android:name="com.google.android.backup.api_key"
          -        android:value="AEdPqrEAAAAIDaYEVgU6DJnyJdBmU7KLH3kszDXLv_4DIsEIyQ" />
          -</application>
          -
          - -

          The android:name must be "com.google.android.backup.api_key" and -the android:value must be the Backup Service Key received from the Android Backup -Service registration.

          - -

          If you have multiple applications, you must register each one, using the respective package -name.

          - -

          Note: The backup transport provided by Android Backup Service is -not guaranteed to be available -on all Android-powered devices that support backup. Some devices might support backup -using a different transport, some devices might not support backup at all, and there is no way for -your application to know what transport is used on the device. However, if you implement backup for -your application, you should always include a Backup Service Key for Android Backup Service so -your application can perform backup when the device uses the Android Backup Service transport. If -the device does not use Android Backup Service, then the {@code } element with the -Backup Service Key is ignored.

          - - - - -

          Extending BackupAgent

          - -

          Most applications shouldn't need to extend the {@link android.app.backup.BackupAgent} class -directly, but should instead extend BackupAgentHelper to take -advantage of the built-in helper classes that automatically backup and restore your files. However, -you might want to extend {@link android.app.backup.BackupAgent} directly if you need to:

          -
            -
          • Version your data format. For instance, if you anticipate the need to revise the -format in which you write your application data, you can build a backup agent to cross-check your -application version during a restore operation and perform any necessary compatibility work if the -version on the device is different than that of the backup data. For more information, see Checking the Restore Data Version.
          • -
          • Instead of backing up an entire file, you can specify the portions of data the should be -backed up and how each portion is then restored to the device. (This can also help you manage -different versions, because you read and write your data as unique entities, rather than -complete files.)
          • -
          • Back up data in a database. If you have an SQLite database that you want to restore when -the user re-installs your application, you need to build a custom {@link -android.app.backup.BackupAgent} that reads the appropriate data during a backup operation, then -create your table and insert the data during a restore operation.
          • -
          - -

          If you don't need to perform any of the tasks above and want to back up complete files from -{@link android.content.SharedPreferences} or internal storage, you -should skip to Extending BackupAgentHelper.

          - - - -

          Required Methods

          - -

          When you create a backup agent by extending {@link android.app.backup.BackupAgent}, you -must implement the following callback methods:

          - -
          -
          {@link -android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) -onBackup()}
          -
          The Backup Manager calls this method after you request a -backup. In this method, you read your application data from the device and pass the data you -want to back up to the Backup Manager, as described below in Performing -backup.
          - -
          {@link -android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) -onRestore()}
          -
          The Backup Manager calls this method during a restore operation (you can request a restore, but the system automatically performs restore when -the user re-installs your application). When it calls this method, the Backup Manager delivers your -backup data, which you then restore to the device, as described below in Performing restore.
          -
          - - - -

          Performing backup

          - - -

          When it's time to back up your application data, the Backup Manager calls your {@link -android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) -onBackup()} method. This is where you must provide your application data to the Backup Manager so -it can be saved to cloud storage.

          - -

          Only the Backup Manager can call your backup agent's {@link -android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) -onBackup()} method. Each time that your application data changes and you want to perform a backup, -you must request a backup operation by calling {@link -android.app.backup.BackupManager#dataChanged()} (see Requesting -Backup for more information). A backup request does not result in an immediate call to your -{@link -android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) -onBackup()} method. Instead, the Backup Manager waits for an appropriate time, then performs -backup for all applications that have requested a backup since the last backup was performed.

          - -

          Tip: While developing your application, you can initiate an -immediate backup operation from the Backup Manager with the {@code bmgr} tool.

          - -

          When the Backup Manager calls your {@link -android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) -onBackup()} method, it passes three parameters:

          - -
          -
          {@code oldState}
          -
          An open, read-only {@link android.os.ParcelFileDescriptor} pointing to the last backup -state provided by your application. This is not the backup data from cloud storage, but a -local representation of the data that was backed up the last time {@link -android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) -onBackup()} was called (as defined by {@code newState}, below, or from {@link -android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) -onRestore()}—more about this in the next section). Because {@link -android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) -onBackup()} does not allow you to read existing backup data in -the cloud storage, you can use this local representation to determine whether your data has changed -since the last backup.
          -
          {@code data}
          -
          A {@link android.app.backup.BackupDataOutput} object, which you use to deliver your backup -data to the Backup Manager.
          -
          {@code newState}
          -
          An open, read/write {@link android.os.ParcelFileDescriptor} pointing to a file in which -you must write a representation of the data that you delivered to {@code data} (a representation -can be as simple as the last-modified timestamp for your file). This object is -returned as {@code oldState} the next time the Backup Manager calls your {@link -android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) -onBackup()} method. If you do not write your backup data to {@code newState}, then {@code oldState} -will point to an empty file next time Backup Manager calls {@link -android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) -onBackup()}.
          -
          - -

          Using these parameters, you should implement your {@link -android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) -onBackup()} method to do the following:

          - -
            -
          1. Check whether your data has changed since the last backup by comparing {@code oldState} to -your current data. How you read data in {@code oldState} depends on how you originally wrote it to -{@code newState} (see step 3). The easiest way to record the state of a file is with its -last-modified timestamp. For example, here's how you can read and compare a timestamp from {@code -oldState}: -
            -// Get the oldState input stream
            -FileInputStream instream = new FileInputStream(oldState.getFileDescriptor());
            -DataInputStream in = new DataInputStream(instream);
            -
            -try {
            -    // Get the last modified timestamp from the state file and data file
            -    long stateModified = in.readLong();
            -    long fileModified = mDataFile.lastModified();
            -
            -    if (stateModified != fileModified) {
            -        // The file has been modified, so do a backup
            -        // Or the time on the device changed, so be safe and do a backup
            -    } else {
            -        // Don't back up because the file hasn't changed
            -        return;
            -    }
            -} catch (IOException e) {
            -    // Unable to read state file... be safe and do a backup
            -}
            -
            -

            If nothing has changed and you don't need to back up, skip to step 3.

            -
          2. -
          3. If your data has changed, compared to {@code oldState}, write the current data to -{@code data} to back it up to the cloud storage. -

            You must write each chunk of data as an "entity" in the {@link -android.app.backup.BackupDataOutput}. An entity is a flattened binary data -record that is identified by a unique key string. Thus, the data set that you back up is -conceptually a set of key-value pairs.

            -

            To add an entity to your backup data set, you must:

            -
              -
            1. Call {@link android.app.backup.BackupDataOutput#writeEntityHeader(String,int) -writeEntityHeader()}, passing a unique string key for the data you're about to write and the data -size.
            2. -
            3. Call {@link android.app.backup.BackupDataOutput#writeEntityData(byte[],int) -writeEntityData()}, passing a byte buffer that contains your data and the number of bytes to write -from the buffer (which should match the size passed to {@link -android.app.backup.BackupDataOutput#writeEntityHeader(String,int) writeEntityHeader()}).
            4. -
            -

            For example, the following code flattens some data into a byte stream and writes it into a -single entity:

            -
            -// Create buffer stream and data output stream for our data
            -ByteArrayOutputStream bufStream = new ByteArrayOutputStream();
            -DataOutputStream outWriter = new DataOutputStream(bufStream);
            -// Write structured data
            -outWriter.writeUTF(mPlayerName);
            -outWriter.writeInt(mPlayerScore);
            -// Send the data to the Backup Manager via the BackupDataOutput
            -byte[] buffer = bufStream.toByteArray();
            -int len = buffer.length;
            -data.writeEntityHeader(TOPSCORE_BACKUP_KEY, len);
            -data.writeEntityData(buffer, len);
            -
            -

            Perform this for each piece of data that you want to back up. How you divide your data into -entities is up to you (and you might use just one entity).

            -
          4. -
          5. Whether or not you perform a backup (in step 2), write a representation of the current data to -the {@code newState} {@link android.os.ParcelFileDescriptor}. The Backup Manager retains this object -locally as a representation of the data that is currently backed up. It passes this back to you as -{@code oldState} the next time it calls {@link -android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) -onBackup()} so you can determine whether another backup is necessary (as handled in step 1). If you -do not write the current data state to this file, then -{@code oldState} will be empty during the next callback. -

            The following example saves a representation of the current data into {@code newState} using -the file's last-modified timestamp:

            -
            -FileOutputStream outstream = new FileOutputStream(newState.getFileDescriptor());
            -DataOutputStream out = new DataOutputStream(outstream);
            -
            -long modified = mDataFile.lastModified();
            -out.writeLong(modified);
            -
            -
          6. -
          - -

          Caution: If your application data is saved to a file, make sure -that you use synchronized statements while accessing the file so that your backup agent does not -read the file while an Activity in your application is also writing the file.

          - - - - -

          Performing restore

          - -

          When it's time to restore your application data, the Backup Manager calls your backup -agent's {@link android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) -onRestore()} method. When it calls this method, the Backup Manager delivers your backup data so -you can restore it onto the device.

          - -

          Only the Backup Manager can call {@link -android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) -onRestore()}, which happens automatically when the system installs your application and -finds existing backup data. However, you can request a restore operation for -your application by calling {@link -android.app.backup.BackupManager#requestRestore(RestoreObserver) requestRestore()} (see Requesting restore for more information).

          - -

          Note: While developing your application, you can also request a -restore operation with the {@code bmgr} -tool.

          - -

          When the Backup Manager calls your {@link -android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) -onRestore()} method, it passes three parameters:

          - -
          -
          {@code data}
          -
          A {@link android.app.backup.BackupDataInput}, which allows you to read your backup -data.
          -
          {@code appVersionCode}
          -
          An integer representing the value of your application's {@code android:versionCode} -manifest attribute, as it was when this data was backed up. You can use this to cross-check the -current application version and determine if the data format is compatible. For more -information about using this to handle different versions of restore data, see the section -below about Checking the Restore Data Version.
          -
          {@code newState}
          -
          An open, read/write {@link android.os.ParcelFileDescriptor} pointing to a file in which -you must write the final backup state that was provided with {@code data}. This object is -returned as {@code oldState} the next time {@link -android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) -onBackup()} is called. Recall that you must also write the same {@code newState} object in the -{@link -android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) -onBackup()} callback—also doing it here ensures that the {@code oldState} object given to -{@link -android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) -onBackup()} is valid even the first time {@link -android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) -onBackup()} is called after the device is restored.
          -
          - -

          In your implementation of {@link -android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) -onRestore()}, you should call {@link android.app.backup.BackupDataInput#readNextHeader()} on the -{@code data} to iterate -through all entities in the data set. For each entity found, do the following:

          - -
            -
          1. Get the entity key with {@link android.app.backup.BackupDataInput#getKey()}.
          2. -
          3. Compare the entity key to a list of known key values that you should have declared as static -final strings inside your {@link android.app.backup.BackupAgent} class. When the key matches one of -your known key strings, enter into a statement to extract the entity data and save it to the device: -
              -
            1. Get the entity data size with {@link -android.app.backup.BackupDataInput#getDataSize()} and create a byte array of that size.
            2. -
            3. Call {@link android.app.backup.BackupDataInput#readEntityData(byte[],int,int) -readEntityData()} and pass it the byte array, which is where the data will go, and specify the -start offset and the size to read.
            4. -
            5. Your byte array is now full and you can read the data and write it to the device -however you like.
            6. -
            -
          4. -
          5. After you read and write your data back to the device, write the state of your data to the -{@code newState} parameter the same as you do during {@link -android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) -onBackup()}. -
          +page.title=Backing up App Data to the Cloud +page.tags=cloud,sync,backup -

          For example, here's how you can restore the data backed up by the example in the previous -section:

          - -
          -@Override
          -public void onRestore(BackupDataInput data, int appVersionCode,
          -                      ParcelFileDescriptor newState) throws IOException {
          -    // There should be only one entity, but the safest
          -    // way to consume it is using a while loop
          -    while (data.readNextHeader()) {
          -        String key = data.getKey();
          -        int dataSize = data.getDataSize();
          -
          -        // If the key is ours (for saving top score). Note this key was used when
          -        // we wrote the backup entity header
          -        if (TOPSCORE_BACKUP_KEY.equals(key)) {
          -            // Create an input stream for the BackupDataInput
          -            byte[] dataBuf = new byte[dataSize];
          -            data.readEntityData(dataBuf, 0, dataSize);
          -            ByteArrayInputStream baStream = new ByteArrayInputStream(dataBuf);
          -            DataInputStream in = new DataInputStream(baStream);
          -
          -            // Read the player name and score from the backup data
          -            mPlayerName = in.readUTF();
          -            mPlayerScore = in.readInt();
          -
          -            // Record the score on the device (to a file or something)
          -            recordScore(mPlayerName, mPlayerScore);
          -        } else {
          -            // We don't know this entity key. Skip it. (Shouldn't happen.)
          -            data.skipEntityData();
          -        }
          -    }
          -
          -    // Finally, write to the state blob (newState) that describes the restored data
          -    FileOutputStream outstream = new FileOutputStream(newState.getFileDescriptor());
          -    DataOutputStream out = new DataOutputStream(outstream);
          -    out.writeUTF(mPlayerName);
          -    out.writeInt(mPlayerScore);
          -}
          -
          - -

          In this example, the {@code appVersionCode} parameter passed to {@link -android.app.backup.BackupAgent#onRestore onRestore()} is not used. However, you might want to use -it if you've chosen to perform backup when the user's version of the application has actually moved -backward (for example, the user went from version 1.5 of your app to 1.0). For more information, see -the section about Checking the Restore Data Version.

          - -
          -

          For an example implementation of {@link android.app.backup.BackupAgent}, see the {@code -ExampleAgent} class in the Backup and Restore sample -application.

          -
          - - - - - - -

          Extending BackupAgentHelper

          - -

          You should build your backup agent using {@link android.app.backup.BackupAgentHelper} if you want -to back up complete files (from either {@link android.content.SharedPreferences} or internal storage). -Building your backup agent with {@link android.app.backup.BackupAgentHelper} requires far less -code than extending {@link android.app.backup.BackupAgent}, because you don't have to implement -{@link -android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) -onBackup()} and {@link -android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) -onRestore()}.

          - -

          Your implementation of {@link android.app.backup.BackupAgentHelper} must -use one or more backup helpers. A backup helper is a specialized -component that {@link android.app.backup.BackupAgentHelper} summons to perform backup and -restore operations for a particular type of data. The Android framework currently provides two -different helpers:

          -
            -
          • {@link android.app.backup.SharedPreferencesBackupHelper} to backup {@link -android.content.SharedPreferences} files.
          • -
          • {@link android.app.backup.FileBackupHelper} to backup files from internal storage.
          • -
          - -

          You can include multiple helpers in your {@link android.app.backup.BackupAgentHelper}, but only -one helper is needed for each data type. That is, if you have multiple {@link -android.content.SharedPreferences} files, then you need only one {@link -android.app.backup.SharedPreferencesBackupHelper}.

          - -

          For each helper you want to add to your {@link android.app.backup.BackupAgentHelper}, you must do -the following during your {@link android.app.backup.BackupAgent#onCreate()} method:

          -
            -
          1. Instantiate in instance of the desired helper class. In the class constructor, you must -specify the appropriate file(s) you want to backup.
          2. -
          3. Call {@link android.app.backup.BackupAgentHelper#addHelper(String,BackupHelper) addHelper()} -to add the helper to your {@link android.app.backup.BackupAgentHelper}.
          4. -
          - -

          The following sections describe how to create a backup agent using each of the available -helpers.

          - - - -

          Backing up SharedPreferences

          - -

          When you instantiate a {@link android.app.backup.SharedPreferencesBackupHelper}, you must -include the name of one or more {@link android.content.SharedPreferences} files.

          - -

          For example, to back up a {@link android.content.SharedPreferences} file named -"user_preferences", a complete backup agent using {@link android.app.backup.BackupAgentHelper} looks -like this:

          - -
          -public class MyPrefsBackupAgent extends BackupAgentHelper {
          -    // The name of the SharedPreferences file
          -    static final String PREFS = "user_preferences";
          -
          -    // A key to uniquely identify the set of backup data
          -    static final String PREFS_BACKUP_KEY = "prefs";
          -
          -    // Allocate a helper and add it to the backup agent
          -    @Override
          -    public void onCreate() {
          -        SharedPreferencesBackupHelper helper =
          -                new SharedPreferencesBackupHelper(this, PREFS);
          -        addHelper(PREFS_BACKUP_KEY, helper);
          -    }
          -}
          -
          - -

          That's it! That's your entire backup agent. The {@link -android.app.backup.SharedPreferencesBackupHelper} includes all the code -needed to backup and restore a {@link android.content.SharedPreferences} file.

          - -

          When the Backup Manager calls {@link -android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) -onBackup()} and {@link -android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) -onRestore()}, {@link android.app.backup.BackupAgentHelper} calls your backup helpers to perform -backup and restore for your specified files.

          - -

          Note: {@link android.content.SharedPreferences} are threadsafe, so -you can safely read and write the shared preferences file from your backup agent and -other activities.

          - - - -

          Backing up other files

          - -

          When you instantiate a {@link android.app.backup.FileBackupHelper}, you must include the name of -one or more files that are saved to your application's internal storage -(as specified by {@link android.content.ContextWrapper#getFilesDir()}, which is the same -location where {@link android.content.Context#openFileOutput(String,int) openFileOutput()} writes -files).

          - -

          For example, to backup two files named "scores" and "stats," a backup agent using {@link -android.app.backup.BackupAgentHelper} looks like this:

          - -
          -public class MyFileBackupAgent extends BackupAgentHelper {
          -    // The name of the file
          -    static final String TOP_SCORES = "scores";
          -    static final String PLAYER_STATS = "stats";
          -
          -    // A key to uniquely identify the set of backup data
          -    static final String FILES_BACKUP_KEY = "myfiles";
          -
          -    // Allocate a helper and add it to the backup agent
          -    @Override
          -    public void onCreate() {
          -        FileBackupHelper helper = new FileBackupHelper(this,
          -                TOP_SCORES, PLAYER_STATS);
          -        addHelper(FILES_BACKUP_KEY, helper);
          -    }
          -}
          -
          - -

          The {@link android.app.backup.FileBackupHelper} includes all the code necessary to backup and -restore files that are saved to your application's internal storage..

          - -

          However, reading and writing to files on internal storage is not threadsafe. To -ensure that your backup agent does not read or write your files at the same time as your activities, -you must use synchronized statements each time you perform a read or write. For example, -in any Activity where you read and write the file, you need an object to use as the intrinsic -lock for the synchronized statements:

          - -
          -// Object for intrinsic lock
          -static final Object sDataLock = new Object();
          -
          - -

          Then create a synchronized statement with this lock each time you read or write the files. For -example, here's a synchronized statement for writing the latest score in a game to a file:

          - -
          -try {
          -    synchronized (MyActivity.sDataLock) {
          -        File dataFile = new File({@link android.content.Context#getFilesDir()}, TOP_SCORES);
          -        RandomAccessFile raFile = new RandomAccessFile(dataFile, "rw");
          -        raFile.writeInt(score);
          -    }
          -} catch (IOException e) {
          -    Log.e(TAG, "Unable to write to file");
          -}
          -
          - -

          You should synchronize your read statements with the same lock.

          - -

          Then, in your {@link android.app.backup.BackupAgentHelper}, you must override {@link -android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) -onBackup()} and {@link -android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) -onRestore()} to synchronize the backup and restore operations with the same -intrinsic lock. For example, the {@code MyFileBackupAgent} example from above needs the following -methods:

          - -
          -@Override
          -public void onBackup(ParcelFileDescriptor oldState, BackupDataOutput data,
          -          ParcelFileDescriptor newState) throws IOException {
          -    // Hold the lock while the FileBackupHelper performs backup
          -    synchronized (MyActivity.sDataLock) {
          -        super.onBackup(oldState, data, newState);
          -    }
          -}
          -
          -@Override
          -public void onRestore(BackupDataInput data, int appVersionCode,
          -        ParcelFileDescriptor newState) throws IOException {
          -    // Hold the lock while the FileBackupHelper restores the file
          -    synchronized (MyActivity.sDataLock) {
          -        super.onRestore(data, appVersionCode, newState);
          -    }
          -}
          -
          - -

          That's it. All you need to do is add your {@link android.app.backup.FileBackupHelper} in the -{@link android.app.backup.BackupAgent#onCreate()} method and override {@link -android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) -onBackup()} and {@link -android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) -onRestore()} to synchronize read and write operations.

          - -
          -

          For an example implementation of {@link -android.app.backup.BackupAgentHelper} with {@link android.app.backup.FileBackupHelper}, see the -{@code FileHelperExampleAgent} class in the Backup and Restore sample -application.

          -
          - - - - - - -

          Checking the Restore Data Version

          - -

          When the Backup Manager saves your data to cloud storage, it automatically includes the version -of your application, as defined by your manifest file's {@code android:versionCode} -attribute. Before the Backup Manager calls your backup agent to restore your data, it -looks at the {@code -android:versionCode} of the installed application and compares it to the value -recorded in the restore data set. If the version recorded in the restore data set is -newer than the application version on the device, then the user has downgraded their -application. In this case, the Backup Manager will abort the restore operation for your application -and not call your {@link -android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) onRestore()} -method, because the restore set is considered meaningless to an older version.

          - -

          You can override this behavior with the {@code -android:restoreAnyVersion} attribute. This attribute is either "{@code true}" or "{@code -false}" to indicate whether you want to restore the application regardless of the restore set -version. The default value is "{@code false}". If you define this to be "{@code true}" then the -Backup Manager will ignore the {@code android:versionCode} -and call your {@link -android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) onRestore()} -method in all cases. In doing so, you can manually check for the version difference in your {@link -android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) onRestore()} -method and take any steps necessary to make the data compatible if the versions conflict.

          - -

          To help you handle different versions during a restore operation, the {@link -android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) onRestore()} -method passes you the version code included with the restore data set as the {@code appVersionCode} -parameter. You can then query the current application's version code with the {@link -android.content.pm.PackageInfo#versionCode PackageInfo.versionCode} field. For example:

          - -
          -PackageInfo info;
          -try {
          -    String name = {@link android.content.ContextWrapper#getPackageName() getPackageName}();
          -    info = {@link android.content.ContextWrapper#getPackageManager
          -getPackageManager}().{@link android.content.pm.PackageManager#getPackageInfo(String,int)
          -getPackageInfo}(name,0);
          -} catch (NameNotFoundException nnfe) {
          -    info = null;
          -}
          -
          -int version;
          -if (info != null) {
          -    version = info.versionCode;
          -}
          -
          - -

          Then simply compare the {@code version} acquired from {@link android.content.pm.PackageInfo} -to the {@code appVersionCode} passed into {@link -android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) onRestore()}. -

          - -

          Caution: Be certain you understand the consequences of setting -{@code -android:restoreAnyVersion} to "{@code true}" for your application. If each version of your -application that supports backup does not properly account for variations in your data format during -{@link -android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) onRestore()}, -then the data on the device could be saved in a format incompatible with the version currently -installed on the device.

          - - - -

          Requesting Backup

          - -

          You can request a backup operation at any time by calling {@link -android.app.backup.BackupManager#dataChanged()}. This method notifies the Backup Manager that you'd -like to backup your data using your backup agent. The Backup Manager then calls your backup -agent's {@link -android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) -onBackup()} method at an opportune time in the future. Typically, you should -request a backup each time your data changes (such as when the user changes an application -preference that you'd like to back up). If you call {@link -android.app.backup.BackupManager#dataChanged()} several times consecutively, before the Backup -Manager requests a backup from your agent, your agent still receives just one call to {@link -android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) -onBackup()}.

          - -

          Note: While developing your application, you can request a -backup and initiate an immediate backup operation with the {@code bmgr} -tool.

          - - -

          Requesting Restore

          - -

          During the normal life of your application, you shouldn't need to request a restore operation. -They system automatically checks for backup data and performs a restore when your application is -installed. However, you can manually request a restore operation by calling {@link -android.app.backup.BackupManager#requestRestore(RestoreObserver) requestRestore()}, if necessary. In -which case, the Backup Manager calls your {@link -android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) onRestore()} -implementation, passing the data from the current set of backup data.

          - -

          Note: While developing your application, you can request a -restore operation with the {@code bmgr} -tool.

          - - -

          Testing Your Backup Agent

          - -

          Once you've implemented your backup agent, you can test the backup and restore functionality -with the following procedure, using {@code bmgr}.

          - -
            -
          1. Install your application on a suitable Android system image -
              -
            • If using the emulator, create and use an AVD with Android 2.2 (API Level 8).
            • -
            • If using a device, the device must be running Android 2.2 or greater and have Google -Play built in.
            • -
            -
          2. -
          3. Ensure that backup is enabled -
              -
            • If using the emulator, you can enable backup with the following command from your SDK -{@code tools/} path: -
              adb shell bmgr enable true
              -
            • -
            • If using a device, open the system Settings, select - Backup & reset, then enable - Back up my data and Automatic restore.
            • -
            -
          4. -
          5. Open your application and initialize some data -

            If you've properly implemented backup in your application, then it should request a -backup each time the data changes. For example, each time the user changes some data, your app -should call {@link android.app.backup.BackupManager#dataChanged()}, which adds a backup request to -the Backup Manager queue. For testing purposes, you can also make a request with the following -{@code bmgr} command:

            -
            adb shell bmgr backup your.package.name
            -
          6. -
          7. Initiate a backup operation: -
            adb shell bmgr run
            -

            This forces the Backup Manager to perform all backup requests that are in its -queue.

            -
          8. Uninstall your application: -
            adb uninstall your.package.name
            -
          9. -
          10. Re-install your application.
          11. -
          - -

          If your backup agent is successful, all the data you initialized in step 4 is restored.

          +startpage=true +@jd:body +

          Users often invest significant time and effort creating data and setting +preferences within apps. Preserving that data for users if they replace a broken +device or upgrade to a new one is an important part of ensuring a great user +experience. This section covers techniques for backing up data to the cloud so +that users can restore their data. + +

          Android provides two ways for apps to backup their data to the cloud: +Auto Backup for Apps and +Key/Value Backup. +Auto Backup, which is available starting API 23, preserves app data by uploading +it to the user’s Google Drive account. The Key/Value Backup feature (formerly +known as the Backup API and the Android Backup Service) preserves app data by +uploading it to the Android Backup Service. + +

          Generally, we recommend Auto Backup because it requires no work to implement. +Apps that target Android 6.0 (API level 23) or higher are automatically enabled +for Auto Backup. The Auto Backup feature does have some limitations in terms of +what data it can backup and it's availability on Android 6.0 and higher devices. +Consider using the Key/Value Backup feature if you have more specific needs for +backing up your app data. For more information, see Comparison of Key/Value and Auto Backup

          + +

          Note: These data backup features are not designed for synchronizing app data with other clients or +saving data that you'd like to access during the normal application lifecycle. +You cannot read or write backup data on demand. For synchronizing app data, see +Transferring +Data Using Sync Adapters or Google Drive Android +API. \ No newline at end of file diff --git a/docs/html/guide/topics/data/images/backup-framework.png b/docs/html/guide/topics/data/images/backup-framework.png new file mode 100644 index 0000000000000000000000000000000000000000..2ba2e612c9bd34a5412141818a3817d38434b35c GIT binary patch literal 43423 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 literal 0 HcmV?d00001 diff --git a/docs/html/guide/topics/data/index.jd b/docs/html/guide/topics/data/index.jd index 3872825f1619..2365f18aaeb8 100644 --- a/docs/html/guide/topics/data/index.jd +++ b/docs/html/guide/topics/data/index.jd @@ -5,21 +5,3 @@ page.landing.image= @jd:body -

          diff --git a/docs/html/guide/topics/data/keyvaluebackup.jd b/docs/html/guide/topics/data/keyvaluebackup.jd new file mode 100644 index 000000000000..c7c5e2fd0ce1 --- /dev/null +++ b/docs/html/guide/topics/data/keyvaluebackup.jd @@ -0,0 +1,884 @@ +page.title=Key/Value Backup +page.tags=backup, marshmallow, androidm +page.keywords=backup, kvbackup + +@jd:body + + + + +

          Since Android 2.2 (API 8), Android has offered the Key/Value Backup +feature as a way for developers to backup app data to the cloud. The Key/Value +Backup feature (formerly known as the Backup API and the Android Backup Service) +preserves app data by uploading it to +Android Backup Service. +The amount of data is limited to 5MB per user of your app and there is +no charge for storing backup data. + +

          Note: If your app implements Key/Value Backup +and targets API 23 or higher, you should set +android:fullBackupOnly. +This attribute indicates whether or not to use Auto Backup on devices where it is available. + +

          Comparison to Auto Backup

          +

          Like Auto Backup, Key/Value Backups are restored automatically whenever the app +is installed. The following table describes some of the key differences between Key/Value Backup and Auto Backup: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          Key/Value BackupAuto Backup
          Available in API 8, Android 2.2Available in API 23, Android 6.0
          Apps must implement a {@link android.app.backup.BackupAgent}. The backup agent defines what data to backup and how to +restore data.By default, Auto Backup includes almost all of the app's files. You can +use XML to include and exclude files. Under the hood, Auto Backup relies on a +backup agent that is built into the framework.
          Apps must issue a request when there is data +that is ready to be backed up. Requests +from multiple apps are batched and executed every few hours.Backups happen automatically roughly once a day.
          Backup data can be transmitted via wifi or cellular data.Backup data is tranmitted only via wifi. If the device is never connected to a +wifi network, then Auto Backup never occurs.
          Apps are not shut down during backup.The system shuts down the app during backup.
          Backup data is stored in Android Backup Service limited to 5MB per app.Backup data is stored in the user's Google Drive limited to 25MB per app.
          Related API methods are not filed based:
            +
          • {@link android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor, BackupDataOutput, ParcelFileDescriptor) onBackup()} +
          • {@link android.app.backup.BackupAgent#onRestore(BackupDataInput, int, ParcelFileDescriptor) onRestore()}
          Related API methods are filed based:
            +
          • {@link android.app.backup.BackupAgent#onFullBackup(FullBackupDataOutput) onFullBackup()} +
          • {@link android.app.backup.BackupAgent#onRestoreFile(ParcelFileDescriptor,long,File,int,long,long) onRestoreFile()}
          + +

          Implementing Key/Value Backup

          +

          To backup your application data, you need to implement a backup agent. Your backup +agent is called by the Backup Manager both during backup and restore.

          + +

          To implement a backup agent, you must:

          + +
            +
          1. Declare your backup agent in your manifest file with the {@code +android:backupAgent} attribute.
          2. +
          3. Register your application with Android + Backup Service
          4. +
          5. Define a backup agent by either:

            +
              +
            1. Extending BackupAgent +

              The {@link android.app.backup.BackupAgent} class provides the central interface with +which your application communicates with the Backup Manager. If you extend this class +directly, you must override {@link +android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) +onBackup()} and {@link +android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) +onRestore()} to handle the backup and restore operations for your data.

              +

              Or

              +
            2. Extending BackupAgentHelper +

              The {@link android.app.backup.BackupAgentHelper} class provides a convenient +wrapper around the {@link android.app.backup.BackupAgent} class, which minimizes the amount of code +you need to write. In your {@link android.app.backup.BackupAgentHelper}, you must use one or more +"helper" objects, which automatically backup and restore certain types of data, so that you do not +need to implement {@link +android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) +onBackup()} and {@link +android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) +onRestore()}.

              +

              Android currently provides backup helpers that will backup and restore complete files +from {@link android.content.SharedPreferences} and internal storage.

              +
            3. +
            +
          6. +
          + +

          Declaring the backup agent in your manifest

          + +

          This is the easiest step, so once you've decided on the class name for your backup agent, declare +it in your manifest with the {@code +android:backupAgent} attribute in the {@code +} tag.

          + +

          For example:

          + +
          +<manifest ... >
          +    ...
          +    <application android:label="MyApplication"
          +                 android:backupAgent="MyBackupAgent">
          +        <activity ... >
          +            ...
          +        </activity>
          +    </application>
          +</manifest>
          +
          + +

          Another attribute you might want to use is {@code +android:restoreAnyVersion}. This attribute takes a boolean value to indicate whether you +want to restore the application data regardless of the current application version compared to the +version that produced the backup data. (The default value is "{@code false}".) See Checking the Restore Data Version for more information.

          + +

          Note: The backup service and the APIs you must use are +available only on devices running API Level 8 (Android 2.2) or greater, so you should also +set your {@code android:minSdkVersion} +attribute to "8".

          + + + + +

          Registering for Android Backup Service

          + +

          Google provides a backup transport with Android Backup Service for most +Android-powered devices running Android 2.2 or greater.

          + +

          In order for your application to perform backup using Android Backup Service, you must +register your application with the service to receive a Backup Service Key, then +declare the Backup Service Key in your Android manifest.

          + +

          To get your Backup Service Key, register for Android Backup Service. +When you register, you will be provided a Backup Service Key and the appropriate {@code +} XML code for your Android manifest file, which you must include as a child of the +{@code } element. For example:

          + +
          +<application android:label="MyApplication"
          +             android:backupAgent="MyBackupAgent">
          +    ...
          +    <meta-data android:name="com.google.android.backup.api_key"
          +        android:value="AEdPqrEAAAAIDaYEVgU6DJnyJdBmU7KLH3kszDXLv_4DIsEIyQ" />
          +</application>
          +
          + +

          The android:name must be "com.google.android.backup.api_key" and +the android:value must be the Backup Service Key received from the Android Backup +Service registration.

          + +

          If you have multiple applications, you must register each one, using the respective package +name.

          + +

          Note: The backup transport provided by Android Backup Service is +not guaranteed to be available +on all Android-powered devices that support backup. Some devices might support backup +using a different transport, some devices might not support backup at all, and there is no way for +your application to know what transport is used on the device. However, if you implement backup for +your application, you should always include a Backup Service Key for Android Backup Service so +your application can perform backup when the device uses the Android Backup Service transport. If +the device does not use Android Backup Service, then the {@code } element with the +Backup Service Key is ignored.

          + + + + +

          Extending BackupAgent

          + +

          Most applications shouldn't need to extend the {@link android.app.backup.BackupAgent} class +directly, but should instead extend BackupAgentHelper to take +advantage of the built-in helper classes that automatically backup and restore your files. However, +you might want to extend {@link android.app.backup.BackupAgent} directly if you need to:

          +
            +
          • Version your data format. For instance, if you anticipate the need to revise the +format in which you write your application data, you can build a backup agent to cross-check your +application version during a restore operation and perform any necessary compatibility work if the +version on the device is different than that of the backup data. For more information, see Checking the Restore Data Version.
          • +
          • Instead of backing up an entire file, you can specify the portions of data the should be +backed up and how each portion is then restored to the device. (This can also help you manage +different versions, because you read and write your data as unique entities, rather than +complete files.)
          • +
          • Back up data in a database. If you have an SQLite database that you want to restore when +the user re-installs your application, you need to build a custom {@link +android.app.backup.BackupAgent} that reads the appropriate data during a backup operation, then +create your table and insert the data during a restore operation.
          • +
          + +

          If you don't need to perform any of the tasks above and want to back up complete files from +{@link android.content.SharedPreferences} or internal storage, you +should skip to Extending BackupAgentHelper.

          + + + +

          Required methods

          + +

          When you create a backup agent by extending {@link android.app.backup.BackupAgent}, you +must implement the following callback methods:

          + +
          +
          {@link +android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) +onBackup()}
          +
          The Backup Manager calls this method after you request a +backup. In this method, you read your application data from the device and pass the data you +want to back up to the Backup Manager, as described below in Performing +backup.
          + +
          {@link +android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) +onRestore()}
          +
          The Backup Manager calls this method during a restore operation (you can request a restore, but the system automatically performs restore when +the user re-installs your application). When it calls this method, the Backup Manager delivers your +backup data, which you then restore to the device, as described below in Performing restore.
          +
          + + + +

          Performing backup

          + + +

          When it's time to back up your application data, the Backup Manager calls your {@link +android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) +onBackup()} method. This is where you must provide your application data to the Backup Manager so +it can be saved to cloud storage.

          + +

          Only the Backup Manager can call your backup agent's {@link +android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) +onBackup()} method. Each time that your application data changes and you want to perform a backup, +you must request a backup operation by calling {@link +android.app.backup.BackupManager#dataChanged()} (see Requesting +Backup for more information). A backup request does not result in an immediate call to your +{@link +android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) +onBackup()} method. Instead, the Backup Manager waits for an appropriate time, then performs +backup for all applications that have requested a backup since the last backup was performed.

          + +

          Tip: While developing your application, you can initiate an +immediate backup operation from the Backup Manager with the {@code bmgr} tool.

          + +

          When the Backup Manager calls your {@link +android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) +onBackup()} method, it passes three parameters:

          + +
          +
          {@code oldState}
          +
          An open, read-only {@link android.os.ParcelFileDescriptor} pointing to the last backup +state provided by your application. This is not the backup data from cloud storage, but a +local representation of the data that was backed up the last time {@link +android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) +onBackup()} was called (as defined by {@code newState}, below, or from {@link +android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) +onRestore()}—more about this in the next section). Because {@link +android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) +onBackup()} does not allow you to read existing backup data in +the cloud storage, you can use this local representation to determine whether your data has changed +since the last backup.
          +
          {@code data}
          +
          A {@link android.app.backup.BackupDataOutput} object, which you use to deliver your backup +data to the Backup Manager.
          +
          {@code newState}
          +
          An open, read/write {@link android.os.ParcelFileDescriptor} pointing to a file in which +you must write a representation of the data that you delivered to {@code data} (a representation +can be as simple as the last-modified timestamp for your file). This object is +returned as {@code oldState} the next time the Backup Manager calls your {@link +android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) +onBackup()} method. If you do not write your backup data to {@code newState}, then {@code oldState} +will point to an empty file next time Backup Manager calls {@link +android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) +onBackup()}.
          +
          + +

          Using these parameters, you should implement your {@link +android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) +onBackup()} method to do the following:

          + +
            +
          1. Check whether your data has changed since the last backup by comparing {@code oldState} to +your current data. How you read data in {@code oldState} depends on how you originally wrote it to +{@code newState} (see step 3). The easiest way to record the state of a file is with its +last-modified timestamp. For example, here's how you can read and compare a timestamp from {@code +oldState}: +
            +// Get the oldState input stream
            +FileInputStream instream = new FileInputStream(oldState.getFileDescriptor());
            +DataInputStream in = new DataInputStream(instream);
            +
            +try {
            +    // Get the last modified timestamp from the state file and data file
            +    long stateModified = in.readLong();
            +    long fileModified = mDataFile.lastModified();
            +
            +    if (stateModified != fileModified) {
            +        // The file has been modified, so do a backup
            +        // Or the time on the device changed, so be safe and do a backup
            +    } else {
            +        // Don't back up because the file hasn't changed
            +        return;
            +    }
            +} catch (IOException e) {
            +    // Unable to read state file... be safe and do a backup
            +}
            +
            +

            If nothing has changed and you don't need to back up, skip to step 3.

            +
          2. +
          3. If your data has changed, compared to {@code oldState}, write the current data to +{@code data} to back it up to the cloud storage. +

            You must write each chunk of data as an "entity" in the {@link +android.app.backup.BackupDataOutput}. An entity is a flattened binary data +record that is identified by a unique key string. Thus, the data set that you back up is +conceptually a set of key-value pairs.

            +

            To add an entity to your backup data set, you must:

            +
              +
            1. Call {@link android.app.backup.BackupDataOutput#writeEntityHeader(String,int) +writeEntityHeader()}, passing a unique string key for the data you're about to write and the data +size.
            2. +
            3. Call {@link android.app.backup.BackupDataOutput#writeEntityData(byte[],int) +writeEntityData()}, passing a byte buffer that contains your data and the number of bytes to write +from the buffer (which should match the size passed to {@link +android.app.backup.BackupDataOutput#writeEntityHeader(String,int) writeEntityHeader()}).
            4. +
            +

            For example, the following code flattens some data into a byte stream and writes it into a +single entity:

            +
            +// Create buffer stream and data output stream for our data
            +ByteArrayOutputStream bufStream = new ByteArrayOutputStream();
            +DataOutputStream outWriter = new DataOutputStream(bufStream);
            +// Write structured data
            +outWriter.writeUTF(mPlayerName);
            +outWriter.writeInt(mPlayerScore);
            +// Send the data to the Backup Manager via the BackupDataOutput
            +byte[] buffer = bufStream.toByteArray();
            +int len = buffer.length;
            +data.writeEntityHeader(TOPSCORE_BACKUP_KEY, len);
            +data.writeEntityData(buffer, len);
            +
            +

            Perform this for each piece of data that you want to back up. How you divide your data into +entities is up to you (and you might use just one entity).

            +
          4. +
          5. Whether or not you perform a backup (in step 2), write a representation of the current data to +the {@code newState} {@link android.os.ParcelFileDescriptor}. The Backup Manager retains this object +locally as a representation of the data that is currently backed up. It passes this back to you as +{@code oldState} the next time it calls {@link +android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) +onBackup()} so you can determine whether another backup is necessary (as handled in step 1). If you +do not write the current data state to this file, then +{@code oldState} will be empty during the next callback. +

            The following example saves a representation of the current data into {@code newState} using +the file's last-modified timestamp:

            +
            +FileOutputStream outstream = new FileOutputStream(newState.getFileDescriptor());
            +DataOutputStream out = new DataOutputStream(outstream);
            +
            +long modified = mDataFile.lastModified();
            +out.writeLong(modified);
            +
            +
          6. +
          + +

          Caution: If your application data is saved to a file, make sure +that you use synchronized statements while accessing the file so that your backup agent does not +read the file while an Activity in your application is also writing the file.

          + + + + +

          Performing restore

          + +

          When it's time to restore your application data, the Backup Manager calls your backup +agent's {@link android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) +onRestore()} method. When it calls this method, the Backup Manager delivers your backup data so +you can restore it onto the device.

          + +

          Only the Backup Manager can call {@link +android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) +onRestore()}, which happens automatically when the system installs your application and +finds existing backup data. However, you can request a restore operation for +your application by calling {@link +android.app.backup.BackupManager#requestRestore(RestoreObserver) requestRestore()} (see Requesting restore for more information).

          + +

          Note: While developing your application, you can also request a +restore operation with the {@code bmgr} +tool.

          + +

          When the Backup Manager calls your {@link +android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) +onRestore()} method, it passes three parameters:

          + +
          +
          {@code data}
          +
          A {@link android.app.backup.BackupDataInput}, which allows you to read your backup +data.
          +
          {@code appVersionCode}
          +
          An integer representing the value of your application's {@code android:versionCode} +manifest attribute, as it was when this data was backed up. You can use this to cross-check the +current application version and determine if the data format is compatible. For more +information about using this to handle different versions of restore data, see the section +below about Checking the Restore Data Version.
          +
          {@code newState}
          +
          An open, read/write {@link android.os.ParcelFileDescriptor} pointing to a file in which +you must write the final backup state that was provided with {@code data}. This object is +returned as {@code oldState} the next time {@link +android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) +onBackup()} is called. Recall that you must also write the same {@code newState} object in the +{@link +android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) +onBackup()} callback—also doing it here ensures that the {@code oldState} object given to +{@link +android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) +onBackup()} is valid even the first time {@link +android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) +onBackup()} is called after the device is restored.
          +
          + +

          In your implementation of {@link +android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) +onRestore()}, you should call {@link android.app.backup.BackupDataInput#readNextHeader()} on the +{@code data} to iterate +through all entities in the data set. For each entity found, do the following:

          + +
            +
          1. Get the entity key with {@link android.app.backup.BackupDataInput#getKey()}.
          2. +
          3. Compare the entity key to a list of known key values that you should have declared as static +final strings inside your {@link android.app.backup.BackupAgent} class. When the key matches one of +your known key strings, enter into a statement to extract the entity data and save it to the device: +
              +
            1. Get the entity data size with {@link +android.app.backup.BackupDataInput#getDataSize()} and create a byte array of that size.
            2. +
            3. Call {@link android.app.backup.BackupDataInput#readEntityData(byte[],int,int) +readEntityData()} and pass it the byte array, which is where the data will go, and specify the +start offset and the size to read.
            4. +
            5. Your byte array is now full and you can read the data and write it to the device +however you like.
            6. +
            +
          4. +
          5. After you read and write your data back to the device, write the state of your data to the +{@code newState} parameter the same as you do during {@link +android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) +onBackup()}. +
          + +

          For example, here's how you can restore the data backed up by the example in the previous +section:

          + +
          +@Override
          +public void onRestore(BackupDataInput data, int appVersionCode,
          +                      ParcelFileDescriptor newState) throws IOException {
          +    // There should be only one entity, but the safest
          +    // way to consume it is using a while loop
          +    while (data.readNextHeader()) {
          +        String key = data.getKey();
          +        int dataSize = data.getDataSize();
          +
          +        // If the key is ours (for saving top score). Note this key was used when
          +        // we wrote the backup entity header
          +        if (TOPSCORE_BACKUP_KEY.equals(key)) {
          +            // Create an input stream for the BackupDataInput
          +            byte[] dataBuf = new byte[dataSize];
          +            data.readEntityData(dataBuf, 0, dataSize);
          +            ByteArrayInputStream baStream = new ByteArrayInputStream(dataBuf);
          +            DataInputStream in = new DataInputStream(baStream);
          +
          +            // Read the player name and score from the backup data
          +            mPlayerName = in.readUTF();
          +            mPlayerScore = in.readInt();
          +
          +            // Record the score on the device (to a file or something)
          +            recordScore(mPlayerName, mPlayerScore);
          +        } else {
          +            // We don't know this entity key. Skip it. (Shouldn't happen.)
          +            data.skipEntityData();
          +        }
          +    }
          +
          +    // Finally, write to the state blob (newState) that describes the restored data
          +    FileOutputStream outstream = new FileOutputStream(newState.getFileDescriptor());
          +    DataOutputStream out = new DataOutputStream(outstream);
          +    out.writeUTF(mPlayerName);
          +    out.writeInt(mPlayerScore);
          +}
          +
          + +

          In this example, the {@code appVersionCode} parameter passed to {@link +android.app.backup.BackupAgent#onRestore onRestore()} is not used. However, you might want to use +it if you've chosen to perform backup when the user's version of the application has actually moved +backward (for example, the user went from version 1.5 of your app to 1.0). For more information, see +the section about Checking the Restore Data Version.

          + +
          +

          For an example implementation of {@link android.app.backup.BackupAgent}, see the {@code +ExampleAgent} class in the Backup and Restore sample +application.

          +
          + + + + + + +

          Extending BackupAgentHelper

          + +

          You should build your backup agent using {@link android.app.backup.BackupAgentHelper} if you want +to back up complete files (from either {@link android.content.SharedPreferences} or internal storage). +Building your backup agent with {@link android.app.backup.BackupAgentHelper} requires far less +code than extending {@link android.app.backup.BackupAgent}, because you don't have to implement +{@link +android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) +onBackup()} and {@link +android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) +onRestore()}.

          + +

          Your implementation of {@link android.app.backup.BackupAgentHelper} must +use one or more backup helpers. A backup helper is a specialized +component that {@link android.app.backup.BackupAgentHelper} summons to perform backup and +restore operations for a particular type of data. The Android framework currently provides two +different helpers:

          +
            +
          • {@link android.app.backup.SharedPreferencesBackupHelper} to backup {@link +android.content.SharedPreferences} files.
          • +
          • {@link android.app.backup.FileBackupHelper} to backup files from internal storage.
          • +
          + +

          You can include multiple helpers in your {@link android.app.backup.BackupAgentHelper}, but only +one helper is needed for each data type. That is, if you have multiple {@link +android.content.SharedPreferences} files, then you need only one {@link +android.app.backup.SharedPreferencesBackupHelper}.

          + +

          For each helper you want to add to your {@link android.app.backup.BackupAgentHelper}, you must do +the following during your {@link android.app.backup.BackupAgent#onCreate()} method:

          +
            +
          1. Instantiate in instance of the desired helper class. In the class constructor, you must +specify the appropriate file(s) you want to backup.
          2. +
          3. Call {@link android.app.backup.BackupAgentHelper#addHelper(String,BackupHelper) addHelper()} +to add the helper to your {@link android.app.backup.BackupAgentHelper}.
          4. +
          + +

          The following sections describe how to create a backup agent using each of the available +helpers.

          + + + +

          Backing up SharedPreferences

          + +

          When you instantiate a {@link android.app.backup.SharedPreferencesBackupHelper}, you must +include the name of one or more {@link android.content.SharedPreferences} files.

          + +

          For example, to back up a {@link android.content.SharedPreferences} file named +"user_preferences", a complete backup agent using {@link android.app.backup.BackupAgentHelper} looks +like this:

          + +
          +public class MyPrefsBackupAgent extends BackupAgentHelper {
          +    // The name of the SharedPreferences file
          +    static final String PREFS = "user_preferences";
          +
          +    // A key to uniquely identify the set of backup data
          +    static final String PREFS_BACKUP_KEY = "prefs";
          +
          +    // Allocate a helper and add it to the backup agent
          +    @Override
          +    public void onCreate() {
          +        SharedPreferencesBackupHelper helper =
          +                new SharedPreferencesBackupHelper(this, PREFS);
          +        addHelper(PREFS_BACKUP_KEY, helper);
          +    }
          +}
          +
          + +

          That's it! That's your entire backup agent. The {@link +android.app.backup.SharedPreferencesBackupHelper} includes all the code +needed to backup and restore a {@link android.content.SharedPreferences} file.

          + +

          When the Backup Manager calls {@link +android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) +onBackup()} and {@link +android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) +onRestore()}, {@link android.app.backup.BackupAgentHelper} calls your backup helpers to perform +backup and restore for your specified files.

          + +

          Note: The methods of {@link android.content.SharedPreferences} +are threadsafe, so +you can safely read and write the shared preferences file from your backup agent and +other activities.

          + + + +

          Backing up other files

          + +

          When you instantiate a {@link android.app.backup.FileBackupHelper}, you must include the name of +one or more files that are saved to your application's internal storage +(as specified by {@link android.content.ContextWrapper#getFilesDir()}, which is the same +location where {@link android.content.Context#openFileOutput(String,int) openFileOutput()} writes +files).

          + +

          For example, to backup two files named "scores" and "stats," a backup agent using {@link +android.app.backup.BackupAgentHelper} looks like this:

          + +
          +public class MyFileBackupAgent extends BackupAgentHelper {
          +    // The name of the file
          +    static final String TOP_SCORES = "scores";
          +    static final String PLAYER_STATS = "stats";
          +
          +    // A key to uniquely identify the set of backup data
          +    static final String FILES_BACKUP_KEY = "myfiles";
          +
          +    // Allocate a helper and add it to the backup agent
          +    @Override
          +    public void onCreate() {
          +        FileBackupHelper helper = new FileBackupHelper(this,
          +                TOP_SCORES, PLAYER_STATS);
          +        addHelper(FILES_BACKUP_KEY, helper);
          +    }
          +}
          +
          + +

          The {@link android.app.backup.FileBackupHelper} includes all the code necessary to backup and +restore files that are saved to your application's internal storage..

          + +

          However, reading and writing to files on internal storage is not threadsafe. To +ensure that your backup agent does not read or write your files at the same time as your activities, +you must use synchronized statements each time you perform a read or write. For example, +in any Activity where you read and write the file, you need an object to use as the intrinsic +lock for the synchronized statements:

          + +
          +// Object for intrinsic lock
          +static final Object sDataLock = new Object();
          +
          + +

          Then create a synchronized statement with this lock each time you read or write the files. For +example, here's a synchronized statement for writing the latest score in a game to a file:

          + +
          +try {
          +    synchronized (MyActivity.sDataLock) {
          +        File dataFile = new File({@link android.content.Context#getFilesDir()}, TOP_SCORES);
          +        RandomAccessFile raFile = new RandomAccessFile(dataFile, "rw");
          +        raFile.writeInt(score);
          +    }
          +} catch (IOException e) {
          +    Log.e(TAG, "Unable to write to file");
          +}
          +
          + +

          You should synchronize your read statements with the same lock.

          + +

          Then, in your {@link android.app.backup.BackupAgentHelper}, you must override {@link +android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) +onBackup()} and {@link +android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) +onRestore()} to synchronize the backup and restore operations with the same +intrinsic lock. For example, the {@code MyFileBackupAgent} example from above needs the following +methods:

          + +
          +@Override
          +public void onBackup(ParcelFileDescriptor oldState, BackupDataOutput data,
          +          ParcelFileDescriptor newState) throws IOException {
          +    // Hold the lock while the FileBackupHelper performs backup
          +    synchronized (MyActivity.sDataLock) {
          +        super.onBackup(oldState, data, newState);
          +    }
          +}
          +
          +@Override
          +public void onRestore(BackupDataInput data, int appVersionCode,
          +        ParcelFileDescriptor newState) throws IOException {
          +    // Hold the lock while the FileBackupHelper restores the file
          +    synchronized (MyActivity.sDataLock) {
          +        super.onRestore(data, appVersionCode, newState);
          +    }
          +}
          +
          + +

          That's it. All you need to do is add your {@link android.app.backup.FileBackupHelper} in the +{@link android.app.backup.BackupAgent#onCreate()} method and override {@link +android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) +onBackup()} and {@link +android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) +onRestore()} to synchronize read and write operations.

          + +
          +

          For an example implementation of {@link +android.app.backup.BackupAgentHelper} with {@link android.app.backup.FileBackupHelper}, see the +{@code FileHelperExampleAgent} class in the Backup and Restore sample +application.

          +
          + + + + + + +

          Checking the restore data version

          + +

          When the Backup Manager saves your data to cloud storage, it automatically includes the version +of your application, as defined by your manifest file's {@code android:versionCode} +attribute. Before the Backup Manager calls your backup agent to restore your data, it +looks at the {@code +android:versionCode} of the installed application and compares it to the value +recorded in the restore data set. If the version recorded in the restore data set is +newer than the application version on the device, then the user has downgraded their +application. In this case, the Backup Manager will abort the restore operation for your application +and not call your {@link +android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) onRestore()} +method, because the restore set is considered meaningless to an older version.

          + +

          You can override this behavior with the {@code +android:restoreAnyVersion} attribute. This attribute is either "{@code true}" or "{@code +false}" to indicate whether you want to restore the application regardless of the restore set +version. The default value is "{@code false}". If you define this to be "{@code true}" then the +Backup Manager will ignore the {@code android:versionCode} +and call your {@link +android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) onRestore()} +method in all cases. In doing so, you can manually check for the version difference in your {@link +android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) onRestore()} +method and take any steps necessary to make the data compatible if the versions conflict.

          + +

          To help you handle different versions during a restore operation, the {@link +android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) onRestore()} +method passes you the version code included with the restore data set as the {@code appVersionCode} +parameter. You can then query the current application's version code with the {@link +android.content.pm.PackageInfo#versionCode PackageInfo.versionCode} field. For example:

          + +
          +PackageInfo info;
          +try {
          +    String name = {@link android.content.ContextWrapper#getPackageName() getPackageName}();
          +    info = {@link android.content.ContextWrapper#getPackageManager
          +getPackageManager}().{@link android.content.pm.PackageManager#getPackageInfo(String,int)
          +getPackageInfo}(name,0);
          +} catch (NameNotFoundException nnfe) {
          +    info = null;
          +}
          +
          +int version;
          +if (info != null) {
          +    version = info.versionCode;
          +}
          +
          + +

          Then simply compare the {@code version} acquired from {@link android.content.pm.PackageInfo} +to the {@code appVersionCode} passed into {@link +android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) onRestore()}. +

          + +

          Caution: Be certain you understand the consequences of setting +{@code +android:restoreAnyVersion} to "{@code true}" for your application. If each version of your +application that supports backup does not properly account for variations in your data format during +{@link +android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) onRestore()}, +then the data on the device could be saved in a format incompatible with the version currently +installed on the device.

          + + + +

          Requesting backup

          + +

          You can request a backup operation at any time by calling {@link +android.app.backup.BackupManager#dataChanged()}. This method notifies the Backup Manager that you'd +like to backup your data using your backup agent. The Backup Manager then calls your backup +agent's {@link +android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) +onBackup()} method at an opportune time in the future. Typically, you should +request a backup each time your data changes (such as when the user changes an application +preference that you'd like to back up). If you call {@link +android.app.backup.BackupManager#dataChanged()} several times consecutively, before the Backup +Manager requests a backup from your agent, your agent still receives just one call to {@link +android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor,BackupDataOutput,ParcelFileDescriptor) +onBackup()}.

          + +

          Note: While developing your application, you can request a +backup and initiate an immediate backup operation with the {@code bmgr} +tool.

          + + +

          Requesting restore

          + +

          During the normal life of your application, you shouldn't need to request a restore operation. +They system automatically checks for backup data and performs a restore when your application is +installed. However, you can manually request a restore operation by calling {@link +android.app.backup.BackupManager#requestRestore(RestoreObserver) requestRestore()}, if necessary. In +which case, the Backup Manager calls your {@link +android.app.backup.BackupAgent#onRestore(BackupDataInput,int,ParcelFileDescriptor) onRestore()} +implementation, passing the data from the current set of backup data.

          + +

          Note: While developing your application, you can request a +restore operation with the {@code bmgr} +tool.

          + + +

          Migrating to Auto Backup

          +

          You can transition your app to full-data backups by setting android:fullBackupOnly to true in the <application> element in the manifest file. When +running on a device with Android 5.1 (API level 22) or lower, your app ignores +this value in the manifest, and continues performing Key/Value Backups. When +running on a device with Android 6.0 (API level 23) or higher, your app performs +Auto Backup instead of Key/Value Backup. \ No newline at end of file diff --git a/docs/html/guide/topics/data/testingbackup.jd b/docs/html/guide/topics/data/testingbackup.jd new file mode 100644 index 000000000000..6ff5837e2411 --- /dev/null +++ b/docs/html/guide/topics/data/testingbackup.jd @@ -0,0 +1,181 @@ +page.title=Testing Backup and Restore +page.tags=backup, marshmallow, androidm +page.keywords=backup, restore, testing + +@jd:body + +

          + +

          This page shows you how to manually trigger Auto Backup, Key/Value Backup, and restore operations to +ensure your app saves and restores data properly. + +

          How backup works

          +

          The section describes various pieces in the Android backup framework and how they +interact with apps that support Auto Backup and Key/Value Backup. During the app +development phase, most of the inner working of the framework were abstracted away, so you didn't need to know this information. However, during the +testing phase, an understanding of these concepts is important. + +

          The following diagram illustrates how data flows during backup and restore: + +backup-framework + +

          The Backup Manager Service is an Android system +service which orchestrates and initiates backup and restore operations. The service +is accessible through the {@link android.app.backup.BackupManager} +API. During a backup operation, the service queries your app for backup data, +then hands it to the backup transport, which then archives the data. +During a restore operation, the backup manager service retrieves the backup data +from the backup transport and restores the data to the device. + +

          Backup Transports are Android components that are responsible +for storing and retrieving backups. An Android device can have zero or more +backup transports, but only one of those transports can be marked active. The +available backup transports may differ from device to device (due to +customizations by device manufacturers and service providers), but most Google +Play enabled devices ship with the following transports: +

            +
          • Google GMS Transport(default) - the active backup +transport on most devices, part of Google Mobile Services. This documentation assumes that users are using the +Google GMS transport. This transport stores Auto Backup data in a private folder in the +user's Google Drive account. Key/Value Backup data is stored in the Android Backup Service. +
          • Local Transport - stores backup data locally on the device. +This transport is typically used for development/debugging purposes and is not +useful in the real world.
          + +

          If a device does not have any backup transports, then the data cannot be +backed up. Your app is not adversely affected. + +

          Caution: Because the backup transport +can differ from device to device, Android cannot guarantee the security +of your data while using backup. Be cautious about using backup to store +sensitive data, such as usernames and passwords. + +

          Prerequisites

          +

          You need to know a bit about the following tools: + +

            +
          • adb +- to run commands on the device or emulator +
          • bmgr - to +perform various backup and restore operations +
          • logcat +- to see the output of backup and restore operations.
          + +

          Preparing your device or +emulator

          +

          Prepare your device or emulator for backup testing by working through the +following checklist: +

            +
          • For Auto Backup, check that you are using a device or emulator running +Android 6.0 (API level 23) or higher.
          • +
          • For Key/Value Backup, check that you are using a device or emulator running +Android 2.2 (API level 8) or higher.
          • +
          • Check that backup and restore is enabled on the device or emulator. There +are two ways to check:
              +
            • On the device, go to Settings -> Backup & Restore. +
            • From adb shell, run bmgr enable
            +

            On physical devices, backup and restore is typically enabled during the +initial setup wizard. Emulators do not run the setup wizard, so don't forget to +enable backup and specify a backup account in device settings. +

          • Make sure the GMS Backup Transport is available and active by running the +command from adb shell: +
            $ bmgr list transports
            +

            Then, check the console for the following output: +

            android/com.android.internal.backup.LocalTransport
            +* com.google.android.gms/.backup.BackupTransportService
            +

            Physical devices without Google Play and emulators without Google APIs +might not include the GMS Backup Transport. This article assumes you are using +the GMS Backup Transport. You can test backup and restore with other backup +transports, but the procedure and output can differ. +

          + +

          Testing backup

          +

          To initiate a backup of your app, run the following command: + +

          $ bmgr backupnow <PACKAGE>
          + +

          The backupnow command runs either a Key/Value Backup or Auto Backup depending on +the package's manifest declarations. Check logcat to see the output of the +backup procedure. For example: + +

          D/BackupManagerService: fullTransportBackup()
          +I/GmsBackupTransport: Attempt to do full backup on <PACKAGE>
          +
          +---- or ----
          +
          +V/BackupManagerService: Scheduling immediate backup pass
          +D/PerformBackupTask: starting key/value Backup of BackupRequest{pkg=<PACKAGE>}
          +
          + +

          If the backupnow command is not available on your device, you need to run one +of the following commands: +

            +
          • For Auto Backups, run: bmgr fullbackup <PACKAGE> +
          • For Key/Value Backups, schedule and run your backup with the following +commands: +
            $ bmgr backup <PACKAGE>
            +$ bmgr run
            +

            bmgr backup adds your app to the Backup Manager's queue. bmgr run initiates the +backup operation, which forces the Backup Manager to perform all backup requests +that are in its queue. +

          + +

          Testing restore

          +

          To manually initiate a restore, run the following command: + +

          $ bmgr restore <PACKAGE>
          + +

          Warning: This action stops your app and wipes its data before performing the +restore operation. + +

          Then, check logcat to see the output of the restore procedure. For example: + +

          V/BackupManagerService: beginRestoreSession: pkg=<PACKAGE> transport=null
          +V/RestoreSession: restorePackage pkg=<PACKAGE> token=368abb4465c5c683
          +...
          +I/BackupManagerService: Restore complete.
          +
          + +

          You also can test automatic restore for your app by uninstalling and +reinstalling your app either with adb or through the Google +Play Store app. + +

          Troubleshooting

          +

          Exceeded Quota + +

          If you see the the following messages in logcat: + +

          I/PFTBT: Transport rejected backup of <PACKAGE>, skipping
          +
          +--- or ---
          +
          +I/PFTBT: Transport quota exceeded for package: <PACKAGE>
          +
          + +

          Your app has exceeded the quota and has been banned from backing up +data on this device. To lift the ban, either factory reset your device or change +the backup account. + +

          Full Backup Not Possible + +

          If you see the the following message in logcat: + +

          I/BackupManagerService: Full backup not currently possible -- key/value backup not yet run?
          +
          + +

          The fullbackup operation failed because no Key/Value Backup operation has yet +occurred on the device. Trigger a Key/Value Backup with the command bmgr +run and then try again. \ No newline at end of file diff --git a/docs/html/training/_book.yaml b/docs/html/training/_book.yaml index e9635be74ec3..b965e6252c09 100644 --- a/docs/html/training/_book.yaml +++ b/docs/html/training/_book.yaml @@ -438,16 +438,6 @@ toc: path: /training/efficient-downloads/redundant_redundant.html - title: Modifying Patterns Based on the Connectivity Type path: /training/efficient-downloads/connectivity_patterns.html - - title: Backing up App Data to the Cloud - path: /training/backup/index.html - path_attributes: - - name: description - value: How to sync and back up app and user data to remote web services in the cloud and how to restore the data back to multiple devices. - section: - - title: Configuring Auto Backup - path: /training/backup/autosyncapi.html - - title: Using the Backup API - path: /training/backup/backupapi.html - title: Resolving Cloud Save Conflicts path: /training/cloudsave/conflict-res.html path_attributes: @@ -1156,7 +1146,7 @@ toc: value: 维护兼容性 - name: zh-tw-lang value: 維持相容性 - - title: Selecting Colors with the Palette API + - title: Selecting Colors with the Palette API path: /training/material/palette-colors.html - title: Best Practices for User Input diff --git a/docs/html/training/backup/autosyncapi.jd b/docs/html/training/backup/autosyncapi.jd deleted file mode 100644 index e0df7bb658ae..000000000000 --- a/docs/html/training/backup/autosyncapi.jd +++ /dev/null @@ -1,370 +0,0 @@ -page.title=Configuring Auto Backup for Apps -page.tags=backup, marshmallow, androidm -page.keywords=backup, autobackup -page.image=images/cards/card-auto-backup_2x.png - -@jd:body - -

          - -

          - Users frequently invest time and effort to configure apps just the way they like them. Switching - to a new device can cancel out all that careful configuration. For apps whose target SDK version - is Android 6.0 (API level 23) and higher, devices running Android 6.0 and higher automatically - back up app data to the cloud. The system performs this automatic backup - for nearly all app data by default, and does so without your having to write any additional app - code. -

          - -

          -Note: To protect user privacy, the device user must have opted in to Google -services for Auto Backup to work. The Google services opt-in dialog appears when the user goes -through the Setup Wizard or configures the first Google account on the device. -

          - -

          - When a user installs your app on - a new device, or reinstalls your app on one (for example, after a factory reset), the system - automatically restores the app data from the cloud. This lesson provides information about how to - configure the Auto Backup for Apps feature, explaining its default behavior and how to - exclude data that you don't want the system to back up. -

          - -

          - The automatic backup feature preserves the data your app creates on a user device by uploading it - to the user’s Google Drive account and encrypting it. There is no charge to you or the user for - data storage, and the saved data does not count towards the user's personal Google Drive quota. - Each app can store up to 25MB. Once its backed-up data reaches 25MB, the app no longer sends - data to the cloud. If the system performs a data restore, it uses the last data snapshot that - the app had sent to the cloud. -

          - -

          Automatic backups occur when the following conditions are met:

          -
            -
          • The device is idle.
          • -
          • The device is charging.
          • -
          • The device is connected to a Wi-Fi network.
          • -
          • At least 24 hours have elapsed since the last backup.
          • -
          -

          - -

          Configure Data Backup

          - -

          - On devices running Android 6.0 (API level 23) or higher, the default system behavior is to back up - almost all data that an app creates. The exception is - automatically excluded data files. This section explains how you can use settings in - your app manifest to further - limit and configure what data the system backs up. -

          - -

          Including or excluding data

          - -

          - Depending on what data your app needs and how you save it, you may need to set specific - rules for including or excluding certain files or directories. Auto Backup for Apps - lets you set these backup rules through the app manifest, in which you specify a backup scheme - configuration XML file. For example: -

          - -
          -<?xml version="1.0" encoding="utf-8"?>
          -<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          -        xmlns:tools="http://schemas.android.com/tools"
          -        package="com.my.appexample">
          -    <uses-sdk android:minSdkVersion="23"/>
          -    <uses-sdk android:targetSdkVersion="23"/>
          -    <application ...
          -        android:fullBackupContent="@xml/mybackupscheme">
          -    </app>
          -    ...
          -</manifest>
          -
          - -

          - In this example, the android:fullBackupContent attribute specifies an XML file - called {@code mybackupscheme.xml}, which resides in the res/xml/ directory of your - app development project. This configuration file contains rules controlling which files are backed - up. The following example code shows a configuration file that excludes a specific file, - {@code device_info.db}: -

          - -
          -<?xml version="1.0" encoding="utf-8"?>
          -<full-backup-content>
          -    <exclude domain="database" path="device_info.db"/>
          -</full-backup-content>
          -
          - -

          Automatically excluded data files

          - -

          - Most apps do not need to, and in fact should not, back up all data. For example, the system - should not back up temporary files and caches. For this reason, the automatic backup - service excludes certain data files by default: -

          - -
            -
          • Files in the directories to which the - {@link android.content.Context#getCacheDir getCacheDir()} and - {@link android.content.Context#getCodeCacheDir getCodeCacheDir()} methods refer. -
          • - -
          • Files located on external storage, unless they reside in the directory to which the - {@link android.content.Context#getExternalFilesDir getExternalFilesDir()} method refers. -
          • - -
          • Files located in the directory to which the - {@link android.content.Context#getNoBackupFilesDir getNoBackupFilesDir()} method refers. -
          • -
          -

          Backup Configuration Syntax

          - -

          - The backup service configuration allows you to specify what files to include or exclude from - backup. The syntax for the data backup configuration XML file is as follows: -

          - -
          -<full-backup-content>
          -    <include domain=["file" | "database" | "sharedpref" | "external" | "root"]
          -    path="string" />
          -    <exclude domain=["file" | "database" | "sharedpref" | "external" | "root"]
          -    path="string" />
          -</full-backup-content>
          -
          - -

          - The following elements and attributes allow you to specify the files to include in, and exclude - from, backup: -

          - -
            -
          • - <include>: Specifies a set of resources to - back up, instead of having the system back up all data in your app by default. If you specify - an <include> element, the system backs up only the resources specified - with this element. You can specify multiple sets of resources to back up by using multiple - <include> elements -
          • - -
          • - <exclude>: Specifies any data you want the system to exclude - when it does a full backup. If you target the same set of resources with both the - <include> and <exclude> elements, - <exclude> takes precedence. -
          • - -
          • - domain: Specifies the type of resource you want to include in, - or exclude from, backup. Valid values for this attribute include: - - - -
              -
            • - root: Specifies that the resource is in the app’s root directory. -
            • - -
            • - file: Specifies a resource in the directory returned by the - {@link android.content.Context#getFilesDir getFilesDir()} method. -
            • - -
            • - database: Specifies a database that the - {@link android.content.Context#getDatabasePath getDatabasePath()} method returns, or that - the app interacts with via the {@link android.database.sqlite.SQLiteOpenHelper} class. -
            • - -
            • - sharedpref: Specifies a {@link android.content.SharedPreferences} object - that the {@link android.content.Context#getSharedPreferences getSharedPreferences()} - method returns. -
            • - -
            • - external: Specifies that the resource is in external storage, and corresponds - to a file in the directory that the - {@link android.content.Context#getExternalFilesDir getExternalFilesDir()} method returns. -
            • -
            -
          • -
          • - path: Specifies the file path to a resource that you want to include in, or - exclude from, backup. -
          • - - -
          - - -

          Disabling data backups

          - -

          - You can choose to prevent automatic backups of any of your app data by setting the - android:allowBackup attribute to false in the {@code app} element of - your manifest. This setting is illustrated in the following example: -

          - -
          -<?xml version="1.0" encoding="utf-8"?>
          -<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          -        xmlns:tools="http://schemas.android.com/tools"
          -        package="com.my.appexample">
          -    <uses-sdk android:minSdkVersion="23"/>
          -    <uses-sdk android:targetSdkVersion="23"/>
          -    <application ...
          -        android:allowBackup="false">
          -    </application>
          -    ...
          -</manifest>
          -
          - -

          Support Lower Versions of Android

          - -

          There are two scenarios in which you may also need to support versions of Android lower -than 6.0 (API level 23): You may be updating your existing app to take advantage of the -new auto backup functionality in Android 6.0, while wanting -to continue supporting earlier versions of Android. Or you may be releasing a new app, but -want to make sure devices running on versions of Android predating 6.0 also have backup -functionality.

          - -

          Updating an existing app to support auto backup

          - -

          Earlier versions of Android supported a key/value-pair-based backup mechanism, in which the app -defines a subclass of {@link android.app.backup.BackupAgent} and sets - -{@code android:backupAgent} in its -app manifest. If your app -used this legacy approach, you can transition to full-data backups by adding the -{@code android:fullBackupOnly="true"} attribute to the -{@code } -element in the manifest. When running on a device with Android 5.1 -(API level 22) or lower, your app ignores this value in the manifest, and continues performing -backups in the previous manner.

          - -

          Even if you’re not using key/value backups, you can still use the approach described above to do -any custom processing in {@link android.app.Activity#onCreate(android.os.Bundle) onCreate()} -or {@link android.app.backup.BackupAgent#onFullBackup onFullBackup()}. You can also use that -approach to receive a notification when a restore operation happens in -{@link android.app.backup.BackupAgent#onRestoreFinished onRestoreFinished()}. If you want to retain -the system's default implementation of -XML include/exclude rules handling, call -{@link android.app.backup.BackupAgent#onFullBackup super.onFullBackup()}.

          - -

          Giving your new app support for lower versions of Android

          - -

          If you are creating a new app that targets Android 6.0, but you also want to enable cloud backup -for devices running on Android 5.1 (API level 22) and lower, you must also -implement the Backup API.

          - -

          Test Backup Configuration

          - -

          - Once you have created a backup configuration, you should test it to make sure your app saves data - and can restore it properly. -

          - - -

          Enabling Backup Logging

          - -

          - To help determine how the backup feature is parsing your XML file, enable logging before - performing a test backup: -

          - -
          -$ adb shell setprop log.tag.BackupXmlParserLogging VERBOSE
          -
          - -

          Testing Backup

          - -

          To manually run a backup, first initialize the Backup Manager by executing the following - command: -

          - -
          -$ adb shell bmgr run
          -
          - -

          - Next, manually back up your application using the following command. Use the - <PACKAGE> parameter to specify the package name for your app: -

          - -
          -$ adb shell bmgr fullbackup <PACKAGE>
          - - -

          Testing restore

          - -

          - To manually initiate a restore after the system has backed up your app data, execute the following - command, using the <PACKAGE> parameter to specify the package name for your - app: -

          - -
          -$ adb shell bmgr restore <PACKAGE>
          -
          - -

          - Warning: This action stops your app and wipes its data before performing the restore - operation. -

          - -

          - You can test automatic restore for your app by uninstalling and reinstalling your app. The app - data is automatically restored from the cloud once the app installation is complete. -

          - - -

          Troubleshooting backups

          - -

          - If backup fails, you can clear the backup data and associated metadata either by turning backup - off and on in Settings > Backup, factory-resetting the device, or - executing this command: -

          - -
          $ adb shell bmgr wipe <TRANSPORT> <PACKAGE>
          - -

          - You must prepend com.google.android.gms to the {@code } value. - To get the list of transports, execute the - following command: -

          - -
          $ adb shell bmgr list transports
          - -

          Handle Google Cloud Messaging

          - -

          - For apps that use Google Cloud - Messaging (GCM) for push notifications, backing up the registration - token that Google Cloud Messaging registration returned can cause unexpected behavior in - notifications for the restored app. This is because when a user installs your app on a new device, - the app must - query the GCM API for a new registration token. If the old registration is present, because the - system had backed it up and restored it, the app doesn't seek the new token. To prevent this issue - from arising, exclude the registration token from the set of backed-up files. -

          diff --git a/docs/html/training/backup/backupapi.jd b/docs/html/training/backup/backupapi.jd deleted file mode 100644 index 2f3e93943f37..000000000000 --- a/docs/html/training/backup/backupapi.jd +++ /dev/null @@ -1,200 +0,0 @@ -page.title=Using the Backup API -parent.title=Backing up App Data to the Cloud -parent.link=index.html - -trainingnavtop=true - -next.title=Making the Most of Google Cloud Messaging -next.link=gcm.html - -@jd:body - -
          -
          -

          This lesson teaches you to

          -
            -
          1. Register for the Android Backup Service
          2. -
          3. Configure Your Manifest
          4. -
          5. Write Your Backup Agent
          6. -
          7. Request a Backup
          8. -
          9. Restore from a Backup
          10. -
          -

          You should also read

          - -
          -
          - -

          When a user purchases a new device or resets their existing one, they might -expect that when Google Play restores your app back to their device during the -initial setup, the previous data associated with the app restores as well. On versions of Android -prior to 6.0 (API level 23), app data is not restored by default, and all the user's accomplishments -or settings in your app are lost.

          -

          For situations where the volume of data is relatively light (less than a -megabyte), like the user's preferences, notes, game high scores or other -stats, the Backup API provides a lightweight solution. This lesson walks you -through integrating the Backup API into your application, and restoring data to -new devices using the Backup API. - -

          -Note: Devices running Android 6.0 and higher -automatically back up -nearly all data by default. -

          - -

          Register for the Android Backup Service

          -

          This lesson requires the use of the Android Backup - Service, which requires registration. Go ahead and register here. Once -that's done, the service pre-populates an XML tag for insertion in your Android -Manifest, which looks like this:

          -
          -<meta-data android:name="com.google.android.backup.api_key"
          -android:value="ABcDe1FGHij2KlmN3oPQRs4TUvW5xYZ" />
          -
          -

          Note that each backup key works with a specific package name. If you have -different applications, register separate keys for each one.

          - - -

          Configure Your Manifest

          -

          Use of the Android Backup Service requires two additions to your application -manifest. First, declare the name of the class that acts as your backup agent, -then add the snippet above as a child element of the Application tag. Assuming -your backup agent is going to be called {@code TheBackupAgent}, here's an example of -what the manifest looks like with this tag included:

          - -
          -<application android:label="MyApp"
          -             android:backupAgent="TheBackupAgent">
          -    ...
          -    <meta-data android:name="com.google.android.backup.api_key"
          -    android:value="ABcDe1FGHij2KlmN3oPQRs4TUvW5xYZ" />
          -    ...
          -</application>
          -
          -

          Write Your Backup Agent

          -

          The easiest way to create your backup agent is by extending the wrapper class -{@link android.app.backup.BackupAgentHelper}. Creating this helper class is -actually a very simple process. Just create a class with the same name as you -used in the manifest in the previous step (in this example, {@code -TheBackupAgent}), -and extend {@code BackupAgentHelper}. Then override the {@link -android.app.backup.BackupAgent#onCreate()}.

          - -

          Inside the {@link android.app.backup.BackupAgent#onCreate()} method, create a {@link -android.app.backup.BackupHelper}. These helpers are -specialized classes for backing up certain kinds of data. The Android framework -currently includes two such helpers: {@link -android.app.backup.FileBackupHelper} and {@link -android.app.backup.SharedPreferencesBackupHelper}. After you create the helper -and point it at the data you want to back up, just add it to the -BackupAgentHelper using the {@link android.app.backup.BackupAgentHelper#addHelper(String, BackupHelper) addHelper()} -method, adding a key which is used to -retrieve the data later. In most cases the entire -implementation is perhaps 10 lines of code.

          - -

          Here's an example that backs up a high scores file.

          - -
          -import android.app.backup.BackupAgentHelper;
          -import android.app.backup.FileBackupHelper;
          -
          -
          -public class TheBackupAgent extends BackupAgentHelper {
          -  // The name of the SharedPreferences file
          -  static final String HIGH_SCORES_FILENAME = "scores";
          -
          -  // A key to uniquely identify the set of backup data
          -  static final String FILES_BACKUP_KEY = "myfiles";
          -
          -  // Allocate a helper and add it to the backup agent
          -  @Override
          -  void onCreate() {
          -      FileBackupHelper helper = new FileBackupHelper(this, HIGH_SCORES_FILENAME);
          -      addHelper(FILES_BACKUP_KEY, helper);
          -  }
          -}
          -
          -

          For added flexibility, {@link android.app.backup.FileBackupHelper}'s -constructor can take a variable number of filenames. You could just as easily -have backed up both a high scores file and a game progress file just by adding -an extra parameter, like this:

          -
          -@Override
          -  void onCreate() {
          -      FileBackupHelper helper = new FileBackupHelper(this, HIGH_SCORES_FILENAME, PROGRESS_FILENAME);
          -      addHelper(FILES_BACKUP_KEY, helper);
          -  }
          -
          -

          Backing up preferences is similarly easy. Create a {@link -android.app.backup.SharedPreferencesBackupHelper} the same way you did a {@link -android.app.backup.FileBackupHelper}. In this case, instead of adding filenames -to the constructor, add the names of the shared preference groups being used by -your application. Here's an example of how your backup agent helper might look if -high scores are implemented as preferences instead of a flat file:

          - -
          -import android.app.backup.BackupAgentHelper;
          -import android.app.backup.SharedPreferencesBackupHelper;
          -
          -public class TheBackupAgent extends BackupAgentHelper {
          -    // The names of the SharedPreferences groups that the application maintains.  These
          -    // are the same strings that are passed to getSharedPreferences(String, int).
          -    static final String PREFS_DISPLAY = "displayprefs";
          -    static final String PREFS_SCORES = "highscores";
          -
          -    // An arbitrary string used within the BackupAgentHelper implementation to
          -    // identify the SharedPreferencesBackupHelper's data.
          -    static final String MY_PREFS_BACKUP_KEY = "myprefs";
          -
          -    // Simply allocate a helper and install it
          -    void onCreate() {
          -       SharedPreferencesBackupHelper helper =
          -                new SharedPreferencesBackupHelper(this, PREFS_DISPLAY, PREFS_SCORES);
          -        addHelper(MY_PREFS_BACKUP_KEY, helper);
          -    }
          -}
          -
          - -

          You can add as many backup helper instances to your backup agent helper as you -like, but remember that you only need one of each type. One {@link -android.app.backup.FileBackupHelper} handles all the files that you need to back up, and one -{@link android.app.backup.SharedPreferencesBackupHelper} handles all the shared -preferencegroups you need backed up. -

          - - -

          Request a Backup

          -

          In order to request a backup, just create an instance of the {@link -android.app.backup.BackupManager}, and call it's {@link -android.app.backup.BackupManager#dataChanged()} method.

          - -
          -import android.app.backup.BackupManager;
          -...
          -
          -public void requestBackup() {
          -  BackupManager bm = new BackupManager(this);
          -  bm.dataChanged();
          -}
          -
          - -

          This call notifies the backup manager that there is data ready to be backed -up to the cloud. At some point in the future, the backup manager then calls -your backup agent's {@link -android.app.backup.BackupAgent#onBackup(ParcelFileDescriptor, BackupDataOutput, -ParcelFileDescriptor) onBackup()} method. You can make -the call whenever your data has changed, without having to worry about causing -excessive network activity. If you request a backup twice before a backup -occurs, the backup only occurs once.

          - - -

          Restore from a Backup

          -

          Typically you shouldn't ever have to manually request a restore, as it -happens automatically when your application is installed on a device. However, -if it is necessary to trigger a manual restore, just call the -{@link android.app.backup.BackupManager#requestRestore(RestoreObserver) requestRestore()} method.

          diff --git a/docs/html/training/backup/index.jd b/docs/html/training/backup/index.jd deleted file mode 100644 index 4449fde1d5c3..000000000000 --- a/docs/html/training/backup/index.jd +++ /dev/null @@ -1,47 +0,0 @@ -page.title=Backing up App Data to the Cloud -page.tags=cloud,sync,backup - -trainingnavtop=true -startpage=true - -@jd:body - -
          -
          - -

          Dependencies and prerequisites

          -
            -
          • Android 2.2 (API level 8) and higher
          • -
          -
          -
          - -

          Users often invest significant time and effort creating data and setting -preferences within apps. Preserving that data for users if they replace a broken -device or upgrade to a new one is an important part of ensuring a great user -experience.

          - -

          This class covers techniques for backing up data to the cloud so that -users can restore their data when recovering from a data loss (such as a factory -reset) or installing your application on a new device.

          - -

          It is important to note that the API for cloud backup changed with the -release of Android 6.0 (API level 23). For your app to support backup both -on devices running Android 6.0, and those running Android 5.1 (API level -22) and lower, you must implement both techniques that this class explains.

          - -

          Lessons

          - -
          -
          Configuring Auto Backup for Apps
          -
          This lesson applies to Android 6.0 (API level 23) and higher. Learn how to accomplish - seamless app data backup and restore with zero additional lines of application code.
          -
          - -
          -
          Using the Backup API
          -
          This lesson applies to Android 5.1 (API level 22) and lower. Learn how to integrate the Backup - API into your Android app, so all of that app's user data, such as preferences, notes, and high - scores, updates seamlessly across all devices linked to that Google account.
          -
          - diff --git a/docs/html/training/training_toc.cs b/docs/html/training/training_toc.cs index d0dccba64d35..2845408f7238 100644 --- a/docs/html/training/training_toc.cs +++ b/docs/html/training/training_toc.cs @@ -649,25 +649,7 @@ -
        5. Date: Fri, 30 Sep 2016 14:25:45 -0700 Subject: [PATCH 630/809] Docs: Minor TOC and link fixes for newly released iteration of Perf docs. Change-Id: I61a9477ae129138932d4da29253bc2e6ece8357d --- docs/html/topic/performance/_book.yaml | 4 ++-- docs/html/topic/performance/rendering/index.jd | 6 +++--- docs/html/topic/performance/rendering/profile-gpu.jd | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/html/topic/performance/_book.yaml b/docs/html/topic/performance/_book.yaml index ba7c8b54e699..4021e85c14aa 100644 --- a/docs/html/topic/performance/_book.yaml +++ b/docs/html/topic/performance/_book.yaml @@ -35,9 +35,9 @@ toc: section: - title: Reducing Overdraw path: /topic/performance/rendering/overdraw.html - - title: Optimizing View Hierarchies + - title: Performance and View Hierarchies path: /topic/performance/rendering/optimizing-view-hierarchies.html - - title: Using the Profile GPU Tool + - title: Analyzing with Profile GPU Rendering path: /topic/performance/rendering/profile-gpu.html - title: Intelligent Job-Scheduling path: /topic/performance/scheduling.html diff --git a/docs/html/topic/performance/rendering/index.jd b/docs/html/topic/performance/rendering/index.jd index e04605cc7eee..1b16df035376 100644 --- a/docs/html/topic/performance/rendering/index.jd +++ b/docs/html/topic/performance/rendering/index.jd @@ -38,8 +38,8 @@ page.metaDescription=Learn how to optimize your app's rendering performance.
          - - Optimizing View Hierarchies + + Performance and View Hierarchies
          Make sure your layout and measurement are executing efficiently, and @@ -49,7 +49,7 @@ page.metaDescription=Learn how to optimize your app's rendering performance.
          - Using the Profile GPU Tool + Analyzing with Profile GPU Rendering
          Take advantage of this on-device tool to identify bottlenecks that diff --git a/docs/html/topic/performance/rendering/profile-gpu.jd b/docs/html/topic/performance/rendering/profile-gpu.jd index 11c38e40783d..fc9877772610 100644 --- a/docs/html/topic/performance/rendering/profile-gpu.jd +++ b/docs/html/topic/performance/rendering/profile-gpu.jd @@ -1,4 +1,4 @@ -page.title=Analyzing Rendering with Profile GPU +page.title=Analyzing with Profile GPU Rendering page.metaDescription=Use the Profile GPU tool to help you optimize your app's rendering performance. meta.tags="power" -- GitLab From 6ba466ff3e8565ca412c1e36dcb31a617fc42f6a Mon Sep 17 00:00:00 2001 From: John Reck Date: Fri, 30 Sep 2016 14:30:04 -0700 Subject: [PATCH 631/809] SurfaceView only call forceDisconnect if isValid Change-Id: I683c2f937f44d8b3d912839a3e91cbd5b5c7f437 Fixes: 31778946 Test: Manual, launch Cookie Jam then tap recents --- core/java/android/view/SurfaceView.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java index 754cdd8fc02f..4b9a5708173f 100644 --- a/core/java/android/view/SurfaceView.java +++ b/core/java/android/view/SurfaceView.java @@ -598,7 +598,9 @@ public class SurfaceView extends View { // surfaceDestroyed and surfaceCreated, we force a disconnect, // so the next connect will always work if we end up reusing // the surface. - mSurface.forceScopedDisconnect(); + if (mSurface.isValid()) { + mSurface.forceScopedDisconnect(); + } } } -- GitLab From 1918214589a24b9decd6a70d9f97b8056ae92dca Mon Sep 17 00:00:00 2001 From: Hemal Patel Date: Fri, 30 Sep 2016 14:59:23 -0700 Subject: [PATCH 632/809] Docs: Fixed the Service link Bug: 29086415 Change-Id: Id9505ade39c19eb817f556d72f689568148e1782 --- core/java/android/app/IntentService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/java/android/app/IntentService.java b/core/java/android/app/IntentService.java index f33af396070e..e4a22c42d9bc 100644 --- a/core/java/android/app/IntentService.java +++ b/core/java/android/app/IntentService.java @@ -46,7 +46,8 @@ import android.os.Message; *
          *

          Developer Guides

          *

          For a detailed discussion about how to create services, read the - * Services developer guide.

          + * Services developer + * guide.

          *
          * * @see android.os.AsyncTask -- GitLab From 5201f1e61cbeaf3c967840c4200da76d7a3b85dd Mon Sep 17 00:00:00 2001 From: "Philip P. Moltmann" Date: Fri, 30 Sep 2016 14:58:27 -0700 Subject: [PATCH 633/809] Do not access MTP devices when disabled. The USB data transfer is disabled we should not allow access MTP devices (e.g. usb sticks). We have two ways of accessing them: Either by mounting them or by creating a MTPDevice in an app. Of course an app could implement implement their own MTPDevice implementation. In this case we cannot enforce the policy without completely suppressing all MTP USB devices which would be too restrictive. Note: When the policy is set we do _not_ disconnect already connected MTP devices Fixes: 31472955 Change-Id: I6080c48c49657102774b2b3b4d89ff030245a266 --- .../hardware/usb/UsbDeviceConnection.java | 19 +++++++++++++++++-- .../java/android/hardware/usb/UsbManager.java | 2 +- media/java/android/mtp/MtpDevice.java | 14 +++++++++++++- .../java/com/android/server/MountService.java | 17 +++++++++++++---- 4 files changed, 44 insertions(+), 8 deletions(-) diff --git a/core/java/android/hardware/usb/UsbDeviceConnection.java b/core/java/android/hardware/usb/UsbDeviceConnection.java index c062b3a31152..893b9541ff3d 100644 --- a/core/java/android/hardware/usb/UsbDeviceConnection.java +++ b/core/java/android/hardware/usb/UsbDeviceConnection.java @@ -16,8 +16,10 @@ package android.hardware.usb; +import android.annotation.NonNull; +import android.annotation.Nullable; +import android.content.Context; import android.os.ParcelFileDescriptor; - import java.io.FileDescriptor; @@ -31,6 +33,8 @@ public class UsbDeviceConnection { private final UsbDevice mDevice; + private Context mContext; + // used by the JNI code private long mNativeContext; @@ -42,10 +46,21 @@ public class UsbDeviceConnection { mDevice = device; } - /* package */ boolean open(String name, ParcelFileDescriptor pfd) { + /* package */ boolean open(String name, ParcelFileDescriptor pfd, @NonNull Context context) { + mContext = context.getApplicationContext(); + return native_open(name, pfd.getFileDescriptor()); } + /** + * @return The application context the connection was created for. + * + * @hide + */ + public @Nullable Context getContext() { + return mContext; + } + /** * Releases all system resources related to the device. * Once the object is closed it cannot be used again. diff --git a/core/java/android/hardware/usb/UsbManager.java b/core/java/android/hardware/usb/UsbManager.java index 629db06a30e3..cb2720ab9848 100644 --- a/core/java/android/hardware/usb/UsbManager.java +++ b/core/java/android/hardware/usb/UsbManager.java @@ -330,7 +330,7 @@ public class UsbManager { ParcelFileDescriptor pfd = mService.openDevice(deviceName); if (pfd != null) { UsbDeviceConnection connection = new UsbDeviceConnection(device); - boolean result = connection.open(deviceName, pfd); + boolean result = connection.open(deviceName, pfd, mContext); pfd.close(); if (result) { return connection; diff --git a/media/java/android/mtp/MtpDevice.java b/media/java/android/mtp/MtpDevice.java index 4082778986c6..e7ea1a5a12cf 100644 --- a/media/java/android/mtp/MtpDevice.java +++ b/media/java/android/mtp/MtpDevice.java @@ -18,11 +18,13 @@ package android.mtp; import android.annotation.NonNull; import android.annotation.Nullable; +import android.content.Context; import android.hardware.usb.UsbDevice; import android.hardware.usb.UsbDeviceConnection; import android.os.CancellationSignal; import android.os.ParcelFileDescriptor; +import android.os.UserManager; import com.android.internal.util.Preconditions; import java.io.IOException; @@ -62,7 +64,17 @@ public final class MtpDevice { * @return true if the device was successfully opened. */ public boolean open(UsbDeviceConnection connection) { - boolean result = native_open(mDevice.getDeviceName(), connection.getFileDescriptor()); + boolean result = false; + + Context context = connection.getContext(); + if (context != null) { + UserManager userManager = (UserManager) context.getSystemService(Context.USER_SERVICE); + + if (!userManager.hasUserRestriction(UserManager.DISALLOW_USB_FILE_TRANSFER)) { + result = native_open(mDevice.getDeviceName(), connection.getFileDescriptor()); + } + } + if (!result) { connection.close(); } diff --git a/services/core/java/com/android/server/MountService.java b/services/core/java/com/android/server/MountService.java index 0023e4bef77c..8430a0b29906 100644 --- a/services/core/java/com/android/server/MountService.java +++ b/services/core/java/com/android/server/MountService.java @@ -1437,13 +1437,22 @@ class MountService extends IMountService.Stub * Decide if volume is mountable per device policies. */ private boolean isMountDisallowed(VolumeInfo vol) { + UserManager userManager = mContext.getSystemService(UserManager.class); + + boolean isUsbRestricted = false; + if (vol.disk != null && vol.disk.isUsb()) { + isUsbRestricted = userManager.hasUserRestriction(UserManager.DISALLOW_USB_FILE_TRANSFER, + Binder.getCallingUserHandle()); + } + + boolean isTypeRestricted = false; if (vol.type == VolumeInfo.TYPE_PUBLIC || vol.type == VolumeInfo.TYPE_PRIVATE) { - final UserManager userManager = mContext.getSystemService(UserManager.class); - return userManager.hasUserRestriction(UserManager.DISALLOW_MOUNT_PHYSICAL_MEDIA, + isTypeRestricted = userManager + .hasUserRestriction(UserManager.DISALLOW_MOUNT_PHYSICAL_MEDIA, Binder.getCallingUserHandle()); - } else { - return false; } + + return isUsbRestricted || isTypeRestricted; } private void enforceAdminUser() { -- GitLab From c29dac71c0c183c46995f2c89279114cb1d162f4 Mon Sep 17 00:00:00 2001 From: Hemal Patel Date: Fri, 30 Sep 2016 16:19:51 -0700 Subject: [PATCH 634/809] Docs: Fixed the menu navigation instructions Fixed the menu navigation instructions for importing samples. Bug: 30881736 Change-Id: I438ac2137caec0f4809a6c5f37d939a397866bc9 --- docs/html/about/versions/nougat/android-7.0-samples.jd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/html/about/versions/nougat/android-7.0-samples.jd b/docs/html/about/versions/nougat/android-7.0-samples.jd index e283a7a22f83..ff63beff1dd9 100644 --- a/docs/html/about/versions/nougat/android-7.0-samples.jd +++ b/docs/html/about/versions/nougat/android-7.0-samples.jd @@ -6,7 +6,7 @@ page.image=images/cards/card-n-samples_2x.png

          Use the code samples below to learn about Android 7.0 capabilities and APIs. To - download the samples in Android Studio, select the File > Import + download the samples in Android Studio, select the File > New > Import Samples menu option.

          -- GitLab From ba1f7903693653f69f644d91c071aed6641cb3c1 Mon Sep 17 00:00:00 2001 From: Shreyas Basarge Date: Sat, 1 Oct 2016 00:19:44 +0100 Subject: [PATCH 635/809] Add a delay before scheduling local syncs Pre-N devices display this delay. This should help in batching syncs (saving battery and bandwidth). Also, certain apps (Gmail) rely on this delay to allow users to undo deletes. Bug: 28057410 Change-Id: I17178c87e2f8315237321bdda1e146e8da492ffa --- .../android/server/content/SyncManager.java | 54 ++++++++++++++----- 1 file changed, 40 insertions(+), 14 deletions(-) diff --git a/services/core/java/com/android/server/content/SyncManager.java b/services/core/java/com/android/server/content/SyncManager.java index 6870c56c2ef0..131da0bc9d66 100644 --- a/services/core/java/com/android/server/content/SyncManager.java +++ b/services/core/java/com/android/server/content/SyncManager.java @@ -795,7 +795,17 @@ public class SyncManager { * Use {@link AuthorityInfo#UNDEFINED} to sync all authorities. */ public void scheduleSync(Account requestedAccount, int userId, int reason, - String requestedAuthority, Bundle extras, int targetSyncState) { + String requestedAuthority, Bundle extras, int targetSyncState) { + scheduleSync(requestedAccount, userId, reason, requestedAuthority, extras, targetSyncState, + 0 /* min delay */); + } + + /** + * @param minDelayMillis The sync can't land before this delay expires. + */ + private void scheduleSync(Account requestedAccount, int userId, int reason, + String requestedAuthority, Bundle extras, int targetSyncState, + final long minDelayMillis) { final boolean isLoggable = Log.isLoggable(TAG, Log.VERBOSE); if (extras == null) { extras = new Bundle(); @@ -906,7 +916,7 @@ public class SyncManager { if (result != null && result.getBoolean(AccountManager.KEY_BOOLEAN_RESULT)) { scheduleSync(account.account, userId, reason, authority, - finalExtras, targetSyncState); + finalExtras, targetSyncState, minDelayMillis); } } )); @@ -967,7 +977,8 @@ public class SyncManager { postScheduleSyncMessage( new SyncOperation(account.account, account.userId, owningUid, owningPackage, reason, source, - authority, newExtras, allowParallelSyncs) + authority, newExtras, allowParallelSyncs), + minDelayMillis ); } else if (targetSyncState == AuthorityInfo.UNDEFINED || targetSyncState == isSyncable) { @@ -982,7 +993,8 @@ public class SyncManager { postScheduleSyncMessage( new SyncOperation(account.account, account.userId, owningUid, owningPackage, reason, source, - authority, extras, allowParallelSyncs) + authority, extras, allowParallelSyncs), + minDelayMillis ); } } @@ -1088,14 +1100,14 @@ public class SyncManager { } /** - * Schedule sync based on local changes to a provider. Occurs within interval - * [LOCAL_SYNC_DELAY, 2*LOCAL_SYNC_DELAY]. + * Schedule sync based on local changes to a provider. We wait for at least LOCAL_SYNC_DELAY + * ms to batch syncs. */ public void scheduleLocalSync(Account account, int userId, int reason, String authority) { final Bundle extras = new Bundle(); extras.putBoolean(ContentResolver.SYNC_EXTRAS_UPLOAD, true); scheduleSync(account, userId, reason, authority, extras, - AuthorityInfo.UNDEFINED); + AuthorityInfo.UNDEFINED, LOCAL_SYNC_DELAY); } public SyncAdapterType[] getSyncAdapterTypes(int userId) { @@ -1152,9 +1164,10 @@ public class SyncManager { mSyncHandler.sendMessageDelayed(monitorMessage, SYNC_MONITOR_WINDOW_LENGTH_MILLIS); } - private void postScheduleSyncMessage(SyncOperation syncOperation) { - mSyncHandler.obtainMessage(mSyncHandler.MESSAGE_SCHEDULE_SYNC, syncOperation) - .sendToTarget(); + private void postScheduleSyncMessage(SyncOperation syncOperation, long minDelayMillis) { + ScheduleSyncMessagePayload payload = + new ScheduleSyncMessagePayload(syncOperation, minDelayMillis); + mSyncHandler.obtainMessage(mSyncHandler.MESSAGE_SCHEDULE_SYNC, payload).sendToTarget(); } /** @@ -1194,6 +1207,16 @@ public class SyncManager { } } + private static class ScheduleSyncMessagePayload { + final SyncOperation syncOperation; + final long minDelayMillis; + + ScheduleSyncMessagePayload(SyncOperation syncOperation, long minDelayMillis) { + this.syncOperation = syncOperation; + this.minDelayMillis = minDelayMillis; + } + } + private void clearBackoffSetting(EndPoint target) { Pair backoff = mSyncStorageEngine.getBackoff(target); if (backoff != null && backoff.first == SyncStorageEngine.NOT_IN_BACKOFF_MODE && @@ -1262,7 +1285,7 @@ public class SyncManager { if (!op.isPeriodic && op.target.matchesSpec(target)) { count++; getJobScheduler().cancel(op.jobId); - postScheduleSyncMessage(op); + postScheduleSyncMessage(op, 0 /* min delay */); } } if (Log.isLoggable(TAG, Log.VERBOSE)) { @@ -2417,8 +2440,10 @@ public class SyncManager { mDataConnectionIsConnected = readDataConnectionState(); switch (msg.what) { case MESSAGE_SCHEDULE_SYNC: - SyncOperation op = (SyncOperation) msg.obj; - scheduleSyncOperationH(op); + ScheduleSyncMessagePayload syncPayload = + (ScheduleSyncMessagePayload) msg.obj; + SyncOperation op = syncPayload.syncOperation; + scheduleSyncOperationH(op, syncPayload.minDelayMillis); break; case MESSAGE_START_SYNC: @@ -3101,7 +3126,8 @@ public class SyncManager { maybeRescheduleSync(syncResult, syncOperation); } else { // create a normal sync instance that will respect adapter backoffs - postScheduleSyncMessage(syncOperation.createOneTimeSyncOperation()); + postScheduleSyncMessage(syncOperation.createOneTimeSyncOperation(), + 0 /* min delay */); } historyMessage = ContentResolver.syncErrorToString( syncResultToErrorNumber(syncResult)); -- GitLab From c57c8d934cf77673154bc81d767365b4d6cda33f Mon Sep 17 00:00:00 2001 From: Jim Miller Date: Fri, 30 Sep 2016 17:17:59 -0700 Subject: [PATCH 636/809] Add metrics logging for critical fingerprintd errors This adds logging when fingerprintd dies or invoked functions fail so we can track driver breakage: - failure to start fingerprintd (fingerprintd_openhal_error) - fingerprintd dies (fingerprintd_died) - call to authenticate/enroll/enumerate/remove fails Fixes bug 30896409 Change-Id: Ic53fcd551ba909ef141893796b33b52cd5e56395 --- .../com/android/server/fingerprint/AuthenticationClient.java | 1 + .../core/java/com/android/server/fingerprint/EnrollClient.java | 1 + .../java/com/android/server/fingerprint/EnumerateClient.java | 2 ++ .../java/com/android/server/fingerprint/FingerprintService.java | 2 ++ .../core/java/com/android/server/fingerprint/RemovalClient.java | 2 ++ 5 files changed, 8 insertions(+) diff --git a/services/core/java/com/android/server/fingerprint/AuthenticationClient.java b/services/core/java/com/android/server/fingerprint/AuthenticationClient.java index 87da866603cc..5297589c4795 100644 --- a/services/core/java/com/android/server/fingerprint/AuthenticationClient.java +++ b/services/core/java/com/android/server/fingerprint/AuthenticationClient.java @@ -115,6 +115,7 @@ public abstract class AuthenticationClient extends ClientMonitor { final int result = daemon.authenticate(mOpId, getGroupId()); if (result != 0) { Slog.w(TAG, "startAuthentication failed, result=" + result); + MetricsLogger.histogram(getContext(), "fingeprintd_auth_start_error", result); onError(FingerprintManager.FINGERPRINT_ERROR_HW_UNAVAILABLE); return result; } diff --git a/services/core/java/com/android/server/fingerprint/EnrollClient.java b/services/core/java/com/android/server/fingerprint/EnrollClient.java index 6a533c9b4e7b..640a46fb656f 100644 --- a/services/core/java/com/android/server/fingerprint/EnrollClient.java +++ b/services/core/java/com/android/server/fingerprint/EnrollClient.java @@ -88,6 +88,7 @@ public abstract class EnrollClient extends ClientMonitor { final int result = daemon.enroll(mCryptoToken, getGroupId(), timeout); if (result != 0) { Slog.w(TAG, "startEnroll failed, result=" + result); + MetricsLogger.histogram(getContext(), "fingerprintd_enroll_start_error", result); onError(FingerprintManager.FINGERPRINT_ERROR_HW_UNAVAILABLE); return result; } diff --git a/services/core/java/com/android/server/fingerprint/EnumerateClient.java b/services/core/java/com/android/server/fingerprint/EnumerateClient.java index 52dbd5d72e95..26b191646ddb 100644 --- a/services/core/java/com/android/server/fingerprint/EnumerateClient.java +++ b/services/core/java/com/android/server/fingerprint/EnumerateClient.java @@ -23,6 +23,7 @@ import android.hardware.fingerprint.IFingerprintServiceReceiver; import android.os.IBinder; import android.os.RemoteException; import android.util.Slog; +import com.android.internal.logging.MetricsLogger; /** * A class to keep track of the enumeration state for a given client. @@ -43,6 +44,7 @@ public abstract class EnumerateClient extends ClientMonitor { if (result != 0) { Slog.w(TAG, "start enumerate for user " + getTargetUserId() + " failed, result=" + result); + MetricsLogger.histogram(getContext(), "fingerprintd_enum_start_error", result); onError(FingerprintManager.FINGERPRINT_ERROR_HW_UNAVAILABLE); return result; } diff --git a/services/core/java/com/android/server/fingerprint/FingerprintService.java b/services/core/java/com/android/server/fingerprint/FingerprintService.java index 9e132f761087..6c11794b189d 100644 --- a/services/core/java/com/android/server/fingerprint/FingerprintService.java +++ b/services/core/java/com/android/server/fingerprint/FingerprintService.java @@ -194,6 +194,7 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe @Override public void binderDied() { Slog.v(TAG, "fingerprintd died"); + MetricsLogger.count(mContext, "fingerprintd_died", 1); mDaemon = null; mCurrentUserId = UserHandle.USER_CURRENT; handleError(mHalDeviceId, FingerprintManager.FINGERPRINT_ERROR_HW_UNAVAILABLE); @@ -211,6 +212,7 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe updateActiveGroup(ActivityManager.getCurrentUser(), null); } else { Slog.w(TAG, "Failed to open Fingerprint HAL!"); + MetricsLogger.count(mContext, "fingerprintd_openhal_error", 1); mDaemon = null; } } catch (RemoteException e) { diff --git a/services/core/java/com/android/server/fingerprint/RemovalClient.java b/services/core/java/com/android/server/fingerprint/RemovalClient.java index bcf2264b50fa..f939f4177a24 100644 --- a/services/core/java/com/android/server/fingerprint/RemovalClient.java +++ b/services/core/java/com/android/server/fingerprint/RemovalClient.java @@ -24,6 +24,7 @@ import android.os.IBinder; import android.os.RemoteException; import android.os.UserHandle; import android.util.Slog; +import com.android.internal.logging.MetricsLogger; /** * A class to keep track of the remove state for a given client. @@ -46,6 +47,7 @@ public abstract class RemovalClient extends ClientMonitor { final int result = daemon.remove(mFingerId, getGroupId()); if (result != 0) { Slog.w(TAG, "startRemove with id = " + mFingerId + " failed, result=" + result); + MetricsLogger.histogram(getContext(), "fingerprintd_remove_start_error", result); onError(FingerprintManager.FINGERPRINT_ERROR_HW_UNAVAILABLE); return result; } -- GitLab From 53edc8f20487d79acd86b9aaca46918c3d4432a0 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Fri, 30 Sep 2016 17:38:43 -0700 Subject: [PATCH 637/809] Import translations. DO NOT MERGE Change-Id: I7fdd11e47d67879376ace9d33de1a7add58ae133 Auto-generated-cl: translation import --- packages/SettingsLib/res/values-af/strings.xml | 6 ++---- packages/SettingsLib/res/values-am/strings.xml | 6 ++---- packages/SettingsLib/res/values-ar/strings.xml | 6 ++---- packages/SettingsLib/res/values-az-rAZ/strings.xml | 6 ++---- packages/SettingsLib/res/values-b+sr+Latn/strings.xml | 6 ++---- packages/SettingsLib/res/values-be-rBY/strings.xml | 6 ++---- packages/SettingsLib/res/values-bg/strings.xml | 6 ++---- packages/SettingsLib/res/values-bn-rBD/strings.xml | 6 ++---- packages/SettingsLib/res/values-bs-rBA/strings.xml | 6 ++---- packages/SettingsLib/res/values-ca/strings.xml | 6 ++---- packages/SettingsLib/res/values-cs/strings.xml | 6 ++---- packages/SettingsLib/res/values-da/strings.xml | 6 ++---- packages/SettingsLib/res/values-de/strings.xml | 6 ++---- packages/SettingsLib/res/values-el/strings.xml | 6 ++---- packages/SettingsLib/res/values-en-rAU/strings.xml | 6 ++---- packages/SettingsLib/res/values-en-rGB/strings.xml | 6 ++---- packages/SettingsLib/res/values-en-rIN/strings.xml | 6 ++---- packages/SettingsLib/res/values-es-rUS/strings.xml | 6 ++---- packages/SettingsLib/res/values-es/strings.xml | 6 ++---- packages/SettingsLib/res/values-et-rEE/strings.xml | 6 ++---- packages/SettingsLib/res/values-eu-rES/strings.xml | 6 ++---- packages/SettingsLib/res/values-fa/strings.xml | 6 ++---- packages/SettingsLib/res/values-fi/strings.xml | 6 ++---- packages/SettingsLib/res/values-fr-rCA/strings.xml | 6 ++---- packages/SettingsLib/res/values-fr/strings.xml | 6 ++---- packages/SettingsLib/res/values-gl-rES/strings.xml | 6 ++---- packages/SettingsLib/res/values-gu-rIN/strings.xml | 6 ++---- packages/SettingsLib/res/values-hi/strings.xml | 6 ++---- packages/SettingsLib/res/values-hr/strings.xml | 6 ++---- packages/SettingsLib/res/values-hu/strings.xml | 6 ++---- packages/SettingsLib/res/values-hy-rAM/strings.xml | 6 ++---- packages/SettingsLib/res/values-in/strings.xml | 6 ++---- packages/SettingsLib/res/values-is-rIS/strings.xml | 6 ++---- packages/SettingsLib/res/values-it/strings.xml | 6 ++---- packages/SettingsLib/res/values-iw/strings.xml | 6 ++---- packages/SettingsLib/res/values-ka-rGE/strings.xml | 6 ++---- packages/SettingsLib/res/values-kk-rKZ/strings.xml | 6 ++---- packages/SettingsLib/res/values-km-rKH/strings.xml | 6 ++---- packages/SettingsLib/res/values-kn-rIN/strings.xml | 6 ++---- packages/SettingsLib/res/values-ko/strings.xml | 6 ++---- packages/SettingsLib/res/values-ky-rKG/strings.xml | 6 ++---- packages/SettingsLib/res/values-lo-rLA/strings.xml | 6 ++---- packages/SettingsLib/res/values-lt/strings.xml | 6 ++---- packages/SettingsLib/res/values-lv/strings.xml | 6 ++---- packages/SettingsLib/res/values-mk-rMK/strings.xml | 6 ++---- packages/SettingsLib/res/values-ml-rIN/strings.xml | 6 ++---- packages/SettingsLib/res/values-mn-rMN/strings.xml | 6 ++---- packages/SettingsLib/res/values-mr-rIN/strings.xml | 6 ++---- packages/SettingsLib/res/values-ms-rMY/strings.xml | 6 ++---- packages/SettingsLib/res/values-my-rMM/strings.xml | 6 ++---- packages/SettingsLib/res/values-nb/strings.xml | 6 ++---- packages/SettingsLib/res/values-ne-rNP/strings.xml | 6 ++---- packages/SettingsLib/res/values-nl/strings.xml | 6 ++---- packages/SettingsLib/res/values-pa-rIN/strings.xml | 6 ++---- packages/SettingsLib/res/values-pl/strings.xml | 6 ++---- packages/SettingsLib/res/values-pt-rBR/strings.xml | 6 ++---- packages/SettingsLib/res/values-pt-rPT/strings.xml | 6 ++---- packages/SettingsLib/res/values-pt/strings.xml | 6 ++---- packages/SettingsLib/res/values-ro/strings.xml | 6 ++---- packages/SettingsLib/res/values-ru/strings.xml | 6 ++---- packages/SettingsLib/res/values-si-rLK/strings.xml | 6 ++---- packages/SettingsLib/res/values-sk/strings.xml | 6 ++---- packages/SettingsLib/res/values-sl/strings.xml | 6 ++---- packages/SettingsLib/res/values-sq-rAL/strings.xml | 6 ++---- packages/SettingsLib/res/values-sr/strings.xml | 6 ++---- packages/SettingsLib/res/values-sv/strings.xml | 6 ++---- packages/SettingsLib/res/values-sw/strings.xml | 6 ++---- packages/SettingsLib/res/values-ta-rIN/strings.xml | 6 ++---- packages/SettingsLib/res/values-te-rIN/strings.xml | 6 ++---- packages/SettingsLib/res/values-th/strings.xml | 6 ++---- packages/SettingsLib/res/values-tl/strings.xml | 6 ++---- packages/SettingsLib/res/values-tr/strings.xml | 6 ++---- packages/SettingsLib/res/values-uk/strings.xml | 6 ++---- packages/SettingsLib/res/values-ur-rPK/strings.xml | 6 ++---- packages/SettingsLib/res/values-uz-rUZ/strings.xml | 6 ++---- packages/SettingsLib/res/values-vi/strings.xml | 6 ++---- packages/SettingsLib/res/values-zh-rCN/strings.xml | 6 ++---- packages/SettingsLib/res/values-zh-rHK/strings.xml | 6 ++---- packages/SettingsLib/res/values-zh-rTW/strings.xml | 6 ++---- packages/SettingsLib/res/values-zu/strings.xml | 6 ++---- 80 files changed, 160 insertions(+), 320 deletions(-) diff --git a/packages/SettingsLib/res/values-af/strings.xml b/packages/SettingsLib/res/values-af/strings.xml index 81af9415531b..fc127257c189 100644 --- a/packages/SettingsLib/res/values-af/strings.xml +++ b/packages/SettingsLib/res/values-af/strings.xml @@ -28,10 +28,8 @@ "WiFi-verbinding het misluk" "Stawingsprobleem" "Nie binne ontvangs nie" - - - - + "Geen internettoegang word bespeur nie, sal nie outomaties herkoppel nie." + "Geen internettoegang nie." "Gestoor deur %1$s" "Gekoppel via Wi-Fi-assistent" "Gekoppel via %1$s" diff --git a/packages/SettingsLib/res/values-am/strings.xml b/packages/SettingsLib/res/values-am/strings.xml index 792c4349e442..e17f9b042e19 100644 --- a/packages/SettingsLib/res/values-am/strings.xml +++ b/packages/SettingsLib/res/values-am/strings.xml @@ -28,10 +28,8 @@ "የWiFi ግንኙነት መሰናከል" "የማረጋገጫ ችግር" "በክልል ውስጥ የለም" - - - - + "ምንም የበይነ መረብ መዳረሻ አልተገኘም፣ በራስ-ሰር እንደገና እንዲገናኝ አይደረግም።" + "ምንም የበይነመረብ መዳረሻ የለም።" "የተቀመጠው በ%1$s" "በWi‑Fi ረዳት አማካኝነት ተገናኝቷል" "በ%1$s በኩል መገናኘት" diff --git a/packages/SettingsLib/res/values-ar/strings.xml b/packages/SettingsLib/res/values-ar/strings.xml index db9afeebeefd..a4eaeaba8a5f 100644 --- a/packages/SettingsLib/res/values-ar/strings.xml +++ b/packages/SettingsLib/res/values-ar/strings.xml @@ -28,10 +28,8 @@ "‏أخفق اتصال WiFi" "حدثت مشكلة في المصادقة" "ليست في النطاق" - - - - + "لم يتم اكتشاف اتصال بالإنترنت، ولن تتم إعادة الاتصال تلقائيًا." + "لا يتوفر اتصال بالإنترنت." "تم الحفظ بواسطة %1$s" "‏تم التوصيل عبر مساعد Wi-Fi" "‏تم الاتصال عبر %1$s" diff --git a/packages/SettingsLib/res/values-az-rAZ/strings.xml b/packages/SettingsLib/res/values-az-rAZ/strings.xml index 130cd7534924..78cb5308ec39 100644 --- a/packages/SettingsLib/res/values-az-rAZ/strings.xml +++ b/packages/SettingsLib/res/values-az-rAZ/strings.xml @@ -28,10 +28,8 @@ "WiFi Bağlantı Uğursuzluğu" "Autentifikasiya problemi" "Diapazonda deyil" - - - - + "İnternet bağlantısı tapılmadı, avtomatik olaraq yenidən qoşulmayacaq." + "İnternet girişi yoxdur." "%1$s tərəfindən saxlandı" "Wi‑Fi köməkçisi vasitəsilə qoşulub" "%1$s vasitəsilə qoşuludur" diff --git a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml index 5d7e852bf882..84d5742c39dc 100644 --- a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml +++ b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml @@ -28,10 +28,8 @@ "Wi-Fi veza je otkazala" "Problem sa potvrdom autentičnosti" "Nije u opsegu" - - - - + "Pristup internetu nije otkriven, automatsko povezivanje nije moguće." + "Nema pristupa internetu." "Sačuvao/la je %1$s" "Povezano preko Wi‑Fi pomoćnika" "Veza je uspostavljena preko pristupne tačke %1$s" diff --git a/packages/SettingsLib/res/values-be-rBY/strings.xml b/packages/SettingsLib/res/values-be-rBY/strings.xml index a8428f26c5e3..480cff106789 100644 --- a/packages/SettingsLib/res/values-be-rBY/strings.xml +++ b/packages/SettingsLib/res/values-be-rBY/strings.xml @@ -28,10 +28,8 @@ "Збой падлучэння Wi-Fi" "Праблема аўтэнтыфікацыі" "Не ў зоне дасягальнасці" - - - - + "Доступ да інтэрнэту не выяўлены, аўтаматычнае перападключэнне не адбудзецца." + "Няма доступу да інтэрнэту." "Хто захаваў: %1$s" "Падлучана праз памочніка Wi‑Fi" "Падлучана праз %1$s" diff --git a/packages/SettingsLib/res/values-bg/strings.xml b/packages/SettingsLib/res/values-bg/strings.xml index b356766cb68f..c719d102cdd9 100644 --- a/packages/SettingsLib/res/values-bg/strings.xml +++ b/packages/SettingsLib/res/values-bg/strings.xml @@ -28,10 +28,8 @@ "Неуспешна връзка с Wi-Fi" "Проблем при удостоверяването" "Извън обхват" - - - - + "Не е открит достъп до интернет. Връзката няма да се възобнови автоматично." + "Няма достъп до интернет." "Запазено от %1$s" "Установена е връзка чрез помощника за Wi-Fi" "Установена е връзка през „%1$s“" diff --git a/packages/SettingsLib/res/values-bn-rBD/strings.xml b/packages/SettingsLib/res/values-bn-rBD/strings.xml index 40895629e6ad..604048b76afb 100644 --- a/packages/SettingsLib/res/values-bn-rBD/strings.xml +++ b/packages/SettingsLib/res/values-bn-rBD/strings.xml @@ -28,10 +28,8 @@ "WiFi সংযোগের ব্যর্থতা" "প্রমাণীকরণ সমস্যা" "পরিসরের মধ্যে নয়" - - - - + "কোনো ইন্টারনেট অ্যাক্সেস শনাক্ত হয়নি, স্বয়ংক্রিয়ভাবে পুনরায় সংযোগ স্থাপন করবে না৷" + "কোনো ইন্টারনেট অ্যাক্সেস নেই৷" "%1$s দ্বারা সংরক্ষিত" "ওয়াই-ফাই সহায়ক-এর মাধ্যমে সংযুক্ত হয়েছে" "%1$s মাধ্যমে সংযুক্ত হয়েছে" diff --git a/packages/SettingsLib/res/values-bs-rBA/strings.xml b/packages/SettingsLib/res/values-bs-rBA/strings.xml index 5115bbd41592..dc31d1ab54d2 100644 --- a/packages/SettingsLib/res/values-bs-rBA/strings.xml +++ b/packages/SettingsLib/res/values-bs-rBA/strings.xml @@ -28,10 +28,8 @@ "Greška pri povezivanju na Wi-Fi" "Problem pri provjeri vjerodostojnosti." "Nije u dometu" - - - - + "Pristup internetu nije pronađen. Neće se ponovo povezivati automatski." + "Nema pristupa internetu." "Sačuvao %1$s" "Povezani preko Wi-Fi pomoćnika" "Povezani preko %1$s" diff --git a/packages/SettingsLib/res/values-ca/strings.xml b/packages/SettingsLib/res/values-ca/strings.xml index abc9390c7184..1b1c8d230e8e 100644 --- a/packages/SettingsLib/res/values-ca/strings.xml +++ b/packages/SettingsLib/res/values-ca/strings.xml @@ -28,10 +28,8 @@ "Error de connexió Wi-Fi" "Problema d\'autenticació" "Fora de l\'abast" - - - - + "No s\'ha detectat accés a Internet; no s\'hi tornarà a connectar automàticament." + "No hi ha accés a Internet." "Desat per %1$s" "Connectat mitjançant l\'assistent de Wi‑Fi" "Connectada mitjançant %1$s" diff --git a/packages/SettingsLib/res/values-cs/strings.xml b/packages/SettingsLib/res/values-cs/strings.xml index edc53ed5be37..7580ec706850 100644 --- a/packages/SettingsLib/res/values-cs/strings.xml +++ b/packages/SettingsLib/res/values-cs/strings.xml @@ -28,10 +28,8 @@ "Selhání připojení Wi-Fi" "Problém s ověřením" "Mimo dosah" - - - - + "Nebyl zjištěn žádný přístup k internetu, připojení nebude automaticky obnoveno." + "Není k dispozici přístup k internetu." "Uloženo uživatelem %1$s" "Připojeno pomocí asistenta připojení Wi-Fi" "Připojeno prostřednictvím %1$s" diff --git a/packages/SettingsLib/res/values-da/strings.xml b/packages/SettingsLib/res/values-da/strings.xml index 571490174e62..ee8cff3a55b3 100644 --- a/packages/SettingsLib/res/values-da/strings.xml +++ b/packages/SettingsLib/res/values-da/strings.xml @@ -28,10 +28,8 @@ "Wi-Fi-forbindelsesfejl" "Problem med godkendelse" "Ikke inden for rækkevidde" - - - - + "Der blev ikke fundet nogen internetadgang. Forbindelsen bliver ikke automatisk genoprettet." + "Ingen internetadgang." "Gemt af %1$s" "Forbindelse via Wi-Fi-assistent" "Tilsluttet via %1$s" diff --git a/packages/SettingsLib/res/values-de/strings.xml b/packages/SettingsLib/res/values-de/strings.xml index 406523e7986d..9e54fdd5acb0 100644 --- a/packages/SettingsLib/res/values-de/strings.xml +++ b/packages/SettingsLib/res/values-de/strings.xml @@ -28,10 +28,8 @@ "WLAN-Verbindungsfehler" "Authentifizierungsproblem" "Nicht in Reichweite" - - - - + "Keine Internetverbindung erkannt. Es kann nicht automatisch eine Verbindung hergestellt werden." + "Kein Internetzugriff." "Gespeichert von %1$s" "Über WLAN-Assistenten verbunden" "Über %1$s verbunden" diff --git a/packages/SettingsLib/res/values-el/strings.xml b/packages/SettingsLib/res/values-el/strings.xml index 117b9fed65c9..58c7e4391fba 100644 --- a/packages/SettingsLib/res/values-el/strings.xml +++ b/packages/SettingsLib/res/values-el/strings.xml @@ -28,10 +28,8 @@ "Αποτυχία σύνδεσης Wi-Fi" "Πρόβλημα ελέγχου ταυτότητας" "Εκτός εμβέλειας" - - - - + "Δεν εντοπίστηκε πρόσβαση στο διαδίκτυο. Δεν θα πραγματοποιηθεί αυτόματη επανασύνδεση." + "Δεν υπάρχει πρόσβαση στο διαδίκτυο." "Αποθηκεύτηκε από %1$s" "Σύνδεση μέσω βοηθού Wi‑Fi" "Συνδέθηκε μέσω %1$s" diff --git a/packages/SettingsLib/res/values-en-rAU/strings.xml b/packages/SettingsLib/res/values-en-rAU/strings.xml index 35ec15b6d564..fcb388655be8 100644 --- a/packages/SettingsLib/res/values-en-rAU/strings.xml +++ b/packages/SettingsLib/res/values-en-rAU/strings.xml @@ -28,10 +28,8 @@ "Wi-Fi Connection Failure" "Authentication problem" "Not in range" - - - - + "No Internet access detected, won\'t automatically reconnect." + "No Internet Access." "Saved by %1$s" "Connected via Wi‑Fi assistant" "Connected via %1$s" diff --git a/packages/SettingsLib/res/values-en-rGB/strings.xml b/packages/SettingsLib/res/values-en-rGB/strings.xml index 35ec15b6d564..fcb388655be8 100644 --- a/packages/SettingsLib/res/values-en-rGB/strings.xml +++ b/packages/SettingsLib/res/values-en-rGB/strings.xml @@ -28,10 +28,8 @@ "Wi-Fi Connection Failure" "Authentication problem" "Not in range" - - - - + "No Internet access detected, won\'t automatically reconnect." + "No Internet Access." "Saved by %1$s" "Connected via Wi‑Fi assistant" "Connected via %1$s" diff --git a/packages/SettingsLib/res/values-en-rIN/strings.xml b/packages/SettingsLib/res/values-en-rIN/strings.xml index 35ec15b6d564..fcb388655be8 100644 --- a/packages/SettingsLib/res/values-en-rIN/strings.xml +++ b/packages/SettingsLib/res/values-en-rIN/strings.xml @@ -28,10 +28,8 @@ "Wi-Fi Connection Failure" "Authentication problem" "Not in range" - - - - + "No Internet access detected, won\'t automatically reconnect." + "No Internet Access." "Saved by %1$s" "Connected via Wi‑Fi assistant" "Connected via %1$s" diff --git a/packages/SettingsLib/res/values-es-rUS/strings.xml b/packages/SettingsLib/res/values-es-rUS/strings.xml index 2874e61fbb4f..151d7ce9159f 100644 --- a/packages/SettingsLib/res/values-es-rUS/strings.xml +++ b/packages/SettingsLib/res/values-es-rUS/strings.xml @@ -28,10 +28,8 @@ "Error de conexión Wi-Fi" "Problema de autenticación" "Fuera de alcance" - - - - + "No se detectó el acceso a Internet. No se volverá a conectar de forma automática." + "No se detectó el acceso a Internet." "Guardadas por %1$s" "Conexión por asistente de Wi-Fi" "Conexión a través de %1$s" diff --git a/packages/SettingsLib/res/values-es/strings.xml b/packages/SettingsLib/res/values-es/strings.xml index 7d0097a9e9f3..55410aaef27c 100644 --- a/packages/SettingsLib/res/values-es/strings.xml +++ b/packages/SettingsLib/res/values-es/strings.xml @@ -28,10 +28,8 @@ "Error de conexión Wi-Fi" "Error de autenticación" "Fuera de rango" - - - - + "No se ha detectado acceso a Internet, por lo que no se volverá a conectar automáticamente." + "No se ha detectado acceso a Internet." "Guardadas por %1$s" "Conectado a través de asistente Wi‑Fi" "Conectado a través de %1$s" diff --git a/packages/SettingsLib/res/values-et-rEE/strings.xml b/packages/SettingsLib/res/values-et-rEE/strings.xml index 97fe73f192a3..7f7b23cce35d 100644 --- a/packages/SettingsLib/res/values-et-rEE/strings.xml +++ b/packages/SettingsLib/res/values-et-rEE/strings.xml @@ -28,10 +28,8 @@ "WiFi-ühenduse viga" "Autentimise probleem" "Pole vahemikus" - - - - + "Interneti-ühendust ei tuvastatud, seadet ei ühendata automaatselt uuesti." + "Interneti-ühendus puudub." "Salvestas: %1$s" "Ühendatud WiFi-abi kaudu" "Ühendatud üksuse %1$s kaudu" diff --git a/packages/SettingsLib/res/values-eu-rES/strings.xml b/packages/SettingsLib/res/values-eu-rES/strings.xml index 9234f24600b2..c02331e3c94c 100644 --- a/packages/SettingsLib/res/values-eu-rES/strings.xml +++ b/packages/SettingsLib/res/values-eu-rES/strings.xml @@ -28,10 +28,8 @@ "Ezin izan da konektatu Wi-Fi sarera" "Autentifikazio-arazoa" "Urrunegi" - - - - + "Ez da hauteman Interneterako sarbiderik. Ez da automatikoki berriro konektatuko." + "Ezin da konektatu Internetera." "%1$s aplikazioak gorde du" "Wi‑Fi laguntzailearen bidez konektatuta" "%1$s bidez konektatuta" diff --git a/packages/SettingsLib/res/values-fa/strings.xml b/packages/SettingsLib/res/values-fa/strings.xml index bb2e16662555..8acff43a280f 100644 --- a/packages/SettingsLib/res/values-fa/strings.xml +++ b/packages/SettingsLib/res/values-fa/strings.xml @@ -28,10 +28,8 @@ "‏اتصال Wi-Fi برقرار نشد" "مشکل احراز هویت" "در محدوده نیست" - - - - + "دسترسی به اینترنت شناسایی نشد، به‌صورت خودکار وصل نمی‌شود." + "دسترسی به اینترنت وجود ندارد." "ذخیره‌شده توسط %1$s" "‏متصل شده از طریق دستیار Wi-Fi" "‏متصل از طریق %1$s" diff --git a/packages/SettingsLib/res/values-fi/strings.xml b/packages/SettingsLib/res/values-fi/strings.xml index c04c97045786..87e91f6377c1 100644 --- a/packages/SettingsLib/res/values-fi/strings.xml +++ b/packages/SettingsLib/res/values-fi/strings.xml @@ -28,10 +28,8 @@ "Wi-Fi-yhteysvirhe" "Todennusvirhe" "Ei kantoalueella" - - - - + "Internetyhteyttä ei havaittu. Yhteyttä ei muodosteta automaattisesti uudelleen." + "Ei internetyhteyttä" "Tallentaja: %1$s" "Yhteys muodostettu Wi‑Fi-apurin kautta" "Yhdistetty seuraavan kautta: %1$s" diff --git a/packages/SettingsLib/res/values-fr-rCA/strings.xml b/packages/SettingsLib/res/values-fr-rCA/strings.xml index 1b3490426403..77278d1ee9fc 100644 --- a/packages/SettingsLib/res/values-fr-rCA/strings.xml +++ b/packages/SettingsLib/res/values-fr-rCA/strings.xml @@ -28,10 +28,8 @@ "Échec de connexion Wi-Fi" "Problème d\'authentification" "Hors de portée" - - - - + "Aucun accès à Internet détecté, reconnexion automatique impossible." + "Aucun accès à Internet." "Enregistrés par %1$s" "Connecté à l\'aide de l\'assistant Wi-Fi" "Connecté par %1$s" diff --git a/packages/SettingsLib/res/values-fr/strings.xml b/packages/SettingsLib/res/values-fr/strings.xml index 07398f3d87c1..092b35b94a23 100644 --- a/packages/SettingsLib/res/values-fr/strings.xml +++ b/packages/SettingsLib/res/values-fr/strings.xml @@ -28,10 +28,8 @@ "Échec de la connexion Wi-Fi" "Problème d\'authentification." "Hors de portée" - - - - + "Aucun accès à Internet détecté. Reconnexion automatique impossible." + "Aucun accès à Internet" "Enregistré par %1$s" "Connecté via l\'assistant Wi‑Fi" "Connecté via %1$s" diff --git a/packages/SettingsLib/res/values-gl-rES/strings.xml b/packages/SettingsLib/res/values-gl-rES/strings.xml index 5207a731b8d9..d21081f6694a 100644 --- a/packages/SettingsLib/res/values-gl-rES/strings.xml +++ b/packages/SettingsLib/res/values-gl-rES/strings.xml @@ -28,10 +28,8 @@ "Erro na conexión wifi" "Problema de autenticación" "Non está dentro da zona de cobertura" - - - - + "Non se detectou acceso a Internet e non se volverá establecer conexión automaticamente." + "Non hai acceso a Internet." "Redes gardadas por %1$s" "Conectado ao asistente de wifi" "Conectado a través de %1$s" diff --git a/packages/SettingsLib/res/values-gu-rIN/strings.xml b/packages/SettingsLib/res/values-gu-rIN/strings.xml index 3d0a02bf9ae7..c8c60f35e2db 100644 --- a/packages/SettingsLib/res/values-gu-rIN/strings.xml +++ b/packages/SettingsLib/res/values-gu-rIN/strings.xml @@ -28,10 +28,8 @@ "WiFi કનેક્શન નિષ્ફળ" "પ્રમાણીકરણ સમસ્યા" "રેન્જમાં નથી" - - - - + "કોઈ ઇન્ટરનેટ અ‍ૅક્સેસ મળી નથી, આપમેળે ફરીથી કનેક્ટ કરશે નહીં." + "કોઈ ઇન્ટરનેટ ઍક્સેસ નથી." "%1$s દ્વારા સચવાયું" "Wi-Fi સહાયક દ્વારા કનેક્ટ થયું" "%1$s દ્વારા કનેક્ટ થયેલ" diff --git a/packages/SettingsLib/res/values-hi/strings.xml b/packages/SettingsLib/res/values-hi/strings.xml index 329a67082904..6d9ff7117bdd 100644 --- a/packages/SettingsLib/res/values-hi/strings.xml +++ b/packages/SettingsLib/res/values-hi/strings.xml @@ -28,10 +28,8 @@ "वाईफ़ाई कनेक्‍शन विफलता" "प्रमाणीकरण समस्या" "रेंज में नहीं" - - - - + "किसी इंटरनेट कनेक्‍शन का पता नहीं चला, अपने आप फिर से कनेक्‍ट नहीं हो सकता." + "कोई इंटरनेट एक्सेस नहीं." "%1$s के द्वारा सहेजा गया" "वाई-फ़ाई सहायक के द्वारा कनेक्‍ट है" "%1$s के द्वारा उपलब्ध" diff --git a/packages/SettingsLib/res/values-hr/strings.xml b/packages/SettingsLib/res/values-hr/strings.xml index 89b06530cd8c..b3b45a9dad3c 100644 --- a/packages/SettingsLib/res/values-hr/strings.xml +++ b/packages/SettingsLib/res/values-hr/strings.xml @@ -28,10 +28,8 @@ "Povezivanje s Wi-Fi-jem nije uspjelo" "Problem u autentifikaciji" "Nije u rasponu" - - - - + "Pristup internetu nije otkriven. Nema automatskog ponovnog povezivanja." + "Nema pristupa internetu." "Spremljeno: %1$s" "Povezani putem pomoćnika za Wi-Fi" "Povezano putem %1$s" diff --git a/packages/SettingsLib/res/values-hu/strings.xml b/packages/SettingsLib/res/values-hu/strings.xml index c33943a3c3fb..bf7da68ef90a 100644 --- a/packages/SettingsLib/res/values-hu/strings.xml +++ b/packages/SettingsLib/res/values-hu/strings.xml @@ -28,10 +28,8 @@ "Wi-Fi-kapcsolati hiba" "Azonosítási probléma" "Hatókörön kívül" - - - - + "Nincs érzékelhető internet-hozzáférés, ezért nem kapcsolódik újra automatikusan." + "Nincs internet-hozzáférés." "Mentette: %1$s" "Csatlakozva Wi‑Fi-segéddel" "Csatlakozva a következőn keresztül: %1$s" diff --git a/packages/SettingsLib/res/values-hy-rAM/strings.xml b/packages/SettingsLib/res/values-hy-rAM/strings.xml index 32b0dd6e6c94..dcec9c33e52e 100644 --- a/packages/SettingsLib/res/values-hy-rAM/strings.xml +++ b/packages/SettingsLib/res/values-hy-rAM/strings.xml @@ -28,10 +28,8 @@ "WiFi կապի ձախողում" "Նույնականացման խնդիր" "Ընդգրկույթից դուրս է" - - - - + "Ինտերնետ կապ չկա, ինչի պատճառով ավտոմատ վերամիացում չի կատարվի:" + "Ինտերնետ կապ չկա:" "Պահել է հետևյալ օգտվողը՝ %1$s" "Կապակցված է Wi‑Fi Օգնականի միջոցով" "Կապակցված է %1$s-ի միջոցով" diff --git a/packages/SettingsLib/res/values-in/strings.xml b/packages/SettingsLib/res/values-in/strings.xml index 33df1fe141be..3b96d302f11d 100644 --- a/packages/SettingsLib/res/values-in/strings.xml +++ b/packages/SettingsLib/res/values-in/strings.xml @@ -28,10 +28,8 @@ "Kegagalan Sambungan Wi-Fi" "Masalah autentikasi" "Tidak dalam jangkauan" - - - - + "Akses Internet Tidak Terdeteksi, tidak akan menyambung ulang secara otomatis." + "Tidak Ada Akses Internet." "Disimpan oleh %1$s" "Terhubung melalui Asisten Wi-Fi" "Terhubung melalui %1$s" diff --git a/packages/SettingsLib/res/values-is-rIS/strings.xml b/packages/SettingsLib/res/values-is-rIS/strings.xml index 8cc408f0c4e3..84c3b4980456 100644 --- a/packages/SettingsLib/res/values-is-rIS/strings.xml +++ b/packages/SettingsLib/res/values-is-rIS/strings.xml @@ -28,10 +28,8 @@ "WiFi-tengingarvilla" "Vandamál við auðkenningu" "Ekkert samband" - - - - + "Enginn netaðgangur fannst, endurtengist ekki sjálfkrafa." + "Enginn netaðgangur." "%1$s vistaði" "Tengt í gegnum Wi-Fi aðstoð" "Tengt í gegnum %1$s" diff --git a/packages/SettingsLib/res/values-it/strings.xml b/packages/SettingsLib/res/values-it/strings.xml index 0bb26e199d2f..67c4d4637470 100644 --- a/packages/SettingsLib/res/values-it/strings.xml +++ b/packages/SettingsLib/res/values-it/strings.xml @@ -28,10 +28,8 @@ "Errore connessione Wi-Fi" "Problema di autenticazione" "Fuori portata" - - - - + "Nessun accesso a Internet rilevato. Non verrà eseguita la riconnessione automatica." + "Nessun accesso a Internet." "Salvata da %1$s" "Connesso tramite assistente Wi‑Fi" "Collegato tramite %1$s" diff --git a/packages/SettingsLib/res/values-iw/strings.xml b/packages/SettingsLib/res/values-iw/strings.xml index 75109114168d..540e098b0e81 100644 --- a/packages/SettingsLib/res/values-iw/strings.xml +++ b/packages/SettingsLib/res/values-iw/strings.xml @@ -28,10 +28,8 @@ "‏כשל בחיבור Wi-Fi" "בעיית אימות" "מחוץ לטווח" - - - - + "אין גישה לאינטרנט. לא יתבצע חיבור מחדש באופן אוטומטי." + "אין גישה לאינטרנט." "נשמר על ידי %1$s" "‏מחובר באמצעות אסיסטנט ה-Wi-Fi" "‏מחובר דרך %1$s" diff --git a/packages/SettingsLib/res/values-ka-rGE/strings.xml b/packages/SettingsLib/res/values-ka-rGE/strings.xml index f349c4f9657b..6fdaa9526427 100644 --- a/packages/SettingsLib/res/values-ka-rGE/strings.xml +++ b/packages/SettingsLib/res/values-ka-rGE/strings.xml @@ -28,10 +28,8 @@ "WiFi კავშირის შეფერხება" "ავთენტიკაციის პრობლემა" "არ არის დიაპაზონში" - - - - + "ინტერნეტთან კავშირის ამოცნობა ვერ მოხერხდა. ავტომატურად ხელახლა დაკავშირება არ განხორციელდება." + "ინტერნეტთან კავშირი არ არის." "შენახული %1$s-ის მიერ" "დაკავშირებულია Wi-Fi თანაშემწით" "%1$s-ით დაკავშირებული" diff --git a/packages/SettingsLib/res/values-kk-rKZ/strings.xml b/packages/SettingsLib/res/values-kk-rKZ/strings.xml index 1141fcacb794..74a90b4dcfe6 100644 --- a/packages/SettingsLib/res/values-kk-rKZ/strings.xml +++ b/packages/SettingsLib/res/values-kk-rKZ/strings.xml @@ -28,10 +28,8 @@ "Wi-Fi байланысының қатесі" "Растау мәселесі" "Аумақта жоқ" - - - - + "Интернетпен байланыс жоқ, автоматты түрде қайта қосылмайды." + "Интернетпен байланыс жоқ." "%1$s сақтаған" "Wi‑Fi көмекшісі арқылы қосылу орындалды" "%1$s арқылы қосылған" diff --git a/packages/SettingsLib/res/values-km-rKH/strings.xml b/packages/SettingsLib/res/values-km-rKH/strings.xml index 7d1c7979b1e3..6283aa0cd4e7 100644 --- a/packages/SettingsLib/res/values-km-rKH/strings.xml +++ b/packages/SettingsLib/res/values-km-rKH/strings.xml @@ -28,10 +28,8 @@ "ការ​ភ្ជាប់​ WiFi បរាជ័យ" "បញ្ហា​ក្នុង​ការ​ផ្ទៀងផ្ទាត់" "នៅ​ក្រៅ​តំបន់" - - - - + "រកមិនឃើញការតភ្ជាប់អ៊ីនធឺណិតទេ វានឹងមិនភ្ជាប់ឡើងវិញដោយស្វ័យប្រវត្តិទេ។" + "គ្មានការតភ្ជាប់អ៊ីនធឺណិតទេ" "បានរក្សាទុកដោយ %1$s" "បានភ្ជាប់តាមរយៈជំនួយការ Wi‑Fi" "បានភ្ជាប់តាមរយៈ %1$s" diff --git a/packages/SettingsLib/res/values-kn-rIN/strings.xml b/packages/SettingsLib/res/values-kn-rIN/strings.xml index 9039e258b086..4944c13a0229 100644 --- a/packages/SettingsLib/res/values-kn-rIN/strings.xml +++ b/packages/SettingsLib/res/values-kn-rIN/strings.xml @@ -28,10 +28,8 @@ "WiFi ಸಂಪರ್ಕ ವಿಫಲತೆ" "ಪ್ರಮಾಣೀಕರಣ ಸಮಸ್ಯೆ" "ವ್ಯಾಪ್ತಿಯಲ್ಲಿಲ್ಲ" - - - - + "ಯಾವುದೇ ಇಂಟರ್ನೆಟ್‌ ಪ್ರವೇಶ ಪತ್ತೆಯಾಗಿಲ್ಲ, ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಮರುಸಂಪರ್ಕಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ." + "ಯಾವುದೇ ಇಂಟರ್ನೆಟ್ ಪ್ರವೇಶವಿಲ್ಲ." "%1$s ರಿಂದ ಉಳಿಸಲಾಗಿದೆ" "Wi‑Fi ಸಹಾಯಕದ ಮೂಲಕ ಸಂಪರ್ಕಿತಗೊಳಿಸಲಾಗಿದೆ" "%1$s ಮೂಲಕ ಸಂಪರ್ಕಗೊಂಡಿದೆ" diff --git a/packages/SettingsLib/res/values-ko/strings.xml b/packages/SettingsLib/res/values-ko/strings.xml index e33b989ee26b..1161272377ee 100644 --- a/packages/SettingsLib/res/values-ko/strings.xml +++ b/packages/SettingsLib/res/values-ko/strings.xml @@ -28,10 +28,8 @@ "Wi-Fi 연결 실패" "인증 문제" "범위 내에 없음" - - - - + "감지된 인터넷 액세스가 없으며 자동으로 다시 연결되지 않습니다." + "인터넷에 연결되어 있지 않습니다." "%1$s(으)로 저장됨" "Wi‑Fi 도우미를 통해 연결됨" "%1$s을(를) 통해 연결됨" diff --git a/packages/SettingsLib/res/values-ky-rKG/strings.xml b/packages/SettingsLib/res/values-ky-rKG/strings.xml index 22622dd009fc..467a0a2c5f18 100644 --- a/packages/SettingsLib/res/values-ky-rKG/strings.xml +++ b/packages/SettingsLib/res/values-ky-rKG/strings.xml @@ -28,10 +28,8 @@ "WiFi туташуусу бузулду" "Аутентификация маселеси бар" "Тейлөө аймагында эмес" - - - - + "Интернетке кирүү мүмкүнчүлүгү жок, андыктан автоматтык түрдө кайра туташпайт." + "Интернетке туташпай турат." "%1$s тарабынан сакталды" "Wi‑Fi жардамчысы аркылуу туташып турат" "%1$s аркылуу жеткиликтүү" diff --git a/packages/SettingsLib/res/values-lo-rLA/strings.xml b/packages/SettingsLib/res/values-lo-rLA/strings.xml index 716ee6fe3a57..7da14aa55ace 100644 --- a/packages/SettingsLib/res/values-lo-rLA/strings.xml +++ b/packages/SettingsLib/res/values-lo-rLA/strings.xml @@ -28,10 +28,8 @@ "​ການ​ເຊື່ອມ​ຕໍ່ WiFi ລົ້ມ​ເຫຼວ" "ບັນຫາການພິສູດຢືນຢັນ" "ບໍ່ຢູ່ໃນໄລຍະທີ່ເຊື່ອມຕໍ່ໄດ້" - - - - + "ບໍ່ພົບການເຊື່ອມຕໍ່ອິນເຕີເນັດ, ຈະບໍ່ເຊື່ອມຕໍ່ໃໝ່ໂດຍອັດຕະໂນມັດ." + "ບໍ່ມີການເຊື່ອມຕໍ່ອິນເຕີເນັດ." "ບັນທຶກ​​​ໂດຍ %1$s" "ເຊື່ອມ​ຕໍ່​ຜ່ານ Wi‑Fi ຕົວ​ຊ່ວຍ​ແລ້ວ" "​ເຊື່ອມຕໍ່​ຜ່ານ %1$s ​ແລ້ວ" diff --git a/packages/SettingsLib/res/values-lt/strings.xml b/packages/SettingsLib/res/values-lt/strings.xml index 167e7568be37..c12bbfaf4d25 100644 --- a/packages/SettingsLib/res/values-lt/strings.xml +++ b/packages/SettingsLib/res/values-lt/strings.xml @@ -28,10 +28,8 @@ "„Wi-Fi“ ryšio triktis" "Autentifikavimo problema" "Ne diapazone" - - - - + "Neaptikta jokia prieiga prie interneto, nebus automatiškai iš naujo prisijungta." + "Nėra prieigos prie interneto." "Išsaugojo %1$s" "Prisijungta naudojant „Wi‑Fi“ pagelbiklį" "Prisijungta naudojant „%1$s“" diff --git a/packages/SettingsLib/res/values-lv/strings.xml b/packages/SettingsLib/res/values-lv/strings.xml index 7f5e111a741f..fc64d2839701 100644 --- a/packages/SettingsLib/res/values-lv/strings.xml +++ b/packages/SettingsLib/res/values-lv/strings.xml @@ -28,10 +28,8 @@ "Wi-Fi savienojuma kļūme" "Autentificēšanas problēma" "Nav diapazona ietvaros" - - - - + "Nevar noteikt interneta savienojumu. Savienojums netiks izveidots vēlreiz automātiski." + "Nav piekļuves internetam." "Saglabāja: %1$s" "Izveidots savienojums ar Wi‑Fi palīgu" "Savienots, izmantojot %1$s" diff --git a/packages/SettingsLib/res/values-mk-rMK/strings.xml b/packages/SettingsLib/res/values-mk-rMK/strings.xml index 2a454d228257..bf294350622a 100644 --- a/packages/SettingsLib/res/values-mk-rMK/strings.xml +++ b/packages/SettingsLib/res/values-mk-rMK/strings.xml @@ -28,10 +28,8 @@ "Поврзувањето преку Wi-Fi не успеа" "Проблем со автентикација" "Надвор од опсег" - - - - + "Не е откриен пристап до Интернет, нема автоматски повторно да се поврзете." + "Нема пристап до Интернет." "Зачувано од %1$s" "Поврзано преку помошник за Wi-Fismile" "Поврзано преку %1$s" diff --git a/packages/SettingsLib/res/values-ml-rIN/strings.xml b/packages/SettingsLib/res/values-ml-rIN/strings.xml index 56d14779322f..824b33f64343 100644 --- a/packages/SettingsLib/res/values-ml-rIN/strings.xml +++ b/packages/SettingsLib/res/values-ml-rIN/strings.xml @@ -28,10 +28,8 @@ "WiFi കണക്ഷൻ പരാജയം" "ആധികാരികമാക്കുന്നതിലെ പ്രശ്‌നം" "പരിധിയിലില്ല" - - - - + "ഇന്റർനെറ്റ് ആക്സസ്സൊന്നും കണ്ടെത്താത്തതിനാൽ സ്വയം വീണ്ടും കണക്‌റ്റുചെയ്യില്ല." + "ഇന്റർനെറ്റ് ആക്‌സസ്സ് ഇല്ല." "%1$s സംരക്ഷിച്ചത്" "വൈഫൈ അസിസ്റ്റന്റ് മുഖേന കണക്‌റ്റുചെയ്തു" "%1$s വഴി ബന്ധിപ്പിച്ചു" diff --git a/packages/SettingsLib/res/values-mn-rMN/strings.xml b/packages/SettingsLib/res/values-mn-rMN/strings.xml index 9848caedf814..b516052007c0 100644 --- a/packages/SettingsLib/res/values-mn-rMN/strings.xml +++ b/packages/SettingsLib/res/values-mn-rMN/strings.xml @@ -28,10 +28,8 @@ "WiFi холболт амжилтгүй" "Гэрчлэлийн асуудал" "Хүрээнд байхгүй" - - - - + "Интернэт хандалт олдсонгүй тул автоматаар дахин холбогдохгүй." + "Интернэт хандалт алга" "%1$s хадгалсан" "Wi-Fi туслагчаар дамжуулан холбогдлоо" "%1$s-р холбогдсон" diff --git a/packages/SettingsLib/res/values-mr-rIN/strings.xml b/packages/SettingsLib/res/values-mr-rIN/strings.xml index 83ae6634430c..87a7b8ae7dfa 100644 --- a/packages/SettingsLib/res/values-mr-rIN/strings.xml +++ b/packages/SettingsLib/res/values-mr-rIN/strings.xml @@ -28,10 +28,8 @@ "WiFi कनेक्शन अयशस्वी" "प्रमाणीकरण समस्या" "परिक्षेत्रामध्ये नाही" - - - - + "कोणताही इंटरनेट प्रवेश आढळला नाही, स्वयंचलितपणे पुन्हा कनेक्ट करणार नाही." + "इंटरनेट प्रवेश नाही." "%1$s द्वारे जतन केले" "Wi‑Fi सहाय्यक द्वारे कनेक्ट केले" "%1$s द्वारे कनेक्‍ट केले" diff --git a/packages/SettingsLib/res/values-ms-rMY/strings.xml b/packages/SettingsLib/res/values-ms-rMY/strings.xml index 217d82acef53..c0d749756cce 100644 --- a/packages/SettingsLib/res/values-ms-rMY/strings.xml +++ b/packages/SettingsLib/res/values-ms-rMY/strings.xml @@ -28,10 +28,8 @@ "Kegagalan Sambungan WiFi" "Masalah pengesahan" "Tidak dalam liputan" - - - - + "Tiada Akses Internet Dikesan, tidak akan menyambung secara automatik." + "Tiada Akses Internet." "Diselamatkan oleh %1$s" "Disambungkan melalui Pembantu Wi-Fi" "Disambungkan melalui %1$s" diff --git a/packages/SettingsLib/res/values-my-rMM/strings.xml b/packages/SettingsLib/res/values-my-rMM/strings.xml index fc977a9649df..bf60eb372050 100644 --- a/packages/SettingsLib/res/values-my-rMM/strings.xml +++ b/packages/SettingsLib/res/values-my-rMM/strings.xml @@ -28,10 +28,8 @@ "WiFi ချိတ်ဆက်မှု မအောင်မြင်ပါ" "စစ်မှန်ကြောင်းအတည်ပြုရန်၌ ပြသနာရှိခြင်း" "စက်ကွင်းထဲတွင် မဟုတ်ပါ" - - - - + "အင်တာနက်ချိတ်ဆက်မှု ရှာမတွေ့ပါ၊ အလိုအလျောက် ပြန်လည်ချိတ်ဆက်မည် မဟုတ်ပါ။" + "အင်တာနက် ချိတ်ဆက်မှု မရှိပါ။" "%1$s မှသိမ်းဆည်းခဲ့သည်" "ကြိုးမဲ့ကူညီသူမှတဆင့် ချိတ်ဆက်၏" "%1$s မှတစ်ဆင့် ချိတ်ဆက်ထားသည်" diff --git a/packages/SettingsLib/res/values-nb/strings.xml b/packages/SettingsLib/res/values-nb/strings.xml index bd6ae05766d0..e2a549b0c624 100644 --- a/packages/SettingsLib/res/values-nb/strings.xml +++ b/packages/SettingsLib/res/values-nb/strings.xml @@ -28,10 +28,8 @@ "Wi-Fi-tilkoblingsfeil" "Autentiseringsproblem" "Utenfor område" - - - - + "Fant ingen Internett-tilgang. Kan ikke automatisk koble til på nytt." + "Ingen Internett-tilgang." "Lagret av %1$s" "Koblet til via en Wi-Fi-assistent" "Tilkoblet via %1$s" diff --git a/packages/SettingsLib/res/values-ne-rNP/strings.xml b/packages/SettingsLib/res/values-ne-rNP/strings.xml index c671f90fca9c..586876ca8d13 100644 --- a/packages/SettingsLib/res/values-ne-rNP/strings.xml +++ b/packages/SettingsLib/res/values-ne-rNP/strings.xml @@ -28,10 +28,8 @@ "वाईफाई जडान असफल" "प्रमाणीकरण समस्या" "दायराभित्र छैन" - - - - + "इन्टरनेट माथिको पहुँच पत्ता लागेन, स्वतः पुनः जडान हुने छैन।" + "इन्टरनेट माथिको पहुँच छैन।" "%1$s द्वारा सुरक्षित गरियो" "Wi-Fi सहायक द्वारा जोडिएको" "%1$s मार्फत जडित" diff --git a/packages/SettingsLib/res/values-nl/strings.xml b/packages/SettingsLib/res/values-nl/strings.xml index 330eb3072cd4..b7d88e1146f1 100644 --- a/packages/SettingsLib/res/values-nl/strings.xml +++ b/packages/SettingsLib/res/values-nl/strings.xml @@ -28,10 +28,8 @@ "Wifi-verbinding mislukt" "Authenticatieprobleem" "Niet binnen bereik" - - - - + "Geen internettoegang gevonden. Er wordt niet automatisch opnieuw verbinding gemaakt." + "Geen internettoegang." "Opgeslagen door %1$s" "Verbonden via wifi-assistent" "Verbonden via %1$s" diff --git a/packages/SettingsLib/res/values-pa-rIN/strings.xml b/packages/SettingsLib/res/values-pa-rIN/strings.xml index 982602364186..55cf9fbf1910 100644 --- a/packages/SettingsLib/res/values-pa-rIN/strings.xml +++ b/packages/SettingsLib/res/values-pa-rIN/strings.xml @@ -28,10 +28,8 @@ "WiFi ਕਨੈਕਸ਼ਨ ਅਸਫਲਤਾ" "ਪ੍ਰਮਾਣੀਕਰਨ ਸਮੱਸਿਆ" "ਰੇਂਜ ਵਿੱਚ ਨਹੀਂ ਹੈ" - - - - + "ਕੋਈ ਇੰਟਰਨੈੱਟ ਪਹੁੰਚ ਨਹੀਂ ਮਿਲੀ, ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਮੁੜ-ਕਨੈਕਟ ਨਹੀਂ ਕੀਤਾ ਜਾਵੇਗਾ।" + "ਕੋਈ ਇੰਟਰਨੈੱਟ ਪਹੁੰਚ ਨਹੀਂ।" "%1$s ਵੱਲੋਂ ਸੁਰੱਖਿਅਤ ਕੀਤਾ" "Wi‑Fi ਸਹਾਇਕ ਰਾਹੀਂ ਕਨੈਕਟ ਕੀਤਾ" "%1$s ਰਾਹੀਂ ਕਨੈਕਟ ਕੀਤਾ" diff --git a/packages/SettingsLib/res/values-pl/strings.xml b/packages/SettingsLib/res/values-pl/strings.xml index 4dce1a4d0ac5..582402c6801a 100644 --- a/packages/SettingsLib/res/values-pl/strings.xml +++ b/packages/SettingsLib/res/values-pl/strings.xml @@ -28,10 +28,8 @@ "Błąd połączenia Wi-Fi" "Problem z uwierzytelnianiem" "Poza zasięgiem" - - - - + "Nie wykryto dostępu do internetu. Nie można automatycznie przywrócić połączenia." + "Brak dostępu do internetu." "Zapisane przez: %1$s" "Połączono przez Asystenta Wi‑Fi" "Połączono przez %1$s" diff --git a/packages/SettingsLib/res/values-pt-rBR/strings.xml b/packages/SettingsLib/res/values-pt-rBR/strings.xml index 27332f909155..60df78e3927d 100644 --- a/packages/SettingsLib/res/values-pt-rBR/strings.xml +++ b/packages/SettingsLib/res/values-pt-rBR/strings.xml @@ -28,10 +28,8 @@ "Falha de conexão Wi-Fi" "Problema de autenticação" "Fora do alcance" - - - - + "Nenhum acesso à Internet foi detectado. O dispositivo não será reconectado automaticamente." + "Sem acesso à Internet." "Salvas por %1$s" "Conectado via assistente de Wi‑Fi" "Conectado via %1$s" diff --git a/packages/SettingsLib/res/values-pt-rPT/strings.xml b/packages/SettingsLib/res/values-pt-rPT/strings.xml index c48ccbad5e97..e3b2bc4a1fc4 100644 --- a/packages/SettingsLib/res/values-pt-rPT/strings.xml +++ b/packages/SettingsLib/res/values-pt-rPT/strings.xml @@ -28,10 +28,8 @@ "Falha de ligação Wi-Fi" "Problema de autenticação" "Fora do alcance" - - - - + "Nenhum acesso à Internet detetado. Não será efetuada uma nova ligação automaticamente." + "Sem acesso à Internet." "Guardada por %1$s" "Ligado através do Assistente de Wi‑Fi" "Ligado através de %1$s" diff --git a/packages/SettingsLib/res/values-pt/strings.xml b/packages/SettingsLib/res/values-pt/strings.xml index 27332f909155..60df78e3927d 100644 --- a/packages/SettingsLib/res/values-pt/strings.xml +++ b/packages/SettingsLib/res/values-pt/strings.xml @@ -28,10 +28,8 @@ "Falha de conexão Wi-Fi" "Problema de autenticação" "Fora do alcance" - - - - + "Nenhum acesso à Internet foi detectado. O dispositivo não será reconectado automaticamente." + "Sem acesso à Internet." "Salvas por %1$s" "Conectado via assistente de Wi‑Fi" "Conectado via %1$s" diff --git a/packages/SettingsLib/res/values-ro/strings.xml b/packages/SettingsLib/res/values-ro/strings.xml index 8458557dfa00..3deb6bc33e78 100644 --- a/packages/SettingsLib/res/values-ro/strings.xml +++ b/packages/SettingsLib/res/values-ro/strings.xml @@ -28,10 +28,8 @@ "Eroare de conexiune Wi-Fi" "Problemă la autentificare" "În afara ariei de acoperire" - - - - + "Nu s-a detectat acces la internet, nu se va reconecta automat." + "Nu există acces la internet." "Salvată de %1$s" "Conexiune realizată printr-un asistent Wi-Fi" "Conectată prin %1$s" diff --git a/packages/SettingsLib/res/values-ru/strings.xml b/packages/SettingsLib/res/values-ru/strings.xml index a89c5536de3c..b89ec7ff5fd1 100644 --- a/packages/SettingsLib/res/values-ru/strings.xml +++ b/packages/SettingsLib/res/values-ru/strings.xml @@ -28,10 +28,8 @@ "Ошибка подключения Wi-Fi" "Ошибка аутентификации" "Недоступна" - - - - + "Отсутствует интернет-соединение. Повторное подключение к сети не будет выполняться автоматически." + "Отсутствует подключение к Интернету" "Кто сохранил: %1$s" "Установлено подключение через Ассистента Wi-Fi" "Подключено к %1$s" diff --git a/packages/SettingsLib/res/values-si-rLK/strings.xml b/packages/SettingsLib/res/values-si-rLK/strings.xml index c8a0bad22bc1..55045887fcd9 100644 --- a/packages/SettingsLib/res/values-si-rLK/strings.xml +++ b/packages/SettingsLib/res/values-si-rLK/strings.xml @@ -28,10 +28,8 @@ "WiFi සම්බන්ධතාව අසාර්ථකයි" "සත්‍යාපනයේ ගැටලුවකි" "පරාසයේ නැත" - - - - + "අන්තර්ජාල ප්‍රවේශය නැත, ස්වයංක්‍රිය නැවත සම්බන්ධ නොවනු ඇත." + "අන්තර්ජාල ප්‍රවේශය නැත." "%1$s විසින් සුරකින ලදී" "Wi‑Fi සහායක හරහා සම්බන්ධ කරන ලදි" "%1$s හරහා සම්බන්ධ විය" diff --git a/packages/SettingsLib/res/values-sk/strings.xml b/packages/SettingsLib/res/values-sk/strings.xml index 958bae645f51..80d2df176ea4 100644 --- a/packages/SettingsLib/res/values-sk/strings.xml +++ b/packages/SettingsLib/res/values-sk/strings.xml @@ -28,10 +28,8 @@ "Zlyhanie pripojenia Wi-Fi" "Problém s overením totožnosti" "Mimo dosah" - - - - + "Nenašiel sa žiadny prístup k internetu, preto nedôjde k automatickému opätovnému pripojeniu." + "Žiadny prístup k internetu." "Uložil(a) %1$s" "Pripojené pomocou Asistenta Wi-Fi" "Pripojené prostredníctvom %1$s" diff --git a/packages/SettingsLib/res/values-sl/strings.xml b/packages/SettingsLib/res/values-sl/strings.xml index d4ad8022e34c..8a7a0b5e12a5 100644 --- a/packages/SettingsLib/res/values-sl/strings.xml +++ b/packages/SettingsLib/res/values-sl/strings.xml @@ -28,10 +28,8 @@ "Povezava prek Wi-Fi-ja ni uspela" "Težava s preverjanjem pristnosti" "Ni v obsegu" - - - - + "Ni zaznanega dostopa do interneta; samodejna vnovična vzpostavitev povezave se ne bo izvedla." + "Ni dostopa do interneta." "Shranil(-a): %1$s" "Povezava vzpostavljena prek pomočnika za Wi-Fi" "Vzpostavljena povezava prek: %1$s" diff --git a/packages/SettingsLib/res/values-sq-rAL/strings.xml b/packages/SettingsLib/res/values-sq-rAL/strings.xml index ba5d2833c71f..49225709b29f 100644 --- a/packages/SettingsLib/res/values-sq-rAL/strings.xml +++ b/packages/SettingsLib/res/values-sq-rAL/strings.xml @@ -28,10 +28,8 @@ "Dështim i lidhjes WiFi" "Problem me vërtetimin" "Nuk është brenda rrezes" - - - - + "Nuk u zbulua qasje në internet. Nuk do të lidhet përsëri automatikisht." + "Nuk ka qasje në internet." "E ruajtur nga %1$s" "I lidhur nëpërmjet ndihmësit të Wi‑Fi" "E lidhur përmes %1$s" diff --git a/packages/SettingsLib/res/values-sr/strings.xml b/packages/SettingsLib/res/values-sr/strings.xml index b04a4c2a1e53..2741b6cce9b6 100644 --- a/packages/SettingsLib/res/values-sr/strings.xml +++ b/packages/SettingsLib/res/values-sr/strings.xml @@ -28,10 +28,8 @@ "Wi-Fi веза је отказала" "Проблем са потврдом аутентичности" "Није у опсегу" - - - - + "Приступ интернету није откривен, аутоматско повезивање није могуће." + "Нема приступа интернету." "Сачувао/ла је %1$s" "Повезано преко Wi‑Fi помоћника" "Веза је успостављена преко приступне тачке %1$s" diff --git a/packages/SettingsLib/res/values-sv/strings.xml b/packages/SettingsLib/res/values-sv/strings.xml index 7562ee08606a..b4a2cdf9e174 100644 --- a/packages/SettingsLib/res/values-sv/strings.xml +++ b/packages/SettingsLib/res/values-sv/strings.xml @@ -28,10 +28,8 @@ "Wi-Fi-anslutningsfel" "Autentiseringsproblem" "Utom räckhåll" - - - - + "Ingen internetåtkomst hittades. Det går inte att återansluta automatiskt." + "Ingen internetåtkomst" "Sparades av %1$s" "Ansluten via Wi-Fi-assistent" "Anslutet via %1$s" diff --git a/packages/SettingsLib/res/values-sw/strings.xml b/packages/SettingsLib/res/values-sw/strings.xml index 9e64b9169a27..6b4d61003ca4 100644 --- a/packages/SettingsLib/res/values-sw/strings.xml +++ b/packages/SettingsLib/res/values-sw/strings.xml @@ -28,10 +28,8 @@ "Haikuweza Kuunganisha kwenye WiFi" "Tatizo la uthibitishaji" "Haiko karibu" - - - - + "Haikupata Muunganisho wa Intaneti. Haitaweza kuunganisha tena kiotomatiki." + "Hakuna Muunganisho wa Intaneti." "Ilihifadhiwa na %1$s" "Imeunganishwa kupitia Kisaidizi cha Wi-Fi" "Imeunganishwa kupitia %1$s" diff --git a/packages/SettingsLib/res/values-ta-rIN/strings.xml b/packages/SettingsLib/res/values-ta-rIN/strings.xml index b9ff6bc9f2dc..6b7cbadacb0d 100644 --- a/packages/SettingsLib/res/values-ta-rIN/strings.xml +++ b/packages/SettingsLib/res/values-ta-rIN/strings.xml @@ -28,10 +28,8 @@ "வைஃபை இணைப்பில் தோல்வி" "அங்கீகரிப்புச் சிக்கல்" "தொடர்பு எல்லையில் இல்லை" - - - - + "இணைய அணுகல் இல்லை, மீண்டும் தானாக இணையாது." + "இணைய அணுகல் இல்லை." "%1$s சேமித்தது" "வைஃபை அசிஸ்டண்ட் மூலம் இணைக்கப்பட்டது" "%1$s வழியாக இணைக்கப்பட்டது" diff --git a/packages/SettingsLib/res/values-te-rIN/strings.xml b/packages/SettingsLib/res/values-te-rIN/strings.xml index 08bcbdaef593..6d7cb32a3497 100644 --- a/packages/SettingsLib/res/values-te-rIN/strings.xml +++ b/packages/SettingsLib/res/values-te-rIN/strings.xml @@ -28,10 +28,8 @@ "WiFi కనెక్షన్ వైఫల్యం" "ప్రామాణీకరణ సమస్య" "పరిధిలో లేదు" - - - - + "ఇంటర్నెట్ ప్రాప్యత కనుగొనబడలేదు, స్వయంచాలకంగా మళ్లీ కనెక్ట్ చేయబడదు." + "ఇంటర్నెట్ ప్రాప్యత లేదు." "%1$s ద్వారా సేవ్ చేయబడింది" "Wi‑Fi సహాయకం ద్వారా కనెక్ట్ చేయబడింది" "%1$s ద్వారా కనెక్ట్ చేయబడింది" diff --git a/packages/SettingsLib/res/values-th/strings.xml b/packages/SettingsLib/res/values-th/strings.xml index bd9d8d52f40f..c4eeaedd956f 100644 --- a/packages/SettingsLib/res/values-th/strings.xml +++ b/packages/SettingsLib/res/values-th/strings.xml @@ -28,10 +28,8 @@ "การเชื่อมต่อ Wi-Fi ล้มเหลว" "ปัญหาในการตรวจสอบสิทธิ์" "ไม่อยู่ในพื้นที่ให้บริการ" - - - - + "ไม่พบการเข้าถึงอินเทอร์เน็ต ระบบจะไม่เชื่อมต่อใหม่โดยอัตโนมัติ" + "ไม่สามารถเข้าถึงอินเทอร์เน็ต" "บันทึกโดย %1$s แล้ว" "เชื่อมต่อผ่านตัวช่วย Wi-Fi อยู่" "เชื่อมต่อผ่าน %1$s แล้ว" diff --git a/packages/SettingsLib/res/values-tl/strings.xml b/packages/SettingsLib/res/values-tl/strings.xml index 9c952f594abc..64e7943c80d8 100644 --- a/packages/SettingsLib/res/values-tl/strings.xml +++ b/packages/SettingsLib/res/values-tl/strings.xml @@ -28,10 +28,8 @@ "Pagkabigo ng Koneksyon sa WiFi" "Problema sa pagpapatotoo" "Wala sa sakop" - - - - + "Walang Na-detect na Access sa Internet, hindi awtomatikong muling kokonekta." + "Walang Access sa Internet." "Na-save ni %1$s" "Nakakonekta sa pamamagitan ng Wi‑Fi assistant" "Nakakonekta sa pamamagitan ng %1$s" diff --git a/packages/SettingsLib/res/values-tr/strings.xml b/packages/SettingsLib/res/values-tr/strings.xml index 889b6317d7e8..05662b415dfa 100644 --- a/packages/SettingsLib/res/values-tr/strings.xml +++ b/packages/SettingsLib/res/values-tr/strings.xml @@ -28,10 +28,8 @@ "Kablosuz Bağlantı Hatası" "Kimlik doğrulama sorunu" "Kapsama alanı dışında" - - - - + "İnternet Erişimi Algılanmadı, otomatik olarak tekrar bağlanmayacak." + "İnternet Erişimi Yok." "%1$s tarafından kaydedildi" "Kablosuz bağlantı yardımcısıyla bağlandı" "%1$s üzerinden bağlı" diff --git a/packages/SettingsLib/res/values-uk/strings.xml b/packages/SettingsLib/res/values-uk/strings.xml index cdf725f17465..00871df39d9b 100644 --- a/packages/SettingsLib/res/values-uk/strings.xml +++ b/packages/SettingsLib/res/values-uk/strings.xml @@ -28,10 +28,8 @@ "Помилка з’єднання Wi-Fi" "Проблема з автентифікацією" "Не в діапазоні" - - - - + "Немає доступу до Інтернету. Спроба під’єднання не здійснюватиметься автоматично." + "Немає доступу до Інтернету." "Збережено додатком %1$s" "Під’єднано через Диспетчер Wi-Fi-з’єднання" "Під’єднано через %1$s" diff --git a/packages/SettingsLib/res/values-ur-rPK/strings.xml b/packages/SettingsLib/res/values-ur-rPK/strings.xml index c5aaaab7a9a5..27366ff54928 100644 --- a/packages/SettingsLib/res/values-ur-rPK/strings.xml +++ b/packages/SettingsLib/res/values-ur-rPK/strings.xml @@ -28,10 +28,8 @@ "‏WiFi کنکشن کی ناکامی" "توثیق کا مسئلہ" "رینج میں نہیں ہے" - - - - + "انٹرنیٹ تک کسی رسائی کا پتہ نہیں چلا، خودکار طور پر دوبارہ منسلک نہیں ہوگا۔" + "انٹرنیٹ تک کوئی رسائی نہیں۔" "%1$s کی جانب سے محفوظ کردہ" "‏Wi‑Fi اسسٹنٹ کے ذریعے منسلک ہے" "‏منسلک بذریعہ ‎%1$s" diff --git a/packages/SettingsLib/res/values-uz-rUZ/strings.xml b/packages/SettingsLib/res/values-uz-rUZ/strings.xml index e2c58a414509..339b7b77484b 100644 --- a/packages/SettingsLib/res/values-uz-rUZ/strings.xml +++ b/packages/SettingsLib/res/values-uz-rUZ/strings.xml @@ -28,10 +28,8 @@ "Wi-Fi ulanishini o‘rnatib bo‘lmadi" "Tasdiqdan o‘tishda muammo" "Aloqada emas" - - - - + "Internetga ulanish aniqlanmadi, avtomatik ravishda qayta ulana olmaydi." + "Internet aloqasi yo‘q." "%1$s tomonidan saqlangan" "Wi‑Fi yordamchisi orqali ulangan" "%1$s orqali ulangan" diff --git a/packages/SettingsLib/res/values-vi/strings.xml b/packages/SettingsLib/res/values-vi/strings.xml index fa4174b37046..776fd3c74a7f 100644 --- a/packages/SettingsLib/res/values-vi/strings.xml +++ b/packages/SettingsLib/res/values-vi/strings.xml @@ -28,10 +28,8 @@ "Lỗi kết nối WiFi" "Sự cố xác thực" "Ngoài vùng phủ sóng" - - - - + "Không phát hiện thấy kết nối Internet, mạng sẽ không tự động kết nối lại." + "Không có kết nối Internet." "Được lưu bởi %1$s" "Được kết nối qua trình hỗ trợ Wi‑Fi" "Được kết nối qua %1$s" diff --git a/packages/SettingsLib/res/values-zh-rCN/strings.xml b/packages/SettingsLib/res/values-zh-rCN/strings.xml index 63199e8f84c3..a91b1228a824 100644 --- a/packages/SettingsLib/res/values-zh-rCN/strings.xml +++ b/packages/SettingsLib/res/values-zh-rCN/strings.xml @@ -28,10 +28,8 @@ "WLAN 连接失败" "身份验证出现问题" "不在范围内" - - - - + "未检测到任何互联网连接,系统无法自动为您重新连接。" + "无法连接到互联网。" "已通过%1$s保存" "已连接(通过 WLAN 助手)" "已通过%1$s连接" diff --git a/packages/SettingsLib/res/values-zh-rHK/strings.xml b/packages/SettingsLib/res/values-zh-rHK/strings.xml index edbffc19503b..65d11833af87 100644 --- a/packages/SettingsLib/res/values-zh-rHK/strings.xml +++ b/packages/SettingsLib/res/values-zh-rHK/strings.xml @@ -28,10 +28,8 @@ "WiFi 連線失敗" "驗證問題" "超出可用範圍" - - - - + "無法偵測互聯網連線,未能自動重新連線。" + "無法偵測互聯網連線。" "%1$s 的儲存" "已透過 Wi-Fi 小幫手連線" "已透過 %1$s 連線" diff --git a/packages/SettingsLib/res/values-zh-rTW/strings.xml b/packages/SettingsLib/res/values-zh-rTW/strings.xml index b1c5f0632a66..63a06ee3a1bb 100644 --- a/packages/SettingsLib/res/values-zh-rTW/strings.xml +++ b/packages/SettingsLib/res/values-zh-rTW/strings.xml @@ -28,10 +28,8 @@ "WiFi 連線失敗" "驗證問題" "不在有效範圍內" - - - - + "未偵測到可用的網際網路連線,系統無法為你自動重新連線。" + "沒有可用的網際網路連線。" "由%1$s儲存" "已透過 Wi‑Fi 小幫手連線" "已透過 %1$s 連線" diff --git a/packages/SettingsLib/res/values-zu/strings.xml b/packages/SettingsLib/res/values-zu/strings.xml index e4f0d59bfc15..d4c8c292d162 100644 --- a/packages/SettingsLib/res/values-zu/strings.xml +++ b/packages/SettingsLib/res/values-zu/strings.xml @@ -28,10 +28,8 @@ "Ukwehlulekla koxhumo le-WiFi" "Inkinga yokufakazela ubuqiniso" "Ayikho ebubanzini" - - - - + "Ukufinyeela okungekhona kwe-inthanethi kutholakele, ngeke kuxhumeke ngokuzenzakalelayo." + "Akukho ukufinyelela kwe-intanethi." "Kulondolozwe ngu-%1$s" "Ixhunywe ngomsizi we-Wi-FI" "Kuxhumeke nge-%1$s" -- GitLab From 91bb0e5cca2612545b3b046f5bb1b3bc747be8af Mon Sep 17 00:00:00 2001 From: Christopher Tate Date: Fri, 30 Sep 2016 17:52:19 -0700 Subject: [PATCH 638/809] Explicitly close FD binder parameters in backup/restore API calls CloseGuard is grateful. Bug 30893100 Change-Id: Ia6bd4d88204839add59d9d245aad673d67b11bea --- core/java/android/app/backup/BackupAgent.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/core/java/android/app/backup/BackupAgent.java b/core/java/android/app/backup/BackupAgent.java index bc8280681e4a..3ba81c8689b9 100644 --- a/core/java/android/app/backup/BackupAgent.java +++ b/core/java/android/app/backup/BackupAgent.java @@ -35,6 +35,8 @@ import android.system.StructStat; import android.util.ArraySet; import android.util.Log; +import libcore.io.IoUtils; + import org.xmlpull.v1.XmlPullParserException; import java.io.File; @@ -921,6 +923,13 @@ public abstract class BackupAgent extends ContextWrapper { } catch (RemoteException e) { // we'll time out anyway, so we're safe } + + // Don't close the fd out from under the system service if this was local + if (Binder.getCallingPid() != Process.myPid()) { + IoUtils.closeQuietly(oldState); + IoUtils.closeQuietly(data); + IoUtils.closeQuietly(newState); + } } } @@ -951,6 +960,11 @@ public abstract class BackupAgent extends ContextWrapper { } catch (RemoteException e) { // we'll time out anyway, so we're safe } + + if (Binder.getCallingPid() != Process.myPid()) { + IoUtils.closeQuietly(data); + IoUtils.closeQuietly(newState); + } } } @@ -994,6 +1008,10 @@ public abstract class BackupAgent extends ContextWrapper { } catch (RemoteException e) { // we'll time out anyway, so we're safe } + + if (Binder.getCallingPid() != Process.myPid()) { + IoUtils.closeQuietly(data); + } } } @@ -1041,6 +1059,10 @@ public abstract class BackupAgent extends ContextWrapper { } catch (RemoteException e) { // we'll time out anyway, so we're safe } + + if (Binder.getCallingPid() != Process.myPid()) { + IoUtils.closeQuietly(data); + } } } -- GitLab From 473af05b8216755c2ef086e57f728480db87d9c2 Mon Sep 17 00:00:00 2001 From: Phil Weaver Date: Fri, 30 Sep 2016 18:11:39 -0700 Subject: [PATCH 639/809] Make magnification ignore invisible wallpaper. Magnification was assuming that all windows for which isOnScreen() returned true were visible, but that is not true for at least wallpapers that have been made invisible. Adding a check for visibility in addition to on screen. Bug: 7215285 Change-Id: Iadea37c9eec981f1d68c5a42959debb58cbab264 --- .../java/com/android/server/wm/AccessibilityController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/wm/AccessibilityController.java b/services/core/java/com/android/server/wm/AccessibilityController.java index e5e2175fb616..66b1b3dcfc87 100644 --- a/services/core/java/com/android/server/wm/AccessibilityController.java +++ b/services/core/java/com/android/server/wm/AccessibilityController.java @@ -644,7 +644,7 @@ final class AccessibilityController { final int windowCount = windowList.size(); for (int i = 0; i < windowCount; i++) { WindowState windowState = windowList.get(i); - if (windowState.isOnScreen() && + if (windowState.isOnScreen() && windowState.isVisibleLw() && !windowState.mWinAnimator.mEnterAnimationPending) { outWindows.put(windowState.mLayer, windowState); } -- GitLab From 559013e7116f0bb2e45f0908391ac66ac86637c8 Mon Sep 17 00:00:00 2001 From: Dirk Dougherty Date: Fri, 30 Sep 2016 18:18:20 -0700 Subject: [PATCH 640/809] Update preview-community redirect to point at +AD. Change-Id: Ibea78523ffb3128597c562b03e8ae6b42a5e93fa --- docs/html/_redirects.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/html/_redirects.yaml b/docs/html/_redirects.yaml index 8cb2ee7b20ad..1f3520e7f5bb 100644 --- a/docs/html/_redirects.yaml +++ b/docs/html/_redirects.yaml @@ -806,7 +806,7 @@ redirects: - from: /preview/features/power-mgmt.html to: /training/monitoring-device-state/doze-standby.html - from: /preview/dev-community - to: https://plus.google.com/communities/103655397235276743411 + to: https://plus.google.com/communities/105153134372062985968 - from: /preview/bug to: https://source.android.com/source/report-bugs.html - from: /preview/bug/... -- GitLab From 453f915f942a86f3d4d66005e49b28caf9864f98 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Sat, 1 Oct 2016 00:06:44 -0700 Subject: [PATCH 641/809] Import translations. DO NOT MERGE Change-Id: I8dfdc1a55bbaa0b8f2104959871f9f9f342cdc99 Auto-generated-cl: translation import --- core/res/res/values-af/strings.xml | 6 ++---- core/res/res/values-am/strings.xml | 6 ++---- core/res/res/values-ar/strings.xml | 6 ++---- core/res/res/values-az-rAZ/strings.xml | 6 ++---- core/res/res/values-b+sr+Latn/strings.xml | 6 ++---- core/res/res/values-be-rBY/strings.xml | 6 ++---- core/res/res/values-bg/strings.xml | 6 ++---- core/res/res/values-bn-rBD/strings.xml | 6 ++---- core/res/res/values-bs-rBA/strings.xml | 6 ++---- core/res/res/values-ca/strings.xml | 6 ++---- core/res/res/values-cs/strings.xml | 6 ++---- core/res/res/values-da/strings.xml | 6 ++---- core/res/res/values-de/strings.xml | 6 ++---- core/res/res/values-el/strings.xml | 6 ++---- core/res/res/values-en-rAU/strings.xml | 6 ++---- core/res/res/values-en-rGB/strings.xml | 6 ++---- core/res/res/values-en-rIN/strings.xml | 6 ++---- core/res/res/values-es-rUS/strings.xml | 6 ++---- core/res/res/values-es/strings.xml | 6 ++---- core/res/res/values-et-rEE/strings.xml | 6 ++---- core/res/res/values-eu-rES/strings.xml | 6 ++---- core/res/res/values-fa/strings.xml | 6 ++---- core/res/res/values-fi/strings.xml | 6 ++---- core/res/res/values-fr-rCA/strings.xml | 6 ++---- core/res/res/values-fr/strings.xml | 6 ++---- core/res/res/values-gl-rES/strings.xml | 6 ++---- core/res/res/values-gu-rIN/strings.xml | 6 ++---- core/res/res/values-hi/strings.xml | 6 ++---- core/res/res/values-hr/strings.xml | 6 ++---- core/res/res/values-hu/strings.xml | 6 ++---- core/res/res/values-hy-rAM/strings.xml | 6 ++---- core/res/res/values-in/strings.xml | 6 ++---- core/res/res/values-is-rIS/strings.xml | 6 ++---- core/res/res/values-it/strings.xml | 6 ++---- core/res/res/values-iw/strings.xml | 6 ++---- core/res/res/values-ja/strings.xml | 6 ++---- core/res/res/values-ka-rGE/strings.xml | 6 ++---- core/res/res/values-kk-rKZ/strings.xml | 6 ++---- core/res/res/values-km-rKH/strings.xml | 6 ++---- core/res/res/values-kn-rIN/strings.xml | 6 ++---- core/res/res/values-ko/strings.xml | 6 ++---- core/res/res/values-ky-rKG/strings.xml | 6 ++---- core/res/res/values-lo-rLA/strings.xml | 6 ++---- core/res/res/values-lt/strings.xml | 6 ++---- core/res/res/values-lv/strings.xml | 6 ++---- core/res/res/values-mk-rMK/strings.xml | 6 ++---- core/res/res/values-ml-rIN/strings.xml | 6 ++---- core/res/res/values-mn-rMN/strings.xml | 6 ++---- core/res/res/values-mr-rIN/strings.xml | 6 ++---- core/res/res/values-ms-rMY/strings.xml | 6 ++---- core/res/res/values-my-rMM/strings.xml | 6 ++---- core/res/res/values-nb/strings.xml | 6 ++---- core/res/res/values-ne-rNP/strings.xml | 6 ++---- core/res/res/values-nl/strings.xml | 6 ++---- core/res/res/values-pa-rIN/strings.xml | 6 ++---- core/res/res/values-pl/strings.xml | 6 ++---- core/res/res/values-pt-rBR/strings.xml | 6 ++---- core/res/res/values-pt-rPT/strings.xml | 6 ++---- core/res/res/values-pt/strings.xml | 6 ++---- core/res/res/values-ro/strings.xml | 6 ++---- core/res/res/values-ru/strings.xml | 6 ++---- core/res/res/values-si-rLK/strings.xml | 6 ++---- core/res/res/values-sk/strings.xml | 6 ++---- core/res/res/values-sl/strings.xml | 6 ++---- core/res/res/values-sq-rAL/strings.xml | 6 ++---- core/res/res/values-sr/strings.xml | 6 ++---- core/res/res/values-sv/strings.xml | 6 ++---- core/res/res/values-sw/strings.xml | 6 ++---- core/res/res/values-ta-rIN/strings.xml | 6 ++---- core/res/res/values-te-rIN/strings.xml | 6 ++---- core/res/res/values-th/strings.xml | 6 ++---- core/res/res/values-tl/strings.xml | 6 ++---- core/res/res/values-tr/strings.xml | 6 ++---- core/res/res/values-uk/strings.xml | 6 ++---- core/res/res/values-ur-rPK/strings.xml | 6 ++---- core/res/res/values-uz-rUZ/strings.xml | 6 ++---- core/res/res/values-vi/strings.xml | 6 ++---- core/res/res/values-zh-rCN/strings.xml | 6 ++---- core/res/res/values-zh-rHK/strings.xml | 6 ++---- core/res/res/values-zh-rTW/strings.xml | 6 ++---- core/res/res/values-zu/strings.xml | 6 ++---- 81 files changed, 162 insertions(+), 324 deletions(-) diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml index 34d43bc5f455..4b59f21ec69a 100644 --- a/core/res/res/values-af/strings.xml +++ b/core/res/res/values-af/strings.xml @@ -214,8 +214,7 @@ "Foonopsies" "Skermslot" "Sit af" - - + "Noodgeval" "Foutverslag" "Neem foutverslag" "Dit sal inligting oor die huidige toestand van jou toestel insamel om as \'n e-posboodskap te stuur. Dit sal \'n tydjie neem vandat die foutverslag begin is totdat dit reg is om gestuur te word; wees asseblief geduldig." @@ -1330,8 +1329,7 @@ "%s-USB-datastokkie" "USB-berging" "Redigeer" - - + "Datagebruik-opletberig" "Tik om gebruik en instellings te bekyk." "2G-3G-datalimiet bereik" "4G-datalimiet bereik" diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml index 39f829db14ad..54bddc753e3b 100644 --- a/core/res/res/values-am/strings.xml +++ b/core/res/res/values-am/strings.xml @@ -214,8 +214,7 @@ "የስልክ አማራጮች" "ማያ ቆልፍ" "ኃይል አጥፋ" - - + "ድንገተኛ አደጋ" "የሳንካ ሪፖርት" "የሳንካ ሪፖርት ውሰድ" "ይሄ እንደ የኢሜይል መልዕክት አድርጎ የሚልከውን ስለመሣሪያዎ የአሁኑ ሁኔታ መረጃ ይሰበስባል። የሳንካ ሪፖርቱን ከመጀመር ጀምሮ እስኪላክ ድረስ ትንሽ ጊዜ ይወስዳል፤ እባክዎ ይታገሱ።" @@ -1330,8 +1329,7 @@ "የ%s ዩኤስቢ አንጻፊ" "የUSB ማከማቻ" "አርትዕ" - - + "የውሂብ አጠቃቀም ማንቂያ" "አጠቃቀምን እና ቅንብሮችን ለማየት መታ ያድርጉ።" "የ2ጂ-3ጂ ውሂብ ገደብ ላይ ተደርሷል" "የ4ጂ ውሂብ ገደብ ላይ ተደርሷል" diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml index d8e0f6806f01..493170bf7c0c 100644 --- a/core/res/res/values-ar/strings.xml +++ b/core/res/res/values-ar/strings.xml @@ -222,8 +222,7 @@ "خيارات الهاتف" "تأمين الشاشة" "إيقاف التشغيل" - - + "الطوارئ" "تقرير الأخطاء" "إعداد تقرير بالأخطاء" "سيجمع هذا معلومات حول حالة جهازك الحالي لإرسالها كرسالة إلكترونية، ولكنه سيستغرق وقتًا قليلاً من بدء عرض تقرير بالأخطاء. وحتى يكون جاهزًا للإرسال، الرجاء الانتظار." @@ -1434,8 +1433,7 @@ "‏محرك أقراص USB من %s" "‏وحدة تخزين USB" "تعديل" - - + "تنبيه استخدام البيانات" "انقر لعرض الاستخدام والإعدادات." "‏تم بلوغ حد بيانات اتصال 2G-3G" "‏تم بلوغ حد بيانات اتصال 4G" diff --git a/core/res/res/values-az-rAZ/strings.xml b/core/res/res/values-az-rAZ/strings.xml index 9a3c93c5f21e..7c3f2a44eef0 100644 --- a/core/res/res/values-az-rAZ/strings.xml +++ b/core/res/res/values-az-rAZ/strings.xml @@ -214,8 +214,7 @@ "Telefon seçimləri" "Ekran kilidi" "Söndür" - - + "Təcili" "Baq hesabatı" "Baqı xəbər verin" "Bu, sizin hazırkı cihaz durumu haqqında məlumat toplayacaq ki, elektron məktub şəklində göndərsin. Baq raportuna başlamaq üçün bir az vaxt lazım ola bilər, bir az səbr edin." @@ -1330,8 +1329,7 @@ "%s USB drayv" "USB yaddaş" "Düzəliş edin" - - + "Data istifadə siqnalı" "İstifadə və ayarları görmək üçün tıklayın." "2G-3G data limitinə çatdı" "4G data limitinə çatdı" diff --git a/core/res/res/values-b+sr+Latn/strings.xml b/core/res/res/values-b+sr+Latn/strings.xml index c180df01c56c..c7b830652a86 100644 --- a/core/res/res/values-b+sr+Latn/strings.xml +++ b/core/res/res/values-b+sr+Latn/strings.xml @@ -216,8 +216,7 @@ "Opcije telefona" "Zaključaj ekran" "Isključi" - - + "Hitni poziv" "Izveštaj o grešci" "Napravi izveštaj o grešci" "Ovim će se prikupiti informacije o trenutnom stanju uređaja kako bi bile poslate u poruci e-pošte. Od započinjanja izveštaja o grešci do trenutka za njegovo slanje proći će neko vreme; budite strpljivi." @@ -1356,8 +1355,7 @@ "%s USB disk" "USB memorija" "Izmeni" - - + "Obaveštenje o potrošnji podataka" "Dodirnite za potrošnju i podešavanja." "Nema više 2G-3G podataka" "Nema više 4G podataka" diff --git a/core/res/res/values-be-rBY/strings.xml b/core/res/res/values-be-rBY/strings.xml index 0a6427f9a603..cadc0bc9ebd4 100644 --- a/core/res/res/values-be-rBY/strings.xml +++ b/core/res/res/values-be-rBY/strings.xml @@ -218,8 +218,7 @@ "Параметры тэлефона" "Блакіроўка экрана" "Выключыць" - - + "SOS-выклік" "Справаздача пра памылкі" "Справаздача пра памылку" "Будзе збiрацца iнфармацыя пра бягучы стан прылады, якая будзе адпраўляцца на электронную пошту. Стварэнне справаздачы пра памылкi зойме некаторы час." @@ -1382,8 +1381,7 @@ "USB-дыск %s" "USB-назапашвальнік" "Рэдагаваць" - - + "Абвестка аб выкарыстанні трафіка" "Прагляд выкарыстання і налад." "Дасягнуты ліміт трафіку 2G-3G" "Дасягнуты ліміт трафіку 4G" diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml index df5936a310db..4d8915b46202 100644 --- a/core/res/res/values-bg/strings.xml +++ b/core/res/res/values-bg/strings.xml @@ -214,8 +214,7 @@ "Опции на телефона" "Заключване на екрана" "Изключване" - - + "Спешно обаждане" "Сигнал за програмна грешка" "Сигнал за програмна грешка" "По този начин ще се събере информация за текущото състояние на устройството ви, която да се изпрати като имейл съобщение. След стартирането на процеса ще мине известно време, докато сигналът за програмна грешка бъде готов за подаване. Моля, имайте търпение." @@ -1330,8 +1329,7 @@ "USB устройство от %s" "USB хранилище" "Редактиране" - - + "Сигнал за преноса на данни" "Пренос и настройки: Докоснете за преглед." "Достигнат лимит за 2G/3G данните" "Достигнат лимит за 4G данните" diff --git a/core/res/res/values-bn-rBD/strings.xml b/core/res/res/values-bn-rBD/strings.xml index 13c1650d3d85..8d893e53a91c 100644 --- a/core/res/res/values-bn-rBD/strings.xml +++ b/core/res/res/values-bn-rBD/strings.xml @@ -214,8 +214,7 @@ "ফোন বিকল্পগুলি" "স্ক্রীণ লক" "পাওয়ার বন্ধ করুন" - - + "জরুরী" "ত্রুটির প্রতিবেদন" "ত্রুটির অভিযোগ করুন" "এটি একটি ই-মেল বার্তা পাঠানোর জন্য আপনার ডিভাইসের বর্তমান অবস্থা সম্পর্কে তথ্য সংগ্রহ করবে৷ ত্রুটির প্রতিবেদন শুরুর সময় থেকে এটি পাঠানোর জন্য প্রস্তুত হতে কিছুটা সময় নেবে; দয়া করে ধৈর্য রাখুন৷" @@ -1330,8 +1329,7 @@ "%s USB ড্রাইভ" "USB সঞ্চয়স্থান" "সম্পাদনা করুন" - - + "ডেটা ব্যবহারের সতর্কতা" "ব্যবহার এবং সেটিংস দেখতে আলতো চাপুন৷" "2G-3G ডেটা সীমা ছাড়িয়েছে" "4G ডেটা সীমা ছাড়িয়েছে" diff --git a/core/res/res/values-bs-rBA/strings.xml b/core/res/res/values-bs-rBA/strings.xml index 92749328575a..bce6574c21fd 100644 --- a/core/res/res/values-bs-rBA/strings.xml +++ b/core/res/res/values-bs-rBA/strings.xml @@ -216,8 +216,7 @@ "Opcije telefona" "Zaključavanje ekrana" "Isključi telefon" - - + "Hitni slučaj" "Izvještaj o greškama" "Kreirajte izvještaj o greškama" "Ovim će se prikupljati informacije o trenutnom stanju uređaja, koji će biti poslani kao poruka e-pošte. Može malo potrajati dok se izvještaj o greškama ne kreira i bude spreman za slanje. Budite strpljivi." @@ -1358,8 +1357,7 @@ "%s USB disk" "USB pohrana" "Uredi" - - + "Upozorenje o korištenju podataka" "Dodirnite za prikaz upotrebe i postavki." "Dostignut limit za 2G-3G podatke" "Dostignut limit za 4G podatke" diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml index 33fc1bdf5705..137d924ac1fc 100644 --- a/core/res/res/values-ca/strings.xml +++ b/core/res/res/values-ca/strings.xml @@ -214,8 +214,7 @@ "Opcions del telèfon" "Bloqueig de pantalla" "Apaga" - - + "Emergències" "Informe d\'error" "Crea informe d\'errors" "Es recopilarà informació sobre l\'estat actual del dispositiu i se t\'enviarà per correu electrònic. Passaran uns quants minuts des de l\'inici de l\'informe d\'errors fins al seu enviament, per la qual cosa et recomanem que tinguis paciència." @@ -1330,8 +1329,7 @@ "Unitat USB de: %s" "Emmagatzematge USB" "Edita" - - + "Alerta d\'ús de dades" "Toca per veure l\'ús i la configuració." "Límit de dades 2G-3G assolit" "Límit de dades 4G assolit" diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml index e166a8fc4a5e..8037681ea37a 100644 --- a/core/res/res/values-cs/strings.xml +++ b/core/res/res/values-cs/strings.xml @@ -218,8 +218,7 @@ "Možnosti telefonu" "Zámek obrazovky" "Vypnout" - - + "Stav nouze" "Hlášení chyb" "Vytvořit chybové hlášení" "Shromažďuje informace o aktuálním stavu zařízení. Tyto informace je následně možné poslat v e-mailové zprávě, chvíli však potrvá, než bude hlášení o chybě připraveno k odeslání. Buďte prosím trpěliví." @@ -1382,8 +1381,7 @@ "Jednotka USB %s" "Úložiště USB" "Upravit" - - + "Upozornění na používání dat" "Klepnutím zobrazíte nastavení." "Dosáhli jste limitu dat 2G–3G" "Dosáhli jste limitu dat 4G" diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml index 95024857102e..eb4d2555f9f4 100644 --- a/core/res/res/values-da/strings.xml +++ b/core/res/res/values-da/strings.xml @@ -214,8 +214,7 @@ "Indstillinger for telefon" "Skærmlås" "Sluk" - - + "Nødopkald" "Fejlrapport" "Lav fejlrapport" "Der indsamles oplysninger om din enheds aktuelle status, der efterfølgende sendes i en e-mail. Der går lidt tid, fra fejlrapporten påbegyndes, til den er klar til at blive sendt. Tak for tålmodigheden." @@ -1330,8 +1329,7 @@ "USB-drev fra %s" "USB-lager" "Rediger" - - + "Underretning om dataforbrug" "Tryk for at se forbrug og indstillinger." "Grænsen for 2G-3G-data er nået" "Grænsen for 4G-data er nået" diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml index e102dff7abfe..bb1935d57ad9 100644 --- a/core/res/res/values-de/strings.xml +++ b/core/res/res/values-de/strings.xml @@ -214,8 +214,7 @@ "Telefonoptionen" "Displaysperre" "Ausschalten" - - + "Notfall" "Fehlerbericht" "Fehlerbericht abrufen" "Bei diesem Fehlerbericht werden Daten zum aktuellen Status deines Geräts erfasst und als E-Mail versandt. Vom Start des Berichts bis zu seinem Versand kann es eine Weile dauern. Bitte habe etwas Geduld." @@ -1330,8 +1329,7 @@ "USB-Speichergerät von %s" "USB-Speicher" "Bearbeiten" - - + "Warnung zur Datennutzung" "Für Nutzung und Einstellungen tippen." "2G-/3G-Datenlimit erreicht" "4G-Datenlimit erreicht" diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml index 5473d39b54b4..bcfab3dda654 100644 --- a/core/res/res/values-el/strings.xml +++ b/core/res/res/values-el/strings.xml @@ -214,8 +214,7 @@ "Επιλογές τηλεφώνου" "Κλείδωμα οθόνης" "Απενεργοποίηση" - - + "Κλήση έκτακτης ανάγκης" "Αναφορά σφαλμάτων" "Λήψη αναφοράς σφάλματος" "Θα συλλέξει πληροφορίες σχετικά με την τρέχουσα κατάσταση της συσκευής σας και θα τις στείλει μέσω μηνύματος ηλεκτρονικού ταχυδρομείου. Απαιτείται λίγος χρόνος για τη σύνταξη της αναφοράς σφάλματος και την αποστολή της. Κάντε λίγη υπομονή." @@ -1330,8 +1329,7 @@ "Μονάδα USB %s" "Αποθηκευτικός χώρος USB" "Επεξεργασία" - - + "Ειδοποίηση χρήσης δεδομένων" "Πατήστε για προβολή χρήσης/ρυθμ." "Συμπλ. το όριο δεδομένων 2G-3G" "Συμπλ. το όριο δεδομένων 4G" diff --git a/core/res/res/values-en-rAU/strings.xml b/core/res/res/values-en-rAU/strings.xml index 3c29c411b112..c6e04d71c5db 100644 --- a/core/res/res/values-en-rAU/strings.xml +++ b/core/res/res/values-en-rAU/strings.xml @@ -214,8 +214,7 @@ "Phone options" "Screen lock" "Power off" - - + "Emergency" "Bug report" "Take bug report" "This will collect information about your current device state, to send as an email message. It will take a little time from starting the bug report until it is ready to be sent. Please be patient." @@ -1330,8 +1329,7 @@ "%s USB drive" "USB storage" "Edit" - - + "Data usage alert" "Tap to view usage and settings." "2G-3G data limit reached" "4G data limit reached" diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml index 3c29c411b112..c6e04d71c5db 100644 --- a/core/res/res/values-en-rGB/strings.xml +++ b/core/res/res/values-en-rGB/strings.xml @@ -214,8 +214,7 @@ "Phone options" "Screen lock" "Power off" - - + "Emergency" "Bug report" "Take bug report" "This will collect information about your current device state, to send as an email message. It will take a little time from starting the bug report until it is ready to be sent. Please be patient." @@ -1330,8 +1329,7 @@ "%s USB drive" "USB storage" "Edit" - - + "Data usage alert" "Tap to view usage and settings." "2G-3G data limit reached" "4G data limit reached" diff --git a/core/res/res/values-en-rIN/strings.xml b/core/res/res/values-en-rIN/strings.xml index 3c29c411b112..c6e04d71c5db 100644 --- a/core/res/res/values-en-rIN/strings.xml +++ b/core/res/res/values-en-rIN/strings.xml @@ -214,8 +214,7 @@ "Phone options" "Screen lock" "Power off" - - + "Emergency" "Bug report" "Take bug report" "This will collect information about your current device state, to send as an email message. It will take a little time from starting the bug report until it is ready to be sent. Please be patient." @@ -1330,8 +1329,7 @@ "%s USB drive" "USB storage" "Edit" - - + "Data usage alert" "Tap to view usage and settings." "2G-3G data limit reached" "4G data limit reached" diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml index 57cda17a097e..ea1c1a5bda83 100644 --- a/core/res/res/values-es-rUS/strings.xml +++ b/core/res/res/values-es-rUS/strings.xml @@ -214,8 +214,7 @@ "Opciones de dispositivo" "Bloqueo de pantalla" "Apagar" - - + "Emergencias" "Informe de errores" "Iniciar informe de errores" "Se recopilará información sobre el estado actual de tu dispositivo, que se enviará por correo. Pasarán unos minutos desde que se inicie el informe de errores hasta que se envíe, por lo que te recomendamos que tengas paciencia." @@ -1330,8 +1329,7 @@ "Unidad USB de %s" "Almacenamiento USB" "Editar" - - + "Alerta por el uso de datos" "Presiona para uso y opciones." "Límite de datos 2G-3G alcanzado" "Límite de datos 4G alcanzado" diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml index e8495a5a13d9..c63a2ea3e911 100644 --- a/core/res/res/values-es/strings.xml +++ b/core/res/res/values-es/strings.xml @@ -214,8 +214,7 @@ "Opciones del teléfono" "Bloqueo de pantalla" "Apagar" - - + "Emergencia" "Informe de error" "Crear informe de errores" "Se recopilará información sobre el estado actual de tu dispositivo y se enviará por correo electrónico. Pasarán unos minutos desde que empiece a generarse el informe de errores hasta que se envíe." @@ -1330,8 +1329,7 @@ "Unidad USB %s" "Almacenamiento USB" "Editar" - - + "Alerta sobre el uso de datos" "Toca para ver uso y ajustes." "Límite de datos 2G-3G alcanzado" "Límite de datos 4G alcanzado" diff --git a/core/res/res/values-et-rEE/strings.xml b/core/res/res/values-et-rEE/strings.xml index eed381d0e17e..c7298d2f0c63 100644 --- a/core/res/res/values-et-rEE/strings.xml +++ b/core/res/res/values-et-rEE/strings.xml @@ -214,8 +214,7 @@ "Telefonivalikud" "Ekraanilukk" "Lülita välja" - - + "Hädaabi" "Veaaruanne" "Veaaruande võtmine" "Nii kogutakse teavet teie seadme praeguse oleku kohta, et saata see meilisõnumina. Enne kui saate veaaruande ära saata, võtab selle loomine natuke aega; varuge kannatust." @@ -1330,8 +1329,7 @@ "Tootja %s USB-ketas" "USB-mäluseade" "Muuda" - - + "Andmekasutuse hoiatus" "Puudutage kasutuse/seadete vaat." "2G-, 3G-andmeside limiit on täis" "4G-andmeside limiit on täis" diff --git a/core/res/res/values-eu-rES/strings.xml b/core/res/res/values-eu-rES/strings.xml index b5c22ad0d494..90443c993c1e 100644 --- a/core/res/res/values-eu-rES/strings.xml +++ b/core/res/res/values-eu-rES/strings.xml @@ -214,8 +214,7 @@ "Telefonoaren aukerak" "Pantailaren blokeoa" "Itzali" - - + "Larrialdiak" "Akatsen txostena" "Sortu akatsen txostena" "Gailuaren uneko egoerari buruzko informazioa bilduko da, mezu elektroniko gisa bidaltzeko. Minutu batzuk igaroko dira akatsen txostena sortzen hasten denetik bidaltzeko prest egon arte. Itxaron, mesedez." @@ -1330,8 +1329,7 @@ "%s USB unitatea" "USB memoria" "Editatu" - - + "Datu-erabilerari buruzko abisua" "Sakatu erabilera eta ezarpenak ikusteko." "2-3 GB-ko mugara iritsi zara" "4 GB-ko mugara iritsi zara" diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml index b745cb8c123f..128a66f394da 100644 --- a/core/res/res/values-fa/strings.xml +++ b/core/res/res/values-fa/strings.xml @@ -214,8 +214,7 @@ "گزینه‌های تلفن" "قفل صفحه" "خاموش کردن" - - + "اضطراری" "گزارش اشکال" "گرفتن گزارش اشکال" "این گزارش اطلاعات مربوط به وضعیت دستگاه کنونی شما را جمع‌آوری می‌کند تا به صورت یک پیام رایانامه ارسال شود. از زمان شروع گزارش اشکال تا آماده شدن برای ارسال اندکی زمان می‌برد؛ لطفاً شکیبا باشید." @@ -1330,8 +1329,7 @@ "‏درایو USB ‏%s" "‏حافظهٔ USB" "ویرایش" - - + "هشدار مصرف داده" "برای مشاهده مصرف و تنظیمات ضربه بزنید." "‏به حد مجاز مصرف داده 2G-3G رسید" "‏به حد مجاز مصرف داده 4G رسید" diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml index 70fddaee0663..c4c223bd7085 100644 --- a/core/res/res/values-fi/strings.xml +++ b/core/res/res/values-fi/strings.xml @@ -214,8 +214,7 @@ "Puhelimen asetukset" "Näytön lukitus" "Katkaise virta" - - + "Hätäpuhelu" "Virheraportti" "Luo virheraportti" "Toiminto kerää tietoja laitteen tilasta ja lähettää ne sähköpostitse. Virheraportti on valmis lähetettäväksi hetken kuluttua - kiitos kärsivällisyydestäsi." @@ -1330,8 +1329,7 @@ "USB-asema: %s" "USB-tallennustila" "Muokkaa" - - + "Datankäyttövaroitus" "Käyttö & asetukset napauttamalla" "2G-3G-tietojen raja saavutettu" "4G-tietojen raja saavutettu" diff --git a/core/res/res/values-fr-rCA/strings.xml b/core/res/res/values-fr-rCA/strings.xml index 3c803e1757d0..e52eeda9f7f3 100644 --- a/core/res/res/values-fr-rCA/strings.xml +++ b/core/res/res/values-fr-rCA/strings.xml @@ -214,8 +214,7 @@ "Options du téléphone" "Verrouillage de l\'écran" "Éteindre" - - + "Urgence" "Rapport de bogue" "Créer un rapport de bogue" "Cela permet de recueillir des informations concernant l\'état actuel de votre appareil. Ces informations sont ensuite envoyées sous forme de courriel. Merci de patienter pendant la préparation du rapport de bogue. Cette opération peut prendre quelques instants." @@ -1330,8 +1329,7 @@ "Clé USB %s" "Mémoire de stockage USB" "Modifier" - - + "Alerte d\'utilisation des données" "Touch. pour aff. util. et param." "Limite de données 2G-3G atteinte" "Limite de données 4G atteinte" diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml index 5a294cb821fe..712aedc006d9 100644 --- a/core/res/res/values-fr/strings.xml +++ b/core/res/res/values-fr/strings.xml @@ -214,8 +214,7 @@ "Options du téléphone" "Verrouillage de l\'écran" "Éteindre" - - + "Urgences" "Rapport de bug" "Créer un rapport de bug" "Cela permet de recueillir des informations concernant l\'état actuel de votre appareil. Ces informations sont ensuite envoyées sous forme d\'e-mail. Merci de patienter pendant la préparation du rapport de bug. Cette opération peut prendre quelques instants." @@ -1330,8 +1329,7 @@ "Clé USB %s" "Mémoire de stockage USB" "Modifier" - - + "Alerte de consommation des données" "Appuyez pour conso/paramètres." "Limite de données 2G-3G atteinte" "Limite de données 4G atteinte" diff --git a/core/res/res/values-gl-rES/strings.xml b/core/res/res/values-gl-rES/strings.xml index b5c6a57081a4..16da26fb171a 100644 --- a/core/res/res/values-gl-rES/strings.xml +++ b/core/res/res/values-gl-rES/strings.xml @@ -214,8 +214,7 @@ "Opcións de teléfono" "Bloqueo da pantalla" "Apagar" - - + "Emerxencia" "Informe de erros" "Crear informe de erros" "Este informe recompilará información acerca do estado actual do teu dispositivo para enviala en forma de mensaxe de correo electrónico. O informe de erros tardará un pouco en completarse desde o seu inicio ata que estea preparado para enviarse, polo que che recomendamos que teñas paciencia." @@ -1330,8 +1329,7 @@ "Unidade USB de %s" "almacenamento USB" "Editar" - - + "Alerta de uso de datos" "Toca para uso e configuración." "Límite de datos de 2G-3G acadado" "Límite de datos de 4G acadado" diff --git a/core/res/res/values-gu-rIN/strings.xml b/core/res/res/values-gu-rIN/strings.xml index f8f364953c79..a233361d5792 100644 --- a/core/res/res/values-gu-rIN/strings.xml +++ b/core/res/res/values-gu-rIN/strings.xml @@ -214,8 +214,7 @@ "ફોન વિકલ્પો" "સ્ક્રીન લૉક" "પાવર બંધ" - - + "કટોકટી" "બગ રિપોર્ટ" "બગ રિપોર્ટ લો" "આ, એક ઇ-મેઇલ સંદેશ તરીકે મોકલવા માટે, તમારા વર્તમાન ઉપકરણ સ્થિતિ વિશેની માહિતી એકત્રિત કરશે. એક બગ રિપોર્ટ પ્રારંભ કરીને તે મોકલવા માટે તૈયાર ન થઈ જાય ત્યાં સુધી તેમાં થોડો સમય લાગશે; કૃપા કરીને ધીરજ રાખો." @@ -1330,8 +1329,7 @@ "%s USB ડ્રાઇવ" "USB સંગ્રહ" "સંપાદિત કરો" - - + "ડેટા વપરાશ ચેતવણી" "વપરાશ અને સેટિંગ્સ જોવા ટૅપ કરો." "2G-3G ડેટા મર્યાદા પર પહોંચ્યાં" "4G ડેટા મર્યાદા સુધી પહોંચ્યાં" diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml index 21d5e9c659e8..ea45c1a17642 100644 --- a/core/res/res/values-hi/strings.xml +++ b/core/res/res/values-hi/strings.xml @@ -214,8 +214,7 @@ "फ़ोन विकल्‍प" "स्‍क्रीन लॉक" "पावर बंद" - - + "आपातकाल" "बग रिपोर्ट" "बग रिपोर्ट प्राप्त करें" "ईमेल संदेश के रूप में भेजने के लिए, इसके द्वारा आपके डिवाइस की वर्तमान स्थिति के बारे में जानकारी एकत्र की जाएगी. बग रिपोर्ट प्रारंभ करने से लेकर भेजने के लिए तैयार होने तक कुछ समय लगेगा; कृपया धैर्य रखें." @@ -1330,8 +1329,7 @@ "%s USB डिस्‍क" "USB मेमोरी" "संपादित करें" - - + "डेटा उपयोग की सूचना" "उपयोग व सेटिंग देखने हेतु टैप करें." "2G-3G डेटा सीमा पूर्ण हो गई" "4G डेटा सीमा पूर्ण हो गई" diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml index 8cf5b6a93097..5f2d3d62d50e 100644 --- a/core/res/res/values-hr/strings.xml +++ b/core/res/res/values-hr/strings.xml @@ -216,8 +216,7 @@ "Opcije telefona" "Zaključavanje zaslona" "Isključi" - - + "Hitno" "Izvješće o bugovima" "Izvješće o programskoj pogrešci" "Time će se prikupiti podaci o trenutačnom stanju vašeg uređaja koje ćete nam poslati u e-poruci. Za pripremu izvješća o programskoj pogrešci potrebno je nešto vremena pa vas molimo za strpljenje." @@ -1356,8 +1355,7 @@ "%s USB pogon" "USB pohrana" "Uredi" - - + "Upozorenje o upotrebi podataka" "Dodirnite za upotrebu i postavke" "Dost. ogr. 2G–3G prijenosa pod." "Dost. ogr. 4G prijenosa podataka" diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml index 85be68ea8207..cd3659a7f0f9 100644 --- a/core/res/res/values-hu/strings.xml +++ b/core/res/res/values-hu/strings.xml @@ -214,8 +214,7 @@ "Telefonbeállítások" "Képernyő lezárása" "Kikapcsolás" - - + "Vészhívás" "Programhiba bejelentése" "Hibajelentés készítése" "Ezzel információt fog gyűjteni az eszköz jelenlegi állapotáról, amelyet a rendszer e-mailben fog elküldeni. Kérjük, legyen türelemmel, amíg a hibajelentés elkészül, és küldhető állapotba kerül." @@ -1330,8 +1329,7 @@ "%s USB-meghajtó" "USB-tár" "Szerkesztés" - - + "Adathasználati értesítés" "Koppintson az adatokért." "2G-/3G-adatkorlát elérve" "4G-adatkorlát elérve" diff --git a/core/res/res/values-hy-rAM/strings.xml b/core/res/res/values-hy-rAM/strings.xml index 5567fc8f8ad7..fd76ab076116 100644 --- a/core/res/res/values-hy-rAM/strings.xml +++ b/core/res/res/values-hy-rAM/strings.xml @@ -214,8 +214,7 @@ "Հեռախոսի ընտրանքներ" "Էկրանի փական" "Անջատել" - - + "Արտակարգ իրավիճակ" "Վրիպակի զեկույց" "Գրել սխալի զեկույց" "Սա տեղեկություններ կհավաքագրի ձեր սարքի առկա կարգավիճակի մասին և կուղարկի այն էլեկտրոնային նամակով: Որոշակի ժամանակ կպահանջվի վրիպակի մասին զեկուցելու պահից սկսած մինչ ուղարկելը: Խնդրում ենք փոքր-ինչ համբերատար լինել:" @@ -1330,8 +1329,7 @@ "USB սարքավար %s-ից" "USB կրիչ" "Խմբագրել" - - + "Տվյալների օգտագործման զգուշացում" "Հպեք և տեսեք օգտագործումը և կարգավորումները:" "2G-3G տվյալների սահմանաչափը սպառվել է" "4G տվյալների սահմանաչափը սպառվել է" diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml index fe1bc2cfaec2..635494c69ce3 100644 --- a/core/res/res/values-in/strings.xml +++ b/core/res/res/values-in/strings.xml @@ -214,8 +214,7 @@ "Opsi telepon" "Kunci layar" "Matikan daya" - - + "Darurat" "Laporan bug" "Ambil laporan bug" "Ini akan mengumpulkan informasi status perangkat Anda saat ini, untuk dikirimkan sebagai pesan email. Harap bersabar, mungkin perlu waktu untuk memulai laporan bug hingga siap dikirim." @@ -1330,8 +1329,7 @@ "Drive USB %s" "Penyimpanan USB" "Edit" - - + "Lansiran penggunaan data" "Ketuk untuk lihat penggunaan & setelan." "Batas data 2G-3G terlampaui" "Batas data 4G terlampaui" diff --git a/core/res/res/values-is-rIS/strings.xml b/core/res/res/values-is-rIS/strings.xml index 54d4c78d49ff..cdc6d4228a9e 100644 --- a/core/res/res/values-is-rIS/strings.xml +++ b/core/res/res/values-is-rIS/strings.xml @@ -214,8 +214,7 @@ "Valkostir síma" "Skjálás" "Slökkva" - - + "Neyðarsímtal" "Villutilkynning" "Útbúa villutilkynningu" "Þetta safnar upplýsingum um núverandi stöðu tækisins til að senda með tölvupósti. Það tekur smástund frá því villutilkynningin er ræst og þar til hún er tilbúin til sendingar – sýndu biðlund." @@ -1330,8 +1329,7 @@ "USB-drif frá %s" "USB-geymsla" "Breyta" - - + "Viðvörun um gagnanotkun" "Ýttu fyrir uppl. og stillingar" "Gagnahámarki 2G og 3G náð" "Gagnahámarki 4G náð" diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml index 3c852051432a..b82470fe2254 100644 --- a/core/res/res/values-it/strings.xml +++ b/core/res/res/values-it/strings.xml @@ -214,8 +214,7 @@ "Opzioni telefono" "Blocco schermo" "Spegni" - - + "Emergenza" "Segnalazione di bug" "Apri segnalazione bug" "Verranno raccolte informazioni sullo stato corrente del dispositivo che saranno inviate sotto forma di messaggio email. Passerà un po\' di tempo prima che la segnalazione di bug aperta sia pronta per essere inviata; ti preghiamo di avere pazienza." @@ -1330,8 +1329,7 @@ "Unità USB %s" "Archivio USB" "Modifica" - - + "Avviso sull\'utilizzo dei dati" "Tocca per uso e impostazioni." "Limite di dati 2G-3G raggiunto" "Limite di dati 4G raggiunto" diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml index 852006068c04..36c52057f38a 100644 --- a/core/res/res/values-iw/strings.xml +++ b/core/res/res/values-iw/strings.xml @@ -218,8 +218,7 @@ "אפשרויות טלפון" "נעילת מסך" "כיבוי" - - + "חירום" "דיווח על באג" "שלח דיווח על באג" "פעולה זו תאסוף מידע על מצב המכשיר הנוכחי שלך על מנת לשלוח אותו כהודעת אימייל. היא תימשך זמן קצר מרגע פתיחת דיווח הבאג ועד לשליחת ההודעה בפועל. אנא המתן בסבלנות." @@ -1382,8 +1381,7 @@ "‏כונן USB של %s" "‏אחסון USB" "ערוך" - - + "התראה לשימוש בנתונים" "הקש כדי להציג נתוני שימוש והגדרות." "‏הגעת למגבלת הנתונים של 2G-3G" "‏הגעת למגבלת הנתונים של 4G" diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml index d262a4eb0035..fadc62c83103 100644 --- a/core/res/res/values-ja/strings.xml +++ b/core/res/res/values-ja/strings.xml @@ -214,8 +214,7 @@ "携帯電話オプション" "画面ロック" "電源を切る" - - + "緊急通報" "バグレポート" "バグレポートを取得" "現在の端末の状態に関する情報が収集され、その内容がメールで送信されます。バグレポートが開始してから送信可能な状態となるまでには多少の時間がかかりますのでご了承ください。" @@ -1330,8 +1329,7 @@ "%s製USBドライブ" "USBストレージ" "編集" - - + "データ使用量に関する通知" "タップして使用状況と設定を表示します。" "2G~3Gデータの上限に達しました" "4Gデータの上限に達しました" diff --git a/core/res/res/values-ka-rGE/strings.xml b/core/res/res/values-ka-rGE/strings.xml index 2f791efca1e7..a8fed8b577b5 100644 --- a/core/res/res/values-ka-rGE/strings.xml +++ b/core/res/res/values-ka-rGE/strings.xml @@ -214,8 +214,7 @@ "ტელეფონის პარამეტრები" "ეკრანის დაბლოკვა" "კვების გამორთვა" - - + "საგანგებო სამსახურები" "ხარვეზის შესახებ ანგარიში" "შექმენით შეცდომის ანგარიში" "იგი შეაგროვებს ინფორმაციას თქვენი მოწყობილობის ამჟამინდელი მდგომარეობის შესახებ, რათა ის ელფოსტის შეტყობინების სახით გააგზავნოს. ხარვეზის ანგარიშის მომზადებასა და შეტყობინების გაგზავნას გარკვეული დრო სჭირდება. გთხოვთ, მოითმინოთ." @@ -1330,8 +1329,7 @@ "%s USB დისკი" "USB მეხსიერება" "რედაქტირება" - - + "მონაცემთა მოხმარების გაფრთხილება" "შეეხეთ მოხმარებისა და პარამეტრების სანახავად." "2G-3G მონაცემთა ლიმიტი ამოიწურა" "4G მონაცემთა ლიმიტი ამოიწურა" diff --git a/core/res/res/values-kk-rKZ/strings.xml b/core/res/res/values-kk-rKZ/strings.xml index d8d63f5177b7..00264ad8969a 100644 --- a/core/res/res/values-kk-rKZ/strings.xml +++ b/core/res/res/values-kk-rKZ/strings.xml @@ -214,8 +214,7 @@ "Телефон опциялары" "Экранды құлыптау" "Өшіру" - - + "Төтенше жағдай" "Вирус туралы хабарлау" "Қате туралы есеп құру" "Құрылғының қазіргі күйі туралы ақпаратты жинап, электрондық хабармен жібереді. Есеп әзір болғанша біраз уақыт кетеді, шыдай тұрыңыз." @@ -1330,8 +1329,7 @@ "%s USB дискі" "USB жады" "Өзгерту" - - + "Деректер трафигі туралы ескерту" "Трафик пен параметрлерді көру үшін түртіңіз." "2G-3G деректер шегіне жеттіңіз" "4G деректер шегіне жеттіңіз" diff --git a/core/res/res/values-km-rKH/strings.xml b/core/res/res/values-km-rKH/strings.xml index 66ffddce0df5..144ccce82833 100644 --- a/core/res/res/values-km-rKH/strings.xml +++ b/core/res/res/values-km-rKH/strings.xml @@ -214,8 +214,7 @@ "ជម្រើស​ទូរស័ព្ទ" "ចាក់​សោ​អេក្រង់" "បិទ" - - + "អាសន្ន" "របាយការណ៍​កំហុស" "យក​របាយការណ៍​កំហុស" "វា​នឹង​​ប្រមូល​ព័ត៌មាន​អំពី​ស្ថានភាព​ឧបករណ៍​របស់​អ្នក ដើម្បី​ផ្ញើ​ជា​សារ​អ៊ីមែល។ វា​នឹង​ចំណាយ​ពេល​តិច​ពី​ពេល​ចាប់ផ្ដើម​របាយការណ៍​រហូត​ដល់​ពេល​វា​រួចរាល់​ដើម្បី​ផ្ញើ សូម​អត់ធ្មត់។" @@ -1332,8 +1331,7 @@ "ឧបករណ៍ផ្ទុក USB %s" "ឧបករណ៍​ផ្ទុក​យូអេសប៊ី" "កែសម្រួល​" - - + "ការដាស់តឿនពីការប្រើទិន្នន័យ" "ប៉ះដើម្បីមើលការប្រើប្រាស់ និងការកំណត់" "បាន​ដល់​ដែន​កំណត់​ទិន្នន័យ 2G-3G" "បាន​ដល់​ដែន​កំណត់​ទិន្នន័យ 4G" diff --git a/core/res/res/values-kn-rIN/strings.xml b/core/res/res/values-kn-rIN/strings.xml index c589cf303534..7c244a8ad9a7 100644 --- a/core/res/res/values-kn-rIN/strings.xml +++ b/core/res/res/values-kn-rIN/strings.xml @@ -214,8 +214,7 @@ "ಫೋನ್ ಆಯ್ಕೆಗಳು" "ಸ್ಕ್ರೀನ್ ಲಾಕ್" "ಪವರ್ ಆಫ್ ಮಾಡು" - - + "ತುರ್ತು" "ದೋಷದ ವರದಿ" "ದೋಷ ವರದಿ ರಚಿಸಿ" "ನಿಮ್ಮ ಸಾಧನದ ಪ್ರಸ್ತುತ ಸ್ಥಿತಿಯ ಕುರಿತು ಮಾಹಿತಿಯನ್ನು ಸಂಗ್ರಹಿಸಿಕೊಳ್ಳುವುದರ ಜೊತೆ ಇ-ಮೇಲ್ ರೂಪದಲ್ಲಿ ನಿಮಗೆ ರವಾನಿಸುತ್ತದೆ. ಇದು ದೋಷ ವರದಿಯನ್ನು ಪ್ರಾರಂಭಿಸಿದ ಸಮಯದಿಂದ ಅದನ್ನು ಕಳುಹಿಸುವವರೆಗೆ ಸ್ವಲ್ಪ ಸಮಯವನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ; ದಯವಿಟ್ಟು ತಾಳ್ಮೆಯಿಂದಿರಿ." @@ -1330,8 +1329,7 @@ "%s USB ಡ್ರೈವ್" "USB ಸಂಗ್ರಹಣೆ" "ಎಡಿಟ್" - - + "ಡೇಟಾ ಬಳಕೆ ಎಚ್ಚರಿಕೆ" "ಬಳಕೆ ಮತ್ತು ಸೆಟ್ಟಿಂಗ್‍ಗಳನ್ನು ವೀಕ್ಷಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ." "2G-3G ಡೇಟಾ ಮೀತಿಯನ್ನು ತಲುಪಿದೆ" "4G ಡೇಟಾ ಮೀತಿಯನ್ನು ತಲುಪಿದೆ" diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml index a003fcbc4276..82901e0fa72b 100644 --- a/core/res/res/values-ko/strings.xml +++ b/core/res/res/values-ko/strings.xml @@ -214,8 +214,7 @@ "휴대전화 옵션" "화면 잠금" "종료" - - + "긴급 전화" "버그 신고" "버그 신고" "현재 기기 상태에 대한 정보를 수집하여 이메일 메시지로 전송합니다. 버그 신고를 시작하여 전송할 준비가 되려면 약간 시간이 걸립니다." @@ -1330,8 +1329,7 @@ "%s USB 드라이브" "USB 저장소" "수정" - - + "데이터 사용 알림" "사용량 및 설정을 보려면 탭하세요." "2G-3G 데이터 한도에 도달함" "4G 데이터 한도에 도달함" diff --git a/core/res/res/values-ky-rKG/strings.xml b/core/res/res/values-ky-rKG/strings.xml index c9eb693d5753..93c041c359e3 100644 --- a/core/res/res/values-ky-rKG/strings.xml +++ b/core/res/res/values-ky-rKG/strings.xml @@ -214,8 +214,7 @@ "Телефон мүмкүнчүлүктөрү" "Экран кулпусу" "Кубатын өчүрүү" - - + "Тез жардам" "Ката тууралуу билдирүү" "Ката тууралуу билдирүү түзүү" "Бул сиздин түзмөгүңүздүн учурдагы абалын эмейл билдирүүсү катары жөнөтүш максатында маалымат чогултат. Ката тууралуу билдирүү түзүлүп башталып, жөнөтүлгөнгө чейин бир аз убакыт керек болот; сураныч, бир аз күтө туруңуз." @@ -1330,8 +1329,7 @@ "%s USB түзмөгү" "USB эстутуму" "Өзгөртүү" - - + "Дайындарды колдонуу айгайы" "Колдонулушун жана жөндөөлөрүн көрүү үчүн таптаңыз." "2G-3G дайындар чегине жетти" "4G дайындар чегине жетти" diff --git a/core/res/res/values-lo-rLA/strings.xml b/core/res/res/values-lo-rLA/strings.xml index 90b5bf308f9f..18f285f96d89 100644 --- a/core/res/res/values-lo-rLA/strings.xml +++ b/core/res/res/values-lo-rLA/strings.xml @@ -214,8 +214,7 @@ "ໂຕເລືອກໂທລະສັບ" "ລັອກໜ້າຈໍ" "ປິດ" - - + "ສຸກເສີນ" "ລາຍງານຂໍ້ຜິດພາດ" "ໃຊ້ລາຍງານຂໍ້ບົກພ່ອງ" "ນີ້ຈະເປັນການເກັບກຳຂໍ້ມູນກ່ຽວກັບ ສະຖານະປັດຈຸບັນຂອງອຸປະກອນທ່ານ ເພື່ອສົ່ງເປັນຂໍ້ຄວາມທາງອີເມວ. ມັນຈະໃຊ້ເວລາໜ້ອຍນຶ່ງ ໃນການເລີ່ມຕົ້ນການລາຍງານຂໍ້ຜິດພາດ ຈົນກວ່າຈະພ້ອມທີ່ຈະສົ່ງໄດ້, ກະລຸນາລໍຖ້າ." @@ -1330,8 +1329,7 @@ "%s USB ດ​ຣ້າຍ" "ບ່ອນຈັດເກັບຂໍ້ມູນ USB" "ແກ້ໄຂ" - - + "ແຈ້ງເຕືອນການໃຊ້ອິນເຕີເນັດ" "ແຕະເພື່ອເບິ່ງການນຳໃຊ້ ແລະ ການຕັ້ງຄ່າ." "ໃຊ້​ຂໍ້​ມູນ 2G-3G ຮອດ​ຈຳ​ນວນ​ທີ່​ຈຳ​ກັດ​ແລ້ວ" "ໃຊ້​ຂໍ້​ມູນ 4G ຮອດ​ຈຳ​ນວນ​ທີ່​ຈຳ​ກັດ​ແລ້ວ" diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml index 1e001e9bd95d..7aed9efc8623 100644 --- a/core/res/res/values-lt/strings.xml +++ b/core/res/res/values-lt/strings.xml @@ -218,8 +218,7 @@ "Telefono parinktys" "Ekrano užraktas" "Išjungiamas maitinimas" - - + "Skambutis pagalbos numeriu" "Pranešimas apie riktą" "Pranešti apie riktą" "Bus surinkta informacija apie dabartinę įrenginio būseną ir išsiųsta el. pašto pranešimu. Šiek tiek užtruks, kol pranešimas apie riktą bus paruoštas siųsti; būkite kantrūs." @@ -1382,8 +1381,7 @@ "„%s“ atmintukas" "USB atmintis" "Redaguoti" - - + "Duomenų naudojimo įspėjimas" "Pal. ir perž. naud. i. bei nust." "Pasiektas 2G–3G duomenų apribojimas" "Pasiektas 4G duomenų apribojimas" diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml index 803254202467..ff2e97482524 100644 --- a/core/res/res/values-lv/strings.xml +++ b/core/res/res/values-lv/strings.xml @@ -216,8 +216,7 @@ "Tālruņa opcijas" "Ekrāna bloķētājs" "Strāvas padeve ir izslēgta." - - + "Ārkārtas" "Kļūdu ziņojums" "Kļūdu ziņojuma sagatavošana" "Veicot šo darbību, tiks apkopota informācija par jūsu ierīces pašreizējo stāvokli un nosūtīta e-pasta ziņojuma veidā. Kļūdu ziņojuma pabeigšanai un nosūtīšanai var būt nepieciešams laiks. Lūdzu, esiet pacietīgs." @@ -1356,8 +1355,7 @@ "%s USB disks" "USB atmiņa" "Rediģēt" - - + "Brīdinājums par datu lietojumu" "Piesk., lai sk. lietoj. un iest." "Sasniegts 2G-3G datu ierobež." "Sasniegts 4G datu ierobežojums" diff --git a/core/res/res/values-mk-rMK/strings.xml b/core/res/res/values-mk-rMK/strings.xml index 1bbff009a2ef..eb86a77e0e5d 100644 --- a/core/res/res/values-mk-rMK/strings.xml +++ b/core/res/res/values-mk-rMK/strings.xml @@ -214,8 +214,7 @@ "Опции на телефон" "Заклучи екран" "Исклучи" - - + "Итен случај" "Извештај за грешка" "Земи извештај за грешки" "Ова ќе собира информации за моменталната состојба на вашиот уред, за да ги испрати како порака по е-пошта. Тоа ќе одземе малку време почнувајќи од извештајот за грешки додека не се подготви за праќање; бидете трпеливи." @@ -1332,8 +1331,7 @@ "%s УСБ-меморија" "УСБ меморија" "Уреди" - - + "Известување за потрошен сообраќај" "Допрете за употреба и поставки." "Постигна лимит за 2G-3G податоци" "Постигнат лимит за 4G податоци" diff --git a/core/res/res/values-ml-rIN/strings.xml b/core/res/res/values-ml-rIN/strings.xml index 11ea582dcaab..1db3202a13bb 100644 --- a/core/res/res/values-ml-rIN/strings.xml +++ b/core/res/res/values-ml-rIN/strings.xml @@ -214,8 +214,7 @@ "ഫോൺ ഓപ്‌ഷനുകൾ" "സ്‌ക്രീൻ ലോക്ക്" "പവർ ഓഫാക്കുക" - - + "അടിയന്തിരാവശ്യം" "ബഗ് റിപ്പോർട്ട്" "ബഗ് റിപ്പോർട്ട് എടുക്കുക" "ഒരു ഇമെയിൽ സന്ദേശമായി അയയ്‌ക്കുന്നതിന്, ഇത് നിങ്ങളുടെ നിലവിലെ ഉപകരണ നിലയെക്കുറിച്ചുള്ള വിവരങ്ങൾ ശേഖരിക്കും. ബഗ് റിപ്പോർട്ട് ആരംഭിക്കുന്നതിൽ നിന്ന് ഇത് അയയ്‌ക്കാനായി തയ്യാറാകുന്നതുവരെ അൽപ്പസമയമെടുക്കും; ക്ഷമയോടെ കാത്തിരിക്കുക." @@ -1330,8 +1329,7 @@ "%s USB ഡ്രൈവ്" "USB സ്റ്റോറേജ്" "എഡിറ്റുചെയ്യുക" - - + "ഡാറ്റാ ഉപയോഗ അലേർട്ട്" "ഉപയോഗവും ക്രമീകരണവും കാണാൻ ടാപ്പുചെയ്യുക." "2G-3G ഡാറ്റ പരിധിയിലെത്തി" "4G ഡാറ്റ പരിധിയിലെത്തി" diff --git a/core/res/res/values-mn-rMN/strings.xml b/core/res/res/values-mn-rMN/strings.xml index 0498d7958f0a..f936b85966a7 100644 --- a/core/res/res/values-mn-rMN/strings.xml +++ b/core/res/res/values-mn-rMN/strings.xml @@ -214,8 +214,7 @@ "Утасны сонголтууд" "Дэлгэцний түгжээ" "Унтраах" - - + "Яаралтай тусламж" "Алдаа мэдээллэх" "Согог репорт авах" "Энэ таны төхөөрөмжийн одоогийн статусын талаарх мэдээллийг цуглуулах ба имэйл мессеж болгон илгээнэ. Алдааны мэдэгдлээс эхэлж илгээхэд бэлэн болоход хэсэг хугацаа зарцуулагдана тэвчээртэй байна уу." @@ -1330,8 +1329,7 @@ "%s USB диск" "USB сан" "Засах" - - + "Дата ашиглалтын сануулга" "Хэрэглээ, тохиргоог харах бол товш." "2G-3G дата хязгаарт хүрсэн" "4G дата хязгаарт хүрсэн" diff --git a/core/res/res/values-mr-rIN/strings.xml b/core/res/res/values-mr-rIN/strings.xml index f60478cb1f94..0531e34a857f 100644 --- a/core/res/res/values-mr-rIN/strings.xml +++ b/core/res/res/values-mr-rIN/strings.xml @@ -214,8 +214,7 @@ "फोन पर्याय" "स्क्रीन लॉक" "बंद" - - + "आणीबाणी" "दोष अहवाल" "दोष अहवाल घ्या" "ई-मेल संदेश म्हणून पाठविण्यासाठी, हे आपल्या वर्तमान डिव्हाइस स्थितीविषयी माहिती संकलित करेल. दोष अहवाल प्रारंभ करण्यापासून तो पाठविण्यापर्यंत थोडा वेळ लागेल; कृपया धीर धरा." @@ -1330,8 +1329,7 @@ "%s USB ड्राइव्‍ह" "USB संचयन" "संपादित करा" - - + "डेटा वापर सूचना" "वापर आणि सेटिंग्ज पाहण्यासाठी टॅप करा." "2G-3G डेटा मर्यादा गाठली" "4G डेटा मर्यादा गाठली" diff --git a/core/res/res/values-ms-rMY/strings.xml b/core/res/res/values-ms-rMY/strings.xml index 3fa7f980b642..e096aecd0188 100644 --- a/core/res/res/values-ms-rMY/strings.xml +++ b/core/res/res/values-ms-rMY/strings.xml @@ -214,8 +214,7 @@ "Pilihan telefon" "Kunci skrin" "Matikan kuasa" - - + "Kecemasan" "Laporan pepijat" "Ambil laporan pepijat" "Ini akan mengumpul maklumat tentang keadaan peranti semasa anda untuk dihantarkan sebagai mesej e-mel. Harap bersabar, mungkin perlu sedikit masa untuk memulakan laporan sehingga siap untuk dihantar." @@ -1330,8 +1329,7 @@ "Pemacu USB %s" "Storan USB" "Edit" - - + "Makluman penggunaan data" "Ketik utk lihat p\'gunaan & ttpn." "Mencapai had data 2G-3G" "Mencapai had data 4G" diff --git a/core/res/res/values-my-rMM/strings.xml b/core/res/res/values-my-rMM/strings.xml index f0461dd8e3b2..80d331d6ec34 100644 --- a/core/res/res/values-my-rMM/strings.xml +++ b/core/res/res/values-my-rMM/strings.xml @@ -214,8 +214,7 @@ "ဖုန်းဆိုင်ရာရွေးချယ်မှုများ" "ဖုန်းမျက်နှာပြင်အား သော့ချရန်" "ပါဝါပိတ်ရန်" - - + "အရေးပေါ်" "အမှားရှာဖွေပြင်ဆင်မှုမှတ်တမ်း" "အမှားရှာဖွေပြင်ဆင်မှုမှတ်တမ်းအား ယူရန်" "သင့်ရဲ့ လက်ရှိ စက်အခြေအနေ အချက်အလက်များကို အီးမေးလ် အနေဖြင့် ပေးပို့ရန် စုဆောင်းပါမည်။ အမှားရှာဖွေပြင်ဆင်မှုမှတ်တမ်းမှ ပေးပို့ရန် အသင့်ဖြစ်သည်အထိ အချိန် အနည်းငယ်ကြာမြင့်မှာ ဖြစ်သဖြင့် သည်းခံပြီး စောင့်ပါရန်" @@ -1330,8 +1329,7 @@ "%s USB ဒရိုက်ဗ်" "USBဖြင့် သိမ်းဆည်း" "ပြင်ဆင်ရန်" - - + "ဒေတာအသုံးပြုမှုသတိပေးချက်" "အသုံးပြုမှုနှင့် ဆက်တင်များကိုကြည့်ရန် တို့ပါ။" "2G-3G ဒေတာ ကန့်သတ်ချက် ပြည့်မီသွားပြီ" "4G ဒေတာ ကန့်သတ်ချက် ပြည့်မီသွားပြီ" diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml index 846d89bc7110..691da31748c6 100644 --- a/core/res/res/values-nb/strings.xml +++ b/core/res/res/values-nb/strings.xml @@ -214,8 +214,7 @@ "Telefoninnstillinger" "Lås skjermen" "Slå av" - - + "Nødssituasjon" "Feilrapport" "Utfør feilrapport" "Informasjon om tilstanden til enheten din samles inn og sendes som en e-post. Det tar litt tid fra du starter feilrapporten til e-posten er klar, så vær tålmodig." @@ -1330,8 +1329,7 @@ "%s USB-stasjon" "USB-lagring" "Rediger" - - + "Varsel om databruk" "Trykk for å se bruken og innstillingene." "Datagrensen for 2G-3G er nådd" "Datagrensen for 4G er nådd" diff --git a/core/res/res/values-ne-rNP/strings.xml b/core/res/res/values-ne-rNP/strings.xml index a193e9722551..3d5cfeddd91c 100644 --- a/core/res/res/values-ne-rNP/strings.xml +++ b/core/res/res/values-ne-rNP/strings.xml @@ -214,8 +214,7 @@ "फोन विकल्पहरू" "स्क्रिन बन्द" "बन्द गर्नुहोस्" - - + "आपतकालीन" "बग रिपोर्ट" "बग रिपोर्ट लिनुहोस्" "एउटा इमेल सन्देशको रूपमा पठाउनलाई यसले तपाईँको हालैको उपकरणको अवस्थाको बारेमा सूचना जम्मा गर्ने छ। बग रिपोर्ट सुरु गरेदेखि पठाउन तयार नभएसम्म यसले केही समय लिन्छ; कृपया धैर्य गर्नुहोस्।" @@ -1336,8 +1335,7 @@ "%s USB ड्राइभ" "USB भण्डारण" "सम्पादन गर्नुहोस्" - - + "डेटा प्रयोग बारे सतर्कता" "प्रयोग र सेटिङहरू हेर्न ट्याप गर्नुहोस्।" "2G-3G डेटा सीमा पुग्यो" "4G डेटा सीमा पुग्यो" diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml index e6067fd86ee3..8c60dcd5518b 100644 --- a/core/res/res/values-nl/strings.xml +++ b/core/res/res/values-nl/strings.xml @@ -214,8 +214,7 @@ "Telefoonopties" "Schermvergrendeling" "Uitschakelen" - - + "Noodgeval" "Foutenrapport" "Foutenrapport genereren" "Hiermee worden gegevens over de huidige status van je apparaat verzameld en als e-mail verzonden. Wanneer u een foutenrapport start, duurt het even voordat het kan worden verzonden. Even geduld alstublieft." @@ -1330,8 +1329,7 @@ "%s USB-drive" "USB-opslag" "Bewerken" - - + "Melding voor datagebruik" "Tik voor gebruik en instellingen" "Gegevenslimiet van 2G-3G bereikt" "Gegevenslimiet van 4G bereikt" diff --git a/core/res/res/values-pa-rIN/strings.xml b/core/res/res/values-pa-rIN/strings.xml index 21b58d26be00..ca170fc07c55 100644 --- a/core/res/res/values-pa-rIN/strings.xml +++ b/core/res/res/values-pa-rIN/strings.xml @@ -214,8 +214,7 @@ "ਫੋਨ ਚੋਣਾਂ" "ਸਕ੍ਰੀਨ ਲੌਕ" "ਪਾਵਰ ਬੰਦ" - - + "ਸੰਕਟਕਾਲ" "ਬਗ ਰਿਪੋਰਟ" "ਬਗ ਰਿਪੋਰਟ ਲਓ" "ਇਹ ਇੱਕ ਈ-ਮੇਲ ਸੁਨੇਹਾ ਭੇਜਣ ਲਈ, ਤੁਹਾਡੀ ਵਰਤਮਾਨ ਡੀਵਾਈਸ ਬਾਰੇ ਜਾਣਕਾਰੀ ਇਕੱਤਰ ਕਰੇਗਾ। ਬਗ ਰਿਪੋਰਟ ਸ਼ੁਰੂ ਕਰਨ ਵਿੱਚ ਥੋੜ੍ਹਾ ਸਮਾਂ ਲੱਗੇਗਾ ਜਦੋਂ ਤੱਕ ਇਹ ਭੇਜੇ ਜਾਣ ਲਈ ਤਿਆਰ ਨਾ ਹੋਵੇ, ਕਿਰਪਾ ਕਰਕੇ ਧੀਰਜ ਰੱਖੋ।" @@ -1330,8 +1329,7 @@ "%s USB ਡ੍ਰਾਇਵ" "USB ਸਟੋਰੇਜ" "ਸੰਪਾਦਿਤ ਕਰੋ" - - + "ਡੈਟਾ ਵਰਤੋਂ ਚੇਤਾਵਨੀ" "ਵਰਤੋਂ ਅਤੇ ਸੈਟਿੰਗਾਂ ਨੂੰ ਵੇਖਣ ਲਈ ਟੈਪ ਕਰੋ।" "2G-3G ਡੈਟਾ ਸੀਮਾ ਪੂਰੀ ਹੋ ਗਈ" "4G ਡੈਟਾ ਸੀਮਾ ਪੂਰੀ ਹੋਈ" diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml index ca76463548e5..cec858e81260 100644 --- a/core/res/res/values-pl/strings.xml +++ b/core/res/res/values-pl/strings.xml @@ -218,8 +218,7 @@ "Opcje telefonu" "Blokada ekranu" "Wyłącz" - - + "Alarmowe" "Zgłoszenie błędu" "Zgłoś błąd" "Informacje o bieżącym stanie urządzenia zostaną zebrane i wysłane e-mailem. Przygotowanie zgłoszenia błędu do wysłania chwilę potrwa, więc zachowaj cierpliwość." @@ -1382,8 +1381,7 @@ "Dysk USB (%s)" "Nośnik USB" "Edytuj" - - + "Alert transmisji danych" "Kliknij, by wyświetlić użycie i ustawienia." "Osiągnięto limit danych 2G/3G" "Osiągnięto limit danych 4G" diff --git a/core/res/res/values-pt-rBR/strings.xml b/core/res/res/values-pt-rBR/strings.xml index db00df4a9f74..4f3b09fd5ca6 100644 --- a/core/res/res/values-pt-rBR/strings.xml +++ b/core/res/res/values-pt-rBR/strings.xml @@ -214,8 +214,7 @@ "Opções do telefone" "Bloquear tela" "Desligar" - - + "Emergência" "Relatório de bugs" "Obter relatório de bugs" "Isto coletará informações sobre o estado atual do dispositivo para enviá-las em uma mensagem de e-mail. Após iniciar o relatório de bugs, será necessário aguardar algum tempo até que esteja pronto para ser enviado." @@ -1330,8 +1329,7 @@ "Drive USB %s" "Armazenamento USB" "Editar" - - + "Alerta de uso de dados" "Toque para ver uso e config." "Limite de dados 2G-3G atingido" "Limite de dados 4G atingido" diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml index a268b7e3507e..64db1c2ad70b 100644 --- a/core/res/res/values-pt-rPT/strings.xml +++ b/core/res/res/values-pt-rPT/strings.xml @@ -214,8 +214,7 @@ "Opções do telefone" "Bloqueio de ecrã" "Desligar" - - + "Emergência" "Relatório de erros" "Criar relatório de erros" "Será recolhida informação sobre o estado atual do seu dispositivo a enviar através de uma mensagem de email. Demorará algum tempo até que o relatório de erro esteja pronto para ser enviado. Aguarde um pouco." @@ -1330,8 +1329,7 @@ "Unidade USB %s" "Armazenamento USB" "Editar" - - + "Alerta de utilização de dados" "Toque para ver a utilização e definições" "Limite de dados 2G/3G atingido" "Limite de dados 4G atingido" diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml index db00df4a9f74..4f3b09fd5ca6 100644 --- a/core/res/res/values-pt/strings.xml +++ b/core/res/res/values-pt/strings.xml @@ -214,8 +214,7 @@ "Opções do telefone" "Bloquear tela" "Desligar" - - + "Emergência" "Relatório de bugs" "Obter relatório de bugs" "Isto coletará informações sobre o estado atual do dispositivo para enviá-las em uma mensagem de e-mail. Após iniciar o relatório de bugs, será necessário aguardar algum tempo até que esteja pronto para ser enviado." @@ -1330,8 +1329,7 @@ "Drive USB %s" "Armazenamento USB" "Editar" - - + "Alerta de uso de dados" "Toque para ver uso e config." "Limite de dados 2G-3G atingido" "Limite de dados 4G atingido" diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml index 9259da02412d..192d9c1a1f95 100644 --- a/core/res/res/values-ro/strings.xml +++ b/core/res/res/values-ro/strings.xml @@ -216,8 +216,7 @@ "Opțiuni telefon" "Blocați ecranul" "Opriți alimentarea" - - + "Urgență" "Raport despre erori" "Executați un raport despre erori" "Acest raport va colecta informații despre starea actuală a dispozitivului, pentru a le trimite într-un e-mail. Aveți răbdare după pornirea raportului despre erori până când va fi gata de trimis." @@ -1356,8 +1355,7 @@ "Unitate USB %s" "Dsipozitiv de stocare USB" "Editați" - - + "Alertă pentru utilizarea datelor" "Atingeți ca să vedeți utilizarea/setările." "Ați atins limita de date 2G-3G" "Ați atins limita de date 4G" diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml index 74ee034e5aaa..b1b14f9d2292 100644 --- a/core/res/res/values-ru/strings.xml +++ b/core/res/res/values-ru/strings.xml @@ -218,8 +218,7 @@ "Параметры телефона" "Блокировка экрана" "Отключить питание" - - + "Экстренный вызов" "Отчет об ошибке" "Отчет об ошибке" "Информация о текущем состоянии вашего устройства будет собрана и отправлена по электронной почте. Подготовка отчета займет некоторое время." @@ -1382,8 +1381,7 @@ "USB-накопитель %s" "USB-накопитель" "Изменить" - - + "Лимит на передачу данных" "Нажмите, чтобы проверить трафик и настройки." "Достигнут лимит трафика 2G/3G" "Достигнут лимит трафика 4G" diff --git a/core/res/res/values-si-rLK/strings.xml b/core/res/res/values-si-rLK/strings.xml index 8d5f9ab84a72..f3c8e7bad0d6 100644 --- a/core/res/res/values-si-rLK/strings.xml +++ b/core/res/res/values-si-rLK/strings.xml @@ -214,8 +214,7 @@ "දුරකථන විකල්ප" "තිර අගුල" "බලය අක්‍රිය කරන්න" - - + "හදිසි" "දෝෂ වර්තාව" "දෝෂ වාර්තාවක් ගන්න" "ඊ-තැපැල් පණිවිඩයක් ලෙස යැවීමට මෙය ඔබගේ වත්මන් උපාංග තත්වය ගැන තොරතුරු එකතු කරනු ඇත. දෝෂ වාර්තාව ආරම්භ කර එය යැවීමට සූදානම් කරන තෙක් එයට කිසියම් කාලයක් ගතවනු ඇත; කරුණාකර ඉවසන්න." @@ -1332,8 +1331,7 @@ "%s USB ධාවකය" "USB ආචයනය" "සංස්කරණය කරන්න" - - + "දත්ත භාවිතය ගැන ඇඟවීම" "භාවිතය සහ සැකසීම් බැලීමට තට්ටු කරන්න." "2G-3G දත්ත සීමාවට ළඟාවී ඇත" "4G දත්ත සීමාවට ළඟාවී ඇත" diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml index 2c3ae1f305b3..a94c3b40d5dc 100644 --- a/core/res/res/values-sk/strings.xml +++ b/core/res/res/values-sk/strings.xml @@ -218,8 +218,7 @@ "Možnosti telefónu" "Zámka obrazovky" "Vypnúť" - - + "Tiesňové volanie" "Hlásenie o chybách" "Vytvoriť hlásenie chyby" "Týmto zhromaždíte informácie o aktuálnom stave zariadenia. Informácie je potom možné odoslať e-mailom, chvíľu však potrvá, kým bude hlásenie chyby pripravené na odoslanie. Prosíme vás preto o trpezlivosť." @@ -1382,8 +1381,7 @@ "Disk USB %s" "Ukladací priestor USB" "Upraviť" - - + "Upozornenie na spotrebu dát" "Klepnutím zobrazíte využitie a nastavenia." "Bol dosiahnutý limit 2G–3G" "Bol dosiahnutý limit 4G" diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml index f781ecc9bfbf..a19643b13533 100644 --- a/core/res/res/values-sl/strings.xml +++ b/core/res/res/values-sl/strings.xml @@ -218,8 +218,7 @@ "Možnosti telefona" "Zaklep zaslona" "Izklopi" - - + "Klic v sili" "Poročilo o napakah" "Ustvari poročilo o napakah" "S tem bodo zbrani podatki o trenutnem stanju naprave, ki bodo poslani v e-poštnem sporočilu. Izvedba poročila o napakah in priprava trajata nekaj časa, zato bodite potrpežljivi." @@ -1382,8 +1381,7 @@ "Pogon USB %s" "Pomnilnik USB" "Uredi" - - + "Opozorilo o preneseni količini podatkov" "Dot. se za ogled upor. in nast." "Dosežena pod. omejitev za 2G/3G" "Dosežena pod. omejitev za 4G" diff --git a/core/res/res/values-sq-rAL/strings.xml b/core/res/res/values-sq-rAL/strings.xml index cdf61bc09fe5..624b00466a75 100644 --- a/core/res/res/values-sq-rAL/strings.xml +++ b/core/res/res/values-sq-rAL/strings.xml @@ -214,8 +214,7 @@ "Opsionet e telefonit" "Kyçja e ekranit" "Fik" - - + "Urgjenca" "Raporti i defekteve në kod" "Merr raportin e defekteve në kod" "Ky funksion mundëson mbledhjen e informacioneve mbi gjendjen aktuale të pajisjes për ta dërguar si mesazh mail-i. Do të duhet pak kohë nga nisja e raportit të defekteve në kod. Faleminderit për durimin." @@ -1330,8 +1329,7 @@ "USB-ja nga %s" "Hapësira ruajtëse e USB-së" "Redakto" - - + "Sinjalizimi i të dhënave" "Trokit për të parë përdorimin dhe cilësimet." "Kufiri i të dhënave 2G-3G u arrit" "Kufiri i të dhënave 4G u arrit" diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml index b2a08fec4409..ff828b3441a1 100644 --- a/core/res/res/values-sr/strings.xml +++ b/core/res/res/values-sr/strings.xml @@ -216,8 +216,7 @@ "Опције телефона" "Закључај екран" "Искључи" - - + "Хитни позив" "Извештај о грешци" "Направи извештај о грешци" "Овим ће се прикупити информације о тренутном стању уређаја како би биле послате у поруци е-поште. Од започињања извештаја о грешци до тренутка за његово слање проћи ће неко време; будите стрпљиви." @@ -1356,8 +1355,7 @@ "%s USB диск" "USB меморија" "Измени" - - + "Обавештење о потрошњи података" "Додирните за потрошњу и подешавања." "Нема више 2G-3G података" "Нема више 4G података" diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml index fb9664ba7975..d43282db7686 100644 --- a/core/res/res/values-sv/strings.xml +++ b/core/res/res/values-sv/strings.xml @@ -214,8 +214,7 @@ "Telefonalternativ" "Skärmlås" "Stäng av" - - + "Nödsituation" "Felrapport" "Skapa felrapport" "Nu hämtas information om aktuell status för enheten, som sedan skickas i ett e-postmeddelade. Det tar en liten stund innan felrapporten är färdig och kan skickas, så vi ber dig ha tålamod." @@ -1330,8 +1329,7 @@ "USB-enhet (%s)" "USB-lagring" "Redigera" - - + "Varning – dataanvändning" "Visa användning och inställning." "Datagränsen för 2G-3G har uppnåtts" "Datagränsen för 4G har uppnåtts" diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml index f91bd99340a3..cc750d6f37bb 100644 --- a/core/res/res/values-sw/strings.xml +++ b/core/res/res/values-sw/strings.xml @@ -212,8 +212,7 @@ "Chaguo za simu" "Funga skrini" "Zima" - - + "Dharura" "Ripoti ya hitilafu" "Chukua ripoti ya hitilafu" "Hii itakusanya maelezo kuhusu hali ya kifaa chako kwa sasa, na itume kama barua pepe. Itachukua muda mfupi tangu ripoti ya hitilafu ianze kuzalishwa hadi iwe tayari kutumwa; vumilia." @@ -1328,8 +1327,7 @@ "Hifadhi ya USB iliyotengenezwa na %s" "Hifadhi ya USB" "Badilisha" - - + "Tahadhari ya matumizi ya data" "Gonga ili uangalie matumizi na mipangilio." "Kikomo data ya 2G-3G kimefikiwa" "Kikomo cha data ya 4G kimefikiwa" diff --git a/core/res/res/values-ta-rIN/strings.xml b/core/res/res/values-ta-rIN/strings.xml index c408e1c52dcc..20226e9c856a 100644 --- a/core/res/res/values-ta-rIN/strings.xml +++ b/core/res/res/values-ta-rIN/strings.xml @@ -214,8 +214,7 @@ "தொலைபேசி விருப்பங்கள்" "திரைப் பூட்டு" "முடக்கு" - - + "அவசர அழைப்பு" "பிழை அறிக்கை" "பிழை அறிக்கையை எடு" "உங்கள் நடப்புச் சாதன நிலையை மின்னஞ்சல் செய்தியாக அனுப்ப, அது குறித்த தகவலை இது சேகரிக்கும். பிழை அறிக்கையைத் தொடங்குவதில் இருந்து, அது அனுப்புவதற்குத் தயாராகும் வரை, இதற்குச் சிறிது நேரம் ஆகும்; பொறுமையாகக் காத்திருக்கவும்." @@ -1330,8 +1329,7 @@ "%s USB டிரைவ்" "USB சேமிப்பிடம்" "திருத்து" - - + "தரவுப் பயன்பாடு குறித்த எச்சரிக்கை" "தரவு உபயோகம், அமைப்புகளைப் பார்க்க, தட்டவும்." "2G-3G தரவு வரம்பைக் கடந்தது" "4G தரவு வரம்பைக் கடந்தது" diff --git a/core/res/res/values-te-rIN/strings.xml b/core/res/res/values-te-rIN/strings.xml index 22f24cf57798..072b69bcaefc 100644 --- a/core/res/res/values-te-rIN/strings.xml +++ b/core/res/res/values-te-rIN/strings.xml @@ -214,8 +214,7 @@ "ఫోన్ ఎంపికలు" "స్క్రీన్ లాక్" "పవర్ ఆఫ్ చేయి" - - + "అత్యవసరం" "బగ్ నివేదిక" "బగ్ నివేదికను సిద్ధం చేయి" "ఇది ఇ-మెయిల్ సందేశం రూపంలో పంపడానికి మీ ప్రస్తుత పరికర స్థితి గురించి సమాచారాన్ని సేకరిస్తుంది. బగ్ నివేదికను ప్రారంభించడం మొదలుకొని పంపడానికి సిద్ధం చేసే వరకు ఇందుకు కొంత సమయం పడుతుంది; దయచేసి ఓపిక పట్టండి." @@ -1330,8 +1329,7 @@ "%s USB డ్రైవ్" "USB నిల్వ" "సవరించు" - - + "డేటా వినియోగ హెచ్చరిక" "వినియోగం,సెట్టింగ్‌ల కోసం నొక్కండి" "2G-3G డేటా పరిమితిని చేరుకుంది" "4G డేటా పరిమితిని చేరుకుంది" diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml index 04a8e7027c31..c2515908dd7b 100644 --- a/core/res/res/values-th/strings.xml +++ b/core/res/res/values-th/strings.xml @@ -214,8 +214,7 @@ "ตัวเลือกโทรศัพท์" "ล็อกหน้าจอ" "ปิดเครื่อง" - - + "เหตุฉุกเฉิน" "รายงานข้อบกพร่อง" "ใช้รายงานข้อบกพร่อง" "การดำเนินการนี้จะรวบรวมข้อมูลเกี่ยวกับสถานะปัจจุบันของอุปกรณ์ของคุณ โดยจะส่งไปในรูปแบบข้อความอีเมล อาจใช้เวลาสักครู่ตั้งแต่เริ่มการสร้างรายงานข้อบกพร่องจนกระทั่งเสร็จสมบูรณ์ โปรดอดทนรอ" @@ -1330,8 +1329,7 @@ "ไดรฟ์ USB ของ %s" "ที่เก็บข้อมูล USB" "แก้ไข" - - + "การแจ้งเตือนการใช้อินเทอร์เน็ต" "แตะเพื่อดูการใช้งานและการตั้งค่า" "ถึงขีดจำกัดข้อมูล 2G-3G แล้ว" "ถึงขีดจำกัดข้อมูล 4G แล้ว" diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml index 97eb34d0608d..b0d84ea51ba4 100644 --- a/core/res/res/values-tl/strings.xml +++ b/core/res/res/values-tl/strings.xml @@ -214,8 +214,7 @@ "Pagpipilian sa telepono" "Pag-lock sa screen" "I-off" - - + "Emergency" "Ulat sa bug" "Kunin ang ulat sa bug" "Mangongolekta ito ng impormasyon tungkol sa kasalukuyang katayuan ng iyong device, na ipapadala bilang mensaheng e-mail. Gugugol ito ng kaunting oras mula sa pagsisimula ng ulat sa bug hanggang sa handa na itong maipadala; mangyaring magpasensya." @@ -1330,8 +1329,7 @@ "%s USB drive" "USB storage" "I-edit" - - + "Alerto sa paggamit ng data" "I-tap tingnan paggamit/setting." "Naabot na ang limitasyon sa 2G-3G data" "Naabot na ang limitasyon sa 4G data" diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml index 0008c073bc6f..a089fd42feb6 100644 --- a/core/res/res/values-tr/strings.xml +++ b/core/res/res/values-tr/strings.xml @@ -214,8 +214,7 @@ "Telefon seçenekleri" "Ekran kilidi" "Kapat" - - + "Acil durum" "Hata raporu" "Hata raporu al" "Bu rapor, e-posta iletisi olarak göndermek üzere cihazınızın şu anki durumuyla ilgili bilgi toplar. Hata raporu başlatıldıktan sonra hazır olması biraz zaman alabilir, lütfen sabırlı olun." @@ -1330,8 +1329,7 @@ "%s USB sürücüsü" "USB bellek" "Düzenle" - - + "Veri kullanımı uyarısı" "Kul. ve ayar. gör. için dokunun." "2G-3G veri sınırına ulaşıldı" "4G veri sınırına ulaşıldı" diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml index e2852e78c03b..e210f87e090c 100644 --- a/core/res/res/values-uk/strings.xml +++ b/core/res/res/values-uk/strings.xml @@ -218,8 +218,7 @@ "Параметри телеф." "Заблок. екран" "Вимкнути" - - + "Екстрений виклик" "Звіт про помилки" "Звіт про помилку" "Інформація про поточний стан вашого пристрою буде зібрана й надіслана електронною поштою. Підготовка звіту триватиме певний час." @@ -1382,8 +1381,7 @@ "Носій USB (%s)" "Носій USB" "Редагувати" - - + "Сповіщення про використ. трафіку" "Переглянути дані та параметри." "Досягнуто ліміту даних 2G–3G" "Досягнуто ліміту даних 4G" diff --git a/core/res/res/values-ur-rPK/strings.xml b/core/res/res/values-ur-rPK/strings.xml index 94d263e5f54c..24a03b24e066 100644 --- a/core/res/res/values-ur-rPK/strings.xml +++ b/core/res/res/values-ur-rPK/strings.xml @@ -214,8 +214,7 @@ "فون کے اختیارات" "اسکرین لاک" "پاور آف" - - + "ایمرجنسی" "بگ کی اطلاع" "بگ کی اطلاع لیں" "ایک ای میل پیغام کے بطور بھیجنے کیلئے، یہ آپ کے موجودہ آلہ کی حالت کے بارے میں معلومات جمع کرے گا۔ بگ کی اطلاع شروع کرنے سے لے کر بھیجنے کیلئے تیار ہونے تک اس میں تھوڑا وقت لگے گا؛ براہ کرم تحمل سے کام لیں۔" @@ -1330,8 +1329,7 @@ "‏%s USB ڈرائیو" "‏USB اسٹوریج" "ترمیم کریں" - - + "ڈیٹا کے استعمال کا الرٹ" "استعمال اور ترتیبات دیکھنے کیلئے تھپتھپائیں۔" "‏2G-3G ڈیٹا کی حد کو پہنچ گیا" "‏4G ڈیٹا کی حد کو پہنچ گیا" diff --git a/core/res/res/values-uz-rUZ/strings.xml b/core/res/res/values-uz-rUZ/strings.xml index 986d49be7fc2..572abc76e8b3 100644 --- a/core/res/res/values-uz-rUZ/strings.xml +++ b/core/res/res/values-uz-rUZ/strings.xml @@ -214,8 +214,7 @@ "Telefon sozlamalari" "Ekran qulfi" "O‘chirish" - - + "Favqulodda chaqiruv" "Nosozlik haqida ma’lumot berish" "Xatoliklar hisoboti" "Qurilmangiz holati haqidagi ma’lumotlar to‘planib, e-pochta orqali yuboriladi. Hisobotni tayyorlash biroz vaqt olishi mumkin." @@ -1330,8 +1329,7 @@ "%s USB xotira qurilmasi" "USB xotira" "Tahrirlash" - - + "Trafik sarfi bo‘yicha ogohlantirish" "Trafik sarfi va sozlamalarni ko‘rish uchun bosing." "2G-3G trafik chekloviga yetdi" "4G trafik chekloviga yetdi" diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml index 885ba9299bee..0bbfe3b8a8c1 100644 --- a/core/res/res/values-vi/strings.xml +++ b/core/res/res/values-vi/strings.xml @@ -214,8 +214,7 @@ "Tùy chọn điện thoại" "Khoá màn hình" "Tắt nguồn" - - + "Khẩn cấp" "Báo cáo lỗi" "Nhận báo cáo lỗi" "Báo cáo này sẽ thu thập thông tin về tình trạng thiết bị hiện tại của bạn, để gửi dưới dạng thông báo qua email. Sẽ mất một chút thời gian kể từ khi bắt đầu báo cáo lỗi cho tới khi báo cáo sẵn sàng để gửi; xin vui lòng kiên nhẫn." @@ -1330,8 +1329,7 @@ "Ổ USB %s" "Bộ lưu trữ USB" "Chỉnh sửa" - - + "Thông báo về sử dụng dữ liệu" "Nhấn để xem sử dụng và cài đặt." "Đã đạt tới giới hạn dữ liệu 2G-3G" "Đã đạt tới giới hạn dữ liệu 4G" diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml index a34d85c36602..a29f78edde53 100644 --- a/core/res/res/values-zh-rCN/strings.xml +++ b/core/res/res/values-zh-rCN/strings.xml @@ -214,8 +214,7 @@ "手机选项" "屏幕锁定" "关机" - - + "紧急呼救" "错误报告" "提交错误报告" "这会收集有关当前设备状态的信息,并以电子邮件的形式进行发送。从开始生成错误报告到准备好发送需要一点时间,请耐心等待。" @@ -1330,8 +1329,7 @@ "%s U 盘" "USB存储器" "修改" - - + "流量消耗提醒" "点按即可查看使用情况和设置。" "已达到2G-3G流量上限" "已达到4G流量上限" diff --git a/core/res/res/values-zh-rHK/strings.xml b/core/res/res/values-zh-rHK/strings.xml index d724a80c71ac..8e034a78327f 100644 --- a/core/res/res/values-zh-rHK/strings.xml +++ b/core/res/res/values-zh-rHK/strings.xml @@ -214,8 +214,7 @@ "手機選項" "螢幕鎖定" "關閉" - - + "緊急" "錯誤報告" "取得錯誤報告" "這會收集您目前裝置狀態的相關資訊,並以電郵傳送給您。從開始建立錯誤報告到準備傳送需要一段時間,請耐心等候。" @@ -1330,8 +1329,7 @@ "%s USB 驅動器" "USB 儲存裝置" "編輯" - - + "數據用量警告" "輕按即可查看用量和設定。" "已達到 2G-3G 數據流量上限" "已達到 4G 數據流量上限" diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml index 745bb4a037fe..82b4f6d8b7cd 100644 --- a/core/res/res/values-zh-rTW/strings.xml +++ b/core/res/res/values-zh-rTW/strings.xml @@ -214,8 +214,7 @@ "電話選項" "螢幕鎖定" "關機" - - + "緊急電話" "錯誤報告" "取得錯誤報告" "這會收集您目前裝置狀態的相關資訊,以便透過電子郵件傳送。從錯誤報告開始建立到準備傳送的這段過程可能需要一點時間,敬請耐心等候。" @@ -1330,8 +1329,7 @@ "%s USB 隨身碟" "USB 儲存裝置" "編輯" - - + "數據用量警告" "輕觸即可查看用量和設定。" "已達到 2G-3G 數據流量上限" "已達到 4G 數據流量上限" diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml index 0be9fd2fefad..20dfcc03ef94 100644 --- a/core/res/res/values-zu/strings.xml +++ b/core/res/res/values-zu/strings.xml @@ -214,8 +214,7 @@ "Okukhethwa kukho kwefoni" "Ukuvala isikrini" "Vala amandla" - - + "Isimo esiphuthumayo" "Umbiko wephutha" "Thatha umbiko wesiphazamiso" "Lokhu kuzoqoqa ulwazi mayelana nesimo samanje sedivayisi yakho, ukuthumela imilayezo ye-imeyili. Kuzothatha isikhathi esincane kusuka ekuqaleni umbiko wesiphazamiso uze ulungele ukuthunyelwa; sicela ubekezele." @@ -1330,8 +1329,7 @@ "%s idrayivu ye-USB" "Isitoreji se-USB" "Hlela" - - + "Izexwayiso zokusetshenziswa kwedatha" "Thepha ukuze ubuke ukusetshenziswa nezilungiselelo." "2G-3G umkhawulo wedatha ufinyelelwe" "4G umkhawulo wedatha ufinyelelwe" -- GitLab From d2671e488d55a293f07f0cce69a2ed10b507ef0e Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Sat, 1 Oct 2016 00:19:43 -0700 Subject: [PATCH 642/809] Import translations. DO NOT MERGE Change-Id: Ie8517dd138d533fdfc983725187ffe9f10b4dc2c Auto-generated-cl: translation import --- packages/SystemUI/res/values-my-rMM/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/SystemUI/res/values-my-rMM/strings.xml b/packages/SystemUI/res/values-my-rMM/strings.xml index d01faeeb5ae0..c601fd111463 100644 --- a/packages/SystemUI/res/values-my-rMM/strings.xml +++ b/packages/SystemUI/res/values-my-rMM/strings.xml @@ -588,7 +588,7 @@ "ဌာန" "ပြီးပါပြီ" "နေရာလွတ်ခြားစနစ်" - "မန်နယူး / ကီးဘုတ်ပြောင်းစနစ်" + "မီနူး / ကီးဘုတ်ပြောင်းစနစ်" "ပေါင်းထည့်ရန် ခလုတ်ကိုရွေးပါ" "ခလုတ်ပေါင်းထည့်ပါ" "သိမ်းရန်" -- GitLab From 1face37061eec10d912f4d209eca2ae272fb8175 Mon Sep 17 00:00:00 2001 From: Adarsh Fernando Date: Sat, 1 Oct 2016 12:23:49 -0700 Subject: [PATCH 643/809] Docs: Redirect for Android Studio IR Flight Recorder Bug:31631770 Change-Id: Id3c4b8d141242521bef6364af2bbd47b950258c2 --- docs/html/_redirects.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/html/_redirects.yaml b/docs/html/_redirects.yaml index 8cb2ee7b20ad..3a993d73d4fc 100644 --- a/docs/html/_redirects.yaml +++ b/docs/html/_redirects.yaml @@ -1290,6 +1290,8 @@ redirects: to: /studio/write/draw9patch.html?utm_source=android-studio - from: /r/studio-ui/firebase-assistant.html to: /studio/write/firebase.html?utm_source=android-studio +- from: /r/studio-ui/ir-flight-recorder.html + to: /studio/run/index.html?utm_source=android-studio#submit-feedback # Redirects from (removed) N Preview documentation - from: /preview/features/afw.html -- GitLab From dadafd4109c69f088893e72551d50a3cc04d085e Mon Sep 17 00:00:00 2001 From: Jorim Jaggi Date: Fri, 30 Sep 2016 07:20:25 -0700 Subject: [PATCH 644/809] Reload state when user unlocks Test: Unlock freshly booted non-FBE device, make sure the transition is fast as well as the icons have the correct state Change-Id: I6427427d16edeceb0f410be0b88de601a3dffdb4 Fixes: 31203310 --- .../keyguard/KeyguardUpdateMonitor.java | 18 ++++++++++++++++++ .../KeyguardUpdateMonitorCallback.java | 5 +++++ .../KeyguardIndicationController.java | 9 +++------ .../phone/KeyguardBottomAreaView.java | 18 ++++++++++++++++++ .../statusbar/phone/NotificationPanelView.java | 2 +- 5 files changed, 45 insertions(+), 7 deletions(-) diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java index 8b220d4d63df..a9f6dc9052b3 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitor.java @@ -16,6 +16,7 @@ package com.android.keyguard; +import static android.content.Intent.ACTION_USER_UNLOCKED; import static android.os.BatteryManager.BATTERY_HEALTH_UNKNOWN; import static android.os.BatteryManager.BATTERY_STATUS_FULL; import static android.os.BatteryManager.BATTERY_STATUS_UNKNOWN; @@ -136,6 +137,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { private static final int MSG_SCREEN_TURNED_ON = 331; private static final int MSG_SCREEN_TURNED_OFF = 332; private static final int MSG_DREAMING_STATE_CHANGED = 333; + private static final int MSG_USER_UNLOCKED = 334; /** Fingerprint state: Not listening to fingerprint. */ private static final int FINGERPRINT_STATE_STOPPED = 0; @@ -291,6 +293,9 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { case MSG_DREAMING_STATE_CHANGED: handleDreamingStateChanged(msg.arg1); break; + case MSG_USER_UNLOCKED: + handleUserUnlocked(); + break; } } }; @@ -723,6 +728,8 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } else if (DevicePolicyManager.ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED .equals(action)) { mHandler.sendEmptyMessage(MSG_DPM_STATE_CHANGED); + } else if (ACTION_USER_UNLOCKED.equals(action)) { + mHandler.sendEmptyMessage(MSG_USER_UNLOCKED); } } }; @@ -1025,6 +1032,16 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { } } + private void handleUserUnlocked() { + mNeedsSlowUnlockTransition = resolveNeedsSlowUnlockTransition(); + for (int i = 0; i < mCallbacks.size(); i++) { + KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get(); + if (cb != null) { + cb.onUserUnlocked(); + } + } + } + private KeyguardUpdateMonitor(Context context) { mContext = context; mSubscriptionManager = SubscriptionManager.from(context); @@ -1065,6 +1082,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener { allUserFilter.addAction(ACTION_FACE_UNLOCK_STARTED); allUserFilter.addAction(ACTION_FACE_UNLOCK_STOPPED); allUserFilter.addAction(DevicePolicyManager.ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED); + allUserFilter.addAction(ACTION_USER_UNLOCKED); context.registerReceiverAsUser(mBroadcastAllReceiver, UserHandle.ALL, allUserFilter, null, null); diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java index eb29d9b550e3..14d6b599a9b5 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardUpdateMonitorCallback.java @@ -127,6 +127,11 @@ public class KeyguardUpdateMonitorCallback { */ public void onUserInfoChanged(int userId) { } + /** + * Called when a user got unlocked. + */ + public void onUserUnlocked() { } + /** * Called when boot completed. * diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java index cf962df64dd9..0ef9715259c2 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/KeyguardIndicationController.java @@ -95,8 +95,6 @@ public class KeyguardIndicationController { KeyguardUpdateMonitor.getInstance(context).registerCallback(mUpdateMonitor); context.registerReceiverAsUser(mTickReceiver, UserHandle.SYSTEM, new IntentFilter(Intent.ACTION_TIME_TICK), null, null); - context.registerReceiverAsUser(mUnlockReceiver, UserHandle.ALL, - new IntentFilter(Intent.ACTION_USER_UNLOCKED), null, null); } public void setVisible(boolean visible) { @@ -322,18 +320,16 @@ public class KeyguardIndicationController { super.onFingerprintAuthFailed(); mLastSuccessiveErrorMessage = -1; } - }; - BroadcastReceiver mTickReceiver = new BroadcastReceiver() { @Override - public void onReceive(Context context, Intent intent) { + public void onUserUnlocked() { if (mVisible) { updateIndication(); } } }; - BroadcastReceiver mUnlockReceiver = new BroadcastReceiver() { + BroadcastReceiver mTickReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (mVisible) { @@ -342,6 +338,7 @@ public class KeyguardIndicationController { } }; + private final Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java index 8cabfb93bf32..4d0e5d34761b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBottomAreaView.java @@ -111,6 +111,7 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL private KeyguardIndicationController mIndicationController; private AccessibilityController mAccessibilityController; private PhoneStatusBar mPhoneStatusBar; + private KeyguardAffordanceHelper mAffordanceHelper; private boolean mUserSetupComplete; private boolean mPrewarmBound; @@ -271,6 +272,10 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL updateCameraVisibility(); // in case onFinishInflate() was called too early } + public void setAffordanceHelper(KeyguardAffordanceHelper affordanceHelper) { + mAffordanceHelper = affordanceHelper; + } + public void setUserSetupComplete(boolean userSetupComplete) { mUserSetupComplete = userSetupComplete; updateCameraVisibility(); @@ -601,6 +606,9 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL mPreviewContainer.addView(mCameraPreview); mCameraPreview.setVisibility(visibleBefore ? View.VISIBLE : View.INVISIBLE); } + if (mAffordanceHelper != null) { + mAffordanceHelper.updatePreviews(); + } } private void updateLeftPreview() { @@ -618,6 +626,9 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL mPreviewContainer.addView(mLeftPreview); mLeftPreview.setVisibility(View.INVISIBLE); } + if (mAffordanceHelper != null) { + mAffordanceHelper.updatePreviews(); + } } public void startFinishDozeAnimation() { @@ -702,6 +713,13 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL public void onStrongAuthStateChanged(int userId) { mLockIcon.update(); } + + @Override + public void onUserUnlocked() { + inflateCameraPreview(); + updateCameraVisibility(); + updateLeftAffordance(); + } }; public void setKeyguardIndicationController( diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java index ae752293a423..1cf7a23e6b40 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java @@ -233,6 +233,7 @@ public class NotificationPanelView extends PanelView implements mKeyguardBottomArea = (KeyguardBottomAreaView) findViewById(R.id.keyguard_bottom_area); mQsNavbarScrim = findViewById(R.id.qs_navbar_scrim); mAfforanceHelper = new KeyguardAffordanceHelper(this, getContext()); + mKeyguardBottomArea.setAffordanceHelper(mAfforanceHelper); mLastOrientation = getResources().getConfiguration().orientation; mQsAutoReinflateContainer = @@ -1016,7 +1017,6 @@ public class NotificationPanelView extends PanelView implements mKeyguardStatusBar.setVisibility(keyguardShowing ? View.VISIBLE : View.INVISIBLE); if (keyguardShowing && oldState != mStatusBarState) { mKeyguardBottomArea.onKeyguardShowingChanged(); - mAfforanceHelper.updatePreviews(); } } if (keyguardShowing) { -- GitLab From 5754b41c201a388e4e932b18d285d765d7e63536 Mon Sep 17 00:00:00 2001 From: songjinshi Date: Thu, 8 Sep 2016 15:24:30 +0800 Subject: [PATCH 645/809] Fix thread race caused double free issue. The SharedZip's Asset is not thread-safety,the getResourceTableAsset() and setResourceTableAsset(Asset* asset) function of the SharedZip is not sync with a same lock. Consider the following sequence of events: Thread A calls setResourceTableAsset(Asset* asset),it will set mResourceTableAsset = asset; then to calls getBuffer() of the asset. Thread B calls getResourceTableAsset(),which return mResourceTableAsset, then to calls getBuffer() of the mResourceTableAsset,the asset and mResourceTableAsset is same one object. Thread A to delete mZipInflater in getBuffer(). Thread B to delete mZipInflater in getBuffer(). It will cause crash becuase double delete mZipInflater in getBuffer(). https://code.google.com/p/android/issues/detail?id=211941 Bug:31734545 Change-Id: I5a7d67fdf64c4aa03f505b37a2fa840f4443d158 Signed-off-by: songjinshi --- libs/androidfw/AssetManager.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libs/androidfw/AssetManager.cpp b/libs/androidfw/AssetManager.cpp index f50cff4387d2..8ea25d60cc89 100644 --- a/libs/androidfw/AssetManager.cpp +++ b/libs/androidfw/AssetManager.cpp @@ -1892,6 +1892,7 @@ ZipFileRO* AssetManager::SharedZip::getZip() Asset* AssetManager::SharedZip::getResourceTableAsset() { + AutoMutex _l(gLock); ALOGV("Getting from SharedZip %p resource asset %p\n", this, mResourceTableAsset); return mResourceTableAsset; } @@ -1901,10 +1902,10 @@ Asset* AssetManager::SharedZip::setResourceTableAsset(Asset* asset) { AutoMutex _l(gLock); if (mResourceTableAsset == NULL) { - mResourceTableAsset = asset; // This is not thread safe the first time it is called, so // do it here with the global lock held. asset->getBuffer(true); + mResourceTableAsset = asset; return asset; } } -- GitLab From 70c6411a10340694baa310aff2191cdfa98dfaff Mon Sep 17 00:00:00 2001 From: Bert McMeen Date: Mon, 3 Oct 2016 13:32:54 -0700 Subject: [PATCH 646/809] Docs: Wear preview 3 - tweaks to gradle snippet Bug: 31910705 Change-Id: Ia58ac7bec8e748a797c6213bbd31a05f876e2424 --- docs/html/wear/preview/downloads.jd | 12 ++++++++++-- docs/html/wear/preview/features/app-distribution.jd | 6 +++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/docs/html/wear/preview/downloads.jd b/docs/html/wear/preview/downloads.jd index 83a3f98452c8..da6a06d485c0 100644 --- a/docs/html/wear/preview/downloads.jd +++ b/docs/html/wear/preview/downloads.jd @@ -653,6 +653,12 @@ This is the Android Wear SDK Preview License Agreement (the “License Agreement "{@docRoot}studio/intro/update.html#sdk-manager">SDK Manager.

          +

          + After you create a virtual device as described below, follow the steps for + setting up a phone with the beta version of + the Android Wear companion app. +

          +

          Create a new virtual device in Android Studio as follows:

          @@ -696,7 +702,9 @@ This is the Android Wear SDK Preview License Agreement (the “License Agreement

            -
          1. On the phone, install the Android Wear app from Google Play. +
          2. Follow the steps for + setting up a phone with the beta version of + the Android Wear companion app.
          3. On the phone, enable Developer Options and USB Debugging. @@ -740,7 +748,7 @@ This is the Android Wear SDK Preview License Agreement (the “License Agreement in the Android Emulator. For more information about using virtual devices, see + "{@docRoot}studio/run/managing-avds.html"> Create and Manage Virtual Devices.

            diff --git a/docs/html/wear/preview/features/app-distribution.jd b/docs/html/wear/preview/features/app-distribution.jd index 319efa6b6554..afc95165e49b 100644 --- a/docs/html/wear/preview/features/app-distribution.jd +++ b/docs/html/wear/preview/features/app-distribution.jd @@ -132,6 +132,9 @@ page.image=images/cards/card-n-sdk_2x.png
             android {
            +    // Allows you to reference product flavors in your
            +    // phone module's build.gradle file
            +    publishNonDefault true
                 ...
                 defaultConfig
                 {
            @@ -148,6 +151,7 @@ android {
                         minSdkVersion 24
                     }
                 }
            +}
             

            @@ -158,7 +162,7 @@ android {

             dependencies {
                 ...
            -    wearApp project(path: ':wearable', configuration: 'wear1Release')
            +    wearApp project(path: ':wear', configuration: 'wear1Release')
             }
             
            -- GitLab From 1f859716a8e4b8c12d69ca8b3db8344de577d5c7 Mon Sep 17 00:00:00 2001 From: Doris Liu Date: Mon, 3 Oct 2016 13:57:28 -0700 Subject: [PATCH 647/809] Restrict AVD and VD parsing to the current element instead of the whole document This CL changes the AVD xml parsing to parsing only within the current element, which prevents AVD parsing from always skipping to the end of the doucment. So things that are defined after AVD in the same document can be picked up by the xml parser. The same fix has been applied to VD as well. BUG: 31865175 Test: Manually following comment #1 in the bug above Change-Id: I4ebdce1eb2e92d6f6e2c37caed9607253d24602f --- .../android/graphics/drawable/AnimatedVectorDrawable.java | 6 +++++- graphics/java/android/graphics/drawable/VectorDrawable.java | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/graphics/java/android/graphics/drawable/AnimatedVectorDrawable.java b/graphics/java/android/graphics/drawable/AnimatedVectorDrawable.java index dcca431ea754..c24d31334be0 100644 --- a/graphics/java/android/graphics/drawable/AnimatedVectorDrawable.java +++ b/graphics/java/android/graphics/drawable/AnimatedVectorDrawable.java @@ -455,7 +455,11 @@ public class AnimatedVectorDrawable extends Drawable implements Animatable2 { int eventType = parser.getEventType(); float pathErrorScale = 1; - while (eventType != XmlPullParser.END_DOCUMENT) { + final int innerDepth = parser.getDepth() + 1; + + // Parse everything until the end of the animated-vector element. + while (eventType != XmlPullParser.END_DOCUMENT + && (parser.getDepth() >= innerDepth || eventType != XmlPullParser.END_TAG)) { if (eventType == XmlPullParser.START_TAG) { final String tagName = parser.getName(); if (ANIMATED_VECTOR.equals(tagName)) { diff --git a/graphics/java/android/graphics/drawable/VectorDrawable.java b/graphics/java/android/graphics/drawable/VectorDrawable.java index 9ff69650294d..ab96f61df0ec 100644 --- a/graphics/java/android/graphics/drawable/VectorDrawable.java +++ b/graphics/java/android/graphics/drawable/VectorDrawable.java @@ -710,7 +710,11 @@ public class VectorDrawable extends Drawable { groupStack.push(state.mRootGroup); int eventType = parser.getEventType(); - while (eventType != XmlPullParser.END_DOCUMENT) { + final int innerDepth = parser.getDepth() + 1; + + // Parse everything until the end of the vector element. + while (eventType != XmlPullParser.END_DOCUMENT + && (parser.getDepth() >= innerDepth || eventType != XmlPullParser.END_TAG)) { if (eventType == XmlPullParser.START_TAG) { final String tagName = parser.getName(); final VGroup currentGroup = groupStack.peek(); -- GitLab From cb99a72e62bcfb30002820f0543aa23dbbdd6162 Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Mon, 3 Oct 2016 17:00:02 -0700 Subject: [PATCH 648/809] Fix issue #31305336: File corrupt: too many wake locks 101 The limit is MAX_WAKELOCKS_PER_UID+1, since OverflowArrayMap will add one more to contain the overflow. Change-Id: I53004582daa0c405427308816728f2c1d2bef40d --- core/java/com/android/internal/os/BatteryStatsImpl.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java index 2538d60f1924..3b3344e7d934 100644 --- a/core/java/com/android/internal/os/BatteryStatsImpl.java +++ b/core/java/com/android/internal/os/BatteryStatsImpl.java @@ -10727,7 +10727,7 @@ public class BatteryStatsImpl extends BatteryStats { } int NW = in.readInt(); - if (NW > 100) { + if (NW > (MAX_WAKELOCKS_PER_UID+1)) { throw new ParcelFormatException("File corrupt: too many wake locks " + NW); } for (int iw = 0; iw < NW; iw++) { @@ -10736,7 +10736,7 @@ public class BatteryStatsImpl extends BatteryStats { } int NS = in.readInt(); - if (NS > 100) { + if (NS > (MAX_WAKELOCKS_PER_UID+1)) { throw new ParcelFormatException("File corrupt: too many syncs " + NS); } for (int is = 0; is < NS; is++) { @@ -10745,7 +10745,7 @@ public class BatteryStatsImpl extends BatteryStats { } int NJ = in.readInt(); - if (NJ > 100) { + if (NJ > (MAX_WAKELOCKS_PER_UID+1)) { throw new ParcelFormatException("File corrupt: too many job timers " + NJ); } for (int ij = 0; ij < NJ; ij++) { -- GitLab From 4bf191ca757c23e1417ae9dc29ac091c4fa0e96e Mon Sep 17 00:00:00 2001 From: jackqdyulei Date: Thu, 29 Sep 2016 13:31:54 -0700 Subject: [PATCH 649/809] Add "FILTER_NOT_HIDE" to filter out the apps. The "FILTER_NOT_HIDE" is used to filter out apps that "blacklisted" by the carrier. So when user insert a specific sim card, these apps disapper in settings > apps totally unless user enable them. Bug: 31823872 Test: Manual Change-Id: I62ec13806d70f68e6cd3cbd014e7513cda36358c --- packages/SettingsLib/res/values/config.xml | 5 ++- .../applications/ApplicationsState.java | 39 ++++++++++++++++++- 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/packages/SettingsLib/res/values/config.xml b/packages/SettingsLib/res/values/config.xml index 0cf4a411ec4e..e2e721c5ae6b 100755 --- a/packages/SettingsLib/res/values/config.xml +++ b/packages/SettingsLib/res/values/config.xml @@ -37,4 +37,7 @@ - + + + + \ No newline at end of file diff --git a/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java b/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java index a22a05125875..f0ec10786507 100644 --- a/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java +++ b/packages/SettingsLib/src/com/android/settingslib/applications/ApplicationsState.java @@ -47,6 +47,7 @@ import android.util.Log; import android.util.SparseArray; import com.android.internal.util.ArrayUtils; +import com.android.settingslib.R; import java.io.File; import java.text.Collator; @@ -621,7 +622,7 @@ public class ApplicationsState { } if (filter != null) { - filter.init(); + filter.init(mContext); } List apps; @@ -1280,6 +1281,9 @@ public class ApplicationsState { public interface AppFilter { void init(); + default void init(Context context) { + init(); + } boolean filterApp(AppEntry info); } @@ -1398,6 +1402,33 @@ public class ApplicationsState { } }; + public static final AppFilter FILTER_NOT_HIDE = new AppFilter() { + private String[] mHidePackageNames; + + public void init(Context context) { + mHidePackageNames = context.getResources() + .getStringArray(R.array.config_hideWhenDisabled_packageNames); + } + + @Override + public void init() { + } + + @Override + public boolean filterApp(AppEntry entry) { + if (ArrayUtils.contains(mHidePackageNames, entry.info.packageName)) { + if (!entry.info.enabled) { + return false; + } else if (entry.info.enabledSetting == + PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED) { + return false; + } + } + + return true; + } + }; + public static class VolumeFilter implements AppFilter { private final String mVolumeUuid; @@ -1424,6 +1455,12 @@ public class ApplicationsState { mSecondFilter = second; } + @Override + public void init(Context context) { + mFirstFilter.init(context); + mSecondFilter.init(context); + } + @Override public void init() { mFirstFilter.init(); -- GitLab From 898468657e3f07e30a17bdd20402bbff9b3b1d56 Mon Sep 17 00:00:00 2001 From: Wei Liu Date: Fri, 26 Aug 2016 14:57:25 -0700 Subject: [PATCH 650/809] Allow shell to acquire wakelock. DO NOT MERGE. BUG: 31828706 BUG 30832947 Change-Id: I348ab5642ca625b4700ec63f72414729d574da5e (cherry picked from commit 6e500010b164ffbbb93f1544ea473e936dc4dfa9) --- packages/Shell/AndroidManifest.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/Shell/AndroidManifest.xml b/packages/Shell/AndroidManifest.xml index f1789ea03682..227d0e944e6e 100644 --- a/packages/Shell/AndroidManifest.xml +++ b/packages/Shell/AndroidManifest.xml @@ -114,6 +114,8 @@ + + Date: Mon, 3 Oct 2016 16:42:04 -0700 Subject: [PATCH 651/809] Prevent triggering orientation changes until previous completes. Currently we defer rotation while the screen rotation animation is animating, but there is an additional interval after the animation completes where the display may not yet be unfrozen and attempting to rotate again will not work. Bug: 31749456 Change-Id: I5f6830d85fb326d5032b597cbed1b767f0b627f5 --- .../java/com/android/server/wm/WindowManagerService.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index ce0ad25ebcc6..bd266968613d 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -6807,6 +6807,13 @@ public class WindowManagerService extends IWindowManager.Stub if (DEBUG_ORIENTATION) Slog.v(TAG_WM, "Deferring rotation, animation in progress."); return false; } + if (mDisplayFrozen) { + // Even if the screen rotation animation has finished (e.g. isAnimating + // returns false), there is still some time where we haven't yet unfrozen + // the display. We also need to abort rotation here. + if (DEBUG_ORIENTATION) Slog.v(TAG_WM, "Deferring rotation, still finishing previous rotation"); + return false; + } if (!mDisplayEnabled) { // No point choosing a rotation if the display is not enabled. -- GitLab From b14d4abc16ec7dd48737ab829e3f84b12017db7c Mon Sep 17 00:00:00 2001 From: Robert Carr Date: Mon, 3 Oct 2016 18:13:33 -0700 Subject: [PATCH 652/809] Prevent any rotation while seamless rotation is pending. Various errors occur when using even the normal rotation animation while seamless rotation is pending. So we just defer the rotation like we do for the normal animation. Since we are doing this, we need to track when seamless rotation finishes so we can perform a post-rotate rotation if required. Bug: 31749456 Change-Id: I99f189306c690ce868496460e9ca7dcc95e4ccdc --- .../server/wm/WindowManagerService.java | 96 ++++++++++++------- .../server/wm/WindowStateAnimator.java | 4 +- 2 files changed, 66 insertions(+), 34 deletions(-) diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index bd266968613d..7a73759f0388 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -654,6 +654,12 @@ public class WindowManagerService extends IWindowManager.Stub WindowManagerInternal.OnHardKeyboardStatusChangeListener mHardKeyboardStatusChangeListener; SettingsObserver mSettingsObserver; + // A count of the windows which are 'seamlessly rotated', e.g. a surface + // at an old orientation is being transformed. We freeze orientation updates + // while any windows are seamlessly rotated, so we need to track when this + // hits zero so we can apply deferred orientation updates. + int mSeamlessRotationCount = 0; + private final class SettingsObserver extends ContentObserver { private final Uri mDisplayInversionEnabledUri = Settings.Secure.getUriFor(Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED); @@ -6821,6 +6827,38 @@ public class WindowManagerService extends IWindowManager.Stub return false; } + final DisplayContent displayContent = getDefaultDisplayContentLocked(); + final WindowList windows = displayContent.getWindowList(); + + final int oldRotation = mRotation; + boolean rotateSeamlessly = mPolicy.shouldRotateSeamlessly(oldRotation, mRotation); + + if (rotateSeamlessly) { + for (int i = windows.size() - 1; i >= 0; i--) { + WindowState w = windows.get(i); + // We can't rotate (seamlessly or not) while waiting for the last seamless rotation + // to complete (that is, waiting for windows to redraw). It's tempting to check + // w.mSeamlessRotationCount but that could be incorrect in the case of window-removal. + if (w.mSeamlesslyRotated) { + return false; + } + // In what can only be called an unfortunate workaround we require + // seamlessly rotated child windows to have the TRANSFORM_TO_DISPLAY_INVERSE + // flag. Due to limitations in the client API, there is no way for + // the client to set this flag in a race free fashion. If we seamlessly rotate + // a window which does not have this flag, but then gains it, we will get + // an incorrect visual result (rotated viewfinder). This means if we want to + // support seamlessly rotating windows which could gain this flag, we can't + // rotate windows without it. This limits seamless rotation in N to camera framework + // users, windows without children, and native code. This is unfortunate but + // having the camera work is our primary goal. + if (w.isChildWindow() & w.isVisibleNow() && + !w.mWinAnimator.mSurfaceController.getTransformToDisplayInverse()) { + rotateSeamlessly = false; + } + } + } + // TODO: Implement forced rotation changes. // Set mAltOrientation to indicate that the application is receiving // an orientation that has different metrics than it expected. @@ -6839,7 +6877,7 @@ public class WindowManagerService extends IWindowManager.Stub if (mRotation == rotation && mAltOrientation == altOrientation) { // No change. - return false; + return false; } if (DEBUG_ORIENTATION) { @@ -6849,8 +6887,6 @@ public class WindowManagerService extends IWindowManager.Stub + ", lastOrientation=" + mLastOrientation); } - int oldRotation = mRotation; - mRotation = rotation; mAltOrientation = altOrientation; mPolicy.setRotationLw(mRotation); @@ -6859,7 +6895,6 @@ public class WindowManagerService extends IWindowManager.Stub mH.removeMessages(H.WINDOW_FREEZE_TIMEOUT); mH.sendEmptyMessageDelayed(H.WINDOW_FREEZE_TIMEOUT, WINDOW_FREEZE_TIMEOUT_DURATION); mWaitingForConfig = true; - final DisplayContent displayContent = getDefaultDisplayContentLocked(); displayContent.layoutNeeded = true; final int[] anim = new int[2]; if (displayContent.isDimming()) { @@ -6867,33 +6902,6 @@ public class WindowManagerService extends IWindowManager.Stub } else { mPolicy.selectRotationAnimationLw(anim); } - boolean rotateSeamlessly = mPolicy.shouldRotateSeamlessly(oldRotation, mRotation); - final WindowList windows = displayContent.getWindowList(); - // We can't rotate seamlessly while an existing seamless rotation is still - // waiting on windows to finish drawing. - if (rotateSeamlessly) { - for (int i = windows.size() - 1; i >= 0; i--) { - WindowState w = windows.get(i); - if (w.mSeamlesslyRotated) { - rotateSeamlessly = false; - break; - } - // In what can only be called an unfortunate workaround we require - // seamlessly rotated child windows to have the TRANSFORM_TO_DISPLAY_INVERSE - // flag. Due to limitations in the client API, there is no way for - // the client to set this flag in a race free fashion. If we seamlessly rotate - // a window which does not have this flag, but then gains it, we will get - // an incorrect visual result (rotated viewfinder). This means if we want to - // support seamlessly rotating windows which could gain this flag, we can't - // rotate windows without it. This limits seamless rotation in N to camera framework - // users, windows without children, and native code. This is unfortunate but - // having the camera work is our primary goal. - if (w.isChildWindow() & w.isVisibleNow() && - !w.mWinAnimator.mSurfaceController.getTransformToDisplayInverse()) { - rotateSeamlessly = false; - } - } - } if (!rotateSeamlessly) { startFreezingDisplayLocked(inTransaction, anim[0], anim[1]); @@ -6906,6 +6914,10 @@ public class WindowManagerService extends IWindowManager.Stub // When we are rotating seamlessly, we allow the elements to transition // to their rotated state independently and without a freeze required. screenRotationAnimation = null; + + // We have to reset this in case a window was removed before it + // finished seamless rotation. + mSeamlessRotationCount = 0; } // We need to update our screen size information to match the new rotation. If the rotation @@ -8921,8 +8933,8 @@ public class WindowManagerService extends IWindowManager.Stub if (w.mSeamlesslyRotated) { layoutNeeded = true; w.setDisplayLayoutNeeded(); + markForSeamlessRotation(w, false); } - w.mSeamlesslyRotated = false; } if (layoutNeeded) { mWindowPlacerLocked.performSurfacePlacement(); @@ -11508,6 +11520,26 @@ public class WindowManagerService extends IWindowManager.Stub mPolicy.registerShortcutKey(shortcutCode, shortcutKeyReceiver); } + void markForSeamlessRotation(WindowState w, boolean seamlesslyRotated) { + if (seamlesslyRotated == w.mSeamlesslyRotated) { + return; + } + w.mSeamlesslyRotated = seamlesslyRotated; + if (seamlesslyRotated) { + mSeamlessRotationCount++; + } else { + mSeamlessRotationCount--; + } + if (mSeamlessRotationCount == 0) { + if (DEBUG_ORIENTATION) { + Slog.i(TAG, "Performing post-rotate rotation after seamless rotation"); + } + if (updateRotationUncheckedLocked(false)) { + mH.sendEmptyMessage(H.SEND_NEW_CONFIGURATION); + } + } + } + private final class LocalService extends WindowManagerInternal { @Override public void requestTraversalFromDisplayManager() { diff --git a/services/core/java/com/android/server/wm/WindowStateAnimator.java b/services/core/java/com/android/server/wm/WindowStateAnimator.java index 0285f7075e95..650dac91eb7f 100644 --- a/services/core/java/com/android/server/wm/WindowStateAnimator.java +++ b/services/core/java/com/android/server/wm/WindowStateAnimator.java @@ -1431,7 +1431,7 @@ class WindowStateAnimator { // If we are undergoing seamless rotation, the surface has already // been set up to persist at it's old location. We need to freeze // updates until a resize occurs. - w.mSeamlesslyRotated = w.mSeamlesslyRotated && !mSurfaceResized; + mService.markForSeamlessRotation(w, w.mSeamlesslyRotated && !mSurfaceResized); calculateSurfaceWindowCrop(mTmpClipRect, mTmpFinalClipRect); @@ -2156,7 +2156,7 @@ class WindowStateAnimator { cropRect.set(0, 0, w.mRequestedWidth, w.mRequestedWidth + w.mRequestedHeight); mSurfaceController.setCropInTransaction(cropRect, false); } else { - w.mSeamlesslyRotated = true; + mService.markForSeamlessRotation(w, true); transform.getValues(mService.mTmpFloats); float DsDx = mService.mTmpFloats[Matrix.MSCALE_X]; -- GitLab From 49baec862bae06dbfbbce2d50400a86d8bf1219e Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Mon, 3 Oct 2016 19:21:30 -0700 Subject: [PATCH 653/809] Import translations. DO NOT MERGE Change-Id: Ia2140f6189db3fbc9e00ea6bc3c33b8d2c90396e Auto-generated-cl: translation import --- core/res/res/values-bs-rBA/strings.xml | 4 ++-- core/res/res/values-ml-rIN/strings.xml | 2 +- core/res/res/values-pa-rIN/strings.xml | 2 +- core/res/res/values-pl/strings.xml | 2 +- core/res/res/values-uz-rUZ/strings.xml | 6 +++--- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/core/res/res/values-bs-rBA/strings.xml b/core/res/res/values-bs-rBA/strings.xml index bce6574c21fd..e8a3c028eeaa 100644 --- a/core/res/res/values-bs-rBA/strings.xml +++ b/core/res/res/values-bs-rBA/strings.xml @@ -1357,7 +1357,7 @@ "%s USB disk" "USB pohrana" "Uredi" - "Upozorenje o korištenju podataka" + "Upozorenje o prijenosu podataka" "Dodirnite za prikaz upotrebe i postavki." "Dostignut limit za 2G-3G podatke" "Dostignut limit za 4G podatke" @@ -1598,7 +1598,7 @@ "Ažurirao administrator" "Izbrisao administrator" "Da bi se trajanje baterije produžilo, opcija za štednju baterije minimizira rad uređaja i ograničava vibriranje, usluge lokacije i većinu prijenosa podataka u pozadini. E-pošta, poruke i druge aplikacije koje se oslanjaju na sinhronizaciju ne mogu biti ažurirane dok ih ne otvorite.\n\nŠtednja baterije se automatski isključi prilikom punjenja uređaja." - "Da bi se smanjilo korištenje podataka, usluga Ušteda podataka sprečava da neke aplikacije šalju ili primaju podatke u pozadini. Aplikacija koju trenutno koristite može pristupiti podacima, ali se to može desiti rjeđe. To može značiti, naprimjer, da se slike ne prikazuju sve dok ih ne dodirnete." + "Da bi se smanjio prijenos podataka, usluga Ušteda podataka sprečava da neke aplikacije šalju ili primaju podatke u pozadini. Aplikacija koju trenutno koristite može pristupiti podacima, ali se to može desiti rjeđe. To može značiti, naprimjer, da se slike ne prikazuju sve dok ih ne dodirnete." "Uključiti Uštedu podataka?" "Uključi" diff --git a/core/res/res/values-ml-rIN/strings.xml b/core/res/res/values-ml-rIN/strings.xml index 1db3202a13bb..423db1d19599 100644 --- a/core/res/res/values-ml-rIN/strings.xml +++ b/core/res/res/values-ml-rIN/strings.xml @@ -1329,7 +1329,7 @@ "%s USB ഡ്രൈവ്" "USB സ്റ്റോറേജ്" "എഡിറ്റുചെയ്യുക" - "ഡാറ്റാ ഉപയോഗ അലേർട്ട്" + "ഡാറ്റാ ഉപയോഗ മുന്നറിയിപ്പ്" "ഉപയോഗവും ക്രമീകരണവും കാണാൻ ടാപ്പുചെയ്യുക." "2G-3G ഡാറ്റ പരിധിയിലെത്തി" "4G ഡാറ്റ പരിധിയിലെത്തി" diff --git a/core/res/res/values-pa-rIN/strings.xml b/core/res/res/values-pa-rIN/strings.xml index ca170fc07c55..9658e1e15790 100644 --- a/core/res/res/values-pa-rIN/strings.xml +++ b/core/res/res/values-pa-rIN/strings.xml @@ -363,7 +363,7 @@ "ਐਪ ਨੂੰ ਤੁਹਾਡਾ ਅਨੁਮਾਨਿਤ ਨਿਰਧਾਰਿਤ ਸਥਾਨ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਇਹ ਨਿਰਧਾਰਿਤ ਸਥਾਨ ਨੈੱਟਵਰਕ ਨਿਰਧਾਰਿਤ ਸਥਾਨ ਸਰੋਤ ਵਰਤਦੇ ਹੋਏ ਨਿਰਧਾਰਿਤ ਸਥਾਨ ਸੇਵਾਵਾਂ ਰਾਹੀਂ ਪ੍ਰਾਪਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਜਿਵੇਂ ਸੈਲ ਟਾਵਰ ਅਤੇ Wi-Fi. ਇਹ ਨਿਰਧਾਰਿਤ ਸਥਾਨ ਸੇਵਾਵਾਂ ਚਾਲੂ ਅਤੇ ਐਪ ਨੂੰ ਉਹਨਾਂ ਨੂੰ ਵਰਤਣ ਲਈ ਤੁਹਾਡੀ ਡੀਵਾਈਸ ਤੇ ਹੋਣੀਆਂ ਚਾਹੀਦੀਆਂ ਹਨ। ਐਪਸ ਇਸਦੀ ਵਰਤੋਂ ਇਹ ਅਨੁਮਾਨ ਲਗਾਉਣ ਲਈ ਕਰ ਸਕਦੇ ਹਨ ਕਿ ਤੁਸੀਂ ਕਿੱਥੇ ਹੋ।" "ਆਪਣੀਆਂ ਔਡੀਓ ਸੈਟਿੰਗਾਂ ਬਦਲੋ" "ਔਪ ਨੂੰ ਗਲੋਬਲ ਔਡੀਓ ਸੈਟਿੰਗਾਂ ਸੰਸ਼ੋਧਿਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ ਜਿਵੇਂ ਵੌਲਿਊਮ ਅਤੇ ਆਊਟਪੁਟ ਲਈ ਕਿਹੜਾ ਸਪੀਕਰ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ।" - "ਔਡੀਓ ਰਿਕਾਰਡ ਕਰੋ" + "ਔਡੀਓ ਰਿਕਾਰਡ ਕਰਨ" "ਐਪ ਨੂੰ ਮਾਈਕ੍ਰੋਫੋਨ ਨਾਲ ਔਡੀਓ ਰਿਕਾਰਡ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਇਹ ਅਨੁਮਤੀ ਐਪ ਨੂੰ ਤੁਹਾਡੀ ਪੁਸ਼ਟੀ ਤੋਂ ਬਿਨਾਂ ਕਿਸੇ ਵੀ ਸਮੇਂ ਔਡੀਓ ਰਿਕਾਰਡ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ।" "SIM ਨੂੰ ਕਮਾਂਡਾਂ ਭੇਜੋ" "ਐਪ ਨੂੰ SIM ਨੂੰ ਕਮਾਂਡਾਂ ਭੇਜਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਇਹ ਬਹੁਤ ਘਾਤਕ ਹੈ।" diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml index cec858e81260..dbe29ee33993 100644 --- a/core/res/res/values-pl/strings.xml +++ b/core/res/res/values-pl/strings.xml @@ -218,7 +218,7 @@ "Opcje telefonu" "Blokada ekranu" "Wyłącz" - "Alarmowe" + "Alarmowy" "Zgłoszenie błędu" "Zgłoś błąd" "Informacje o bieżącym stanie urządzenia zostaną zebrane i wysłane e-mailem. Przygotowanie zgłoszenia błędu do wysłania chwilę potrwa, więc zachowaj cierpliwość." diff --git a/core/res/res/values-uz-rUZ/strings.xml b/core/res/res/values-uz-rUZ/strings.xml index 572abc76e8b3..e5a2889b7054 100644 --- a/core/res/res/values-uz-rUZ/strings.xml +++ b/core/res/res/values-uz-rUZ/strings.xml @@ -1099,7 +1099,7 @@ "Wi-Fi Direct yoniq" "Sozlamalarni ochish uchun bosing" "Qabul qilish" - "Rad qilish" + "Rad etish" "taklif jo‘natildi" "ulanish taklifi" "Kimdan:" @@ -1113,7 +1113,7 @@ "SMS xabarlar yuborilmoqda" "<b>%1$s</b> katta miqdordagi SMS xabarlarini jo‘natmoqda. Ushbu ilovaga xabarlar jo‘natishni davom ettirishga ruxsat berasizmi?" "Ruxsat berish" - "Rad qilish" + "Rad etish" "<b>%1$s</b> <b>%2$s</b>ga xabar jo‘natishni xohlaydi." "Bunda, mobil hisobingizdan ""to‘lov olinishi mumkin""." "Bunda, mobil hisobingizdan to‘lov olinishi mumkin." @@ -1223,7 +1223,7 @@ "Ushbu so‘rovga ruxsat berishni xohlaysizmi?" "Ruxsat so‘rovi" "Ruxsat berish" - "Rad qilish" + "Rad etish" "Ruxsat so‘raldi" "%s hisobi uchun\nruxsat so‘raldi" "Siz ushbu ilovadan ishchi profilingizdan tashqarida foydalanmoqdasiz" -- GitLab From cf2df3bb6ee8a8243213a65c2c0dd620d0cb8b77 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Mon, 3 Oct 2016 19:33:30 -0700 Subject: [PATCH 654/809] Import translations. DO NOT MERGE Change-Id: I47285d5faa82286b22f8bc79198791225deb3923 Auto-generated-cl: translation import --- packages/SystemUI/res/values-bs-rBA/strings.xml | 4 ++-- packages/SystemUI/res/values-my-rMM/strings.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/SystemUI/res/values-bs-rBA/strings.xml b/packages/SystemUI/res/values-bs-rBA/strings.xml index 923c48f208ff..f95660e066e0 100644 --- a/packages/SystemUI/res/values-bs-rBA/strings.xml +++ b/packages/SystemUI/res/values-bs-rBA/strings.xml @@ -239,7 +239,7 @@ "4G prijenos podataka je pauzirano" "Mobilni podaci su pauzirani" "Prijenos podataka je pauziran" - "Dostigli ste ograničenje za podatke koje ste postavili. Više ne koristite mobilne podatke.\n\nUkoliko nastavite koristiti mobilne podatke, mogući su troškovi za korištenje podataka." + "Dostigli ste ograničenje za prijenos podataka koje ste postavili. Više ne koristite mobilne podatke.\n\nUkoliko nastavite koristiti mobilne podatke, mogući su troškovi za prijenos podataka." "Nastavi" "Nema internet veze" "Wi-Fi veza aktivna" @@ -314,7 +314,7 @@ "Obavještenja" "Svjetiljka" "Mobilni podaci" - "Korištenje podataka" + "Prijenos podataka" "Preostala količina podataka" "Prekoračeno" "Iskorišteno %s" diff --git a/packages/SystemUI/res/values-my-rMM/strings.xml b/packages/SystemUI/res/values-my-rMM/strings.xml index c601fd111463..bb6f337f7d88 100644 --- a/packages/SystemUI/res/values-my-rMM/strings.xml +++ b/packages/SystemUI/res/values-my-rMM/strings.xml @@ -238,7 +238,7 @@ "4G data ခေတ္တရပ်တန့်သည်" "cellular data ခေတ္တရပ်တန့်သည်" "ဒေတာ ခေတ္တရပ်တန့်သည်" - "သင်သတ်မှတ်ထားသော ဒေတာကန့်သတ်ချက်သို့ ရောက်နေပါပြီ။ သင်သည် ဆယ်လူလာဒေတာကို သုံးနေတော့မည်မဟုတ်ပါ။\n\nသင်ဆက်လုပ်မည်ဆိုလျှင် ဒေတာသုံးစွဲမှုအတွက် အခငွေ ကျသင့်မှုရှိနိုင်ပါသည်။" + "သင်သတ်မှတ်ထားသော ဒေတာကန့်သတ်ချက်သို့ ရောက်နေပါပြီ။ သင်သည် ဆယ်လူလာဒေတာကို အသုံးမပြုတော့ပါ။\n\nသင်ဆက်လုပ်မည်ဆိုလျှင် ဒေတာသုံးစွဲမှုအတွက် အခငွေ ကျသင့်မှုရှိနိုင်ပါသည်။" "ပြန်ဆက်လုပ်ရန်" "အင်တာနက်မရှိ" "ကြိုးမဲ့ဆက်သွယ်မှု" -- GitLab From 065ab6ee407dc8b3b5b477e483b6f48e50720113 Mon Sep 17 00:00:00 2001 From: Erik Kline Date: Sun, 2 Oct 2016 18:02:14 +0900 Subject: [PATCH 655/809] Refactor "avoid bad wifi" logic into a utility class Additionally, add this utility class to IpManager for compatibility verification. A follow-on CL will make use of IpManager's local AvoidBadWifiTracker. Bug: 31827713 Change-Id: If8c56c3f8076d6a5157ea180e361bbdadc2bc1dd --- .../android/server/ConnectivityService.java | 89 ++++------- .../net/java/android/net/ip/IpManager.java | 4 + .../android/net/util/AvoidBadWifiTracker.java | 139 ++++++++++++++++++ .../server/ConnectivityServiceTest.java | 74 ++++++---- 4 files changed, 216 insertions(+), 90 deletions(-) create mode 100644 services/net/java/android/net/util/AvoidBadWifiTracker.java diff --git a/services/core/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java index 9c3c537be654..989892f1296e 100644 --- a/services/core/java/com/android/server/ConnectivityService.java +++ b/services/core/java/com/android/server/ConnectivityService.java @@ -77,6 +77,7 @@ import android.net.Uri; import android.net.metrics.DefaultNetworkEvent; import android.net.metrics.IpConnectivityLog; import android.net.metrics.NetworkEvent; +import android.net.util.AvoidBadWifiTracker; import android.os.Binder; import android.os.Build; import android.os.Bundle; @@ -397,11 +398,6 @@ public class ConnectivityService extends IConnectivityManager.Stub private static final int EVENT_REQUEST_LINKPROPERTIES = 32; private static final int EVENT_REQUEST_NETCAPABILITIES = 33; - /** - * Used internally to (re)configure avoid bad wifi setting. - */ - private static final int EVENT_CONFIGURE_NETWORK_AVOID_BAD_WIFI = 34; - /** Handler thread used for both of the handlers below. */ @VisibleForTesting protected final HandlerThread mHandlerThread; @@ -495,6 +491,9 @@ public class ConnectivityService extends IConnectivityManager.Stub private final IpConnectivityLog mMetricsLog; + @VisibleForTesting + final AvoidBadWifiTracker mAvoidBadWifiTracker; + /** * Implements support for the legacy "one network per network type" model. * @@ -857,14 +856,8 @@ public class ConnectivityService extends IConnectivityManager.Stub LingerMonitor.DEFAULT_NOTIFICATION_RATE_LIMIT_MILLIS); mLingerMonitor = new LingerMonitor(mContext, mNotifier, dailyLimit, rateLimit); - intentFilter = new IntentFilter(); - intentFilter.addAction(Intent.ACTION_CONFIGURATION_CHANGED); - mContext.registerReceiverAsUser(new BroadcastReceiver() { - public void onReceive(Context context, Intent intent) { - mHandler.sendEmptyMessage(EVENT_CONFIGURE_NETWORK_AVOID_BAD_WIFI); - } - }, UserHandle.ALL, intentFilter, null, null); - updateAvoidBadWifi(); + mAvoidBadWifiTracker = createAvoidBadWifiTracker( + mContext, mHandler, () -> rematchForAvoidBadWifiUpdate()); } private NetworkRequest createInternetRequestForTransport(int transportType) { @@ -915,12 +908,6 @@ public class ConnectivityService extends IConnectivityManager.Stub mSettingsObserver.observe( Settings.Global.getUriFor(Settings.Global.MOBILE_DATA_ALWAYS_ON), EVENT_CONFIGURE_MOBILE_DATA_ALWAYS_ON); - - // Watch for whether to automatically switch away from wifi networks that lose Internet - // access. - mSettingsObserver.observe( - Settings.Global.getUriFor(Settings.Global.NETWORK_AVOID_BAD_WIFI), - EVENT_CONFIGURE_NETWORK_AVOID_BAD_WIFI); } private synchronized int nextNetworkRequestId() { @@ -2755,36 +2742,23 @@ public class ConnectivityService extends IConnectivityManager.Stub PROMPT_UNVALIDATED_DELAY_MS); } - private boolean mAvoidBadWifi = true; - public boolean avoidBadWifi() { - return mAvoidBadWifi; - } - - @VisibleForTesting - /** Whether the device or carrier configuration disables avoiding bad wifi by default. */ - public boolean configRestrictsAvoidBadWifi() { - return mContext.getResources().getInteger(R.integer.config_networkAvoidBadWifi) == 0; + return mAvoidBadWifiTracker.currentValue(); } - /** Whether we should display a notification when wifi becomes unvalidated. */ - public boolean shouldNotifyWifiUnvalidated() { - return configRestrictsAvoidBadWifi() && - Settings.Global.getString(mContext.getContentResolver(), - Settings.Global.NETWORK_AVOID_BAD_WIFI) == null; - } - - private boolean updateAvoidBadWifi() { - boolean settingAvoidBadWifi = "1".equals(Settings.Global.getString( - mContext.getContentResolver(), Settings.Global.NETWORK_AVOID_BAD_WIFI)); - - boolean prev = mAvoidBadWifi; - mAvoidBadWifi = settingAvoidBadWifi || !configRestrictsAvoidBadWifi(); - return mAvoidBadWifi != prev; + private void rematchForAvoidBadWifiUpdate() { + rematchAllNetworksAndRequests(null, 0); + for (NetworkAgentInfo nai: mNetworkAgentInfos.values()) { + if (nai.networkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) { + sendUpdatedScoreToFactories(nai); + } + } } + // TODO: Evaluate whether this is of interest to other consumers of + // AvoidBadWifiTracker and worth moving out of here. private void dumpAvoidBadWifiSettings(IndentingPrintWriter pw) { - boolean configRestrict = configRestrictsAvoidBadWifi(); + final boolean configRestrict = mAvoidBadWifiTracker.configRestrictsAvoidBadWifi(); if (!configRestrict) { pw.println("Bad Wi-Fi avoidance: unrestricted"); return; @@ -2794,8 +2768,7 @@ public class ConnectivityService extends IConnectivityManager.Stub pw.increaseIndent(); pw.println("Config restrict: " + configRestrict); - String value = Settings.Global.getString( - mContext.getContentResolver(), Settings.Global.NETWORK_AVOID_BAD_WIFI); + final String value = mAvoidBadWifiTracker.getSettingsValue(); String description; // Can't use a switch statement because strings are legal case labels, but null is not. if ("0".equals(value)) { @@ -2858,17 +2831,12 @@ public class ConnectivityService extends IConnectivityManager.Stub showValidationNotification(nai, NotificationType.NO_INTERNET); } - // TODO: Delete this like updateMobileDataAlwaysOn above. - @VisibleForTesting - void updateNetworkAvoidBadWifi() { - mHandler.sendEmptyMessage(EVENT_CONFIGURE_NETWORK_AVOID_BAD_WIFI); - } - private void handleNetworkUnvalidated(NetworkAgentInfo nai) { NetworkCapabilities nc = nai.networkCapabilities; if (DBG) log("handleNetworkUnvalidated " + nai.name() + " cap=" + nc); - if (nc.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) && shouldNotifyWifiUnvalidated()) { + if (nc.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) && + mAvoidBadWifiTracker.shouldNotifyWifiUnvalidated()) { showValidationNotification(nai, NotificationType.LOST_INTERNET); } } @@ -2958,18 +2926,6 @@ public class ConnectivityService extends IConnectivityManager.Stub handleMobileDataAlwaysOn(); break; } - case EVENT_CONFIGURE_NETWORK_AVOID_BAD_WIFI: { - if (updateAvoidBadWifi()) { - rematchAllNetworksAndRequests(null, 0); - for (NetworkAgentInfo nai: mNetworkAgentInfos.values()) { - if (nai.networkCapabilities.hasTransport( - NetworkCapabilities.TRANSPORT_WIFI)) { - sendUpdatedScoreToFactories(nai); - } - } - } - break; - } case EVENT_REQUEST_LINKPROPERTIES: handleRequestLinkProperties((NetworkRequest) msg.obj, msg.arg1); break; @@ -5442,6 +5398,11 @@ public class ConnectivityService extends IConnectivityManager.Stub return new NetworkMonitor(context, handler, nai, defaultRequest); } + @VisibleForTesting + AvoidBadWifiTracker createAvoidBadWifiTracker(Context c, Handler h, Runnable r) { + return new AvoidBadWifiTracker(c, h, r); + } + @VisibleForTesting public WakeupMessage makeWakeupMessage(Context c, Handler h, String s, int cmd, Object obj) { return new WakeupMessage(c, h, s, cmd, 0, 0, obj); diff --git a/services/net/java/android/net/ip/IpManager.java b/services/net/java/android/net/ip/IpManager.java index 654ef18f9608..fc91f512c21f 100644 --- a/services/net/java/android/net/ip/IpManager.java +++ b/services/net/java/android/net/ip/IpManager.java @@ -33,6 +33,7 @@ import android.net.StaticIpConfiguration; import android.net.dhcp.DhcpClient; import android.net.metrics.IpConnectivityLog; import android.net.metrics.IpManagerEvent; +import android.net.util.AvoidBadWifiTracker; import android.os.INetworkManagementService; import android.os.Message; import android.os.RemoteException; @@ -393,6 +394,7 @@ public class IpManager extends StateMachine { private final NetlinkTracker mNetlinkTracker; private final WakeupMessage mProvisioningTimeoutAlarm; private final WakeupMessage mDhcpActionTimeoutAlarm; + private final AvoidBadWifiTracker mAvoidBadWifiTracker; private final LocalLog mLocalLog; private final IpConnectivityLog mMetricsLog = new IpConnectivityLog(); @@ -466,6 +468,8 @@ public class IpManager extends StateMachine { Log.e(mTag, "Couldn't register NetlinkTracker: " + e.toString()); } + mAvoidBadWifiTracker = new AvoidBadWifiTracker(mContext, getHandler()); + resetLinkProperties(); mProvisioningTimeoutAlarm = new WakeupMessage(mContext, getHandler(), diff --git a/services/net/java/android/net/util/AvoidBadWifiTracker.java b/services/net/java/android/net/util/AvoidBadWifiTracker.java new file mode 100644 index 000000000000..c14e811e0584 --- /dev/null +++ b/services/net/java/android/net/util/AvoidBadWifiTracker.java @@ -0,0 +1,139 @@ +/* + * Copyright (C) 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. + */ + +package android.net.util; + +import android.content.BroadcastReceiver; +import android.content.ContentResolver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.database.ContentObserver; +import android.net.Uri; +import android.os.Handler; +import android.os.Message; +import android.os.UserHandle; +import android.provider.Settings; +import android.util.Slog; + +import com.android.internal.annotations.VisibleForTesting; +import com.android.internal.R; + +import static android.provider.Settings.Global.NETWORK_AVOID_BAD_WIFI; + +/** + * A class to encapsulate management of the "Smart Networking" capability of + * avoiding bad Wi-Fi when, for example upstream connectivity is lost or + * certain critical link failures occur. + * + * This enables the device to switch to another form of connectivity, like + * mobile, if it's available and working. + * + * The Runnable |cb|, if given, is called on the supplied Handler's thread + * whether the computed "avoid bad wifi" value changes. + * + * Disabling this reverts the device to a level of networking sophistication + * circa 2012-13 by disabling disparate code paths each of which contribute to + * maintaining continuous, working Internet connectivity. + * + * @hide + */ +public class AvoidBadWifiTracker { + private static String TAG = AvoidBadWifiTracker.class.getSimpleName(); + + private final Context mContext; + private final Handler mHandler; + private final Runnable mReevaluateRunnable; + private final SettingObserver mSettingObserver; + private volatile boolean mAvoidBadWifi = true; + + public AvoidBadWifiTracker(Context ctx, Handler handler) { + this(ctx, handler, null); + } + + public AvoidBadWifiTracker(Context ctx, Handler handler, Runnable cb) { + mContext = ctx; + mHandler = handler; + mReevaluateRunnable = () -> { if (update() && cb != null) cb.run(); }; + mSettingObserver = new SettingObserver(); + + final IntentFilter intentFilter = new IntentFilter(); + intentFilter.addAction(Intent.ACTION_CONFIGURATION_CHANGED); + mContext.registerReceiverAsUser(new BroadcastReceiver() { + public void onReceive(Context context, Intent intent) { + reevaluate(); + } + }, UserHandle.ALL, intentFilter, null, null); + + update(); + } + + public boolean currentValue() { + return mAvoidBadWifi; + } + + /** + * Whether the device or carrier configuration disables avoiding bad wifi by default. + */ + public boolean configRestrictsAvoidBadWifi() { + return (mContext.getResources().getInteger(R.integer.config_networkAvoidBadWifi) == 0); + } + + /** + * Whether we should display a notification when wifi becomes unvalidated. + */ + public boolean shouldNotifyWifiUnvalidated() { + return configRestrictsAvoidBadWifi() && getSettingsValue() == null; + } + + public String getSettingsValue() { + final ContentResolver resolver = mContext.getContentResolver(); + return Settings.Global.getString(resolver, NETWORK_AVOID_BAD_WIFI); + } + + @VisibleForTesting + public void reevaluate() { + mHandler.post(mReevaluateRunnable); + } + + public boolean update() { + final boolean settingAvoidBadWifi = "1".equals(getSettingsValue()); + final boolean prev = mAvoidBadWifi; + mAvoidBadWifi = settingAvoidBadWifi || !configRestrictsAvoidBadWifi(); + return mAvoidBadWifi != prev; + } + + private class SettingObserver extends ContentObserver { + private final Uri mUri = Settings.Global.getUriFor(NETWORK_AVOID_BAD_WIFI); + + public SettingObserver() { + super(null); + final ContentResolver resolver = mContext.getContentResolver(); + resolver.registerContentObserver(mUri, false, this); + } + + @Override + public void onChange(boolean selfChange) { + Slog.wtf(TAG, "Should never be reached."); + } + + @Override + public void onChange(boolean selfChange, Uri uri) { + if (!mUri.equals(uri)) return; + reevaluate(); + } + } +} diff --git a/services/tests/servicestests/src/com/android/server/ConnectivityServiceTest.java b/services/tests/servicestests/src/com/android/server/ConnectivityServiceTest.java index 2055d16f3286..a656accb9f7e 100644 --- a/services/tests/servicestests/src/com/android/server/ConnectivityServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/ConnectivityServiceTest.java @@ -53,6 +53,7 @@ import android.net.NetworkMisc; import android.net.NetworkRequest; import android.net.RouteInfo; import android.net.metrics.IpConnectivityLog; +import android.net.util.AvoidBadWifiTracker; import android.os.ConditionVariable; import android.os.Handler; import android.os.HandlerThread; @@ -600,9 +601,22 @@ public class ConnectivityServiceTest extends AndroidTestCase { } } + private class WrappedAvoidBadWifiTracker extends AvoidBadWifiTracker { + public boolean configRestrictsAvoidBadWifi; + + public WrappedAvoidBadWifiTracker(Context c, Handler h, Runnable r) { + super(c, h, r); + } + + @Override + public boolean configRestrictsAvoidBadWifi() { + return configRestrictsAvoidBadWifi; + } + } + private class WrappedConnectivityService extends ConnectivityService { + public WrappedAvoidBadWifiTracker wrappedAvoidBadWifiTracker; private WrappedNetworkMonitor mLastCreatedNetworkMonitor; - public boolean configRestrictsAvoidBadWifi; public WrappedConnectivityService(Context context, INetworkManagementService netManager, INetworkStatsService statsService, INetworkPolicyManager policyManager, @@ -653,14 +667,20 @@ public class ConnectivityServiceTest extends AndroidTestCase { } @Override - public WakeupMessage makeWakeupMessage( - Context context, Handler handler, String cmdName, int cmd, Object obj) { - return new FakeWakeupMessage(context, handler, cmdName, cmd, 0, 0, obj); + public AvoidBadWifiTracker createAvoidBadWifiTracker( + Context c, Handler h, Runnable r) { + final WrappedAvoidBadWifiTracker tracker = new WrappedAvoidBadWifiTracker(c, h, r); + return tracker; + } + + public WrappedAvoidBadWifiTracker getAvoidBadWifiTracker() { + return (WrappedAvoidBadWifiTracker) mAvoidBadWifiTracker; } @Override - public boolean configRestrictsAvoidBadWifi() { - return configRestrictsAvoidBadWifi; + public WakeupMessage makeWakeupMessage( + Context context, Handler handler, String cmdName, int cmd, Object obj) { + return new FakeWakeupMessage(context, handler, cmdName, cmd, 0, 0, obj); } public WrappedNetworkMonitor getLastCreatedWrappedNetworkMonitor() { @@ -1965,46 +1985,48 @@ public class ConnectivityServiceTest extends AndroidTestCase { @SmallTest public void testAvoidBadWifiSetting() throws Exception { final ContentResolver cr = mServiceContext.getContentResolver(); + final WrappedAvoidBadWifiTracker tracker = mService.getAvoidBadWifiTracker(); final String settingName = Settings.Global.NETWORK_AVOID_BAD_WIFI; - mService.configRestrictsAvoidBadWifi = false; + tracker.configRestrictsAvoidBadWifi = false; String[] values = new String[] {null, "0", "1"}; for (int i = 0; i < values.length; i++) { Settings.Global.putInt(cr, settingName, 1); - mService.updateNetworkAvoidBadWifi(); + tracker.reevaluate(); mService.waitForIdle(); String msg = String.format("config=false, setting=%s", values[i]); assertTrue(msg, mService.avoidBadWifi()); - assertFalse(msg, mService.shouldNotifyWifiUnvalidated()); + assertFalse(msg, tracker.shouldNotifyWifiUnvalidated()); } - mService.configRestrictsAvoidBadWifi = true; + tracker.configRestrictsAvoidBadWifi = true; Settings.Global.putInt(cr, settingName, 0); - mService.updateNetworkAvoidBadWifi(); + tracker.reevaluate(); mService.waitForIdle(); assertFalse(mService.avoidBadWifi()); - assertFalse(mService.shouldNotifyWifiUnvalidated()); + assertFalse(tracker.shouldNotifyWifiUnvalidated()); Settings.Global.putInt(cr, settingName, 1); - mService.updateNetworkAvoidBadWifi(); + tracker.reevaluate(); mService.waitForIdle(); assertTrue(mService.avoidBadWifi()); - assertFalse(mService.shouldNotifyWifiUnvalidated()); + assertFalse(tracker.shouldNotifyWifiUnvalidated()); Settings.Global.putString(cr, settingName, null); - mService.updateNetworkAvoidBadWifi(); + tracker.reevaluate(); mService.waitForIdle(); assertFalse(mService.avoidBadWifi()); - assertTrue(mService.shouldNotifyWifiUnvalidated()); + assertTrue(tracker.shouldNotifyWifiUnvalidated()); } @SmallTest public void testAvoidBadWifi() throws Exception { - ContentResolver cr = mServiceContext.getContentResolver(); + final ContentResolver cr = mServiceContext.getContentResolver(); + final WrappedAvoidBadWifiTracker tracker = mService.getAvoidBadWifiTracker(); // Pretend we're on a carrier that restricts switching away from bad wifi. - mService.configRestrictsAvoidBadWifi = true; + tracker.configRestrictsAvoidBadWifi = true; // File a request for cell to ensure it doesn't go down. final TestNetworkCallback cellNetworkCallback = new TestNetworkCallback(); @@ -2023,7 +2045,7 @@ public class ConnectivityServiceTest extends AndroidTestCase { mCm.registerNetworkCallback(validatedWifiRequest, validatedWifiCallback); Settings.Global.putInt(cr, Settings.Global.NETWORK_AVOID_BAD_WIFI, 0); - mService.updateNetworkAvoidBadWifi(); + tracker.reevaluate(); // Bring up validated cell. mCellNetworkAgent = new MockNetworkAgent(TRANSPORT_CELLULAR); @@ -2054,14 +2076,14 @@ public class ConnectivityServiceTest extends AndroidTestCase { // Simulate switching to a carrier that does not restrict avoiding bad wifi, and expect // that we switch back to cell. - mService.configRestrictsAvoidBadWifi = false; - mService.updateNetworkAvoidBadWifi(); + tracker.configRestrictsAvoidBadWifi = false; + tracker.reevaluate(); defaultCallback.expectCallback(CallbackState.AVAILABLE, mCellNetworkAgent); assertEquals(mCm.getActiveNetwork(), cellNetwork); // Switch back to a restrictive carrier. - mService.configRestrictsAvoidBadWifi = true; - mService.updateNetworkAvoidBadWifi(); + tracker.configRestrictsAvoidBadWifi = true; + tracker.reevaluate(); defaultCallback.expectCallback(CallbackState.AVAILABLE, mWiFiNetworkAgent); assertEquals(mCm.getActiveNetwork(), wifiNetwork); @@ -2089,7 +2111,7 @@ public class ConnectivityServiceTest extends AndroidTestCase { // Simulate the user selecting "switch" and checking the don't ask again checkbox. Settings.Global.putInt(cr, Settings.Global.NETWORK_AVOID_BAD_WIFI, 1); - mService.updateNetworkAvoidBadWifi(); + tracker.reevaluate(); // We now switch to cell. defaultCallback.expectCallback(CallbackState.AVAILABLE, mCellNetworkAgent); @@ -2102,11 +2124,11 @@ public class ConnectivityServiceTest extends AndroidTestCase { // Simulate the user turning the cellular fallback setting off and then on. // We switch to wifi and then to cell. Settings.Global.putString(cr, Settings.Global.NETWORK_AVOID_BAD_WIFI, null); - mService.updateNetworkAvoidBadWifi(); + tracker.reevaluate(); defaultCallback.expectCallback(CallbackState.AVAILABLE, mWiFiNetworkAgent); assertEquals(mCm.getActiveNetwork(), wifiNetwork); Settings.Global.putInt(cr, Settings.Global.NETWORK_AVOID_BAD_WIFI, 1); - mService.updateNetworkAvoidBadWifi(); + tracker.reevaluate(); defaultCallback.expectCallback(CallbackState.AVAILABLE, mCellNetworkAgent); assertEquals(mCm.getActiveNetwork(), cellNetwork); -- GitLab From 5b437d6ff91116f25be946e07d5d90cd25c372a4 Mon Sep 17 00:00:00 2001 From: Erik Kline Date: Mon, 3 Oct 2016 19:53:50 +0900 Subject: [PATCH 656/809] Conditionally accept loss of on-link IPv6 DNS servers Permit this if and only if we're not "avoiding bad wifi" in general. Bug: 31827713 Change-Id: I0874ec2d1d09e913ccdbe9f6e178090400808a04 --- .../net/java/android/net/ip/IpManager.java | 3 ++- .../android/net/ip/IpReachabilityMonitor.java | 22 ++++++++++++++++--- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/services/net/java/android/net/ip/IpManager.java b/services/net/java/android/net/ip/IpManager.java index fc91f512c21f..d5dd15fc6800 100644 --- a/services/net/java/android/net/ip/IpManager.java +++ b/services/net/java/android/net/ip/IpManager.java @@ -1068,7 +1068,8 @@ public class IpManager extends StateMachine { public void notifyLost(InetAddress ip, String logMsg) { mCallback.onReachabilityLost(logMsg); } - }); + }, + mAvoidBadWifiTracker); } } diff --git a/services/net/java/android/net/ip/IpReachabilityMonitor.java b/services/net/java/android/net/ip/IpReachabilityMonitor.java index c6da3c31fd61..a6bb40c6ac0b 100644 --- a/services/net/java/android/net/ip/IpReachabilityMonitor.java +++ b/services/net/java/android/net/ip/IpReachabilityMonitor.java @@ -34,6 +34,7 @@ import android.net.netlink.RtNetlinkNeighborMessage; import android.net.netlink.StructNdaCacheInfo; import android.net.netlink.StructNdMsg; import android.net.netlink.StructNlMsgHdr; +import android.net.util.AvoidBadWifiTracker; import android.os.PowerManager; import android.os.SystemClock; import android.system.ErrnoException; @@ -42,6 +43,7 @@ import android.system.OsConstants; import android.util.Log; import java.io.InterruptedIOException; +import java.net.Inet6Address; import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.NetworkInterface; @@ -149,6 +151,7 @@ public class IpReachabilityMonitor { private final String mInterfaceName; private final int mInterfaceIndex; private final Callback mCallback; + private final AvoidBadWifiTracker mAvoidBadWifiTracker; private final NetlinkSocketObserver mNetlinkSocketObserver; private final Thread mObserverThread; private final IpConnectivityLog mMetricsLog = new IpConnectivityLog(); @@ -219,8 +222,12 @@ public class IpReachabilityMonitor { return errno; } - public IpReachabilityMonitor(Context context, String ifName, Callback callback) - throws IllegalArgumentException { + public IpReachabilityMonitor(Context context, String ifName, Callback callback) { + this(context, ifName, callback, null); + } + + public IpReachabilityMonitor(Context context, String ifName, Callback callback, + AvoidBadWifiTracker tracker) throws IllegalArgumentException { mInterfaceName = ifName; int ifIndex = -1; try { @@ -232,6 +239,7 @@ public class IpReachabilityMonitor { mWakeLock = ((PowerManager) context.getSystemService(Context.POWER_SERVICE)).newWakeLock( PowerManager.PARTIAL_WAKE_LOCK, TAG + "." + mInterfaceName); mCallback = callback; + mAvoidBadWifiTracker = tracker; mNetlinkSocketObserver = new NetlinkSocketObserver(); mObserverThread = new Thread(mNetlinkSocketObserver); mObserverThread.start(); @@ -355,7 +363,11 @@ public class IpReachabilityMonitor { whatIfLp.removeRoute(route); } } - whatIfLp.removeDnsServer(ip); + + if (avoidingBadLinks() || !(ip instanceof Inet6Address)) { + // We should do this unconditionally, but alas we cannot: b/31827713. + whatIfLp.removeDnsServer(ip); + } } delta = LinkProperties.compareProvisioning(mLinkProperties, whatIfLp); @@ -373,6 +385,10 @@ public class IpReachabilityMonitor { logNudFailed(delta); } + private boolean avoidingBadLinks() { + return (mAvoidBadWifiTracker != null) ? mAvoidBadWifiTracker.currentValue() : true; + } + public void probeAll() { Set ipProbeList = new HashSet(); synchronized (mLock) { -- GitLab From b77b77521373b9de0b79a96fca1e4b1857a140b1 Mon Sep 17 00:00:00 2001 From: Lorenzo Colitti Date: Tue, 4 Oct 2016 01:38:15 +0900 Subject: [PATCH 657/809] Slightly simplify IpManager#compareProvisioning. Bug: 31827713 Change-Id: Icc1c8d98feef14c972891451fd94f855d78de43e --- services/net/java/android/net/ip/IpManager.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/services/net/java/android/net/ip/IpManager.java b/services/net/java/android/net/ip/IpManager.java index d5dd15fc6800..de2c0c6a268b 100644 --- a/services/net/java/android/net/ip/IpManager.java +++ b/services/net/java/android/net/ip/IpManager.java @@ -684,6 +684,10 @@ public class IpManager extends StateMachine { delta = ProvisioningChange.LOST_PROVISIONING; } + final boolean lostIPv6 = oldLp.isIPv6Provisioned() && !newLp.isIPv6Provisioned(); + final boolean lostIPv4Address = oldLp.hasIPv4Address() && !newLp.hasIPv4Address(); + final boolean lostIPv6Router = oldLp.hasIPv6DefaultRoute() && !newLp.hasIPv6DefaultRoute(); + // Additionally: // // Partial configurations (e.g., only an IPv4 address with no DNS @@ -696,8 +700,7 @@ public class IpManager extends StateMachine { // Because on such a network isProvisioned() will always return false, // delta will never be LOST_PROVISIONING. So check for loss of // provisioning here too. - if ((oldLp.hasIPv4Address() && !newLp.hasIPv4Address()) || - (oldLp.isIPv6Provisioned() && !newLp.isIPv6Provisioned())) { + if (lostIPv4Address || lostIPv6) { delta = ProvisioningChange.LOST_PROVISIONING; } @@ -706,8 +709,7 @@ public class IpManager extends StateMachine { // If the previous link properties had a global IPv6 address and an // IPv6 default route then also consider the loss of that default route // to be a loss of provisioning. See b/27962810. - if (oldLp.hasGlobalIPv6Address() && oldLp.hasIPv6DefaultRoute() && - !newLp.hasIPv6DefaultRoute()) { + if (oldLp.hasGlobalIPv6Address() && lostIPv6Router) { delta = ProvisioningChange.LOST_PROVISIONING; } -- GitLab From f11ee9f5928d14d713bb1a7346629c506c968b58 Mon Sep 17 00:00:00 2001 From: Lorenzo Colitti Date: Tue, 4 Oct 2016 11:01:19 +0900 Subject: [PATCH 658/809] Ignore loss of IPv6 provisioning when not avoiding bad Wi-Fi. Bug: 31827713 Change-Id: I81471f2f3e6c1c4d7bdfebc9dd321bb9d76ad0b6 --- .../net/java/android/net/ip/IpManager.java | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/services/net/java/android/net/ip/IpManager.java b/services/net/java/android/net/ip/IpManager.java index de2c0c6a268b..d0ab606f039e 100644 --- a/services/net/java/android/net/ip/IpManager.java +++ b/services/net/java/android/net/ip/IpManager.java @@ -657,7 +657,7 @@ public class IpManager extends StateMachine { // object that is a correct and complete assessment of what changed, taking // account of the asymmetries described in the comments in this function. // Then switch to using it everywhere (IpReachabilityMonitor, etc.). - private static ProvisioningChange compareProvisioning( + private ProvisioningChange compareProvisioning( LinkProperties oldLp, LinkProperties newLp) { ProvisioningChange delta; @@ -688,6 +688,21 @@ public class IpManager extends StateMachine { final boolean lostIPv4Address = oldLp.hasIPv4Address() && !newLp.hasIPv4Address(); final boolean lostIPv6Router = oldLp.hasIPv6DefaultRoute() && !newLp.hasIPv6DefaultRoute(); + // If bad wifi avoidance is disabled, then ignore IPv6 loss of + // provisioning. Otherwise, when a hotspot that loses Internet + // access sends out a 0-lifetime RA to its clients, the clients + // will disconnect and then reconnect, avoiding the bad hotspot, + // instead of getting stuck on the bad hotspot. http://b/31827713 . + // + // This is incorrect because if the hotspot then regains Internet + // access with a different prefix, TCP connections on the + // deprecated addresses will remain stuck. + // + // Note that we can still be disconnected by IpReachabilityMonitor + // if the IPv6 default gateway (but not the IPv6 DNS servers; see + // accompanying code in IpReachabilityMonitor) is unreachable. + final boolean ignoreIPv6ProvisioningLoss = !mAvoidBadWifiTracker.currentValue(); + // Additionally: // // Partial configurations (e.g., only an IPv4 address with no DNS @@ -700,7 +715,7 @@ public class IpManager extends StateMachine { // Because on such a network isProvisioned() will always return false, // delta will never be LOST_PROVISIONING. So check for loss of // provisioning here too. - if (lostIPv4Address || lostIPv6) { + if (lostIPv4Address || (lostIPv6 && !ignoreIPv6ProvisioningLoss)) { delta = ProvisioningChange.LOST_PROVISIONING; } @@ -709,7 +724,7 @@ public class IpManager extends StateMachine { // If the previous link properties had a global IPv6 address and an // IPv6 default route then also consider the loss of that default route // to be a loss of provisioning. See b/27962810. - if (oldLp.hasGlobalIPv6Address() && lostIPv6Router) { + if (oldLp.hasGlobalIPv6Address() && (lostIPv6Router && !ignoreIPv6ProvisioningLoss)) { delta = ProvisioningChange.LOST_PROVISIONING; } -- GitLab From ad32c550c0feebf60d1f18d09222d0e8b880cb01 Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Tue, 4 Oct 2016 14:50:11 -0400 Subject: [PATCH 659/809] QS: Don't set flashlight state when we don't have an id Also add a dump to FlashlightController for better visibility. Change-Id: I7e826c58598ccc18e211aaab31a2e4d039234fc1 Fixes: 31352536 --- .../systemui/statusbar/phone/PhoneStatusBar.java | 3 +++ .../statusbar/policy/FlashlightController.java | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java index 26a85275c618..04124b5c28ad 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -3405,6 +3405,9 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, if (KeyguardUpdateMonitor.getInstance(mContext) != null) { KeyguardUpdateMonitor.getInstance(mContext).dump(fd, pw, args); } + if (mFlashlightController != null) { + mFlashlightController.dump(fd, pw, args); + } FalsingManager.getInstance(mContext).dump(pw); FalsingLog.dump(pw); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/FlashlightController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/FlashlightController.java index 91b21ed322a0..4e9fc76f7059 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/FlashlightController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/FlashlightController.java @@ -27,6 +27,8 @@ import android.os.Process; import android.text.TextUtils; import android.util.Log; +import java.io.FileDescriptor; +import java.io.PrintWriter; import java.lang.ref.WeakReference; import java.util.ArrayList; @@ -80,6 +82,7 @@ public class FlashlightController { public void setFlashlight(boolean enabled) { boolean pendingError = false; synchronized (this) { + if (mCameraId == null) return; if (mFlashlightEnabled != enabled) { mFlashlightEnabled = enabled; try { @@ -235,6 +238,17 @@ public class FlashlightController { } }; + public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { + pw.println("FlashlightController state:"); + + pw.print(" mCameraId="); + pw.println(mCameraId); + pw.print(" mFlashlightEnabled="); + pw.println(mFlashlightEnabled); + pw.print(" mTorchAvailable="); + pw.println(mTorchAvailable); + } + public interface FlashlightListener { /** -- GitLab From b07f1409045091476e5296f9b0dd41c8712fe49a Mon Sep 17 00:00:00 2001 From: Rebecca Silberstein Date: Tue, 4 Oct 2016 13:53:33 -0700 Subject: [PATCH 660/809] Tethering: check if configManager is null Before attempting to retrieve a carrier entitlement setting, first make sure we have a carrier config manager and if we do have a carrier config manager, the config it holds is not null. Bug: 31929638 Change-Id: Iee476c476cb3de109cdccbd955b7fb986dd4267b --- .../com/android/server/connectivity/Tethering.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/services/core/java/com/android/server/connectivity/Tethering.java b/services/core/java/com/android/server/connectivity/Tethering.java index 50faf3b72a47..da9c5474b66b 100644 --- a/services/core/java/com/android/server/connectivity/Tethering.java +++ b/services/core/java/com/android/server/connectivity/Tethering.java @@ -405,11 +405,13 @@ public class Tethering extends BaseNetworkObserver implements IControlsTethering // Check carrier config for entitlement checks final CarrierConfigManager configManager = (CarrierConfigManager) mContext .getSystemService(Context.CARRIER_CONFIG_SERVICE); - boolean isEntitlementCheckRequired = configManager.getConfig().getBoolean( - CarrierConfigManager.KEY_REQUIRE_ENTITLEMENT_CHECKS_BOOL); - - if (!isEntitlementCheckRequired) { - return false; + if (configManager != null && configManager.getConfig() != null) { + // we do have a CarrierConfigManager and it has a config. + boolean isEntitlementCheckRequired = configManager.getConfig().getBoolean( + CarrierConfigManager.KEY_REQUIRE_ENTITLEMENT_CHECKS_BOOL); + if (!isEntitlementCheckRequired) { + return false; + } } return (provisionApp.length == 2); } -- GitLab From 0288dcc8251013992ad676ad823550d184f2f6b1 Mon Sep 17 00:00:00 2001 From: Adrian Roos Date: Tue, 4 Oct 2016 16:35:10 -0400 Subject: [PATCH 661/809] Ambient: Re-register all trigger sensors if one fires Works around an issue where triggering one trigger sensor can affect other trigger sensors. To be sure, re-register them all. Change-Id: I4a0999275638e8a78c3c604fda6527aff0d9365a Fixes: 31933894 --- .../com/android/systemui/doze/DozeService.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeService.java b/packages/SystemUI/src/com/android/systemui/doze/DozeService.java index 261d2411bf29..56f6b8df866b 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeService.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeService.java @@ -60,6 +60,11 @@ public class DozeService extends DreamService { private static final String ACTION_BASE = "com.android.systemui.doze"; private static final String PULSE_ACTION = ACTION_BASE + ".pulse"; + /** + * If true, reregisters all trigger sensors when the screen turns off. + */ + private static final boolean REREGISTER_ALL_SENSORS_ON_SCREEN_OFF = true; + private final String mTag = String.format(TAG + ".%08x", hashCode()); private final Context mContext = this; private final DozeParameters mDozeParameters = new DozeParameters(mContext); @@ -272,6 +277,9 @@ public class DozeService extends DreamService { public void onPulseFinished() { if (mPulsing && mDreaming) { mPulsing = false; + if (REREGISTER_ALL_SENSORS_ON_SCREEN_OFF) { + reregisterAllSensors(); + } turnDisplayOff(); } mWakeLock.release(); // needs to be unconditional to balance acquire @@ -308,6 +316,15 @@ public class DozeService extends DreamService { listenForNotifications(listen); } + private void reregisterAllSensors() { + for (TriggerSensor s : mSensors) { + s.setListening(false); + } + for (TriggerSensor s : mSensors) { + s.setListening(true); + } + } + private void listenForBroadcasts(boolean listen) { if (listen) { final IntentFilter filter = new IntentFilter(PULSE_ACTION); -- GitLab From eafb535072698b0559d8919db4b18618359c11b9 Mon Sep 17 00:00:00 2001 From: Christopher Tate Date: Tue, 4 Oct 2016 16:34:48 -0700 Subject: [PATCH 662/809] Eliminate unnecessary object churn in job scheduler updating The arbitrary-caller "what job is currently running?" state inspector returns a clone of the JobStatus record for it, not a live reference to the scheduler's active state. That's appropriate for most cases but when doing its own internal bookkeeping, the object churn in cloning (especially, an unneeded clone just for purposes of comparing to some other job!) is merely a huge waste of CPU and GC load. So now we don't do that unnecessarily, and everything is much leaner. Bug 31751985 Change-Id: Idacb52e9e5ca17b9e12b7ccd2fc2e1ec8b3547f6 --- .../java/com/android/server/job/JobSchedulerService.java | 6 +++++- .../java/com/android/server/job/JobServiceContext.java | 9 +++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/job/JobSchedulerService.java b/services/core/java/com/android/server/job/JobSchedulerService.java index 9d931467d914..ba3977268190 100644 --- a/services/core/java/com/android/server/job/JobSchedulerService.java +++ b/services/core/java/com/android/server/job/JobSchedulerService.java @@ -907,7 +907,11 @@ public final class JobSchedulerService extends com.android.server.SystemService private boolean isCurrentlyActiveLocked(JobStatus job) { for (int i=0; i Date: Tue, 4 Oct 2016 13:53:33 -0700 Subject: [PATCH 663/809] Tethering: check if configManager is null Before attempting to retrieve a carrier entitlement setting, first make sure we have a carrier config manager and if we do have a carrier config manager, the config it holds is not null. Bug: 31929638 Change-Id: Iee476c476cb3de109cdccbd955b7fb986dd4267b (cherry picked from commit b07f1409045091476e5296f9b0dd41c8712fe49a) --- .../com/android/server/connectivity/Tethering.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/services/core/java/com/android/server/connectivity/Tethering.java b/services/core/java/com/android/server/connectivity/Tethering.java index 50faf3b72a47..da9c5474b66b 100644 --- a/services/core/java/com/android/server/connectivity/Tethering.java +++ b/services/core/java/com/android/server/connectivity/Tethering.java @@ -405,11 +405,13 @@ public class Tethering extends BaseNetworkObserver implements IControlsTethering // Check carrier config for entitlement checks final CarrierConfigManager configManager = (CarrierConfigManager) mContext .getSystemService(Context.CARRIER_CONFIG_SERVICE); - boolean isEntitlementCheckRequired = configManager.getConfig().getBoolean( - CarrierConfigManager.KEY_REQUIRE_ENTITLEMENT_CHECKS_BOOL); - - if (!isEntitlementCheckRequired) { - return false; + if (configManager != null && configManager.getConfig() != null) { + // we do have a CarrierConfigManager and it has a config. + boolean isEntitlementCheckRequired = configManager.getConfig().getBoolean( + CarrierConfigManager.KEY_REQUIRE_ENTITLEMENT_CHECKS_BOOL); + if (!isEntitlementCheckRequired) { + return false; + } } return (provisionApp.length == 2); } -- GitLab From 9c555566bfef718464546dcab3640f64d2fdc55d Mon Sep 17 00:00:00 2001 From: Teng-Hui Zhu Date: Mon, 3 Oct 2016 14:26:21 -0700 Subject: [PATCH 664/809] Make umbra lighter when the blocker is too high and has no real umbra area. b/31939390 Test: CTS testShadowLayout && Manual FrameworkShadow test Change-Id: Ib0b6c4239ac8a521a827be246e912daf2ad3b885 --- libs/hwui/SpotShadow.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/libs/hwui/SpotShadow.cpp b/libs/hwui/SpotShadow.cpp index 760d814f27a8..cc96a137c306 100644 --- a/libs/hwui/SpotShadow.cpp +++ b/libs/hwui/SpotShadow.cpp @@ -942,9 +942,13 @@ void SpotShadow::generateTriangleStrip(bool isCasterOpaque, float shadowStrength AlphaVertex::set(&shadowVertices[vertexBufferIndex++], newPenumbra[i].x, newPenumbra[i].y, PENUMBRA_ALPHA); } + // Since the umbra can be a faked one when the occluder is too high, the umbra should be lighter + // in this case. + float scaledUmbraAlpha = UMBRA_ALPHA * shadowStrengthScale; + for (int i = 0; i < umbraLength; i++) { AlphaVertex::set(&shadowVertices[vertexBufferIndex++], umbra[i].x, umbra[i].y, - UMBRA_ALPHA); + scaledUmbraAlpha); } for (int i = 0; i < verticesPairIndex; i++) { @@ -984,14 +988,14 @@ void SpotShadow::generateTriangleStrip(bool isCasterOpaque, float shadowStrength indexBuffer[indexBufferIndex++] = newPenumbraLength + i; indexBuffer[indexBufferIndex++] = vertexBufferIndex; AlphaVertex::set(&shadowVertices[vertexBufferIndex++], - closerVertex.x, closerVertex.y, UMBRA_ALPHA); + closerVertex.x, closerVertex.y, scaledUmbraAlpha); } } else { // If there is no occluded umbra at all, then draw the triangle fan // starting from the centroid to all umbra vertices. int lastCentroidIndex = vertexBufferIndex; AlphaVertex::set(&shadowVertices[vertexBufferIndex++], centroid.x, - centroid.y, UMBRA_ALPHA); + centroid.y, scaledUmbraAlpha); for (int i = 0; i < umbraLength; i++) { indexBuffer[indexBufferIndex++] = newPenumbraLength + i; indexBuffer[indexBufferIndex++] = lastCentroidIndex; -- GitLab From e0ea7fecd63002ac2d3df18490fd1c16578d1935 Mon Sep 17 00:00:00 2001 From: Hugo Benichi Date: Wed, 5 Oct 2016 18:33:21 +0900 Subject: [PATCH 665/809] Catch runtime exceptions when parsing DHCP packets This patch adds a try catch all to DHCP packet parsing so that DhcpClient does not choke on malformed packets, brinding down with it the whole framework. Test: added new unit tests catching the issue fixed in this patch. Bug: 31850211 Change-Id: I3c50a149fed6b2cbc4f40bb4f0e5bb2b56859b44 --- .../android/net/metrics/DhcpErrorEvent.java | 9 +- .../net/java/android/net/dhcp/DhcpPacket.java | 15 +- .../src/android/net/dhcp/DhcpPacketTest.java | 191 ++++++++++++++---- 3 files changed, 171 insertions(+), 44 deletions(-) diff --git a/core/java/android/net/metrics/DhcpErrorEvent.java b/core/java/android/net/metrics/DhcpErrorEvent.java index 59c5fb61b211..1972b9ea8a77 100644 --- a/core/java/android/net/metrics/DhcpErrorEvent.java +++ b/core/java/android/net/metrics/DhcpErrorEvent.java @@ -53,6 +53,8 @@ public final class DhcpErrorEvent implements Parcelable { public static final int BUFFER_UNDERFLOW = makeErrorCode(MISC_ERROR, 1); public static final int RECEIVE_ERROR = makeErrorCode(MISC_ERROR, 2); + /** {@hide} */ + public static final int PARSING_ERROR = makeErrorCode(MISC_ERROR, 3); public final String ifName; // error code byte format (MSB to LSB): @@ -115,8 +117,9 @@ public final class DhcpErrorEvent implements Parcelable { } final static class Decoder { - static final SparseArray constants = - MessageUtils.findMessageNames(new Class[]{DhcpErrorEvent.class}, - new String[]{"L2_", "L3_", "L4_", "BOOTP_", "DHCP_", "BUFFER_", "RECEIVE_"}); + static final SparseArray constants = MessageUtils.findMessageNames( + new Class[]{DhcpErrorEvent.class}, + new String[]{"L2_", "L3_", "L4_", "BOOTP_", "DHCP_", "BUFFER_", "RECEIVE_", + "PARSING_"}); } } diff --git a/services/net/java/android/net/dhcp/DhcpPacket.java b/services/net/java/android/net/dhcp/DhcpPacket.java index 9aa66fe0ffa8..fc7cf2e204f0 100644 --- a/services/net/java/android/net/dhcp/DhcpPacket.java +++ b/services/net/java/android/net/dhcp/DhcpPacket.java @@ -7,6 +7,7 @@ import android.net.metrics.DhcpErrorEvent; import android.os.Build; import android.os.SystemProperties; import android.system.OsConstants; +import com.android.internal.annotations.VisibleForTesting; import java.io.UnsupportedEncodingException; import java.net.Inet4Address; @@ -14,9 +15,8 @@ import java.net.UnknownHostException; import java.nio.BufferUnderflowException; import java.nio.ByteBuffer; import java.nio.ByteOrder; -import java.nio.charset.StandardCharsets; import java.nio.ShortBuffer; - +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -725,7 +725,8 @@ abstract class DhcpPacket { * A subset of the optional parameters are parsed and are stored * in object fields. */ - public static DhcpPacket decodeFullPacket(ByteBuffer packet, int pktType) throws ParseException + @VisibleForTesting + static DhcpPacket decodeFullPacket(ByteBuffer packet, int pktType) throws ParseException { // bootp parameters int transactionId; @@ -1090,7 +1091,13 @@ abstract class DhcpPacket { public static DhcpPacket decodeFullPacket(byte[] packet, int length, int pktType) throws ParseException { ByteBuffer buffer = ByteBuffer.wrap(packet, 0, length).order(ByteOrder.BIG_ENDIAN); - return decodeFullPacket(buffer, pktType); + try { + return decodeFullPacket(buffer, pktType); + } catch (ParseException e) { + throw e; + } catch (Exception e) { + throw new ParseException(DhcpErrorEvent.PARSING_ERROR, e.getMessage()); + } } /** diff --git a/services/tests/servicestests/src/android/net/dhcp/DhcpPacketTest.java b/services/tests/servicestests/src/android/net/dhcp/DhcpPacketTest.java index f8eaf7d0ee26..b4e9db77f99f 100644 --- a/services/tests/servicestests/src/android/net/dhcp/DhcpPacketTest.java +++ b/services/tests/servicestests/src/android/net/dhcp/DhcpPacketTest.java @@ -16,24 +16,21 @@ package android.net.dhcp; -import android.net.NetworkUtils; import android.net.DhcpResults; import android.net.LinkAddress; +import android.net.NetworkUtils; +import android.net.metrics.DhcpErrorEvent; import android.system.OsConstants; import android.test.suitebuilder.annotation.SmallTest; import com.android.internal.util.HexDump; - import java.net.Inet4Address; import java.nio.ByteBuffer; import java.util.ArrayList; - -import junit.framework.TestCase; -import libcore.util.HexEncoding; import java.util.Arrays; +import junit.framework.TestCase; import static android.net.dhcp.DhcpPacket.*; - public class DhcpPacketTest extends TestCase { private static Inet4Address SERVER_ADDR = v4Address("192.0.2.1"); @@ -285,7 +282,7 @@ public class DhcpPacketTest extends TestCase { // TODO: Turn all of these into golden files. This will probably require modifying // Android.mk appropriately, making this into an AndroidTestCase, and adding code to read // the golden files from the test APK's assets via mContext.getAssets(). - final ByteBuffer packet = ByteBuffer.wrap(HexEncoding.decode(( + final ByteBuffer packet = ByteBuffer.wrap(HexDump.hexStringToByteArray( // IP header. "451001480000000080118849c0a89003c0a89ff7" + // UDP header. @@ -304,8 +301,7 @@ public class DhcpPacketTest extends TestCase { "0000000000000000000000000000000000000000000000000000000000000000" + // Options "638253633501023604c0a89003330400001c200104fffff0000304c0a89ffe06080808080808080404" + - "3a0400000e103b040000189cff00000000000000000000" - ).toCharArray(), false)); + "3a0400000e103b040000189cff00000000000000000000")); DhcpPacket offerPacket = DhcpPacket.decodeFullPacket(packet, ENCAP_L3); assertTrue(offerPacket instanceof DhcpOfferPacket); // Implicitly checks it's non-null. @@ -316,7 +312,7 @@ public class DhcpPacketTest extends TestCase { @SmallTest public void testOffer2() throws Exception { - final ByteBuffer packet = ByteBuffer.wrap(HexEncoding.decode(( + final ByteBuffer packet = ByteBuffer.wrap(HexDump.hexStringToByteArray( // IP header. "450001518d0600004011144dc0a82b01c0a82bf7" + // UDP header. @@ -335,8 +331,7 @@ public class DhcpPacketTest extends TestCase { "0000000000000000000000000000000000000000000000000000000000000000" + // Options "638253633501023604c0a82b01330400000e103a04000007083b0400000c4e0104ffffff00" + - "1c04c0a82bff0304c0a82b010604c0a82b012b0f414e44524f49445f4d455445524544ff" - ).toCharArray(), false)); + "1c04c0a82bff0304c0a82b010604c0a82b012b0f414e44524f49445f4d455445524544ff")); assertEquals(337, packet.limit()); DhcpPacket offerPacket = DhcpPacket.decodeFullPacket(packet, ENCAP_L3); @@ -347,6 +342,136 @@ public class DhcpPacketTest extends TestCase { assertTrue(dhcpResults.hasMeteredHint()); } + @SmallTest + public void testBadIpPacket() throws Exception { + final byte[] packet = HexDump.hexStringToByteArray( + // IP header. + "450001518d0600004011144dc0a82b01c0a82bf7"); + + try { + DhcpPacket offerPacket = DhcpPacket.decodeFullPacket(packet, packet.length, ENCAP_L3); + } catch (DhcpPacket.ParseException expected) { + assertDhcpErrorCodes(DhcpErrorEvent.L3_TOO_SHORT, expected.errorCode); + return; + } + fail("Dhcp packet parsing should have failed"); + } + + @SmallTest + public void testBadDhcpPacket() throws Exception { + final byte[] packet = HexDump.hexStringToByteArray( + // IP header. + "450001518d0600004011144dc0a82b01c0a82bf7" + + // UDP header. + "00430044013d9ac7" + + // BOOTP header. + "02010600dfc23d1f0002000000000000c0a82bf7c0a82b0100000000"); + + try { + DhcpPacket offerPacket = DhcpPacket.decodeFullPacket(packet, packet.length, ENCAP_L3); + } catch (DhcpPacket.ParseException expected) { + assertDhcpErrorCodes(DhcpErrorEvent.L3_TOO_SHORT, expected.errorCode); + return; + } + fail("Dhcp packet parsing should have failed"); + } + + @SmallTest + public void testBadTruncatedOffer() throws Exception { + final byte[] packet = HexDump.hexStringToByteArray( + // IP header. + "450001518d0600004011144dc0a82b01c0a82bf7" + + // UDP header. + "00430044013d9ac7" + + // BOOTP header. + "02010600dfc23d1f0002000000000000c0a82bf7c0a82b0100000000" + + // MAC address. + "30766ff2a90c00000000000000000000" + + // Server name. + "0000000000000000000000000000000000000000000000000000000000000000" + + "0000000000000000000000000000000000000000000000000000000000000000" + + // File, missing one byte + "0000000000000000000000000000000000000000000000000000000000000000" + + "0000000000000000000000000000000000000000000000000000000000000000" + + "0000000000000000000000000000000000000000000000000000000000000000" + + "00000000000000000000000000000000000000000000000000000000000000"); + + try { + DhcpPacket offerPacket = DhcpPacket.decodeFullPacket(packet, packet.length, ENCAP_L3); + } catch (DhcpPacket.ParseException expected) { + assertDhcpErrorCodes(DhcpErrorEvent.L3_TOO_SHORT, expected.errorCode); + return; + } + fail("Dhcp packet parsing should have failed"); + } + + @SmallTest + public void testBadOfferWithoutACookie() throws Exception { + final byte[] packet = HexDump.hexStringToByteArray( + // IP header. + "450001518d0600004011144dc0a82b01c0a82bf7" + + // UDP header. + "00430044013d9ac7" + + // BOOTP header. + "02010600dfc23d1f0002000000000000c0a82bf7c0a82b0100000000" + + // MAC address. + "30766ff2a90c00000000000000000000" + + // Server name. + "0000000000000000000000000000000000000000000000000000000000000000" + + "0000000000000000000000000000000000000000000000000000000000000000" + + // File. + "0000000000000000000000000000000000000000000000000000000000000000" + + "0000000000000000000000000000000000000000000000000000000000000000" + + "0000000000000000000000000000000000000000000000000000000000000000" + + "0000000000000000000000000000000000000000000000000000000000000000" + // No options + ); + + try { + DhcpPacket offerPacket = DhcpPacket.decodeFullPacket(packet, packet.length, ENCAP_L3); + } catch (DhcpPacket.ParseException expected) { + assertDhcpErrorCodes(DhcpErrorEvent.PARSING_ERROR, expected.errorCode); + return; + } + fail("Dhcp packet parsing should have failed"); + } + + @SmallTest + public void testOfferWithBadCookie() throws Exception { + final byte[] packet = HexDump.hexStringToByteArray( + // IP header. + "450001518d0600004011144dc0a82b01c0a82bf7" + + // UDP header. + "00430044013d9ac7" + + // BOOTP header. + "02010600dfc23d1f0002000000000000c0a82bf7c0a82b0100000000" + + // MAC address. + "30766ff2a90c00000000000000000000" + + // Server name. + "0000000000000000000000000000000000000000000000000000000000000000" + + "0000000000000000000000000000000000000000000000000000000000000000" + + // File. + "0000000000000000000000000000000000000000000000000000000000000000" + + "0000000000000000000000000000000000000000000000000000000000000000" + + "0000000000000000000000000000000000000000000000000000000000000000" + + "0000000000000000000000000000000000000000000000000000000000000000" + + // Bad cookie + "DEADBEEF3501023604c0a82b01330400000e103a04000007083b0400000c4e0104ffffff00" + + "1c04c0a82bff0304c0a82b010604c0a82b012b0f414e44524f49445f4d455445524544ff"); + + try { + DhcpPacket offerPacket = DhcpPacket.decodeFullPacket(packet, packet.length, ENCAP_L3); + } catch (DhcpPacket.ParseException expected) { + assertDhcpErrorCodes(DhcpErrorEvent.DHCP_BAD_MAGIC_COOKIE, expected.errorCode); + return; + } + fail("Dhcp packet parsing should have failed"); + } + + private void assertDhcpErrorCodes(int expected, int got) { + assertEquals(Integer.toHexString(expected), Integer.toHexString(got)); + } + private byte[] mtuBytes(int mtu) { // 0x1a02: option 26, length 2. 0xff: no more options. if (mtu > Short.MAX_VALUE - Short.MIN_VALUE) { @@ -354,7 +479,7 @@ public class DhcpPacketTest extends TestCase { String.format("Invalid MTU %d, must be 16-bit unsigned", mtu)); } String hexString = String.format("1a02%04xff", mtu); - return HexEncoding.decode(hexString.toCharArray(), false); + return HexDump.hexStringToByteArray(hexString); } private void checkMtu(ByteBuffer packet, int expectedMtu, byte[] mtuBytes) throws Exception { @@ -372,7 +497,7 @@ public class DhcpPacketTest extends TestCase { @SmallTest public void testMtu() throws Exception { - final ByteBuffer packet = ByteBuffer.wrap(HexEncoding.decode(( + final ByteBuffer packet = ByteBuffer.wrap(HexDump.hexStringToByteArray( // IP header. "451001480000000080118849c0a89003c0a89ff7" + // UDP header. @@ -391,8 +516,7 @@ public class DhcpPacketTest extends TestCase { "0000000000000000000000000000000000000000000000000000000000000000" + // Options "638253633501023604c0a89003330400001c200104fffff0000304c0a89ffe06080808080808080404" + - "3a0400000e103b040000189cff00000000" - ).toCharArray(), false)); + "3a0400000e103b040000189cff00000000")); checkMtu(packet, 0, null); checkMtu(packet, 0, mtuBytes(1501)); @@ -409,7 +533,7 @@ public class DhcpPacketTest extends TestCase { @SmallTest public void testBadHwaddrLength() throws Exception { - final ByteBuffer packet = ByteBuffer.wrap(HexEncoding.decode(( + final ByteBuffer packet = ByteBuffer.wrap(HexDump.hexStringToByteArray( // IP header. "450001518d0600004011144dc0a82b01c0a82bf7" + // UDP header. @@ -428,8 +552,7 @@ public class DhcpPacketTest extends TestCase { "0000000000000000000000000000000000000000000000000000000000000000" + // Options "638253633501023604c0a82b01330400000e103a04000007083b0400000c4e0104ffffff00" + - "1c04c0a82bff0304c0a82b010604c0a82b012b0f414e44524f49445f4d455445524544ff" - ).toCharArray(), false)); + "1c04c0a82bff0304c0a82b010604c0a82b012b0f414e44524f49445f4d455445524544ff")); String expectedClientMac = "30766FF2A90C"; final int hwAddrLenOffset = 20 + 8 + 2; @@ -486,7 +609,7 @@ public class DhcpPacketTest extends TestCase { // store any information in the overloaded fields). // // For now, we just check that it parses correctly. - final ByteBuffer packet = ByteBuffer.wrap(HexEncoding.decode(( + final ByteBuffer packet = ByteBuffer.wrap(HexDump.hexStringToByteArray( // Ethernet header. "b4cef6000000e80462236e300800" + // IP header. @@ -507,8 +630,7 @@ public class DhcpPacketTest extends TestCase { "0000000000000000000000000000000000000000000000000000000000000000" + // Options "638253633501023604010101010104ffff000033040000a8c03401030304ac1101010604ac110101" + - "0000000000000000000000000000000000000000000000ff000000" - ).toCharArray(), false)); + "0000000000000000000000000000000000000000000000ff000000")); DhcpPacket offerPacket = DhcpPacket.decodeFullPacket(packet, ENCAP_L2); assertTrue(offerPacket instanceof DhcpOfferPacket); @@ -519,7 +641,7 @@ public class DhcpPacketTest extends TestCase { @SmallTest public void testBug2111() throws Exception { - final ByteBuffer packet = ByteBuffer.wrap(HexEncoding.decode(( + final ByteBuffer packet = ByteBuffer.wrap(HexDump.hexStringToByteArray( // IP header. "4500014c00000000ff119beac3eaf3880a3f5d04" + // UDP header. TODO: fix invalid checksum (due to MAC address obfuscation). @@ -538,8 +660,7 @@ public class DhcpPacketTest extends TestCase { "0000000000000000000000000000000000000000000000000000000000000000" + // Options. "638253633501023604c00002fe33040000bfc60104fffff00003040a3f50010608c0000201c0000202" + - "0f0f646f6d61696e3132332e636f2e756b0000000000ff00000000" - ).toCharArray(), false)); + "0f0f646f6d61696e3132332e636f2e756b0000000000ff00000000")); DhcpPacket offerPacket = DhcpPacket.decodeFullPacket(packet, ENCAP_L3); assertTrue(offerPacket instanceof DhcpOfferPacket); @@ -550,7 +671,7 @@ public class DhcpPacketTest extends TestCase { @SmallTest public void testBug2136() throws Exception { - final ByteBuffer packet = ByteBuffer.wrap(HexEncoding.decode(( + final ByteBuffer packet = ByteBuffer.wrap(HexDump.hexStringToByteArray( // Ethernet header. "bcf5ac000000d0c7890000000800" + // IP header. @@ -571,8 +692,7 @@ public class DhcpPacketTest extends TestCase { "0000000000000000000000000000000000000000000000000000000000000000" + // Options. "6382536335010236040a20ff80330400001c200104fffff00003040a20900106089458413494584135" + - "0f0b6c616e63732e61632e756b000000000000000000ff00000000" - ).toCharArray(), false)); + "0f0b6c616e63732e61632e756b000000000000000000ff00000000")); DhcpPacket offerPacket = DhcpPacket.decodeFullPacket(packet, ENCAP_L2); assertTrue(offerPacket instanceof DhcpOfferPacket); @@ -584,7 +704,7 @@ public class DhcpPacketTest extends TestCase { @SmallTest public void testUdpServerAnySourcePort() throws Exception { - final ByteBuffer packet = ByteBuffer.wrap(HexEncoding.decode(( + final ByteBuffer packet = ByteBuffer.wrap(HexDump.hexStringToByteArray( // Ethernet header. "9cd917000000001c2e0000000800" + // IP header. @@ -606,8 +726,7 @@ public class DhcpPacketTest extends TestCase { "0000000000000000000000000000000000000000000000000000000000000000" + // Options. "6382536335010236040a0169fc3304000151800104ffff000003040a0fc817060cd1818003d1819403" + - "d18180060f0777766d2e6564751c040a0fffffff000000" - ).toCharArray(), false)); + "d18180060f0777766d2e6564751c040a0fffffff000000")); DhcpPacket offerPacket = DhcpPacket.decodeFullPacket(packet, ENCAP_L2); assertTrue(offerPacket instanceof DhcpOfferPacket); @@ -620,7 +739,7 @@ public class DhcpPacketTest extends TestCase { @SmallTest public void testUdpInvalidDstPort() throws Exception { - final ByteBuffer packet = ByteBuffer.wrap(HexEncoding.decode(( + final ByteBuffer packet = ByteBuffer.wrap(HexDump.hexStringToByteArray( // Ethernet header. "9cd917000000001c2e0000000800" + // IP header. @@ -642,8 +761,7 @@ public class DhcpPacketTest extends TestCase { "0000000000000000000000000000000000000000000000000000000000000000" + // Options. "6382536335010236040a0169fc3304000151800104ffff000003040a0fc817060cd1818003d1819403" + - "d18180060f0777766d2e6564751c040a0fffffff000000" - ).toCharArray(), false)); + "d18180060f0777766d2e6564751c040a0fffffff000000")); try { DhcpPacket.decodeFullPacket(packet, ENCAP_L2); @@ -653,7 +771,7 @@ public class DhcpPacketTest extends TestCase { @SmallTest public void testMultipleRouters() throws Exception { - final ByteBuffer packet = ByteBuffer.wrap(HexEncoding.decode(( + final ByteBuffer packet = ByteBuffer.wrap(HexDump.hexStringToByteArray( // Ethernet header. "fc3d93000000" + "081735000000" + "0800" + // IP header. @@ -674,8 +792,7 @@ public class DhcpPacketTest extends TestCase { "0000000000000000000000000000000000000000000000000000000000000000" + // Options. "638253633501023604c0abbd023304000070803a04000038403b04000062700104ffffff00" + - "0308c0a8bd01ffffff0006080808080808080404ff000000000000" - ).toCharArray(), false)); + "0308c0a8bd01ffffff0006080808080808080404ff000000000000")); DhcpPacket offerPacket = DhcpPacket.decodeFullPacket(packet, ENCAP_L2); assertTrue(offerPacket instanceof DhcpOfferPacket); -- GitLab From 240ddd735cc0b105cd984594faf0f3fbefaa7306 Mon Sep 17 00:00:00 2001 From: Dirk Dougherty Date: Wed, 5 Oct 2016 09:40:02 -0700 Subject: [PATCH 666/809] Doc change: remove intl/nn from collections paths. Change-Id: I45c0322d39a54e2565401d11bdc56d7e8e555cd2 Bug-Id: 31940660 --- docs/html/jd_extras_zh-cn.js | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/docs/html/jd_extras_zh-cn.js b/docs/html/jd_extras_zh-cn.js index cb1ccb7d6ee3..866a87efed8f 100644 --- a/docs/html/jd_extras_zh-cn.js +++ b/docs/html/jd_extras_zh-cn.js @@ -244,40 +244,40 @@ METADATA['zh-cn'].collections = { "overview/zhcn/1": { "title": "", "resources": [ - "intl/zh-cn/distribute/essentials/quality/core.html", - "intl/zh-cn/distribute/essentials/quality/tablets.html", - "intl/zh-cn/distribute/tools/launch-checklist.html", - "intl/zh-cn/tools/publishing/publishing_overview.html", - "intl/zh-cn/distribute/tools/localization-checklist.html" + "distribute/essentials/quality/core.html", + "distribute/essentials/quality/tablets.html", + "distribute/tools/launch-checklist.html", + "tools/publishing/publishing_overview.html", + "distribute/tools/localization-checklist.html" ] }, "overview/zhcn/2": { "title": "", "resources": [ - "intl/zh-cn/google/play/billing/index.html", - "intl/zh-cn/google/play/billing/api.html", - "intl/zh-cn/google/play/billing/billing_admin.html", - "intl/zh-cn/google/play/billing/billing_testing.html", - "intl/zh-cn/google/play/billing/billing_best_practices.html" + "google/play/billing/index.html", + "google/play/billing/api.html", + "google/play/billing/billing_admin.html", + "google/play/billing/billing_testing.html", + "google/play/billing/billing_best_practices.html" ] }, "overview/zhcn/3": { "title": "", "resources": [ "https://play.google.com/intl/en_us/badges/", - "intl/zh-cn/distribute/tools/promote/device-art.html", - "intl/zh-cn/distribute/tools/promote/linking.html", - "intl/zh-cn/distribute/tools/promote/brand.html", - "intl/zh-cn/tools/help/proguard.html" + "distribute/tools/promote/device-art.html", + "distribute/tools/promote/linking.html", + "distribute/tools/promote/brand.html", + "tools/help/proguard.html" ] }, "overview/zhcn/4": { "title": "", "resources": [ - "intl/zh-cn/design/style/writing.html", - "intl/zh-cn/training/basics/fragments/fragment-ui.html", - "intl/zh-cn/training/multiscreen/index.html", - "intl/zh-cn/training/monitoring-device-state/index.html" + "design/style/writing.html", + "training/basics/fragments/fragment-ui.html", + "training/multiscreen/index.html", + "training/monitoring-device-state/index.html" ] }, "overview/carousel/zhcn": { -- GitLab From a4a4763f5857ed39d6e4dae263ee9dc01eec756a Mon Sep 17 00:00:00 2001 From: Sid Soundararajan Date: Wed, 5 Oct 2016 10:30:32 -0700 Subject: [PATCH 667/809] Recents TV: Do not allow negative delay In rare cases, the getChildCount() has a delayed update. It enters the for loop, and then changes to return 0. This can potentially allow a negative delay, causing a crash. BUG: 31933255 Change-Id: Ia245edc9fca0e1712c2af5c301bac632caed1568 --- .../tv/animations/HomeRecentsEnterExitAnimationHolder.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/recents/tv/animations/HomeRecentsEnterExitAnimationHolder.java b/packages/SystemUI/src/com/android/systemui/recents/tv/animations/HomeRecentsEnterExitAnimationHolder.java index 9faaa4bdccb6..a673c8c67696 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/tv/animations/HomeRecentsEnterExitAnimationHolder.java +++ b/packages/SystemUI/src/com/android/systemui/recents/tv/animations/HomeRecentsEnterExitAnimationHolder.java @@ -47,12 +47,13 @@ public class HomeRecentsEnterExitAnimationHolder { public void startEnterAnimation(boolean isPipShown) { for(int i = 0; i < mGridView.getChildCount(); i++) { TaskCardView view = (TaskCardView) mGridView.getChildAt(i); + long delay = Math.max(mDelay * i, 0); view.setTranslationX(-mTranslationX); view.animate() .alpha(isPipShown ? mDimAlpha : 1.0f) .translationX(0) .setDuration(mDuration) - .setStartDelay(mDelay * i) + .setStartDelay(delay) .setInterpolator(Interpolators.FAST_OUT_SLOW_IN); } } @@ -60,11 +61,12 @@ public class HomeRecentsEnterExitAnimationHolder { public void startExitAnimation(DismissRecentsToHomeAnimationStarted dismissEvent) { for(int i = mGridView.getChildCount() - 1; i >= 0; i--) { TaskCardView view = (TaskCardView) mGridView.getChildAt(i); + long delay = Math.max(mDelay * (mGridView.getChildCount() - 1 - i), 0); view.animate() .alpha(0.0f) .translationXBy(-mTranslationX) .setDuration(mDuration) - .setStartDelay(mDelay * (mGridView.getChildCount() - 1 - i)) + .setStartDelay(delay) .setInterpolator(Interpolators.FAST_OUT_SLOW_IN); if(i == 0) { view.animate().setListener(dismissEvent.getAnimationTrigger() -- GitLab From 501d59dcea4e48f4abf00fbe671d17290cb1e66c Mon Sep 17 00:00:00 2001 From: Winson Chung Date: Wed, 5 Oct 2016 17:49:09 +0000 Subject: [PATCH 668/809] Revert "Bump up preloading recents on boot up to user unlocked." This reverts commit c3eedd972dbd4f7c12428de0dc1bc86e55e13dc5. Bug: 31823698 Change-Id: I575c64ff19463e84ebdb2950a798a371de4cfa13 --- .../com/android/systemui/recents/Recents.java | 26 ++----------------- .../android/systemui/recents/RecentsImpl.java | 6 +---- 2 files changed, 3 insertions(+), 29 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/recents/Recents.java b/packages/SystemUI/src/com/android/systemui/recents/Recents.java index de51c939b13e..e117bfeb1364 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/Recents.java +++ b/packages/SystemUI/src/com/android/systemui/recents/Recents.java @@ -18,12 +18,10 @@ package com.android.systemui.recents; import android.app.ActivityManager; import android.app.UiModeManager; -import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; -import android.content.IntentFilter; import android.content.ServiceConnection; import android.content.pm.ActivityInfo; import android.content.res.Configuration; @@ -98,7 +96,7 @@ public class Recents extends SystemUI // and does not reside in the home stack. private String mOverrideRecentsPackageName; - private Handler mHandler = new Handler(); + private Handler mHandler; private RecentsImpl mImpl; private int mDraggingInRecentsCurrentUser; @@ -164,20 +162,6 @@ public class Recents extends SystemUI } }; - - private BroadcastReceiver mSystemUserUnlockedReceiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - if (Intent.ACTION_USER_UNLOCKED.equals(intent.getAction())) { - int userId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, UserHandle.USER_NULL); - if (userId != UserHandle.USER_NULL) { - mImpl.onUserUnlocked(userId); - } - } - } - }; - - /** * Returns the callbacks interface that non-system users can call. */ @@ -207,7 +191,7 @@ public class Recents extends SystemUI sSystemServicesProxy = SystemServicesProxy.getInstance(mContext); sTaskLoader = new RecentsTaskLoader(mContext); sConfiguration = new RecentsConfiguration(mContext); - + mHandler = new Handler(); UiModeManager uiModeManager = (UiModeManager) mContext. getSystemService(Context.UI_MODE_SERVICE); if (uiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_TELEVISION) { @@ -237,12 +221,6 @@ public class Recents extends SystemUI // For the system user, initialize an instance of the interface that we can pass to the // secondary user mSystemToUserCallbacks = new RecentsSystemUser(mContext, mImpl); - - // Listen for user-unlocked to kick off preloading recents - IntentFilter filter = new IntentFilter(); - filter.addAction(Intent.ACTION_USER_UNLOCKED); - mContext.registerReceiverAsUser(mSystemUserUnlockedReceiver, UserHandle.SYSTEM, filter, - null /* permission */, null /* scheduler */); } else { // For the secondary user, bind to the primary user's service to get a persistent // interface to register its implementation and to later update its state diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java index d813170f9239..2757fc4f5cc7 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java +++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsImpl.java @@ -186,7 +186,7 @@ public class RecentsImpl implements ActivityOptions.OnAnimationFinishedListener reloadResources(); } - public void onUserUnlocked(int userId) { + public void onBootCompleted() { // When we start, preload the data associated with the previous recent tasks. // We can use a new plan since the caches will be the same. RecentsTaskLoader loader = Recents.getTaskLoader(); @@ -199,10 +199,6 @@ public class RecentsImpl implements ActivityOptions.OnAnimationFinishedListener loader.loadTasks(mContext, plan, launchOpts); } - public void onBootCompleted() { - // Do nothing - } - public void onConfigurationChanged() { reloadResources(); mDummyStackView.reloadOnConfigurationChange(); -- GitLab From d7dbec7e4cce88fb428a2400fa468ad3b2a3962f Mon Sep 17 00:00:00 2001 From: Robert Carr Date: Wed, 5 Oct 2016 13:13:21 -0700 Subject: [PATCH 669/809] When adding dialog window but not creating update the configuration. When we dismiss the dialog as opposed to hide it, it is removed from the local WindowManagerGlobal's list of ViewRoots. Thus it stops receiving configuration changes. When first adding a ViewRoot it will pull the configuration from the context, but in this case we are reusing one which has already been added and removed and no such action will occur. Bug: 31004614 Change-Id: Ie247bcf1a14caf4a42413c6813e337aa4c88e3e4 --- core/java/android/app/Dialog.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/core/java/android/app/Dialog.java b/core/java/android/app/Dialog.java index 85a0403fe57e..6e2c464e9a37 100644 --- a/core/java/android/app/Dialog.java +++ b/core/java/android/app/Dialog.java @@ -32,6 +32,7 @@ import android.content.ComponentName; import android.content.Context; import android.content.ContextWrapper; import android.content.DialogInterface; +import android.content.res.Configuration; import android.content.pm.ApplicationInfo; import android.graphics.drawable.Drawable; import android.net.Uri; @@ -288,9 +289,14 @@ public class Dialog implements DialogInterface, Window.Callback, } mCanceled = false; - + if (!mCreated) { dispatchOnCreate(null); + } else { + // Fill the DecorView in on any configuration changes that + // may have occured while it was removed from the WindowManager. + final Configuration config = mContext.getResources().getConfiguration(); + mWindow.getDecorView().dispatchConfigurationChanged(config); } onStart(); -- GitLab From 652c5ad5167b36735bd04b38b9b904d7bdf8033e Mon Sep 17 00:00:00 2001 From: Christopher Tate Date: Wed, 5 Oct 2016 14:45:46 -0700 Subject: [PATCH 670/809] Fix job scheduler crash due to uninstall race It's possible to get a PACKAGE_CHANGED broadcast well after the package has actually been uninstalled outright because of broadcast delivery latencies. Understand the exception that might be thrown when asking for package info in such cases, so we don't crash the Android runtime. Bug 31865735 Change-Id: I69b2678f0f724fc731aa48fed7af58ce60d3c21c --- .../com/android/server/job/JobSchedulerService.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/job/JobSchedulerService.java b/services/core/java/com/android/server/job/JobSchedulerService.java index ba3977268190..ef6720040a43 100644 --- a/services/core/java/com/android/server/job/JobSchedulerService.java +++ b/services/core/java/com/android/server/job/JobSchedulerService.java @@ -429,7 +429,18 @@ public final class JobSchedulerService extends com.android.server.SystemService } cancelJobsForUid(pkgUid, true); } - } catch (RemoteException e) { /* cannot happen */ } + } catch (RemoteException|IllegalArgumentException e) { + /* + * IllegalArgumentException means that the package doesn't exist. + * This arises when PACKAGE_CHANGED broadcast delivery has lagged + * behind outright uninstall, so by the time we try to act it's gone. + * We don't need to act on this PACKAGE_CHANGED when this happens; + * we'll get a PACKAGE_REMOVED later and clean up then. + * + * RemoteException can't actually happen; the package manager is + * running in this same process. + */ + } break; } } -- GitLab From fd6846e1162cf14d0048b0cadd5ef5809e454b86 Mon Sep 17 00:00:00 2001 From: Amanda Kassay Date: Wed, 5 Oct 2016 17:28:53 -0400 Subject: [PATCH 671/809] Wear Preview, auto, tv, versions project metadata. b/31771704 b/31903798 b/31773716 Staged: https://android-dot-devsite.googleplex.com/about/versions/nougat/index.html https://android-dot-devsite.googleplex.com/index.html https://android-dot-devsite.googleplex.com/wear/preview/index.html Change-Id: I639b3d168b839745669787c56b44c28fa85252d9 --- docs/html/about/versions/_project.yaml | 6 ++++++ docs/html/auto/_project.yaml | 6 ++++++ docs/html/tv/_project.yaml | 6 ++++++ docs/html/wear/_project.yaml | 1 + docs/html/wear/preview/_project.yaml | 6 ++++++ 5 files changed, 25 insertions(+) create mode 100644 docs/html/about/versions/_project.yaml create mode 100644 docs/html/auto/_project.yaml create mode 100644 docs/html/tv/_project.yaml create mode 100644 docs/html/wear/preview/_project.yaml diff --git a/docs/html/about/versions/_project.yaml b/docs/html/about/versions/_project.yaml new file mode 100644 index 000000000000..3f0e85ecc93c --- /dev/null +++ b/docs/html/about/versions/_project.yaml @@ -0,0 +1,6 @@ +name: "Versions" +home_url: /about/versions/ +description: "Android, the world's most popular mobile platform" +content_license: cc3-apache2 +buganizer_id: 30209417 +parent_project_metadata_path: /about/_project.yaml diff --git a/docs/html/auto/_project.yaml b/docs/html/auto/_project.yaml new file mode 100644 index 000000000000..fc4ab2ba0f07 --- /dev/null +++ b/docs/html/auto/_project.yaml @@ -0,0 +1,6 @@ +name: "Auto" +home_url: /auto/ +description: "Let drivers listen to and control content in your music and other audio apps." +content_license: cc3-apache2 +buganizer_id: 30209417 +parent_project_metadata_path: /about/_project.yaml diff --git a/docs/html/tv/_project.yaml b/docs/html/tv/_project.yaml new file mode 100644 index 000000000000..d2d41e1ce267 --- /dev/null +++ b/docs/html/tv/_project.yaml @@ -0,0 +1,6 @@ +name: "TV" +home_url: /tv/ +description: "Bring your apps, games, and content to the biggest screen in the house." +content_license: cc3-apache2 +buganizer_id: 30209417 +parent_project_metadata_path: /about/_project.yaml diff --git a/docs/html/wear/_project.yaml b/docs/html/wear/_project.yaml index 2a9427432791..114cc5b74d76 100644 --- a/docs/html/wear/_project.yaml +++ b/docs/html/wear/_project.yaml @@ -3,3 +3,4 @@ home_url: /wear/ description: "Small, powerful devices, worn on the body. Useful information when you need it most." content_license: cc3-apache2 buganizer_id: 30209417 +parent_project_metadata_path: /about/_project.yaml diff --git a/docs/html/wear/preview/_project.yaml b/docs/html/wear/preview/_project.yaml new file mode 100644 index 000000000000..4f7083ef32df --- /dev/null +++ b/docs/html/wear/preview/_project.yaml @@ -0,0 +1,6 @@ +name: "Wear Preview" +home_url: /wear/preview/ +description: "Small, powerful devices, worn on the body. Useful information when you need it most." +content_license: cc3-apache2 +buganizer_id: 30209417 +parent_project_metadata_path: /wear/_project.yaml -- GitLab From e39a8a46d92ead0bdc8a2ceabe510cf6e89b8fbc Mon Sep 17 00:00:00 2001 From: Nancy Zheng Date: Wed, 5 Oct 2016 16:27:14 -0700 Subject: [PATCH 672/809] Change DEFAULT_BG_LOW_JOB_COUNT to 1 in JobSchedulerService. Bug: 31601136 Change-Id: I595f192698b97dc6472a67dc1a1eebd60533efa7 --- .../core/java/com/android/server/job/JobSchedulerService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/job/JobSchedulerService.java b/services/core/java/com/android/server/job/JobSchedulerService.java index ba3977268190..c2576c3f3020 100644 --- a/services/core/java/com/android/server/job/JobSchedulerService.java +++ b/services/core/java/com/android/server/job/JobSchedulerService.java @@ -217,7 +217,7 @@ public final class JobSchedulerService extends com.android.server.SystemService private static final int DEFAULT_FG_JOB_COUNT = 4; private static final int DEFAULT_BG_NORMAL_JOB_COUNT = 6; private static final int DEFAULT_BG_MODERATE_JOB_COUNT = 4; - private static final int DEFAULT_BG_LOW_JOB_COUNT = 2; + private static final int DEFAULT_BG_LOW_JOB_COUNT = 1; private static final int DEFAULT_BG_CRITICAL_JOB_COUNT = 1; /** -- GitLab From 4c01910cb0dfc6a5980a903eabfd767cad7f2e50 Mon Sep 17 00:00:00 2001 From: Hall Liu Date: Wed, 5 Oct 2016 16:56:17 -0700 Subject: [PATCH 673/809] Add logging to CallerInfoAsyncQuery Add logging to CallerInfoAsyncQuery to help diagnose timeout errors Bug: 31755827 Change-Id: If7cf34baf084ca8916952842585a32b3e93eba73 --- .../internal/telephony/CallerInfoAsyncQuery.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/telephony/java/com/android/internal/telephony/CallerInfoAsyncQuery.java b/telephony/java/com/android/internal/telephony/CallerInfoAsyncQuery.java index 05cb31e1b7a3..d4104bd34db3 100644 --- a/telephony/java/com/android/internal/telephony/CallerInfoAsyncQuery.java +++ b/telephony/java/com/android/internal/telephony/CallerInfoAsyncQuery.java @@ -176,13 +176,13 @@ public class CallerInfoAsyncQuery { // However, if there is any code that this Handler calls (such as in // super.handleMessage) that DOES place unexpected messages on the // queue, then we need pass these messages on. - if (DBG) Rlog.d(LOG_TAG, "Unexpected command (CookieWrapper is null): " + msg.what + + Rlog.i(LOG_TAG, "Unexpected command (CookieWrapper is null): " + msg.what + " ignored by CallerInfoWorkerHandler, passing onto parent."); super.handleMessage(msg); } else { - if (DBG) Rlog.d(LOG_TAG, "Processing event: " + cw.event + " token (arg1): " + msg.arg1 + + Rlog.d(LOG_TAG, "Processing event: " + cw.event + " token (arg1): " + msg.arg1 + " command: " + msg.what + " query URI: " + sanitizeUriToString(args.uri)); switch (cw.event) { @@ -239,7 +239,7 @@ public class CallerInfoAsyncQuery { */ @Override protected void onQueryComplete(int token, Object cookie, Cursor cursor) { - if (DBG) Rlog.d(LOG_TAG, "##### onQueryComplete() ##### query complete for token: " + token); + Rlog.d(LOG_TAG, "##### onQueryComplete() ##### query complete for token: " + token); //get the cookie and notify the listener. CookieWrapper cw = (CookieWrapper) cookie; @@ -248,7 +248,7 @@ public class CallerInfoAsyncQuery { // from within this code. // However, if there is any code that calls this method, we should // check the parameters to make sure they're viable. - if (DBG) Rlog.d(LOG_TAG, "Cookie is null, ignoring onQueryComplete() request."); + Rlog.i(LOG_TAG, "Cookie is null, ignoring onQueryComplete() request."); if (cursor != null) { cursor.close(); } @@ -333,9 +333,11 @@ public class CallerInfoAsyncQuery { //notify the listener that the query is complete. if (cw.listener != null) { - if (DBG) Rlog.d(LOG_TAG, "notifying listener: " + cw.listener.getClass().toString() + + Rlog.d(LOG_TAG, "notifying listener: " + cw.listener.getClass().toString() + " for token: " + token + mCallerInfo); cw.listener.onQueryComplete(token, cw.cookie, mCallerInfo); + } else { + Rlog.w(LOG_TAG, "There is no listener to notify for this query."); } if (cursor != null) { -- GitLab From 781240d9bb2f8988c7f16c30540a87888d8a505d Mon Sep 17 00:00:00 2001 From: Andrii Kulian Date: Wed, 5 Oct 2016 01:11:52 -0700 Subject: [PATCH 674/809] Fix bounds rotation logic Reuse code that computes window bounds for seamless rotation in DisplayContent#rotateBounds. Also make sure that we operate with display rect adjusted for the requested orientation. Bug: 31005451 Bug: 29586417 Change-Id: Ie18ac2c84c7a3ea474e00e7108c3b3c21114e719 --- .../com/android/server/wm/DisplayContent.java | 81 +++++++++++++------ .../server/wm/WindowStateAnimator.java | 20 +---- 2 files changed, 58 insertions(+), 43 deletions(-) diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index 12399bd44b39..7b1a523e74a4 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -30,7 +30,9 @@ import static com.android.server.wm.WindowState.RESIZE_HANDLE_WIDTH_IN_DP; import android.app.ActivityManager.StackId; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; +import android.graphics.Matrix; import android.graphics.Rect; +import android.graphics.RectF; import android.graphics.Region; import android.graphics.Region.Op; import android.os.Build; @@ -106,6 +108,8 @@ class DisplayContent { /** Save allocating when calculating rects */ private final Rect mTmpRect = new Rect(); private final Rect mTmpRect2 = new Rect(); + private final RectF mTmpRectF = new RectF(); + private final Matrix mTmpMatrix = new Matrix(); private final Region mTmpRegion = new Region(); /** For gathering Task objects in order. */ @@ -242,6 +246,20 @@ class DisplayContent { out.set(left, top, left + width, top + height); } + private void getLogicalDisplayRect(Rect out, int orientation) { + getLogicalDisplayRect(out); + + // Rotate the Rect if needed. + final int currentRotation = mDisplayInfo.rotation; + final int rotationDelta = deltaRotation(currentRotation, orientation); + if (rotationDelta == Surface.ROTATION_90 || rotationDelta == Surface.ROTATION_270) { + createRotationMatrix(rotationDelta, mBaseDisplayWidth, mBaseDisplayHeight, mTmpMatrix); + mTmpRectF.set(out); + mTmpMatrix.mapRect(mTmpRectF); + mTmpRectF.round(out); + } + } + void getContentRect(Rect out) { out.set(mContentRect); } @@ -536,38 +554,51 @@ class DisplayContent { } void rotateBounds(int oldRotation, int newRotation, Rect bounds) { - final int rotationDelta = DisplayContent.deltaRotation(oldRotation, newRotation); - getLogicalDisplayRect(mTmpRect); - switch (rotationDelta) { + getLogicalDisplayRect(mTmpRect, newRotation); + + // Compute a transform matrix to undo the coordinate space transformation, + // and present the window at the same physical position it previously occupied. + final int deltaRotation = deltaRotation(newRotation, oldRotation); + createRotationMatrix(deltaRotation, mTmpRect.width(), mTmpRect.height(), mTmpMatrix); + + mTmpRectF.set(bounds); + mTmpMatrix.mapRect(mTmpRectF); + mTmpRectF.round(bounds); + } + + static int deltaRotation(int oldRotation, int newRotation) { + int delta = newRotation - oldRotation; + if (delta < 0) delta += 4; + return delta; + } + + static void createRotationMatrix(int rotation, float displayWidth, float displayHeight, + Matrix outMatrix) { + // For rotations without Z-ordering we don't need the target rectangle's position. + createRotationMatrix(rotation, 0 /* rectLeft */, 0 /* rectTop */, displayWidth, + displayHeight, outMatrix); + } + + static void createRotationMatrix(int rotation, float rectLeft, float rectTop, + float displayWidth, float displayHeight, Matrix outMatrix) { + switch (rotation) { case Surface.ROTATION_0: - mTmpRect2.set(bounds); + outMatrix.reset(); break; - case Surface.ROTATION_90: - mTmpRect2.top = mTmpRect.bottom - bounds.right; - mTmpRect2.left = bounds.top; - mTmpRect2.right = mTmpRect2.left + bounds.height(); - mTmpRect2.bottom = mTmpRect2.top + bounds.width(); + case Surface.ROTATION_270: + outMatrix.setRotate(270, 0, 0); + outMatrix.postTranslate(0, displayHeight); + outMatrix.postTranslate(rectTop, 0); break; case Surface.ROTATION_180: - mTmpRect2.top = mTmpRect.bottom - bounds.bottom; - mTmpRect2.left = mTmpRect.right - bounds.right; - mTmpRect2.right = mTmpRect2.left + bounds.width(); - mTmpRect2.bottom = mTmpRect2.top + bounds.height(); + outMatrix.reset(); break; - case Surface.ROTATION_270: - mTmpRect2.top = bounds.left; - mTmpRect2.left = mTmpRect.right - bounds.bottom; - mTmpRect2.right = mTmpRect2.left + bounds.height(); - mTmpRect2.bottom = mTmpRect2.top + bounds.width(); + case Surface.ROTATION_90: + outMatrix.setRotate(90, 0, 0); + outMatrix.postTranslate(displayWidth, 0); + outMatrix.postTranslate(-rectTop, rectLeft); break; } - bounds.set(mTmpRect2); - } - - static int deltaRotation(int oldRotation, int newRotation) { - int delta = newRotation - oldRotation; - if (delta < 0) delta += 4; - return delta; } public void dump(String prefix, PrintWriter pw) { diff --git a/services/core/java/com/android/server/wm/WindowStateAnimator.java b/services/core/java/com/android/server/wm/WindowStateAnimator.java index 0285f7075e95..00015f8912ef 100644 --- a/services/core/java/com/android/server/wm/WindowStateAnimator.java +++ b/services/core/java/com/android/server/wm/WindowStateAnimator.java @@ -2102,24 +2102,8 @@ class WindowStateAnimator { // Compute a transform matrix to undo the coordinate space transformation, // and present the window at the same physical position it previously occupied. final int deltaRotation = DisplayContent.deltaRotation(newRotation, oldRotation); - switch (deltaRotation) { - case Surface.ROTATION_0: - transform.reset(); - break; - case Surface.ROTATION_270: - transform.setRotate(270, 0, 0); - transform.postTranslate(0, displayHeight); - transform.postTranslate(y, 0); - break; - case Surface.ROTATION_180: - transform.reset(); - break; - case Surface.ROTATION_90: - transform.setRotate(90, 0, 0); - transform.postTranslate(displayWidth, 0); - transform.postTranslate(-y, x); - break; - } + DisplayContent.createRotationMatrix(deltaRotation, x, y, displayWidth, displayHeight, + transform); // We have two cases: // 1. Windows with NATIVE_WINDOW_TRANSFORM_INVERSE_DISPLAY: -- GitLab From e6327db2af0d92858b7af5991ca763e66c7a09b0 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Wed, 5 Oct 2016 23:28:53 -0700 Subject: [PATCH 675/809] Import translations. DO NOT MERGE Change-Id: Ica9bf5e820c6edad7236034a72b3e3f659727ac5 Auto-generated-cl: translation import --- core/res/res/values-gl-rES/strings.xml | 2 +- core/res/res/values-km-rKH/strings.xml | 2 +- core/res/res/values-ky-rKG/strings.xml | 2 +- core/res/res/values-mr-rIN/strings.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/core/res/res/values-gl-rES/strings.xml b/core/res/res/values-gl-rES/strings.xml index 16da26fb171a..72757a6aae6b 100644 --- a/core/res/res/values-gl-rES/strings.xml +++ b/core/res/res/values-gl-rES/strings.xml @@ -214,7 +214,7 @@ "Opcións de teléfono" "Bloqueo da pantalla" "Apagar" - "Emerxencia" + "Emerxencias" "Informe de erros" "Crear informe de erros" "Este informe recompilará información acerca do estado actual do teu dispositivo para enviala en forma de mensaxe de correo electrónico. O informe de erros tardará un pouco en completarse desde o seu inicio ata que estea preparado para enviarse, polo que che recomendamos que teñas paciencia." diff --git a/core/res/res/values-km-rKH/strings.xml b/core/res/res/values-km-rKH/strings.xml index 144ccce82833..feaef821e535 100644 --- a/core/res/res/values-km-rKH/strings.xml +++ b/core/res/res/values-km-rKH/strings.xml @@ -1331,7 +1331,7 @@ "ឧបករណ៍ផ្ទុក USB %s" "ឧបករណ៍​ផ្ទុក​យូអេសប៊ី" "កែសម្រួល​" - "ការដាស់តឿនពីការប្រើទិន្នន័យ" + "ការព្រមានអំពីការប្រើទិន្នន័យ" "ប៉ះដើម្បីមើលការប្រើប្រាស់ និងការកំណត់" "បាន​ដល់​ដែន​កំណត់​ទិន្នន័យ 2G-3G" "បាន​ដល់​ដែន​កំណត់​ទិន្នន័យ 4G" diff --git a/core/res/res/values-ky-rKG/strings.xml b/core/res/res/values-ky-rKG/strings.xml index 93c041c359e3..4f48a944f798 100644 --- a/core/res/res/values-ky-rKG/strings.xml +++ b/core/res/res/values-ky-rKG/strings.xml @@ -1329,7 +1329,7 @@ "%s USB түзмөгү" "USB эстутуму" "Өзгөртүү" - "Дайындарды колдонуу айгайы" + "Дайындарды колдонууну чектөө" "Колдонулушун жана жөндөөлөрүн көрүү үчүн таптаңыз." "2G-3G дайындар чегине жетти" "4G дайындар чегине жетти" diff --git a/core/res/res/values-mr-rIN/strings.xml b/core/res/res/values-mr-rIN/strings.xml index 0531e34a857f..8951643cfde0 100644 --- a/core/res/res/values-mr-rIN/strings.xml +++ b/core/res/res/values-mr-rIN/strings.xml @@ -1075,7 +1075,7 @@ "नेटवर्कवर साइन इन करा" - "वाय-फाय मध्‍ये इंटरनेट प्रवेश नाही" + "वाय-फायवरून इंटरनेटवर प्रवेश नाही" "पर्यायांसाठी टॅप करा" "%1$s वर स्विच केले" "%2$s कडे इंटरनेट प्रवेश नसताना डिव्हाइस %1$s वापरतो. शुल्क लागू शकतील." -- GitLab From 41cf6c32a150e8f794dfa13e36321e91c894290e Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Wed, 5 Oct 2016 23:41:54 -0700 Subject: [PATCH 676/809] Import translations. DO NOT MERGE Change-Id: Id0aff581c209fd43aa0daebbb1e7941652e1222c Auto-generated-cl: translation import --- packages/SystemUI/res/values-cs/strings.xml | 2 +- packages/SystemUI/res/values-km-rKH/strings.xml | 2 +- packages/SystemUI/res/values-ky-rKG/strings.xml | 2 +- packages/SystemUI/res/values-sk/strings.xml | 2 +- packages/SystemUI/res/values-th/strings.xml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/SystemUI/res/values-cs/strings.xml b/packages/SystemUI/res/values-cs/strings.xml index 43495a12ad4e..aa26b7a7fbaa 100644 --- a/packages/SystemUI/res/values-cs/strings.xml +++ b/packages/SystemUI/res/values-cs/strings.xml @@ -242,7 +242,7 @@ "Data 4G jsou pozastavena" "Mobilní data jsou pozastavena" "Data jsou pozastavena" - "Bylo dosaženo limitu dat. Používání mobilních dat bylo vypnuto.\n\nPokud jej obnovíte, mohou vám být účtovány poplatky za využití dat." + "Byl dosažen limit dat. Používání mobilních dat bylo vypnuto.\n\nPokud jej obnovíte, mohou vám být účtovány poplatky za využití dat." "Pokračovat" "Žádné přip. k internetu" "Wi-Fi: připojeno" diff --git a/packages/SystemUI/res/values-km-rKH/strings.xml b/packages/SystemUI/res/values-km-rKH/strings.xml index 21c79f7c0019..25a065091029 100644 --- a/packages/SystemUI/res/values-km-rKH/strings.xml +++ b/packages/SystemUI/res/values-km-rKH/strings.xml @@ -238,7 +238,7 @@ "ទិន្នន័យ 4G ត្រូវបានផ្អាក" "ទិន្នន័យចល័តត្រូវបានផ្អាក" "ទិន្នន័យត្រូវបានផ្អាក" - "បានឈានដល់កម្រិតទិន្នន័យដែលអ្នកបានកំណត់ហើយ។ អ្នកមិនអាចប្រើទិន្នន័យចល័តបានទៀតទេ។\n\nអាចនឹងគិតថ្លៃលើការប្រើទិន្នន័យ ប្រសិនបើអ្នកបន្តប្រើ។" + "បានឈានដល់កម្រិតទិន្នន័យដែលអ្នកបានកំណត់ហើយ។ ឥឡូវ​អ្នកមិនប្រើទិន្នន័យចល័តទៀតទេ។\n\nអាចនឹងគិតថ្លៃលើការប្រើទិន្នន័យ ប្រសិនបើអ្នកបន្តប្រើឡើងវិញ។" "បន្ត" "គ្មាន​ការ​តភ្ជាប់​អ៊ីនធឺណិត" "បាន​ភ្ជាប់​វ៉ាយហ្វាយ" diff --git a/packages/SystemUI/res/values-ky-rKG/strings.xml b/packages/SystemUI/res/values-ky-rKG/strings.xml index db469ca08f94..a00526720aa2 100644 --- a/packages/SystemUI/res/values-ky-rKG/strings.xml +++ b/packages/SystemUI/res/values-ky-rKG/strings.xml @@ -238,7 +238,7 @@ "4G дайындары тындырылды" "Уюлдук дайындар тындырылды" "Дайындар тындырылды" - "Сиз койгон дайындардын чегине жетти. Сиз мобилдик дайындарды колдонгон жоксуз.\n\nЭгер улантсаңыз, мобилдик дайындарды колдонгонуңуз үчүн акы алынышы мүмкүн." + "Трафик сиз койгон чекке жетти. Эми мобилдик дайындарды колдоно албайсыз.\n\nЭгер улантсаңыз, мобилдик дайындарды колдонгонуңуз үчүн акы алынышы мүмкүн." "Улантуу" "Интернет байланыш жок" "Wi-Fi байланышта" diff --git a/packages/SystemUI/res/values-sk/strings.xml b/packages/SystemUI/res/values-sk/strings.xml index 3784318c2e06..3a5a4ec0a711 100644 --- a/packages/SystemUI/res/values-sk/strings.xml +++ b/packages/SystemUI/res/values-sk/strings.xml @@ -571,7 +571,7 @@ "Prehliadač" "Kontakty" "E-mail" - "Okamžité správy" + "Čet" "Hudba" "YouTube" "Kalendár" diff --git a/packages/SystemUI/res/values-th/strings.xml b/packages/SystemUI/res/values-th/strings.xml index 9314e5912f40..2f04acfc452c 100644 --- a/packages/SystemUI/res/values-th/strings.xml +++ b/packages/SystemUI/res/values-th/strings.xml @@ -238,7 +238,7 @@ "หยุดการใช้ข้อมูล 4G ชั่วคราวแล้ว" "หยุดการใช้ข้อมูลมือถือชั่วคราวแล้ว" "หยุดการใช้ข้อมูลชั่วคราวแล้ว" - "คุณใช้อินเทอร์เน็ตเกินปริมาณที่กำหนดไว้แล้ว คุณจะไม่สามารถใช้ข้อมูลเครือข่ายมือถืออีก\n\nหากใช้ต่อ อาจมีค่าบริการสำหรับปริมาณการใช้อินเทอร์เน็ต" + "คุณใช้อินเทอร์เน็ตเกินปริมาณที่กำหนดไว้ ระบบจะไม่ใช้เครือข่ายมือถือต่อไป\n\nหากใช้ต่อ อาจมีค่าบริการตามปริมาณการใช้อินเทอร์เน็ต" "ทำต่อ" "ไม่มีอินเทอร์เน็ต" "เชื่อมต่อ WiFi แล้ว" -- GitLab From 9f61d17e6a41e80732fb78a8a8fb723b92498a15 Mon Sep 17 00:00:00 2001 From: Vladislav Kuzkokov Date: Wed, 5 Oct 2016 12:43:33 +0000 Subject: [PATCH 677/809] Revert "Fix backup for users hit by erroneous backup disabling" BUG=31754835 This reverts commit 1975021d88da6623a570a6ddab8b2397b1c0e59f. Change-Id: I5cf7862126755a34cf3b4d70436529401fddc87f --- .../DevicePolicyManagerService.java | 21 ++++++------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index 11d9fb8ef2a4..c2ffa9bbab15 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -496,12 +496,6 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { } }); } - // STOPSHIP: Remove this code once all dogfood devices are fixed. See b/31754835 - if (Intent.ACTION_BOOT_COMPLETED.equals(action) && !mOwners.hasDeviceOwner() - && !isBackupServiceEnabledInternal()) { - setBackupServiceEnabledInternal(true); - Slog.w(LOG_TAG, "Fix backup for device that is not in Device Owner mode."); - } if (Intent.ACTION_USER_UNLOCKED.equals(action) || Intent.ACTION_USER_STARTED.equals(action) || KeyChain.ACTION_STORAGE_CHANGED.equals(action)) { @@ -9323,15 +9317,12 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { } synchronized (this) { getActiveAdminForCallerLocked(admin, DeviceAdminInfo.USES_POLICY_DEVICE_OWNER); - return isBackupServiceEnabledInternal(); - } - } - private boolean isBackupServiceEnabledInternal() { - try { - IBackupManager ibm = mInjector.getIBackupManager(); - return ibm != null && ibm.isBackupServiceActive(UserHandle.USER_SYSTEM); - } catch (RemoteException e) { - throw new IllegalStateException("Failed requesting backup service state.", e); + try { + IBackupManager ibm = mInjector.getIBackupManager(); + return ibm != null && ibm.isBackupServiceActive(UserHandle.USER_SYSTEM); + } catch (RemoteException e) { + throw new IllegalStateException("Failed requesting backup service state.", e); + } } } } -- GitLab From 006e0613016c1a0e0627f992f5a93a7b7198edba Mon Sep 17 00:00:00 2001 From: Hugo Benichi Date: Wed, 5 Oct 2016 21:07:19 +0900 Subject: [PATCH 678/809] Reject DHCP packets with no magic cookie This patch adds an explicit check in the DHCP packet parser for rejecting packets without a magic cookie, instead of relying on the top-level try-catch-all in the parser. This allows to add to DHCP error metrics this specific error. It also allows to add two poor man's fuzzing tests that tries to find additional gaps in the DHCP packet parser by - trying to parse all subslices of a valid offer packet. - trying to parse random byte arrays. Test: covered by previously introduced malformed DHCP packet unit tests + additional fuzzing tests. Bug: 31850211 Change-Id: If53c9ba9df78d7604ec018c9d67c237ae59c4833 --- .../android/net/metrics/DhcpErrorEvent.java | 2 + .../net/java/android/net/dhcp/DhcpPacket.java | 6 ++- .../src/android/net/dhcp/DhcpPacketTest.java | 52 ++++++++++++++++++- 3 files changed, 58 insertions(+), 2 deletions(-) diff --git a/core/java/android/net/metrics/DhcpErrorEvent.java b/core/java/android/net/metrics/DhcpErrorEvent.java index 1972b9ea8a77..c3abcf7610b4 100644 --- a/core/java/android/net/metrics/DhcpErrorEvent.java +++ b/core/java/android/net/metrics/DhcpErrorEvent.java @@ -50,6 +50,8 @@ public final class DhcpErrorEvent implements Parcelable { public static final int DHCP_INVALID_OPTION_LENGTH = makeErrorCode(DHCP_ERROR, 3); public static final int DHCP_NO_MSG_TYPE = makeErrorCode(DHCP_ERROR, 4); public static final int DHCP_UNKNOWN_MSG_TYPE = makeErrorCode(DHCP_ERROR, 5); + /** {@hide} */ + public static final int DHCP_NO_COOKIE = makeErrorCode(DHCP_ERROR, 6); public static final int BUFFER_UNDERFLOW = makeErrorCode(MISC_ERROR, 1); public static final int RECEIVE_ERROR = makeErrorCode(MISC_ERROR, 2); diff --git a/services/net/java/android/net/dhcp/DhcpPacket.java b/services/net/java/android/net/dhcp/DhcpPacket.java index fc7cf2e204f0..ef4bc024c153 100644 --- a/services/net/java/android/net/dhcp/DhcpPacket.java +++ b/services/net/java/android/net/dhcp/DhcpPacket.java @@ -895,8 +895,12 @@ abstract class DhcpPacket { + 64 // skip server host name (64 chars) + 128); // skip boot file name (128 chars) - int dhcpMagicCookie = packet.getInt(); + // Ensure this is a DHCP packet with a magic cookie, and not BOOTP. http://b/31850211 + if (packet.remaining() < 4) { + throw new ParseException(DhcpErrorEvent.DHCP_NO_COOKIE, "not a DHCP message"); + } + int dhcpMagicCookie = packet.getInt(); if (dhcpMagicCookie != DHCP_MAGIC_COOKIE) { throw new ParseException(DhcpErrorEvent.DHCP_BAD_MAGIC_COOKIE, "Bad magic cookie 0x%08x, should be 0x%08x", diff --git a/services/tests/servicestests/src/android/net/dhcp/DhcpPacketTest.java b/services/tests/servicestests/src/android/net/dhcp/DhcpPacketTest.java index b4e9db77f99f..bc8baa12a45b 100644 --- a/services/tests/servicestests/src/android/net/dhcp/DhcpPacketTest.java +++ b/services/tests/servicestests/src/android/net/dhcp/DhcpPacketTest.java @@ -27,6 +27,7 @@ import java.net.Inet4Address; import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.Arrays; +import java.util.Random; import junit.framework.TestCase; import static android.net.dhcp.DhcpPacket.*; @@ -430,7 +431,7 @@ public class DhcpPacketTest extends TestCase { try { DhcpPacket offerPacket = DhcpPacket.decodeFullPacket(packet, packet.length, ENCAP_L3); } catch (DhcpPacket.ParseException expected) { - assertDhcpErrorCodes(DhcpErrorEvent.PARSING_ERROR, expected.errorCode); + assertDhcpErrorCodes(DhcpErrorEvent.DHCP_NO_COOKIE, expected.errorCode); return; } fail("Dhcp packet parsing should have failed"); @@ -472,6 +473,55 @@ public class DhcpPacketTest extends TestCase { assertEquals(Integer.toHexString(expected), Integer.toHexString(got)); } + public void testTruncatedOfferPackets() throws Exception { + final byte[] packet = HexDump.hexStringToByteArray( + // IP header. + "450001518d0600004011144dc0a82b01c0a82bf7" + + // UDP header. + "00430044013d9ac7" + + // BOOTP header. + "02010600dfc23d1f0002000000000000c0a82bf7c0a82b0100000000" + + // MAC address. + "30766ff2a90c00000000000000000000" + + // Server name. + "0000000000000000000000000000000000000000000000000000000000000000" + + "0000000000000000000000000000000000000000000000000000000000000000" + + // File. + "0000000000000000000000000000000000000000000000000000000000000000" + + "0000000000000000000000000000000000000000000000000000000000000000" + + "0000000000000000000000000000000000000000000000000000000000000000" + + "0000000000000000000000000000000000000000000000000000000000000000" + + // Options + "638253633501023604c0a82b01330400000e103a04000007083b0400000c4e0104ffffff00" + + "1c04c0a82bff0304c0a82b010604c0a82b012b0f414e44524f49445f4d455445524544ff"); + + for (int len = 0; len < packet.length; len++) { + try { + DhcpPacket.decodeFullPacket(packet, len, ENCAP_L3); + } catch (ParseException e) { + if (e.errorCode == DhcpErrorEvent.PARSING_ERROR) { + fail(String.format("bad truncated packet of length %d", len)); + } + } + } + } + + public void testRandomPackets() throws Exception { + final int maxRandomPacketSize = 512; + final Random r = new Random(); + for (int i = 0; i < 10000; i++) { + byte[] packet = new byte[r.nextInt(maxRandomPacketSize + 1)]; + r.nextBytes(packet); + try { + DhcpPacket.decodeFullPacket(packet, packet.length, ENCAP_L3); + } catch (ParseException e) { + if (e.errorCode == DhcpErrorEvent.PARSING_ERROR) { + fail("bad packet: " + HexDump.toHexString(packet)); + } + } + } + } + private byte[] mtuBytes(int mtu) { // 0x1a02: option 26, length 2. 0xff: no more options. if (mtu > Short.MAX_VALUE - Short.MIN_VALUE) { -- GitLab From 0d6e54e2461efd6574a78b664c42ef72cd2a79ba Mon Sep 17 00:00:00 2001 From: Wyatt Riley Date: Wed, 5 Oct 2016 12:03:03 -0700 Subject: [PATCH 679/809] Removing over-active NTP & XTRA assistance downloads Restoring pre-Connectivity-Manager intended behavior of only pending-network NTP & XTRA downloads restarting when network connectivity returns Bug: 31864876 Fixes: 31864876 Change-Id: I5b967e75c610277988e8e9cfa1e938c999333edb --- .../server/location/GnssLocationProvider.java | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/services/core/java/com/android/server/location/GnssLocationProvider.java b/services/core/java/com/android/server/location/GnssLocationProvider.java index 7580cf4f0111..ae98077c7c2c 100644 --- a/services/core/java/com/android/server/location/GnssLocationProvider.java +++ b/services/core/java/com/android/server/location/GnssLocationProvider.java @@ -452,8 +452,12 @@ public class GnssLocationProvider implements LocationProviderInterface { new ConnectivityManager.NetworkCallback() { @Override public void onAvailable(Network network) { - requestUtcTime(); - xtraDownloadRequest(); + if (mInjectNtpTimePending == STATE_PENDING_NETWORK) { + requestUtcTime(); + } + if (mDownloadXtraDataPending == STATE_PENDING_NETWORK) { + xtraDownloadRequest(); + } } }; @@ -1002,6 +1006,11 @@ public class GnssLocationProvider implements LocationProviderInterface { } private void handleDownloadXtraData() { + if (!mSupportsXtra) { + // native code reports xtra not supported, don't try + Log.d(TAG, "handleDownloadXtraData() called when Xtra not supported"); + return; + } if (mDownloadXtraDataPending == STATE_DOWNLOADING) { // already downloading data return; @@ -2125,9 +2134,7 @@ public class GnssLocationProvider implements LocationProviderInterface { handleInjectNtpTime(); break; case DOWNLOAD_XTRA_DATA: - if (mSupportsXtra) { - handleDownloadXtraData(); - } + handleDownloadXtraData(); break; case INJECT_NTP_TIME_FINISHED: mInjectNtpTimePending = STATE_IDLE; -- GitLab From 458537483d896eab8a37b8742b37b24b97c2d580 Mon Sep 17 00:00:00 2001 From: Junda Liu Date: Thu, 6 Oct 2016 09:35:40 -0700 Subject: [PATCH 680/809] Remove incorrect non-roaming list for Telus. Bug: b/30964320 Change-Id: I5a605339fd82b41b02616a706fe9ab5774c550a7 --- core/res/res/values-mcc302-mnc220/config.xml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/core/res/res/values-mcc302-mnc220/config.xml b/core/res/res/values-mcc302-mnc220/config.xml index d638b89d5c03..422f7c92648f 100644 --- a/core/res/res/values-mcc302-mnc220/config.xml +++ b/core/res/res/values-mcc302-mnc220/config.xml @@ -21,14 +21,6 @@ for different hardware and product builds. --> - - 302370 - 302610 - 302660 - 302720 - 302780 - - 1410 + android:pathData="M14.1,14.1l7.9,0.0 0.0,-11.5 -20.0,20.0 12.1,0.0z" + android:fillAlpha="0.3" + android:fillColor="#FFFFFF"/> - + android:pathData="M21.9,17.0l-1.1,-1.1 -1.9,1.9 -1.9,-1.9 -1.1,1.1 1.9,1.9 -1.9,1.9 1.1,1.1 1.9,-1.9 1.9,1.9 1.1,-1.1 -1.9,-1.9z" + android:fillColor="#FFFFFF"/> diff --git a/packages/SystemUI/res/drawable/ic_qs_signal_1.xml b/packages/SystemUI/res/drawable/ic_qs_signal_1.xml index 7fb423e5fc84..e055de77ebe5 100644 --- a/packages/SystemUI/res/drawable/ic_qs_signal_1.xml +++ b/packages/SystemUI/res/drawable/ic_qs_signal_1.xml @@ -1,7 +1,7 @@ + android:pathData="M10.0,14.6l-8.0,8.0l8.0,0.0l0,-8z" + android:fillColor="#FFFFFF"/> + android:pathData="M14.1,14.1l7.9,0.0 0.0,-11.5 -20.0,20.0 12.1,0.0z" + android:fillAlpha="0.3" + android:fillColor="#FFFFFF"/> - + android:pathData="M21.9,17.0l-1.1,-1.1 -1.9,1.9 -1.9,-1.9 -1.1,1.1 1.9,1.9 -1.9,1.9 1.1,1.1 1.9,-1.9 1.9,1.9 1.1,-1.1 -1.9,-1.9z" + android:fillColor="#FFFFFF"/> diff --git a/packages/SystemUI/res/drawable/ic_qs_signal_2.xml b/packages/SystemUI/res/drawable/ic_qs_signal_2.xml index 3358d65b68e6..8a488170e438 100644 --- a/packages/SystemUI/res/drawable/ic_qs_signal_2.xml +++ b/packages/SystemUI/res/drawable/ic_qs_signal_2.xml @@ -1,7 +1,7 @@ + android:pathData="M14.0,10.6l-12.0,12.0l12.0,0.0L14.0,10.6z" + android:fillColor="#FFFFFF"/> + android:pathData="M14.1,14.1l7.9,0.0 0.0,-11.5 -20.0,20.0 12.1,0.0z" + android:fillAlpha="0.3" + android:fillColor="#FFFFFF"/> - + android:pathData="M21.9,17.0l-1.1,-1.1 -1.9,1.9 -1.9,-1.9 -1.1,1.1 1.9,1.9 -1.9,1.9 1.1,1.1 1.9,-1.9 1.9,1.9 1.1,-1.1 -1.9,-1.9z" + android:fillColor="#FFFFFF"/> diff --git a/packages/SystemUI/res/drawable/ic_qs_signal_3.xml b/packages/SystemUI/res/drawable/ic_qs_signal_3.xml index 63838a93c686..39cc94cad4db 100644 --- a/packages/SystemUI/res/drawable/ic_qs_signal_3.xml +++ b/packages/SystemUI/res/drawable/ic_qs_signal_3.xml @@ -1,7 +1,7 @@ + android:pathData="M14.1,14.1l7.9,0.0 0.0,-11.5 -20.0,20.0 12.1,0.0z" + android:fillAlpha="0.3" + android:fillColor="#FFFFFF"/> + android:pathData="M21.9,17.0l-1.1,-1.1 -1.9,1.9 -1.9,-1.9 -1.1,1.1 1.9,1.9 -1.9,1.9 1.1,1.1 1.9,-1.9 1.9,1.9 1.1,-1.1 -1.9,-1.9z" + android:fillColor="#FFFFFF"/> - + android:pathData="M14.1,14.1l2.9,0.0 0.0,-6.5 -15.0,15.0 12.1,0.0z" + android:fillColor="#FFFFFF"/> diff --git a/packages/SystemUI/res/drawable/ic_qs_signal_4.xml b/packages/SystemUI/res/drawable/ic_qs_signal_4.xml index 76690cc2adce..012e95e985ce 100644 --- a/packages/SystemUI/res/drawable/ic_qs_signal_4.xml +++ b/packages/SystemUI/res/drawable/ic_qs_signal_4.xml @@ -1,7 +1,7 @@ + android:pathData="M14.1,14.1l7.9,0.0 0.0,-11.5 -20.0,20.0 12.1,0.0z" + android:fillColor="#FFFFFF"/> - + android:pathData="M21.9,17.0l-1.1,-1.1 -1.9,1.9 -1.9,-1.9 -1.1,1.1 1.9,1.9 -1.9,1.9 1.1,1.1 1.9,-1.9 1.9,1.9 1.1,-1.1 -1.9,-1.9z" + android:fillColor="#FFFFFF"/> diff --git a/packages/SystemUI/res/drawable/ic_qs_wifi_0.xml b/packages/SystemUI/res/drawable/ic_qs_wifi_0.xml index 50c427e24c9b..e6f929265709 100644 --- a/packages/SystemUI/res/drawable/ic_qs_wifi_0.xml +++ b/packages/SystemUI/res/drawable/ic_qs_wifi_0.xml @@ -1,7 +1,7 @@ + android:pathData="M13.8,12.2l5.7,0.0L23.6,7.0C23.2,6.7 18.7,3.0 12.0,3.0C5.3,3.0 0.8,6.7 0.4,7.0L12.0,21.5l0.0,0.0l0.0,0.0l1.8,-2.2L13.8,12.2z" + android:fillAlpha="0.3" + android:fillColor="#FFFFFF"/> - + android:pathData="M21.9,15.4l-1.1,-1.2 -1.9,1.900001 -1.9,-1.900001 -1.1,1.2 1.9,1.9 -1.9,1.800001 1.1,1.199999 1.9,-1.9 1.9,1.9 1.1,-1.199999 -1.799999,-1.800001z" + android:fillColor="#FFFFFF"/> diff --git a/packages/SystemUI/res/drawable/ic_qs_wifi_1.xml b/packages/SystemUI/res/drawable/ic_qs_wifi_1.xml index a2d11a09aab8..d423ccb2d5e2 100644 --- a/packages/SystemUI/res/drawable/ic_qs_wifi_1.xml +++ b/packages/SystemUI/res/drawable/ic_qs_wifi_1.xml @@ -1,7 +1,7 @@ + android:pathData="M13.8,13.2c-0.1,0.0 -0.3,-0.1 -0.4,-0.1c-0.1,0.0 -0.3,0.0 -0.4,-0.1c-0.3,0.0 -0.6,-0.1 -0.9,-0.1c0.0,0.0 0.0,0.0 -0.1,0.0c0.0,0.0 0.0,0.0 0.0,0.0s0.0,0.0 0.0,0.0c0.0,0.0 0.0,0.0 -0.1,0.0c-0.3,0.0 -0.6,0.0 -0.9,0.1c-0.1,0.0 -0.3,0.0 -0.4,0.1c-0.2,0.0 -0.3,0.1 -0.5,0.1c-0.2,0.0 -0.3,0.1 -0.5,0.1c-0.1,0.0 -0.1,0.0 -0.2,0.1c-1.6,0.5 -2.7,1.3 -2.8,1.5l5.3,6.6l0.0,0.0l0.0,0.0l0.0,0.0l0.0,0.0l1.8,-2.2L13.700002,13.2z" + android:fillColor="#FFFFFF"/> + android:pathData="M13.8,12.2l5.7,0.0L23.6,7.0C23.2,6.7 18.7,3.0 12.0,3.0C5.3,3.0 0.8,6.7 0.4,7.0L12.0,21.5l0.0,0.0l0.0,0.0l1.8,-2.2L13.8,12.2z" + android:fillAlpha="0.3" + android:fillColor="#FFFFFF"/> - + android:pathData="M21.9,15.4l-1.1,-1.2 -1.9,1.900001 -1.9,-1.900001 -1.1,1.2 1.9,1.9 -1.9,1.800001 1.1,1.199999 1.9,-1.9 1.9,1.9 1.1,-1.199999 -1.799999,-1.800001z" + android:fillColor="#FFFFFF"/> diff --git a/packages/SystemUI/res/drawable/ic_qs_wifi_2.xml b/packages/SystemUI/res/drawable/ic_qs_wifi_2.xml index f2043fc4bcaf..1982130fb1c6 100644 --- a/packages/SystemUI/res/drawable/ic_qs_wifi_2.xml +++ b/packages/SystemUI/res/drawable/ic_qs_wifi_2.xml @@ -1,7 +1,7 @@ + android:pathData="M13.8,12.2l4.9,0.0c-1.0,-0.7 -3.4,-2.2 -6.7,-2.2c-4.1,0.0 -6.9,2.2 -7.2,2.5l7.2,9.0l0.0,0.0l0.0,0.0l1.8,-2.2L13.800001,12.2z" + android:fillColor="#FFFFFF"/> + android:pathData="M13.8,12.2l5.7,0.0L23.6,7.0C23.2,6.7 18.7,3.0 12.0,3.0C5.3,3.0 0.8,6.7 0.4,7.0L12.0,21.5l0.0,0.0l0.0,0.0l1.8,-2.2L13.8,12.2z" + android:fillAlpha="0.3" + android:fillColor="#FFFFFF"/> - + android:pathData="M21.9,15.4l-1.1,-1.2 -1.9,1.900001 -1.9,-1.900001 -1.1,1.2 1.800001,1.9 -1.800001,1.800001 1.1,1.199999 1.9,-1.9 1.9,1.9 1.1,-1.199999 -1.9,-1.800001z" + android:fillColor="#FFFFFF"/> diff --git a/packages/SystemUI/res/drawable/ic_qs_wifi_3.xml b/packages/SystemUI/res/drawable/ic_qs_wifi_3.xml index b7a4f4c81ec8..b35011181a86 100644 --- a/packages/SystemUI/res/drawable/ic_qs_wifi_3.xml +++ b/packages/SystemUI/res/drawable/ic_qs_wifi_3.xml @@ -1,7 +1,7 @@ + android:pathData="M13.8,12.2l5.7,0.0l1.0,-1.2C20.0,10.6 16.8,8.0 12.0,8.0s-8.0,2.6 -8.5,3.0L12.0,21.5l0.0,0.0l0.0,0.0l1.8,-2.2L13.8,12.2z" + android:fillColor="#FFFFFF"/> + android:pathData="M13.8,12.2l5.7,0.0L23.6,7.0C23.2,6.7 18.7,3.0 12.0,3.0C5.3,3.0 0.8,6.7 0.4,7.0L12.0,21.5l0.0,0.0l0.0,0.0l1.8,-2.2L13.8,12.2z" + android:fillAlpha="0.3" + android:fillColor="#FFFFFF"/> - + android:pathData="M21.9,15.4l-1.1,-1.2 -1.9,1.900001 -1.9,-1.900001 -1.1,1.2 1.9,1.9 -1.9,1.800001 1.1,1.199999 1.9,-1.9 1.9,1.9 1.1,-1.199999 -1.9,-1.800001z" + android:fillColor="#FFFFFF"/> diff --git a/packages/SystemUI/res/drawable/ic_qs_wifi_4.xml b/packages/SystemUI/res/drawable/ic_qs_wifi_4.xml index 35a9138b31d2..136a00435430 100644 --- a/packages/SystemUI/res/drawable/ic_qs_wifi_4.xml +++ b/packages/SystemUI/res/drawable/ic_qs_wifi_4.xml @@ -1,7 +1,7 @@ + android:pathData="M13.8,12.2l5.7,0.0L23.6,7.0C23.2,6.7 18.7,3.0 12.0,3.0C5.3,3.0 0.8,6.7 0.4,7.0L12.0,21.5l0.0,0.0l0.0,0.0l1.8,-2.2L13.8,12.2z" + android:fillColor="#FFFFFF"/> - + android:pathData="M21.9,15.4l-1.1,-1.2 -1.9,1.900001 -1.9,-1.900001 -1.1,1.2 1.9,1.9 -1.9,1.800001 1.1,1.199999 1.9,-1.9 1.9,1.9 1.1,-1.199999 -1.9,-1.800001z" + android:fillColor="#FFFFFF"/> diff --git a/packages/SystemUI/res/drawable/stat_sys_signal_0.xml b/packages/SystemUI/res/drawable/stat_sys_signal_0.xml index 643c4f919d1b..8bc872a99951 100644 --- a/packages/SystemUI/res/drawable/stat_sys_signal_0.xml +++ b/packages/SystemUI/res/drawable/stat_sys_signal_0.xml @@ -1,7 +1,7 @@ - - + diff --git a/packages/SystemUI/res/drawable/stat_sys_signal_1.xml b/packages/SystemUI/res/drawable/stat_sys_signal_1.xml index 64781c367227..8fa7630b0fae 100644 --- a/packages/SystemUI/res/drawable/stat_sys_signal_1.xml +++ b/packages/SystemUI/res/drawable/stat_sys_signal_1.xml @@ -1,7 +1,7 @@ + android:pathData="M10.0,14.6l-8.0,8.0l8.0,0.0l0,-8z" + android:fillColor="?attr/fillColor"/> + android:pathData="M14.1,14.1l7.9,0.0 0.0,-11.5 -20.0,20.0 12.1,0.0z" + android:fillColor="?attr/backgroundColor"/> - + android:pathData="M21.9,17.0l-1.1,-1.1 -1.9,1.9 -1.9,-1.9 -1.1,1.1 1.9,1.9 -1.9,1.9 1.1,1.1 1.9,-1.9 1.9,1.9 1.1,-1.1 -1.9,-1.9z" + android:fillColor="?attr/fillColor"/> diff --git a/packages/SystemUI/res/drawable/stat_sys_signal_2.xml b/packages/SystemUI/res/drawable/stat_sys_signal_2.xml index eb2be08af5f1..2a660a39d510 100644 --- a/packages/SystemUI/res/drawable/stat_sys_signal_2.xml +++ b/packages/SystemUI/res/drawable/stat_sys_signal_2.xml @@ -1,7 +1,7 @@ + android:pathData="M14.0,10.6l-12.0,12.0l12.0,0.0L14.0,10.6z" + android:fillColor="?attr/fillColor"/> - - + diff --git a/packages/SystemUI/res/drawable/stat_sys_signal_3.xml b/packages/SystemUI/res/drawable/stat_sys_signal_3.xml index 22afad085231..9e0a43353eea 100644 --- a/packages/SystemUI/res/drawable/stat_sys_signal_3.xml +++ b/packages/SystemUI/res/drawable/stat_sys_signal_3.xml @@ -1,7 +1,7 @@ - + android:pathData="M14.1,14.1l7.9,0.0 0.0,-11.5 -20.0,20.0 12.1,0.0z" + android:fillColor="?attr/backgroundColor"/> + android:pathData="M21.9,17.0l-1.1,-1.1 -1.9,1.9 -1.9,-1.9 -1.1,1.1 1.9,1.9 -1.9,1.9 1.1,1.1 1.9,-1.9 1.9,1.9 1.1,-1.1 -1.9,-1.9z" + android:fillColor="?attr/fillColor"/> + android:pathData="M14.1,14.1l2.9,0.0 0.0,-6.5 -15.0,15.0 12.1,0.0z" + android:fillColor="?attr/fillColor"/> diff --git a/packages/SystemUI/res/drawable/stat_sys_signal_4.xml b/packages/SystemUI/res/drawable/stat_sys_signal_4.xml index d1e866dfefb3..01f670311750 100644 --- a/packages/SystemUI/res/drawable/stat_sys_signal_4.xml +++ b/packages/SystemUI/res/drawable/stat_sys_signal_4.xml @@ -1,7 +1,7 @@ - - + android:pathData="M14.1,14.1l7.9,0.0 0.0,-11.5 -20.0,20.0 12.1,0.0z" + android:fillColor="?attr/fillColor"/> + android:pathData="M21.9,17.0l-1.1,-1.1 -1.9,1.9 -1.9,-1.9 -1.1,1.1 1.9,1.9 -1.9,1.9 1.1,1.1 1.9,-1.9 1.9,1.9 1.1,-1.1 -1.9,-1.9z" + android:fillColor="?attr/fillColor"/> diff --git a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_0.xml b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_0.xml index 7f1b715e9a78..2de2e3640879 100644 --- a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_0.xml +++ b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_0.xml @@ -1,7 +1,7 @@ + android:pathData="M13.8,12.2l5.7,0.0L23.6,7.0C23.2,6.7 18.7,3.0 12.0,3.0C5.3,3.0 0.8,6.7 0.4,7.0L12.0,21.5l0.0,0.0l0.0,0.0l1.8,-2.2L13.8,12.2z" + android:fillColor="?attr/backgroundColor"/> - + android:pathData="M21.9,15.4l-1.1,-1.2 -1.9,1.900001 -1.9,-1.900001 -1.1,1.2 1.9,1.9 -1.9,1.800001 1.1,1.199999 1.9,-1.9 1.9,1.9 1.1,-1.199999 -1.799999,-1.800001z" + android:fillColor="?attr/fillColor"/> diff --git a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_1.xml b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_1.xml index acd89bea9ea8..144a7c1074e0 100644 --- a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_1.xml +++ b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_1.xml @@ -1,7 +1,7 @@ + android:pathData="M13.8,13.2c-0.1,0.0 -0.3,-0.1 -0.4,-0.1c-0.1,0.0 -0.3,0.0 -0.4,-0.1c-0.3,0.0 -0.6,-0.1 -0.9,-0.1c0.0,0.0 0.0,0.0 -0.1,0.0c0.0,0.0 0.0,0.0 0.0,0.0s0.0,0.0 0.0,0.0c0.0,0.0 0.0,0.0 -0.1,0.0c-0.3,0.0 -0.6,0.0 -0.9,0.1c-0.1,0.0 -0.3,0.0 -0.4,0.1c-0.2,0.0 -0.3,0.1 -0.5,0.1c-0.2,0.0 -0.3,0.1 -0.5,0.1c-0.1,0.0 -0.1,0.0 -0.2,0.1c-1.6,0.5 -2.7,1.3 -2.8,1.5l5.3,6.6l0.0,0.0l0.0,0.0l0.0,0.0l0.0,0.0l1.8,-2.2L13.700002,13.2z" + android:fillColor="?attr/fillColor"/> + android:pathData="M13.8,12.2l5.7,0.0L23.6,7.0C23.2,6.7 18.7,3.0 12.0,3.0C5.3,3.0 0.8,6.7 0.4,7.0L12.0,21.5l0.0,0.0l0.0,0.0l1.8,-2.2L13.8,12.2z" + android:fillColor="?attr/backgroundColor"/> - + android:pathData="M21.9,15.4l-1.1,-1.2 -1.9,1.900001 -1.9,-1.900001 -1.1,1.2 1.9,1.9 -1.9,1.800001 1.1,1.199999 1.9,-1.9 1.9,1.9 1.1,-1.199999 -1.799999,-1.800001z" + android:fillColor="?attr/fillColor"/> diff --git a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_2.xml b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_2.xml index f33b25c6261b..6b7f71268162 100644 --- a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_2.xml +++ b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_2.xml @@ -1,7 +1,7 @@ + android:pathData="M13.8,12.2l4.9,0.0c-1.0,-0.7 -3.4,-2.2 -6.7,-2.2c-4.1,0.0 -6.9,2.2 -7.2,2.5l7.2,9.0l0.0,0.0l0.0,0.0l1.8,-2.2L13.800001,12.2z" + android:fillColor="?attr/fillColor"/> + android:pathData="M13.8,12.2l5.7,0.0L23.6,7.0C23.2,6.7 18.7,3.0 12.0,3.0C5.3,3.0 0.8,6.7 0.4,7.0L12.0,21.5l0.0,0.0l0.0,0.0l1.8,-2.2L13.8,12.2z" + android:fillColor="?attr/backgroundColor"/> - + android:pathData="M21.9,15.4l-1.1,-1.2 -1.9,1.900001 -1.9,-1.900001 -1.1,1.2 1.800001,1.9 -1.800001,1.800001 1.1,1.199999 1.9,-1.9 1.9,1.9 1.1,-1.199999 -1.9,-1.800001z" + android:fillColor="?attr/fillColor"/> diff --git a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_3.xml b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_3.xml index 09d2e5037bc9..d34b4debc5ee 100644 --- a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_3.xml +++ b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_3.xml @@ -1,7 +1,7 @@ + android:pathData="M13.8,12.2l5.7,0.0l1.0,-1.2C20.0,10.6 16.8,8.0 12.0,8.0s-8.0,2.6 -8.5,3.0L12.0,21.5l0.0,0.0l0.0,0.0l1.8,-2.2L13.8,12.2z" + android:fillColor="?attr/fillColor"/> + android:pathData="M13.8,12.2l5.7,0.0L23.6,7.0C23.2,6.7 18.7,3.0 12.0,3.0C5.3,3.0 0.8,6.7 0.4,7.0L12.0,21.5l0.0,0.0l0.0,0.0l1.8,-2.2L13.8,12.2z" + android:fillColor="?attr/backgroundColor"/> - + android:pathData="M21.9,15.4l-1.1,-1.2 -1.9,1.900001 -1.9,-1.900001 -1.1,1.2 1.9,1.9 -1.9,1.800001 1.1,1.199999 1.9,-1.9 1.9,1.9 1.1,-1.199999 -1.9,-1.800001z" + android:fillColor="?attr/fillColor"/> diff --git a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_4.xml b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_4.xml index fb1f584250e4..570135639183 100644 --- a/packages/SystemUI/res/drawable/stat_sys_wifi_signal_4.xml +++ b/packages/SystemUI/res/drawable/stat_sys_wifi_signal_4.xml @@ -1,7 +1,7 @@ + android:pathData="M13.8,12.2l5.7,0.0L23.6,7.0C23.2,6.7 18.7,3.0 12.0,3.0C5.3,3.0 0.8,6.7 0.4,7.0L12.0,21.5l0.0,0.0l0.0,0.0l1.8,-2.2L13.8,12.2z" + android:fillColor="?attr/fillColor"/> - + android:pathData="M21.9,15.4l-1.1,-1.2 -1.9,1.900001 -1.9,-1.900001 -1.1,1.2 1.9,1.9 -1.9,1.800001 1.1,1.199999 1.9,-1.9 1.9,1.9 1.1,-1.199999 -1.9,-1.800001z" + android:fillColor="?attr/fillColor"/> -- GitLab From f20b1428f88fa81dbde0b96236c6f893f838d40d Mon Sep 17 00:00:00 2001 From: Jorim Jaggi Date: Mon, 3 Oct 2016 16:33:56 +0200 Subject: [PATCH 686/809] Fix dismissing window showing Only show dismissing window if we are about to unlock, and not just in all cases. For that, set a flag to true during the process, and reset the flag after the Keyguard has unlocked. Test: Have a FLAG_SHOW_WHEN_LOCKED activity that starts a FLAG_DISMISS_KEYGUARD_ACTIVITY. Check whether window is hidden when toggling the power button. Make sure that the device is in a trusted state during the whole test. Change-Id: I9346dd869d1cf50a42c64a5f7c69f8e24f1e1f9b Fixes: 31810884 --- .../server/policy/PhoneWindowManager.java | 62 +++++++++++++------ .../keyguard/KeyguardServiceDelegate.java | 8 ++- .../keyguard/KeyguardServiceWrapper.java | 7 ++- .../policy/keyguard/KeyguardStateMonitor.java | 10 ++- 4 files changed, 63 insertions(+), 24 deletions(-) diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index 3ec3ceaf544f..b8f7d1f08dca 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -140,6 +140,7 @@ import android.view.animation.Animation; import android.view.animation.AnimationSet; import android.view.animation.AnimationUtils; import com.android.internal.R; +import com.android.internal.annotations.GuardedBy; import com.android.internal.logging.MetricsLogger; import com.android.internal.policy.PhoneWindow; import com.android.internal.policy.IShortcutService; @@ -590,6 +591,13 @@ public class PhoneWindowManager implements WindowManagerPolicy { private static final int DISMISS_KEYGUARD_CONTINUE = 2; // Keyguard has been dismissed. int mDismissKeyguard = DISMISS_KEYGUARD_NONE; + /** + * Indicates that we asked the Keyguard to be dismissed and we just wait for the Keyguard to + * dismiss itself. + */ + @GuardedBy("Lw") + private boolean mCurrentlyDismissingKeyguard; + /** The window that is currently dismissing the keyguard. Dismissing the keyguard must only * be done once per window. */ private WindowState mWinDismissingKeyguard; @@ -3590,10 +3598,11 @@ public class PhoneWindowManager implements WindowManagerPolicy { @Override public boolean canShowDismissingWindowWhileLockedLw() { - // If the keyguard is trusted, it will unlock without a challange. Therefore, windows with - // FLAG_DISMISS_KEYGUARD don't need to be force hidden, as they will unlock the phone right - // away anyways. - return mKeyguardDelegate != null && mKeyguardDelegate.isTrusted(); + // If the keyguard is trusted, it will unlock without a challenge. Therefore, if we are in + // the process of dismissing Keyguard, we don't need to hide them as the phone will be + // unlocked right away in any case. + return mKeyguardDelegate != null && mKeyguardDelegate.isTrusted() + && mCurrentlyDismissingKeyguard; } private void launchAssistLongPressAction() { @@ -5300,22 +5309,27 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } else if (mDismissKeyguard != DISMISS_KEYGUARD_NONE) { mKeyguardHidden = false; - final boolean trusted = mKeyguardDelegate.isTrusted(); - if (trusted) { - // No need to un-occlude keyguard - we'll dimiss it right away anyways. - } else if (setKeyguardOccludedLw(false)) { - changes |= FINISH_LAYOUT_REDO_LAYOUT - | FINISH_LAYOUT_REDO_CONFIG - | FINISH_LAYOUT_REDO_WALLPAPER; - } + boolean willDismiss = false; if (mDismissKeyguard == DISMISS_KEYGUARD_START) { + final boolean trusted = mKeyguardDelegate.isTrusted(); + willDismiss = trusted && mKeyguardOccluded && mKeyguardDelegate != null + && mKeyguardDelegate.isShowing(); + if (willDismiss) { + mCurrentlyDismissingKeyguard = true; + } + // Only launch the next keyguard unlock window once per window. - mHandler.post(new Runnable() { - @Override - public void run() { - mKeyguardDelegate.dismiss(trusted /* allowWhileOccluded */); - } - }); + mHandler.post(() -> mKeyguardDelegate.dismiss( + trusted /* allowWhileOccluded */)); + } + + // If we are currently dismissing Keyguard, there is no need to unocclude it. + if (!mCurrentlyDismissingKeyguard) { + if (setKeyguardOccludedLw(false)) { + changes |= FINISH_LAYOUT_REDO_LAYOUT + | FINISH_LAYOUT_REDO_CONFIG + | FINISH_LAYOUT_REDO_WALLPAPER; + } } } else { mWinDismissingKeyguard = null; @@ -5370,6 +5384,14 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } + private void onKeyguardShowingStateChanged(boolean showing) { + if (!showing) { + synchronized (mWindowManagerFuncs.getWindowManagerLock()) { + mCurrentlyDismissingKeyguard = false; + } + } + } + private boolean isStatusBarKeyguard() { return mStatusBar != null && (mStatusBar.getAttrs().privateFlags & PRIVATE_FLAG_KEYGUARD) != 0; @@ -6908,7 +6930,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { /** {@inheritDoc} */ @Override public void systemReady() { - mKeyguardDelegate = new KeyguardServiceDelegate(mContext); + mKeyguardDelegate = new KeyguardServiceDelegate(mContext, + this::onKeyguardShowingStateChanged); mKeyguardDelegate.onSystemReady(); readCameraLensCoverState(); @@ -7989,6 +8012,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { pw.print(" mForceStatusBarFromKeyguard="); pw.println(mForceStatusBarFromKeyguard); pw.print(prefix); pw.print("mDismissKeyguard="); pw.print(mDismissKeyguard); + pw.print(" mCurrentlyDismissingKeyguard="); pw.println(mCurrentlyDismissingKeyguard); pw.print(" mWinDismissingKeyguard="); pw.print(mWinDismissingKeyguard); pw.print(" mHomePressed="); pw.println(mHomePressed); pw.print(prefix); pw.print("mAllowLockscreenWhenOn="); pw.print(mAllowLockscreenWhenOn); diff --git a/services/core/java/com/android/server/policy/keyguard/KeyguardServiceDelegate.java b/services/core/java/com/android/server/policy/keyguard/KeyguardServiceDelegate.java index 2af4c9b23201..29a1f0710c34 100644 --- a/services/core/java/com/android/server/policy/keyguard/KeyguardServiceDelegate.java +++ b/services/core/java/com/android/server/policy/keyguard/KeyguardServiceDelegate.java @@ -23,6 +23,7 @@ import com.android.internal.policy.IKeyguardDrawnCallback; import com.android.internal.policy.IKeyguardExitCallback; import com.android.internal.policy.IKeyguardService; import com.android.server.UiThread; +import com.android.server.policy.keyguard.KeyguardStateMonitor.OnShowingStateChangedCallback; import java.io.PrintWriter; @@ -49,6 +50,7 @@ public class KeyguardServiceDelegate { private final Handler mScrimHandler; private final KeyguardState mKeyguardState = new KeyguardState(); private DrawnListener mDrawnListenerWhenConnect; + private final OnShowingStateChangedCallback mShowingStateChangedCallback; private static final class KeyguardState { KeyguardState() { @@ -116,9 +118,11 @@ public class KeyguardServiceDelegate { } }; - public KeyguardServiceDelegate(Context context) { + public KeyguardServiceDelegate(Context context, + OnShowingStateChangedCallback showingStateChangedCallback) { mContext = context; mScrimHandler = UiThread.getHandler(); + mShowingStateChangedCallback = showingStateChangedCallback; mScrim = createScrim(context, mScrimHandler); } @@ -154,7 +158,7 @@ public class KeyguardServiceDelegate { public void onServiceConnected(ComponentName name, IBinder service) { if (DEBUG) Log.v(TAG, "*** Keyguard connected (yay!)"); mKeyguardService = new KeyguardServiceWrapper(mContext, - IKeyguardService.Stub.asInterface(service)); + IKeyguardService.Stub.asInterface(service), mShowingStateChangedCallback); if (mKeyguardState.systemIsReady) { // If the system is ready, it means keyguard crashed and restarted. mKeyguardService.onSystemReady(); diff --git a/services/core/java/com/android/server/policy/keyguard/KeyguardServiceWrapper.java b/services/core/java/com/android/server/policy/keyguard/KeyguardServiceWrapper.java index 2169927d89ee..de906e67519e 100644 --- a/services/core/java/com/android/server/policy/keyguard/KeyguardServiceWrapper.java +++ b/services/core/java/com/android/server/policy/keyguard/KeyguardServiceWrapper.java @@ -26,6 +26,7 @@ import com.android.internal.policy.IKeyguardDrawnCallback; import com.android.internal.policy.IKeyguardExitCallback; import com.android.internal.policy.IKeyguardService; import com.android.internal.policy.IKeyguardStateCallback; +import com.android.server.policy.keyguard.KeyguardStateMonitor.OnShowingStateChangedCallback; import java.io.PrintWriter; @@ -39,9 +40,11 @@ public class KeyguardServiceWrapper implements IKeyguardService { private IKeyguardService mService; private String TAG = "KeyguardServiceWrapper"; - public KeyguardServiceWrapper(Context context, IKeyguardService service) { + public KeyguardServiceWrapper(Context context, IKeyguardService service, + OnShowingStateChangedCallback showingStateChangedCallback) { mService = service; - mKeyguardStateMonitor = new KeyguardStateMonitor(context, service); + mKeyguardStateMonitor = new KeyguardStateMonitor(context, service, + showingStateChangedCallback); } @Override // Binder interface diff --git a/services/core/java/com/android/server/policy/keyguard/KeyguardStateMonitor.java b/services/core/java/com/android/server/policy/keyguard/KeyguardStateMonitor.java index 08eaaa908d08..712b625eb59e 100644 --- a/services/core/java/com/android/server/policy/keyguard/KeyguardStateMonitor.java +++ b/services/core/java/com/android/server/policy/keyguard/KeyguardStateMonitor.java @@ -49,10 +49,13 @@ public class KeyguardStateMonitor extends IKeyguardStateCallback.Stub { private int mCurrentUserId; private final LockPatternUtils mLockPatternUtils; + private final OnShowingStateChangedCallback mOnShowingStateChangedCallback; - public KeyguardStateMonitor(Context context, IKeyguardService service) { + public KeyguardStateMonitor(Context context, IKeyguardService service, + OnShowingStateChangedCallback showingStateChangedCallback) { mLockPatternUtils = new LockPatternUtils(context); mCurrentUserId = ActivityManager.getCurrentUser(); + mOnShowingStateChangedCallback = showingStateChangedCallback; try { service.addStateMonitorCallback(this); } catch (RemoteException e) { @@ -83,6 +86,7 @@ public class KeyguardStateMonitor extends IKeyguardStateCallback.Stub { @Override // Binder interface public void onShowingStateChanged(boolean showing) { mIsShowing = showing; + mOnShowingStateChangedCallback.onShowingStateChanged(showing); } @Override // Binder interface @@ -122,4 +126,8 @@ public class KeyguardStateMonitor extends IKeyguardStateCallback.Stub { pw.println(prefix + "mTrusted=" + mTrusted); pw.println(prefix + "mCurrentUserId=" + mCurrentUserId); } + + public interface OnShowingStateChangedCallback { + void onShowingStateChanged(boolean showing); + } } \ No newline at end of file -- GitLab From fd590441c181fccbfeca200161fc7cee03846c8f Mon Sep 17 00:00:00 2001 From: Alex Hills Date: Fri, 7 Oct 2016 09:52:44 -0400 Subject: [PATCH 687/809] Updates documentation for MessagingStyle constructor MessagingStyle expects the field userReplyName to be non-null, but the documentation doesn't describe it as such. This updates the documentation to say the field is required, and adds a NonNull annotation. This has no behavior changes. BUG:31747744 Change-Id: If832d059c276e856fba366dabfa8a5821bb63054 --- core/java/android/app/Notification.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/core/java/android/app/Notification.java b/core/java/android/app/Notification.java index 981a0551fc7e..1103d9e900c1 100644 --- a/core/java/android/app/Notification.java +++ b/core/java/android/app/Notification.java @@ -19,6 +19,7 @@ package android.app; import android.annotation.ColorInt; import android.annotation.DrawableRes; import android.annotation.IntDef; +import android.annotation.NonNull; import android.annotation.SdkConstant; import android.annotation.SdkConstant.SdkConstantType; import android.annotation.SystemApi; @@ -4649,12 +4650,12 @@ public class Notification implements Parcelable } /** - * @param userDisplayName the name to be displayed for any replies sent by the user before the - * posting app reposts the notification with those messages after they've been actually - * sent and in previous messages sent by the user added in + * @param userDisplayName Required - the name to be displayed for any replies sent by the + * user before the posting app reposts the notification with those messages after they've + * been actually sent and in previous messages sent by the user added in * {@link #addMessage(Notification.MessagingStyle.Message)} */ - public MessagingStyle(CharSequence userDisplayName) { + public MessagingStyle(@NonNull CharSequence userDisplayName) { mUserDisplayName = userDisplayName; } -- GitLab From 166b402861eaa85ef308c2c6d867d2a2e9263834 Mon Sep 17 00:00:00 2001 From: Miao Wang Date: Thu, 6 Oct 2016 10:45:42 -0700 Subject: [PATCH 688/809] Correctly pass number of input allocations for BLAS Bug: 31992305 Test: Build and CTS RsBlas test pass on Angler. Change-Id: If49c0be003d9c2a2175924dc3303703b9ab49357 (cherry picked from commit b742fcc808165fbeeb1a48761e7d629f60207de2) --- rs/jni/android_renderscript_RenderScript.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rs/jni/android_renderscript_RenderScript.cpp b/rs/jni/android_renderscript_RenderScript.cpp index aa2a607dc702..37cbd31fdb75 100644 --- a/rs/jni/android_renderscript_RenderScript.cpp +++ b/rs/jni/android_renderscript_RenderScript.cpp @@ -632,7 +632,7 @@ nScriptIntrinsicBLAS_Single(JNIEnv *_env, jobject _this, jlong con, jlong id, ji in_allocs[2] = (RsAllocation)C; rsScriptForEachMulti((RsContext)con, (RsScript)id, 0, - in_allocs, sizeof(in_allocs), nullptr, + in_allocs, NELEM(in_allocs), nullptr, &call, sizeof(call), nullptr, 0); } -- GitLab From e9260ee40e6f10c7a3598f0dbd5916dc1c032b30 Mon Sep 17 00:00:00 2001 From: Jim Miller Date: Thu, 6 Oct 2016 19:11:03 -0700 Subject: [PATCH 689/809] Allow sysui navigation to work when application occludes keyguard Fixes bug 30650150 Change-Id: Ie4a858dcfd259c733cd32c3c2b1dec2ff437f1ab (cherry picked from commit 69c1241d3b4b07621c3ccfa6f58bc6db179739bf) --- .../systemui/statusbar/phone/PhoneStatusBar.java | 5 +++-- .../systemui/statusbar/policy/KeyguardMonitor.java | 10 ++++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java index 04124b5c28ad..1d91346673c3 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -2731,7 +2731,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, public void handleSystemNavigationKey(int key) { if (SPEW) Log.d(TAG, "handleSystemNavigationKey: " + key); if (!panelsEnabled() || !mKeyguardMonitor.isDeviceInteractive() - || mKeyguardMonitor.isShowing()) { + || mKeyguardMonitor.isShowing() && !mKeyguardMonitor.isOccluded()) { return; } @@ -4351,7 +4351,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, checkBarModes(); updateMediaMetaData(false, mState != StatusBarState.KEYGUARD); mKeyguardMonitor.notifyKeyguardState(mStatusBarKeyguardViewManager.isShowing(), - mStatusBarKeyguardViewManager.isSecure()); + mStatusBarKeyguardViewManager.isSecure(), + mStatusBarKeyguardViewManager.isOccluded()); Trace.endSection(); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitor.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitor.java index c175180bc997..44816f92b222 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitor.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/KeyguardMonitor.java @@ -38,6 +38,7 @@ public final class KeyguardMonitor extends KeyguardUpdateMonitorCallback { private int mCurrentUser; private boolean mShowing; private boolean mSecure; + private boolean mOccluded; private boolean mCanSkipBouncer; private boolean mListening; @@ -81,6 +82,10 @@ public final class KeyguardMonitor extends KeyguardUpdateMonitorCallback { return mSecure; } + public boolean isOccluded() { + return mOccluded; + } + public boolean canSkipBouncer() { return mCanSkipBouncer; } @@ -99,10 +104,11 @@ public final class KeyguardMonitor extends KeyguardUpdateMonitorCallback { } } - public void notifyKeyguardState(boolean showing, boolean secure) { - if (mShowing == showing && mSecure == secure) return; + public void notifyKeyguardState(boolean showing, boolean secure, boolean occluded) { + if (mShowing == showing && mSecure == secure && mOccluded == occluded) return; mShowing = showing; mSecure = secure; + mOccluded = occluded; notifyKeyguardChanged(); } -- GitLab From 0d2a46b7336b6d255f202b878003be59ecbae52b Mon Sep 17 00:00:00 2001 From: Alan Viverette Date: Fri, 7 Oct 2016 16:23:32 -0400 Subject: [PATCH 690/809] Scale bitmap shaders for target density Also fixes progress bar sample tile to reflect density and ensures that ProgressBar.tileify() clones inner drawables into the correct density. Bug: 31841123 Test: BitmapDrawableTest#testPreloadDensity() Test: ThemeHostTest Test: Visual inspection of ApiDemos Change-Id: I9dcb9817d8d91d61ff0215987247e9e7fb089c46 --- core/java/android/widget/ProgressBar.java | 16 ++-- core/java/android/widget/RatingBar.java | 6 +- .../graphics/drawable/BitmapDrawable.java | 82 +++++++++++-------- 3 files changed, 59 insertions(+), 45 deletions(-) diff --git a/core/java/android/widget/ProgressBar.java b/core/java/android/widget/ProgressBar.java index 3c967acdfc55..1f379c94cc03 100644 --- a/core/java/android/widget/ProgressBar.java +++ b/core/java/android/widget/ProgressBar.java @@ -22,6 +22,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.content.Context; import android.content.res.ColorStateList; +import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.Bitmap; import android.graphics.Canvas; @@ -230,7 +231,7 @@ public class ProgressBar extends View { private Drawable mCurrentDrawable; private ProgressTintInfo mProgressTintInfo; - Bitmap mSampleTile; + int mSampleWidth = 0; private boolean mNoInvalidate; private Interpolator mInterpolator; private RefreshProgressRunnable mRefreshProgressRunnable; @@ -505,15 +506,14 @@ public class ProgressBar extends View { } if (drawable instanceof BitmapDrawable) { - final BitmapDrawable bitmap = (BitmapDrawable) drawable; - final Bitmap tileBitmap = bitmap.getBitmap(); - if (mSampleTile == null) { - mSampleTile = tileBitmap; - } - - final BitmapDrawable clone = (BitmapDrawable) bitmap.getConstantState().newDrawable(); + final Drawable.ConstantState cs = drawable.getConstantState(); + final BitmapDrawable clone = (BitmapDrawable) cs.newDrawable(getResources()); clone.setTileModeXY(Shader.TileMode.REPEAT, Shader.TileMode.CLAMP); + if (mSampleWidth <= 0) { + mSampleWidth = clone.getIntrinsicWidth(); + } + if (clip) { return new ClipDrawable(clone, Gravity.LEFT, ClipDrawable.HORIZONTAL); } else { diff --git a/core/java/android/widget/RatingBar.java b/core/java/android/widget/RatingBar.java index 3ad05b5e7c01..62dd90fddcd0 100644 --- a/core/java/android/widget/RatingBar.java +++ b/core/java/android/widget/RatingBar.java @@ -281,10 +281,8 @@ public class RatingBar extends AbsSeekBar { protected synchronized void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); - if (mSampleTile != null) { - // TODO: Once ProgressBar's TODOs are gone, this can be done more - // cleanly than mSampleTile - final int width = mSampleTile.getWidth() * mNumStars; + if (mSampleWidth > 0) { + final int width = mSampleWidth * mNumStars; setMeasuredDimension(resolveSizeAndState(width, widthMeasureSpec, 0), getMeasuredHeight()); } diff --git a/graphics/java/android/graphics/drawable/BitmapDrawable.java b/graphics/java/android/graphics/drawable/BitmapDrawable.java index 9d8ede048924..df107f5ce3ef 100644 --- a/graphics/java/android/graphics/drawable/BitmapDrawable.java +++ b/graphics/java/android/graphics/drawable/BitmapDrawable.java @@ -463,31 +463,14 @@ public class BitmapDrawable extends Drawable { return isAutoMirrored() && getLayoutDirection() == LayoutDirection.RTL; } - private void updateMirrorMatrix(float dx) { - if (mMirrorMatrix == null) { - mMirrorMatrix = new Matrix(); - } - mMirrorMatrix.setTranslate(dx, 0); - mMirrorMatrix.preScale(-1.0f, 1.0f); - } - @Override protected void onBoundsChange(Rect bounds) { mDstRectAndInsetsDirty = true; + final Bitmap bitmap = mBitmapState.mBitmap; final Shader shader = mBitmapState.mPaint.getShader(); - if (shader != null) { - if (needMirroring()) { - updateMirrorMatrix(bounds.right - bounds.left); - shader.setLocalMatrix(mMirrorMatrix); - mBitmapState.mPaint.setShader(shader); - } else { - if (mMirrorMatrix != null) { - mMirrorMatrix = null; - shader.setLocalMatrix(Matrix.IDENTITY_MATRIX); - mBitmapState.mPaint.setShader(shader); - } - } + if (bitmap != null && shader != null) { + updateShaderMatrix(bitmap, mBitmapState.mPaint, shader, needMirroring()); } } @@ -548,19 +531,7 @@ public class BitmapDrawable extends Drawable { canvas.restore(); } } else { - if (needMirroring) { - // Mirror the bitmap - updateMirrorMatrix(mDstRect.right - mDstRect.left); - shader.setLocalMatrix(mMirrorMatrix); - paint.setShader(shader); - } else { - if (mMirrorMatrix != null) { - mMirrorMatrix = null; - shader.setLocalMatrix(Matrix.IDENTITY_MATRIX); - paint.setShader(shader); - } - } - + updateShaderMatrix(bitmap, paint, shader, needMirroring); canvas.drawRect(mDstRect, paint); } @@ -573,6 +544,51 @@ public class BitmapDrawable extends Drawable { } } + /** + * Updates the {@code paint}'s shader matrix to be consistent with the + * destination size and layout direction. + * + * @param bitmap the bitmap to be drawn + * @param paint the paint used to draw the bitmap + * @param shader the shader to set on the paint + * @param needMirroring whether the bitmap should be mirrored + */ + private void updateShaderMatrix(@NonNull Bitmap bitmap, @NonNull Paint paint, + @NonNull Shader shader, boolean needMirroring) { + final int sourceDensity = bitmap.getDensity(); + final int targetDensity = mTargetDensity; + final boolean needScaling = sourceDensity != 0 && sourceDensity != targetDensity; + if (needScaling || needMirroring) { + final Matrix matrix = getOrCreateMirrorMatrix(); + matrix.reset(); + + if (needMirroring) { + final int dx = mDstRect.right - mDstRect.left; + matrix.setTranslate(dx, 0); + matrix.setScale(-1, 1); + } + + if (needScaling) { + final float densityScale = targetDensity / (float) sourceDensity; + matrix.postScale(densityScale, densityScale); + } + + shader.setLocalMatrix(matrix); + } else { + mMirrorMatrix = null; + shader.setLocalMatrix(Matrix.IDENTITY_MATRIX); + } + + paint.setShader(shader); + } + + private Matrix getOrCreateMirrorMatrix() { + if (mMirrorMatrix == null) { + mMirrorMatrix = new Matrix(); + } + return mMirrorMatrix; + } + private void updateDstRectAndInsetsIfDirty() { if (mDstRectAndInsetsDirty) { if (mBitmapState.mTileModeX == null && mBitmapState.mTileModeY == null) { -- GitLab From d366709268112404b2621eb1d91464dc78bc3eef Mon Sep 17 00:00:00 2001 From: Joe Fernandez Date: Fri, 7 Oct 2016 14:11:49 -0700 Subject: [PATCH 691/809] docs: add collections for Distribute Stories, Games and Apps b/31741249 Change-Id: I873ce82f18c5edbdeb85fb2fdb25ba322760a2dc --- docs/html/jd_extras_en.js | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/docs/html/jd_extras_en.js b/docs/html/jd_extras_en.js index f76cf363f08b..bb797b2ab1d1 100644 --- a/docs/html/jd_extras_en.js +++ b/docs/html/jd_extras_en.js @@ -5376,6 +5376,39 @@ METADATA['en'].collections = { "https://storage.googleapis.com/androiddevelopers/shareables/stories/Senri_LeosFortune_gpgs.pdf" ] }, + "distribute/stories/games/docs": { + "title": "", + "resources": [ + "distribute/stories/games/upbeat-games.html", + "distribute/stories/games/tapps.html", + "distribute/stories/games/noodlecake-super-stickman.html", + "distribute/stories/games/glu-tap-baseball.html", + "distribute/stories/games/doctor-who-legacy.html", + "distribute/stories/games/glu-dh.html", + "distribute/stories/games/dots.html", + "distribute/stories/games/kongregate-adv-cap.html", + "distribute/stories/games/kongregate-global-assault.html", + "distribute/stories/games/leos-fortune.html", + "distribute/stories/games/tiny-co.html", + "distribute/stories/games/g4a-indian-rummy.html", + "distribute/stories/games/rvappstudios-zombie.html", + "distribute/stories/games/glu-eternity-warriors.html", + "distribute/stories/games/hotheadgames-firefight.html", + "distribute/stories/games/concrete-bowling.html", + "distribute/stories/games/gameloft-asphalt8.html" + ] + }, + "distribute/stories/apps/docs": { + "title": "", + "resources": [ + "distribute/stories/apps/aftenposten.html", + "distribute/stories/apps/el-mundo.html", + "distribute/stories/apps/segundamano.html", + "distribute/stories/apps/remember-the-milk.html", + "distribute/stories/apps/intuit-mint.html", + "distribute/stories/apps/sayhi.html", + ] + }, "training/testing/overview": { "title": "", "resources": [ -- GitLab From d3c3c341349b92285e3caf9b18527f80ca7d9cf0 Mon Sep 17 00:00:00 2001 From: Kevin Hufnagle Date: Thu, 8 Sep 2016 21:22:37 -0700 Subject: [PATCH 692/809] docs: Revised Espresso code snippets The code snippet showing how to migrate subclasses of ActivityInstrumentationTestCase2 to Espresso didn't compile. These changes allow it to run successfully. Also removed obsolete section describing using Espresso with ActivityInstrumentationTestCase2. Bug: 27453733 Change-Id: Ib7c7e85d3299337f14be1482f7eb574c9a30dc22 -- GitLab From 679fe6ab6f4b9252ef414a0c0c5ad9633f3d0294 Mon Sep 17 00:00:00 2001 From: Doris Liu Date: Fri, 7 Oct 2016 11:09:21 -0700 Subject: [PATCH 693/809] Support calling start() in onAnimationFinished(...) in AVD This CL fixed an issue where calling start() from onAnimationFinished() caused AnimationListenerBridge::onAnimationFinished(...) to be unsafely re-entered and the new start listener was (incorrectly) reset to null. BUG: 31971397 Test: test apk in the bug linked above Change-Id: Ica809ef2dab884950b93b54f2d0cb4b81e9830f1 --- libs/hwui/PropertyValuesAnimatorSet.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/libs/hwui/PropertyValuesAnimatorSet.cpp b/libs/hwui/PropertyValuesAnimatorSet.cpp index 38fb70a92e43..e3258e3c1a48 100644 --- a/libs/hwui/PropertyValuesAnimatorSet.cpp +++ b/libs/hwui/PropertyValuesAnimatorSet.cpp @@ -46,8 +46,17 @@ PropertyValuesAnimatorSet::PropertyValuesAnimatorSet() void PropertyValuesAnimatorSet::onFinished(BaseRenderNodeAnimator* animator) { if (mOneShotListener.get()) { - mOneShotListener->onAnimationFinished(animator); + sp listener = std::move(mOneShotListener); + // Set the listener to nullptr before the onAnimationFinished callback, rather than after, + // for two reasons: + // 1) We need to prevent changes to mOneShotListener during the onAnimationFinished + // callback (specifically in AnimationListenerBridge::onAnimationFinished(...) from + // triggering dtor of the bridge and potentially unsafely re-entering + // AnimationListenerBridge::onAnimationFinished(...). + // 2) It's possible that there are changes to the listener during the callback, therefore + // we need to reset the listener before the callback rather than afterwards. mOneShotListener = nullptr; + listener->onAnimationFinished(animator); } } -- GitLab From fe427f24e5788612bc271bfff1b07b36ecebf3af Mon Sep 17 00:00:00 2001 From: Lifu Tang Date: Sat, 8 Oct 2016 02:57:53 -0700 Subject: [PATCH 694/809] Fixed the memory leak when receiving Nav messages Bug: 32038182 Change-Id: Ie659dc945d6efc7feaf9285d3e7375c90cba7234 --- .../jni/com_android_server_location_GnssLocationProvider.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/services/core/jni/com_android_server_location_GnssLocationProvider.cpp b/services/core/jni/com_android_server_location_GnssLocationProvider.cpp index e8d4c58213cc..25e819c2c1dc 100644 --- a/services/core/jni/com_android_server_location_GnssLocationProvider.cpp +++ b/services/core/jni/com_android_server_location_GnssLocationProvider.cpp @@ -1087,6 +1087,7 @@ void JavaObject::callSetter( method_name, "([B)V"); env_->CallVoidMethod(object_, method, array); + env_->DeleteLocalRef(array); } jobject JavaObject::get() { -- GitLab From 5f2ca6b1a1f739583e4ea9f3d3dfd22931d793e0 Mon Sep 17 00:00:00 2001 From: Selim Cinek Date: Fri, 7 Oct 2016 14:45:55 -0400 Subject: [PATCH 695/809] Fixed a bug where the header would flicker weirdly when replying Also fixed a bug where the header could stay on the lockscreen. Change-Id: Icad3d0db7b95745bd640b20750b9f0eba383d798 Fixes: 31469380 --- .../SystemUI/src/com/android/systemui/qs/QSContainer.java | 5 +++++ .../systemui/statusbar/phone/NotificationPanelView.java | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSContainer.java b/packages/SystemUI/src/com/android/systemui/qs/QSContainer.java index 19a5d522f530..2b28fe65b22c 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSContainer.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSContainer.java @@ -320,4 +320,9 @@ public class QSContainer extends FrameLayout { public int getQsMinExpansionHeight() { return mHeader.getHeight(); } + + public void hideImmediately() { + animate().cancel(); + setY(-mHeader.getHeight()); + } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java index 1cf7a23e6b40..ede6fd08dd26 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java @@ -1002,8 +1002,8 @@ public class NotificationPanelView extends PanelView implements mKeyguardShowing = keyguardShowing; mQsContainer.setKeyguardShowing(mKeyguardShowing); - if (goingToFullShade || (oldState == StatusBarState.KEYGUARD - && statusBarState == StatusBarState.SHADE_LOCKED)) { + if (oldState == StatusBarState.KEYGUARD + && (goingToFullShade || statusBarState == StatusBarState.SHADE_LOCKED)) { animateKeyguardStatusBarOut(); long delay = mStatusBarState == StatusBarState.SHADE_LOCKED ? 0 : mStatusBar.calculateGoingToFullShadeDelay(); @@ -1017,6 +1017,7 @@ public class NotificationPanelView extends PanelView implements mKeyguardStatusBar.setVisibility(keyguardShowing ? View.VISIBLE : View.INVISIBLE); if (keyguardShowing && oldState != mStatusBarState) { mKeyguardBottomArea.onKeyguardShowingChanged(); + mQsContainer.hideImmediately(); } } if (keyguardShowing) { -- GitLab From 23c4362dac6bd09ae933516f2b8e3b78d9e84c20 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Mon, 10 Oct 2016 11:30:39 -0700 Subject: [PATCH 696/809] Import translations. DO NOT MERGE Change-Id: I00d5ccf364c1b124e586148a139779a94cfafbf4 Auto-generated-cl: translation import --- packages/SettingsLib/res/values-da/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/SettingsLib/res/values-da/strings.xml b/packages/SettingsLib/res/values-da/strings.xml index ee8cff3a55b3..ba6928be314d 100644 --- a/packages/SettingsLib/res/values-da/strings.xml +++ b/packages/SettingsLib/res/values-da/strings.xml @@ -152,7 +152,7 @@ "Tilbagekald tilladelser for USB-fejlfinding" "Genvej til fejlrapporting" "Vis en knap til oprettelse af fejlrapporter i menu for slukknap" - "Undgå dvale" + "Lås ikke" "Skærmen går ikke i dvale under opladning" "Aktivér Bluetooth HCI snoop log" "Gem alle Bluetooth HCI-pakker i en fil" -- GitLab From 5bb5626599c936fdbea9f0fea30505924d784c73 Mon Sep 17 00:00:00 2001 From: sergeyv Date: Mon, 10 Oct 2016 12:25:06 -0700 Subject: [PATCH 697/809] Turn off additional logging in text rendering Change-Id: If5f11489c05e320e4436fb57680857b29228a755 b:30427106 --- libs/hwui/Android.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/hwui/Android.mk b/libs/hwui/Android.mk index 74b474eef371..cacfce16ab9a 100644 --- a/libs/hwui/Android.mk +++ b/libs/hwui/Android.mk @@ -3,7 +3,7 @@ include $(CLEAR_VARS) LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk HWUI_NEW_OPS := true -BUGREPORT_FONT_CACHE_USAGE := true +BUGREPORT_FONT_CACHE_USAGE := false # Enables fine-grained GLES error checking # If set to true, every GLES call is wrapped & error checked -- GitLab From 1791f50134b70606eb9ea84dbbae3457dbff70db Mon Sep 17 00:00:00 2001 From: Selim Cinek Date: Fri, 7 Oct 2016 17:38:03 -0400 Subject: [PATCH 698/809] Fixed an issue where HUNS could have a background Change-Id: I0537583321eed58461578259d038038a592889b6 Fixes: 32014780 --- .../systemui/statusbar/stack/NotificationStackScrollLayout.java | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java index 90e12ec3fabd..bc89db221511 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java @@ -2002,6 +2002,7 @@ public class NotificationStackScrollLayout extends ViewGroup if (!mIsExpanded) { mBackgroundBounds.top = 0; mBackgroundBounds.bottom = 0; + return; } ActivatableNotificationView firstView = mFirstVisibleBackgroundChild; int top = 0; -- GitLab From 3e01ab2b0e1566cf03ab9ca69f5023857df34bca Mon Sep 17 00:00:00 2001 From: Bert McMeen Date: Mon, 10 Oct 2016 14:21:00 -0700 Subject: [PATCH 699/809] Docs: Remove a reference to a deprecated sample Bug: 31709180 Change-Id: Ieec19820b1154628236495541a28b50089c4e0cd --- .../training/wearables/data-layer/messages.jd | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/docs/html/training/wearables/data-layer/messages.jd b/docs/html/training/wearables/data-layer/messages.jd index ef9bfb176a5b..8c4b730c97cd 100644 --- a/docs/html/training/wearables/data-layer/messages.jd +++ b/docs/html/training/wearables/data-layer/messages.jd @@ -10,12 +10,6 @@ page.title=Sending and Receiving Messages
          4. Send a Message
          5. Receive a Message
          -

          Try it out

          -
        @@ -27,6 +21,7 @@ and attach the following items to the message:

      3. An arbitrary payload (optional)
      4. A path that uniquely identifies the message's action
      5. +

        Unlike with data items, there is no syncing between the handheld and wearable apps. Messages are a one-way communication mechanism that's good for remote procedure calls (RPC), @@ -149,11 +144,9 @@ If you create a service that extends WearableListenerService to detect capability changes, you may want to override the onConnectedNodes() -method to listen to finer-grained connectivity details, such as when a wearable device switches -from Wi-Fi to a Bluetooth connection to the handset. For an example implementation, see the -DisconnectListenerService class in the -FindMyPhone -sample. For more information on how to listen for important events, see +method to listen to finer-grained connectivity details, such as when a wearable +device switches from Wi-Fi to a Bluetooth connection to the handset. +For more information on how to listen for important events, see Listen for Data Layer Events.

        -- GitLab From 42a4aaab44de53ff692277d0fff74120c23724b8 Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Mon, 10 Oct 2016 15:26:14 -0600 Subject: [PATCH 700/809] Set MIME type when building BROWSE intents. If we created a BROWSE PendingIntent early during boot (while the device was still locked), we would resolve the MIME type as "null" meaning the intent would fail to launch. Since we always know what the MIME type will be, set it explicitly. Test: boot device while USB device attached Bug: 30742481 Change-Id: I23c523cbe2660ca63a3b7df1f41300ab803b314c --- core/java/android/os/storage/VolumeInfo.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/java/android/os/storage/VolumeInfo.java b/core/java/android/os/storage/VolumeInfo.java index 5a9848238382..19210b5291e5 100644 --- a/core/java/android/os/storage/VolumeInfo.java +++ b/core/java/android/os/storage/VolumeInfo.java @@ -437,7 +437,7 @@ public class VolumeInfo implements Parcelable { final Intent intent = new Intent(DocumentsContract.ACTION_BROWSE); intent.addCategory(Intent.CATEGORY_DEFAULT); - intent.setData(uri); + intent.setDataAndType(uri, DocumentsContract.Root.MIME_TYPE_ITEM); // note that docsui treats this as *force* show advanced. So sending // false permits advanced to be shown based on user preferences. -- GitLab From 26ab4135abf79523e22c98056adce3b3a82b087c Mon Sep 17 00:00:00 2001 From: George French Date: Thu, 6 Oct 2016 15:04:33 -0700 Subject: [PATCH 701/809] Docs: Developer written case studies batch 3 (proj 31) bug: b/31739418 Change-Id: Iec92348aca9c4753a7a54b48c75d80dd5062dff0 --- .../stories/apps/drupe-communications.jd | 98 +++++++++++++++ .../distribute/stories/apps/noom-health.jd | 115 ++++++++++++++++++ .../stories/games/playlab-puzzles.jd | 87 +++++++++++++ .../images/cards/distribute/stories/drupe.jpg | Bin 0 -> 5445 bytes .../images/cards/distribute/stories/noom.jpg | Bin 0 -> 7212 bytes .../cards/distribute/stories/playlab.jpg | Bin 0 -> 6065 bytes .../images/distribute/stories/drupe-icon.png | Bin 0 -> 10587 bytes .../distribute/stories/drupe-screenshot.png | Bin 0 -> 80525 bytes .../images/distribute/stories/noom-icon.png | Bin 0 -> 6530 bytes .../distribute/stories/noom-screenshot.png | Bin 0 -> 287413 bytes .../distribute/stories/playlab-icon.png | Bin 0 -> 4034 bytes .../distribute/stories/playlab-screenshot.png | Bin 0 -> 465397 bytes 12 files changed, 300 insertions(+) create mode 100644 docs/html/distribute/stories/apps/drupe-communications.jd create mode 100644 docs/html/distribute/stories/apps/noom-health.jd create mode 100644 docs/html/distribute/stories/games/playlab-puzzles.jd create mode 100644 docs/html/images/cards/distribute/stories/drupe.jpg create mode 100644 docs/html/images/cards/distribute/stories/noom.jpg create mode 100644 docs/html/images/cards/distribute/stories/playlab.jpg create mode 100644 docs/html/images/distribute/stories/drupe-icon.png create mode 100644 docs/html/images/distribute/stories/drupe-screenshot.png create mode 100644 docs/html/images/distribute/stories/noom-icon.png create mode 100644 docs/html/images/distribute/stories/noom-screenshot.png create mode 100644 docs/html/images/distribute/stories/playlab-icon.png create mode 100644 docs/html/images/distribute/stories/playlab-screenshot.png diff --git a/docs/html/distribute/stories/apps/drupe-communications.jd b/docs/html/distribute/stories/apps/drupe-communications.jd new file mode 100644 index 000000000000..4284077376aa --- /dev/null +++ b/docs/html/distribute/stories/apps/drupe-communications.jd @@ -0,0 +1,98 @@ +page.title=drupe Launches Android First and Finds Global Success with Beta Testing +page.metaDescription=Drupe uses beta testing to increase its global reach. +page.tags="developerstory", "apps", "googleplay" +page.image=images/cards/distribute/stories/drupe.jpg +page.timestamp=1468901832 + +@jd:body + +
        + +
        + +

        + Background +

        + +

        + In 2015, + drupe mobile, founded by Assaf Ziv and Barak Witkowski, launched the + drupe app + on Android first. With a unique, people-first approach, their communications + app is focused on reinventing the way people use their phone to do basic + actions. By constantly improving and expanding their cross-app + functionality, the app is used globally and was recently awarded Google + Play’s Editor’s Choice recognition. +

        + +

        + What they did +

        + +
        +
        Android openness
        +
        From the start, drupe knew Android was their ideal mobile platform. + "Thanks to the openness of the system, we can build a truly native + experience on Android. The real way to supply a people-centric experience + requires such an openness, not always existing on other platforms," + said Barak Witkowski, co-founder and CEO of drupe. Key to their innovative + approach, drupe uses the current context of the user to show them the + right contacts and actions to optimize the drupe experience.
        + +
        + +
        + +
        Beta testing
        +
        They have a large community of 20,000 druper beta users on + Android, which has been critical to their success. To minimize risk and seek + feedback from valued users, the team built beta testing into their regular + development process. By having a dialogue with users worldwide, they are able + to gauge interest in new app versions, collect feature requests, and more. + This has helped the team achieve a 99.7% crash-free user ratio, as well + as verify new versions in real-life scenarios, on various devices, before + full launch.
        + +
        Going global
        +
        With initial focus on building a high quality app, drupe then set out + to take advantage of Android’s global scale. Key to their international + growth, the app is now translated in 17 languages, and the store listing + page is available in 28 languages. This led to an increase in conversion + and retention rates. Additionally, when entering India, the team noticed + several user reviews requesting integration with a specific messaging app + widely used in the Indian market. Through a combination of this integration, + adding Hindi language translation, and other new features, drupe saw improved + performance. In six months, daily active users increased 300%, and + actions per average daily user increased 25% in the Indian + market.
        +
        + +

        + Results +

        + +

        + Drupe’s focus on innovation and building a truly contextual and intuitive + app proved to be a model of success for attaining growth in both engagement + and new global reach. The team has continued to increase its relevance + through feedback loops and feature adoptions. This has led to 700% + growth in daily active users, and 550% growth in number of interactions + triggered via drupe in the past six months. The team is focused on + enhancing their recommendation engine to add even more contextual abilities + for their users while continuing to grow a successful business on Google + Play. +

        + +

        + Get started +

        + +

        + Learn more about + beta testing + and find out how to + + localize your app to create a high-quality experience for global users. +

        \ No newline at end of file diff --git a/docs/html/distribute/stories/apps/noom-health.jd b/docs/html/distribute/stories/apps/noom-health.jd new file mode 100644 index 000000000000..c99eface8ae9 --- /dev/null +++ b/docs/html/distribute/stories/apps/noom-health.jd @@ -0,0 +1,115 @@ +page.title=Noom Grows International Revenue by 80% Through Localization on Google Play +page.metaDescription=Noom increases revenue by localizing their app. +page.tags="developerstory", "apps", "googleplay" +page.image=images/cards/distribute/stories/noom.jpg +page.timestamp=1468901832 + +@jd:body + +
        + +
        + +

        + Background +

        + +

        + With a mission to help people live healthier lives, + Noom guides + their users through behavior change programs to create lifestyle habits and + target global health challenges. Available initially on Google Play, + Android first and Noom have achieved success expanding to international + markets, taking advantage of the broad reach of Android. +

        + +

        + What they did +

        + +

        + Launching first in the US, Noom created a series of programs tailored to + their users’ specific + health goals. Key to their approach is offering a holistic solution, + including simple personalized tasks, progress tracking, meal feedback, and + support from both personal coaches and peers. The team has a strategic + approach to expanding their user base globally. Noom localized their app to + better connect with users in the following areas: +

        + +
          +
        • Localized product +
            +
          • In addition to translating their app to five languages and their store + listing page to 11 languages, Noom conducted extensive analysis to + determine the right financial model tailored to each international + market. This included evaluation of their competitive landscape and + local health and wellness spending behavior, in addition to running + pricing experiments to determine the optimal offering between + subscriptions, IAPs, or a premium app.
          • +
          +
        • + +
        • Localized cuisines +
            +
          • When Noom started researching the Korean, Japanese, German, and Latin + American markets, they immediately focused on localizing their food + database. Using a combination of local food editors, existing food + databases, and user suggestions, their app now includes local cuisine + and popular packaged food brands, offering a simpler and more + comprehensive experience for users.
          • +
          +
        • + +
        • Localized coaches +
            +
          • Hiring local coaches not only removed language barriers, but also + reduced response times as they are located within the same time zone + as their users. Using various notification types, Noom has increased + user engagement by three to four times.
          • +
          +
        • +
        + + +

        + Figure 1. German Play Store listing page, Korean recipes, + and Japanese meal plan +

        + +

        + Results +

        + +

        + "Android's global focus and great localization tooling made the decision + to go global much easier. Localization to new markets has been a consistent + growth driver at Noom," said Artem Petakov, co-founder and President + at Noom. +

        + +

        + Over the last three years, Noom’s localization efforts led to an 80% + increase in international revenue growth on Android. In Japan + alone, revenue increased more than 480% during the same + time period. To identify future expansion opportunities, the team looks + towards countries with strong Android penetration and install growth + using the English product and plans to apply their localization methods to + achieve even greater success. +

        + +

        + Get started +

        + +

        + Learn more about Notifications, + and find out about + + app localization and how to + + Expand Into New Markets. +

        \ No newline at end of file diff --git a/docs/html/distribute/stories/games/playlab-puzzles.jd b/docs/html/distribute/stories/games/playlab-puzzles.jd new file mode 100644 index 000000000000..ef1ccff9b035 --- /dev/null +++ b/docs/html/distribute/stories/games/playlab-puzzles.jd @@ -0,0 +1,87 @@ +page.title=Playlab Increases Juice Cubes Conversions by 25% with Store Listing Experiments +page.metaDescription=Playlab uses store listing experiments to refresh their Juice Cubes icon. +page.tags="developerstory", "apps", "googleplay" +page.image=images/cards/distribute/stories/playlab.jpg +page.timestamp=1468901832 + +@jd:body + +
        + +
        + +

        + Background +

        + +

        + + Playlab is a game developer and publisher based in Hong Kong, with + production studios in Bangkok and Manila. Playlab apps include + + Juice Cubes, + Jungle Cubes, and + Ranch Run. + + Released in 2013, + Juice Cubes is a strategy puzzle game with over 25 million downloads + worldwide and over 100,000 five-star reviews on Google Play. The game has + gained success in Southeast Asian markets such as Indonesia and Thailand, + and in Western markets such as the US, Australia, the UK, and Canada. +

        + +

        + What they did +

        + +

        + As part of Juice Cubes’ content update in April 2016, Playlab decided to + refresh its Play Store icon and test whether different icons could increase + their conversion rate. +

        + +

        + Playlab used the Store Listing Experiments feature on the Google + Play Developer Console to test three variations of their new game icon. +

        + +

        + Results +

        + +

        + Within three days of running the store listing experiment, Playlab saw + positive results which led them to make an informed decision to change the + current icon to the best-performing version. Variant C outperformed the + initial control icon and the two other variants, with a 25% increase + in installs. One month after applying the best-performing icon, + Juice Cubes continued to see a 25% increase in the number of conversions + from store visitors who made organic installs. +

        + + + +

        + "Google Play Store Listing Experiments offer a fast, easy, and free way + to do A/B testing on an icon. The data provided after each test helped us + to make a decision really quickly. The best part is the team no longer needs + so many resources to decide which icon to use because we can let the + users decide." said Jakob Lykkegaard, CEO and co-founder of Playlab. +

        + +

        + Get started +

        + +

        + Learn how to use + A/B testing and find out more about how to run + + store listing experiments on Google Play. +

        \ No newline at end of file diff --git a/docs/html/images/cards/distribute/stories/drupe.jpg b/docs/html/images/cards/distribute/stories/drupe.jpg new file mode 100644 index 0000000000000000000000000000000000000000..52956956744c4da0bb3feddf08b91d5604f94bf0 GIT binary patch literal 5445 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�@@cn-{xL2OQ}OSph9*W>Rt6&8H5sj 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 L`TuYr(!{?3UOsmb literal 0 HcmV?d00001 diff --git a/docs/html/images/distribute/stories/drupe-icon.png b/docs/html/images/distribute/stories/drupe-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1b75ccae83189d984e8e049709676a46143fbfe5 GIT binary patch literal 10587 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 literal 0 HcmV?d00001 diff --git a/docs/html/images/distribute/stories/drupe-screenshot.png b/docs/html/images/distribute/stories/drupe-screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..6fd4445348e8f60af4141155a56246e0aa82fb61 GIT binary patch literal 80525 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ðPO!9G|XtxS`(;wU1 z%JjK-mBv-TxrXU#+5XUVp03>7^qTU|um1$x z+)UZ;VtB`UkBBfF4zZ?SclRMXJ3E8vbo$@c-v8bI>Yx3y@nf4F(*lM5@qhe}gT1q7 zzq0di_dol=8$U49*_5ZRJF8+x z%Uropl@??ndjMoLt2jA1p{|mS5eHawp^>>9oUxcC>^Z049WdL?hXq+IEy(b_XxtP@ zyOeYFL3rkxhLg#ZrmhhqG-QC5SZ~~q7GtnB$fa2~7l78zSf61n^zYP^$>5L3_2lIN zszEmx4u?#qQ?|FaSzBAXG#ZWm?&YHRQ{YEWQp*CM{ne{a?ccli_ul{D=9L>a-eYTH zla2Ka>UuUOW-Mu@YEM1xVK2*)rq39I5reB8jq`{Rio#+nJ%ezj(R z_Q@u$1Yea*)X{t)0Y(f(Sq4gHEoq_U-I$w>xwOvY1`IplfNB{ zeie#XLpdm!&1UTF?Xxys{rqTU__?or?Q3uS_HX}oj*6ve0nn3LU)EqzHVdQDqoxo5?Y(C*t*EMo;b4F@MZ2Szv*iAped`C>2>|H} z6M=Jbe9X?y0}hXlTFNzV@|xck@7YeX)NK$cg6Wj9R&+AmBxildTAh597Pv#II{`R< z*BAo|-gSd75$t(ioOfug6xLGMA_A)20(xXRRcT*FyXVH`G)~->+m@YxJeMhnQL#Tp zEQoM;c)-!t=C#pu^u_b%&;J4N*e&v&4E^u^kAJsuaCGq5-QB%ww{P8MWo3oYXhiE` zMa$^t07MdsXhqqSe0tW;+Zx>g=fjrlN>MT_3WP9OY3no}fKCqUSZ~`F&3*_h-FX+S zF&)UDKPmIyFOyGuNxSb)qsB`YM5M+^pDDdAoVC&n7L~YfI8az*@_6I%PVY4y#%Ha?>==JV|?cfIjoWnM=Dn zJFncke|Ka5V2_ox6^f$3ow8vPTYc&h)ohzPu*Xg|*7)3rP?namG!z4av2^)bMNBi` zCRVHM!0TKi6!38ojz(kF*47ye$}p}*T1$aMAA>~AMKUU#{>wo{Ca$3U{HK6A|GaEb z&2tMef|v}n$O6#wvh#&yL@3IFqAYsiKwl8cD_a7zmTJyt&P9m+cZ->p2ro&h%0#$! zL7~xr5X*~m^?>)D(vtydZF&qv7!8zYGFYj>9 z_1gi?m5!WZXNpgJuW?OO1WL3hsPR;Fg>$Z}tIgg~>u%k5!xkigTqRUgg~4#hg^L#% zjYm{f-N~@6JSfq>gjS|*+uO5IcO4FYccNC;=e~^ZHBr$;Hr*S$tlT80H+4;2*KHfy zo@PXE{<9IG7?gn0_`cimBJh@Q*p%jEUF|*ZOnNy!mx6eqqdf^csSx3x1eBP?1cia= zbV^mt&ewJQvETTO-&pyr-}t#ZYh;KQ$gr<>69Ok?@2Q*{gI;#kB^y7COxxPZ*d88)FWAS zB)ad?dvkG~PDybK`!o@xuc_qaKcdin#&)i{zmt+4ANo$5s;ZjVY_>T)nLayS9d80p z2I#MS?Q7;A{{4S=?(pbn?da%;vMd+3Smzr#-_Tx8Wu7Q46r({j(C7-O>U%^|m%fw( zDgO4|J3Xoq+n^o_YmuVp z9hWdhaL#dZd_rB-A+vO2)Gx53q-|XhlnENADS~s&o}-?j?C{9v&5pI^@_oP0{d(rh z?LH(X(}^10I0U&q)?@;=XaC_}HkNfMPc5LYUAtDCoSck~kB&;$G}xku6eA5l z$4c8y$r1}d_D0^B1#ssbp<6gh7fYJEd9cls&Slgu|68-x_Jef?^Pj693EucrEksKWznaN}#&N~Kn*nz93oF!JX z*kRQr6fHG717+Ud91IJCl<5kcyqlBa@S&s5xeA??KTq-7egWu0y}j1V0lC-SY*FeQ zIOku^sd=jdWMe2Mm@2EfqH(Sz8mY9F>Sh$%w3M{JV3vVd=fRveFO!?oe9!CtJ-s8f z?KH|f|KdWvIqc+lTB6;x*LhFV)TN*B*e&oD&|6zu9PJ%wUDtS@+yoaZ?|0$}*mFh+ zb8CUmS8JCe|0;sHPeprm=b+Bt&zs$1ZXR6S-<@?N`#yWGzeF+$uL)WUD|;yg>xjcL za4B`PY=E{l`h*I}K$J_=>H8$<3$#vN{h3;lWbSDK)*~o$;3SX8AlWZT-HqnTRMRrC zdT!3c21__-uioRGmueuE$E426u@`o!oOAt2)IN1dK0<`l6jc?LF&Lk?h}70MWHqTi|rH1nOK@RXB~( zD>2_1k8SECzLt=5idv8Q^eB9fc;<46vbb}((Ef$eyO$GkBc;#V5~fU&Xx_b&SCaYQ zrBX%!xx?7c~1mmz(G0>-ky87EEr&>*Z~mAMDgk(@@tH zUOf^5jP!e!*4$D>OL~9}`TL|sQXz?S&KILHH#Vu{#U7t(F;QAj_ZBco(OaID&*j`u zDx#|M>ue#lfL8X6_fnwQ?xE%%7WM32w@zuVo|^5ncb6B`VeK&kLktzO@bq-QmO1^j z`>dVGZV7zn@-A=7!tSc(&jL8SDpgfc*L6m1=S#}!U&aBLo316#AMyCq`J2zOIIf9Z zbY{OKW&|K-Z!D{09w19n+-&mud;5<)lGOoP#E6JR#Pq$OGD}8}RnAS)GV0d7(uct* zC{HVO9`w1brJJ-l3YI2X>2l{Yto^*bDl$sfr>2YbEl_6dXFRPBd6~WT3p9;mR@Zn9 zPEX4gK+AJ_9qaS(^k`n8Ym;P|@?w^Ns&C0#CRi>>87J?hWh-!=EB34+@vAtYjdNIQ zMqmEQ7oSzt7er(SI9S%47SPpTAkugVDV04>UFKxQW$m70TZ`a-1Tb}8HqPtpz>)?a zuP=ODTr}+@&s#upO1Z3$^D=l2(IvAx59GF0%UEfgbTL6buj?Q?LubWEom{Y}^f0{m z-RTP3{G!g=e>zN;T1VzzYwMryubx_TzA)3rTt`iQGJ-IjPALb&jn94l7k)7`Nxutx zUqq(!<@UC|Rh_hsK@luDP!_3A*NMeBUXm|=GDk6W$zaqyFy!_?dq-##^ zkKXs)Lg+7oyd2fJMUqXdXwR{BuALo0aL!TH72Z2?x|rJ0TC|oNd+O)y%3m}Z&NpP) z!(P{VbFoxx&mW{QJ9RPj^Cv>2i;w2op=gZb;hdY@yLayc5qV2h?~90AR>gupv?R@b zSp$~=P9fj%Yx}q4Lyy8{W%LHH1yR;5UF4QshnKvwgsRRx>Qmh0!Z;7O`OjpQ%z4>3 z>q~k^7QXM=ATbhT(=;@7qRw4^7t^D`qNjXbmZ>ZMF#w#)b-G3tv63sCxfZK)6+cQ^?wi{|S& zvsu=uZn8bg_2(4dP5VIXQJNOjy>>5{p3rPJx63a=aCPm;$&uFOlrna+18qlXQ(u^G zXJ+#hh*g~jzeFz$QNgxXUS{x@60`%%Q9bR*KD2ZMLN)-9iVk# z%vxc2vA!kk6k{>Tms_LbnS{l^ySrO26EpJEqtL+@KWiY}XE6p_*tjbiMFf)#rGn(9 znRtr3!&~f(WS>(%vxU%uRHDogAcA&&J~@cyR#0y@GMfmmikM}hkfJu0Dg6bv5M3!- zTnm8it*FF3G}vLY6)4e=)My3PG8knWV3GzYYs4Iu>3y76fafzwH|Fg)(weguMBZR_ z$=abkLw0J4ss=xKuNZ3rXP3Oa(YY&Qt=+uHQaMId!(NE@*%$|6BSy^X#_EvAq!!Re z5Z%Z6>qjDtDi5_8fhjRQxM6xpQ=M;z#{o9|dFe^n83D}e3j-yf@jyW|$gAWdnifVZ zBs;l{(X5JOu>ef+gzKqUZFw4^7B;TaP7etjrAwrEdOk{gPMlx!dRn{&*O~g4ao~%9d0&N1kCkCyiJ0Q@# z*@=+zQ;-~g1h4{@_V8;urQV5gDQ-ww(EU0fyeo-{wxl{$9>&dJP^aL0Slkkx8DsGh zx6R{1vT2Ljhro(P5@Cv9CcuC5;(%)#YZzlWIzC}KslY4N3f8-D{?Qn4U{xuMjnU~n z&O1OcVo=d=QoSg!euk>UJlvs4Tq2PZ@nU)G&i9;^18qT&8yHZYopD=cb%1VAUiI6?-TvY0p7*Zke2NeSaOmi6E_5C8O49`5e5wlZdGYm=fVI5<3} zumu|%n^aZB&hA6%reQoDGae5y#<04!M%~ox?H^FpipMPUG|U^PsDb^IDTQmy{1h}} zuBz<@kOX3aH&FtN1D!iDIj0f8S?Jp+#)t@FOv}2K**9~6C!8(tsMLt5NEA0vVH4Pz zG+1l#&f^;eYY=1bjl(se_eG3VAx5a1n!2eGLu7w~6&qQlw4x&-m`HUEi9m)nr?|`^ zNM$&DYpli4Nd>I}8Cu;g9`)hSZnCec*Y0;5A47_Y)Fng5MS7Gv)tBxvSOWT{u4#a$ zuU_C+|K=BY>f%`@Rl_&G`zF8t%~yFioiQE_ur_ewdOD$=OgM9Pi)XK0K}5Lu!8C$g zsAeFlOmSbSn+C;zNVjDaKTxb9jsj-W4>i!aK)c zU~t|Cd9D$RwK(UI$Qfo$1H%DE0-(KfVPdKfVA2}HU@*Yi0`;ESSK&w)!P&lc9%DnW zZsK>UidtRgD3D;d8I>U;Le4#uh95@a^}gXCbCu zI2NYN>WbPcYHU`IP&GA;_o%>hR&jDXp_r2!A3f_eOM?kj~pqpGc9lS*A)mUoW2Np6oZcwoY*NYCt*%rZ%B zw6=(zWgU~&I4>doTp6f?REU`ptRE$!C8aHJPN|!~3JY7%I2X7H;3TZ7K{>!0ixDV` z5X!(ubCZZrmL;e%olLRTG8ha)w9k5mwU%-)K)s`?YR0ypC<^MjrfF)dH9=eftb|}Z z-g{&?4AGxlpy0+@j1321lV=?eLPV$wb7jMM$EIn*_{aDp4yBBzhn5kPE-jxQV}zCQ zi2eN|e(xLK#(Ckrn;-JlyEiGzg3)jgIFWDI+F0YIPrSs{D_6LF{Wf<$yuPt!i%FzRU699=0eL-?@i11t+tbhx_;V zlRx`58|!Nv?H{tfx(4QmgM)*}$xWt+Wl7-)bixeKNA%>~g~IwD!e1JW+j|!xuC*~L zjAX%SLc9n~6eu3sO0sBRvrDWA5|t<%VK>CL<%LCKvBpu&s_sCqS5SvXumXdk#M&ar z!ATh;oKthb;f1m&ajwZ^)R;H3nI^+s;28#MEY`Xpn#H>C_=7+F4sZYXCzN>Z z?Cx$SAPph~UF|PgJ}e>=Y_UOB3qb-EXzFmDuN;&(=c(#hxD2T%0YRO%mm?L{wmL?m8mPU50E$6F`u%#9Hkku$4XH=O-D44A5&}8bFeD zsTC6vAUvHpDeM%vOdRQqOD20a3B0+fPSS=+E2l4)&O2M&2vvh(&`4c6r}jig)JzILDl0_!~HS} z#+E^u^`6bm4bGiA!*DR<_+-N2(Qz~xS{fG=L}Lg5iK1O$OOOEqxVok&EyLk(j#zxO zlty1wDXm~vhJll$NzS4)se&m=hPJ?9uvXe=st~BSU?>FER>lk?XH4>a2z#NFEs>FE z2^wb6se*~nNZ2b#x1$Ar8rN%e213FH%|}oQSp#;v;yUFr^v2o(8#VR(d7gY6l>}-} zwCAcK-baNoo0!ztOk7bUZkY>cf%sLt2<;YbmQ)05O#q50Mg@EpbiCc&0Iw4IU}+a6 zNOa+hH5;%da2MyIc`Z@T)~1;3+exttRt#&4(BCF3`lp|LmQTF&BC}b=2e)o9t80dX z0Zr4ev$scGH>`{XAz)>U{cMW?*4n@&OpyPJ!XlZU$wxAC(CIJ9?ww+J`}kdk=b%$W zYfcdNIzy_MXnD~PaB^4<7?y)jMw&*E4A?}D6D>a`3xFvp|DzP#Ou&6ap82%sJ{p1G zHBi0A)eMV*^IK;zewE$hI_xNBieAPQ;+)6bKnavGY?m(Dogdc|!GhW-?gV)@tmb@S zWEPpE#4c$2-RD-h(j>NKJ{Km{8|tyvf+imjgLqFf-EDU8Y?h@o+w!C)AzB95l1F-91aWv~u8 z*E#59{aOq>nZPke%@Y-fAPOeY6wWL5djT+ULyN%8(k-}XB5*O-WCq;+c^YdVE1gA22{ z#-rLGs#pt`uUx_o3YuD3DaQ;3C0Y&{t*mi)u*Y~Tl(~Sa)B8VX1gZqM*EV60T zcf9j0rEKRT&2?Ue5nBJ1B(iCYHP_iD!}Cl>O4GS)+*LJsC@jv$;#a+At@vv|q`tsym8hl*byG8Q^w7L>S%;|Hx79#7hBztc%r=VgW&7?nQh6?3xPS~-*giO*nodv`cDxSv_ql!R7JGXSdFI+R*4I`M;LPSayZeXK z)r5=Z&+-dj_&ILey3L*KdmJ4eG8zsk$^svqv~mkc5(rg&KbEwl?=-}QHeLUGy!P8aOy+Q8&w8_K^xWduaffja;n^kg^v>}o~+(QJM{ePlE+!@ z$9WSYtv^HdEgiU{q8RTnJXK!Op2`@Dh<+syln4_XSv)S71hW(Efx-qwCtWe;@f4;A zTj9~dp@8?&?&q{_j6V20cr@6ReJrP`DGI~2Yfmv63^+JA;_R6-h*;cY%G#jdxSHTy z!^f^(WcT3?O*O?@6D%8q5Nd16<3fpN;5i_1BElPtQF+JXHw{T*m-6d>gWLiqxQ9#9tP*{U^r^hc2VR8ME z=V{Ps<*ClEIV}Q$!eKhfk3_G!DDR3`a{IJ*jwUK)Db|I=#gwq?T!UzkkG*d?YYS<& zF4)#*vl-*k@Z7V{^XX52f}*h8zV#tTM~C5>-^n3sDEFx|sg!{y7D8I&c{Nr><|nK}+nri_nHC^1|;e;%ivoxMFSU%JHc;UQjK z6rXGy4@II0HHi-pFStj+cM<)&aZgvmnXpBz8aIe+6kRgvr;1BTp)q(3n<66N4xHfr z+bxivZb~SV_9qZAKH|p83g`q#w&u7La|?oKaJdQ8F*+L+!RxGX4ksEwO%DES173)m z3&C5>n4)vypA%I?lA;(uD=~(&AXqGDa#jyEO@mNa!Hc#^QM$83U4!#JY>^iQif>u3 zp}VHHX(~p;l4qa3%(W|5sAnh4W>e}N$Kl}#Xu;;@CP#-8j;B)&_7CvD>iQOUw|Cju zJ8EyCa?WwEf536N??gRP!-se7A{uSbqXAwFTW8KQ91bZ>NmJA~-*EoI3zWkVH{QR= zyVq|po6Ukv+SvB0j&y@qI5`rO$g(U^4?cSJ1*fVov=RwOFu}(6qc|5VQ9)O*#)h3i zf-^rF@2nBiilst#k4>Kg2h#K?#XQaNqm%YNi3oOJpPWLcri42oa&uPx)BT|_CbG2# zDGLOpcAdN?S)*I4flubJqIFL4(IllL<**ZBj2OzoqS4tWC@*n=s3L{ny#)I+5^c;7 zF7*K-^${Z!VplapCEsf}R7u)nv*-absLI&MAyMZvgtNm01?r>UCg6JeM&C&>UtfiT)y zVRe0-$;lzp=?TVKo_+RNZr%Qno!woEqF_{(cu|~omvCBRzy!bmW4WGh@O4iCDxMM5Vi@@3bUgd%Lqn zbioM~9|4+=97ua=CACr7d@UO$D28$nc_y9sYrJorsmwjb;;7#J>{+v4LdJV!IDn4Qcxvvm$X7;)?NZMN^-M=*iA6rn99 z&WSOW;O-C_4ilqAU&l`Azopw4kI_e%dA8fdhzV5-}u?ox&zKWExH6)Pb9YMW_+9 zJ;kRtXWIVu-nBOHHs!co_;Q}ScORd?zkklk5dn9)8tYq1nOB_KlnWzB(T-&6rx2Rl zk_H}8NmrZqxTZk?YZVEkhqPOj+c1@2dJ8u1uu+m5@809Xo42@n z`691;`enA(*V#QjranGo|M-Oc{e7G|27?k&8$AYFe4+?V+6H&NbBK>T-$)U42B9!u ztj8Ed)!-bM!eTXCMe*?A38UeV)$uBga|}l%54P{{)Wyqu=F>0Z8SeN27F(?z0J zA~BdwQre%y)u<0}^O4RJt^kwl{fN2N;*nNr`nxA8Xhw0nGjvJDYIA9)y`HkTLkW^h zNkK_T6Qa={1A_T2T|{Xl9G~*hR!an1(=@?m9ZwtwHXp1Q&P8*c`rym#;N}PSSl>9u z5)1?AdkhoJ^RWoM6rqIZoL8X+&tnLn7yn zPVXQ$LTI)!@$W_z#fqRtEn=tsCo9KuXF7&MHCis}gEqdr6;k^$B zY;E9ZCeCNmG;#boe~%18i#Q-z)0PnQQ&I=$6XFTYjwNfm(z+e|w*E)R46S`R*?(2q z7X4N1@nLm)!eQaCed`(*%vaXL+pRizOo*F7F?hR;N)9arQJTg@91R(jLsUKY z?>*q?=r~NUEx;I@^I&{D;?*#n)cDF%7M9JmF>7lhHaAx|v$4hc$_m5Mpr&C~*BtCm z*n4=w?(P8(4-c7CHI;^~@gj0X7o+w!O@p@pUocdtLHsKJ3iPt4N=UQdC)s>=r?9@jfDH<;=@-Cdz9u9{f z;F@qvgcP}A2#?MZ-W=1|;=`a=H#FW64x12YdmCI+(^NHuL@xn9b zxp;nsjTOVl2t!*?mX=~zQVzzb7mkiAKHT2t&G$awM>js;gL@A+Ihisn#|#DqM48?> zg2U2qz@_u&IJ>^d;o%8Cdgon!_|`iNWXz}-;??05jHUy(Q5=kyRyIw8iB_oG7ri6P z(ZyD1O`6G9#zYW!y6-(!5s7wBC7$^+Hk#== zna&u&ioqKbltCZlVpBw4WfznlV}xXN3ftx(-b4ca%4p2i#s(`ZE7bLj>1>LKp)f(r zu;TDWnNDWRrc*Z8*Z9qXSq^YsdAPIBd&O<;miM`{{eTBM zd#tUlVVp&LkV`fC9rzf$rm#iWcDI(YEb;2FRxln`X$rQ%?D{ z_kHpkur?l|Rob1e9tV-I>eWP6nb;XN0@}yjEp5vXQ{Xiyd+Td!tZ%GS6v5mWC|umI zA#D3jXA>0oxlg^sul>p|@s%%qhRyX6uYdO@Km5^m`J>(s5(T$#}R6C=tpx0bI$gVloJZ=_I&=zVgWz z_f#PN8@cpNnM?nHISXawrIqOK-<>cyw{FTeT)E^HON^W!&o`IDceFk{|$ z<2v8{%eQD|4PW}idH&94U*MBh&vAZz#K>BXFP`J#xh>9}S>>&pAM)Y;ltxzAT0cwW zYQFicZ?m_5#6SM^f5KP4@M-o=j`*WjU*}{xWxTSAiRZq;Q8tg&aFS&>90oseI)*wg z6rKh`UHX^wzv%-2dDJ95az2vNS)4nskILTaT=NUC+xz{9vF(B~*597&VKg354$4;bXir{9uo_G!$6P+Q%2&Vgb3Fgl zDzCo!E$;7~aQ@5{-u(Vs{PzF*JAC-T`@DE=%$Hw&j?cb$l{2dYN`bPltZuDw;p!!x zdEqLT-g<{W`OZ7MbNi6l&`_?eb38fX&tLrus2%_GfA}ByTfgurcJ}u9?wi+f#SmLs z+BkWls00^+M5U{y?yMI-#gvG>B&zV&DSnMg=?&=kEwkVj{6S>6y=b$ z)pf33z0A{3Ut%y=Ve$vx=f=*I3Bt@fs%gWYfBQAAUilCF)Bovz;n)7wFS5P8$A`Oz z49eAb3`?VJJw{Y2LpXt^sTcRSekLh#yuRX|M(n4(pi-4tWsenkQfe*S8%3#BL_ySx zhSMRcZH(Y>P}Rrn&TRR#B8s417GXC>Z2Lc*t-JS=wvHq9$@6u6Jmqtuwn+OfbQ>t5 zL0KA)MhpkTOlFpLyWD$+a~01&eT7#({tPD%@9?8HUdQ>Mkp0E0-{jSAeUoZ(!pm3B z@x`BiiOsVce6anH_wVeocQg$qL$zoVqJMt;nP>QwU;0IU;ZrZMF)pdx3{QoK=itQg z-M@UDquu*_Zl;UhNmllJ13v0GB1RC<98 zlA@w1qNflK`j7$`=Kq~O%Bjvyba)gc$Ok#Sr`doJ7mE6D+GaQifntOtBL;B`6@23u z4=ta1@i{h!h8u6c!S>y|j7CH7j)R9goE#o{1af2hnF z%VaX6u4Yu#jP30`?%v;JV|ATZKK3kE&aPv$!bk{2gTT$(cX<7^Z!@g+`NGT3a(-)# zrf%A!Yn_Xx##7-%v;cMcxJ!qy9gD{d^jsM#@q`j7W`@kod%pyqnRoldH6v6#AZwpc zeFQ4}sML4xpT#Yte08_L?*Ey0rYCA>|Kq%J`X~^mGl;DM%A!Vm8mM)d8DmMFusvKd zD9X4484e|+x4jP(=iIqXu3p;WaPJ=Pzjqz=N@+^8I-;3WSP{PX*;n}0U;7pObeli; zgFofYy$NHp#+8kVjR7zoGM!Gi`|yYpEL$6A7_W}Fe0H7Dz55(CP!uJDq37Uu!XN*C zzt87he2xoGzr^!bFYxg27T!Z)yMCwM7ezQo&@^=%m+oona`4y@X-6g>;q2SaG$*ml z$CWalrM13f#hW>5pZ@BAy`&J;Cpxi`QRtOaY%fDALC2N!xR8N={bXYJ&`^0N-kbvD zWdm?(3K>mdDax`tnjie*!(e!i70aay7Z{G<&fWLeeYnG*9AX?alNpo46ShVpzV!1i z^Z8G`$g`W9eBrsPeDTF+I6tz?4)(EL7!Akl?CtUT+wb!2AAZ31uHWTgI^oRPh>gJj zUpJ_S(Xa#qZ@lp~fA&XzMD_4K&pvgY@p#Z4Ob$lGz?X&SvKnLSMNf?-eSI>K1sSJEV76Y~r1qXC)_)6NDkn7Fl`Jh~E7 z8VyP=oZX^nCfvRMAt$pb7X~Hj9499yOpYg9IlIX-nyA15pB0`c&`eK; zZsQYYvQp>S8sw=?9$u8b{M^qn7WC*|DEJU#I%xK>WXXPd+2_G5OMd#IS=a)$*eKrg ziq-JPa8$6lI;5H$M_*`<6o#s)IXF6ER!um!xyoR6!o9cN;_%*GRtARkm4fwE%f$@@7kTZiJ zo8uK|gTwccX+*-kC6c02&9Ca%|Nd2E+0Rcm^~HyuZu$s1VMn3MvecQGcva10^t1&X zsG5ylZb7b>g--mnhbn3@z0HA4HVmB;z_$lQ7gN9IxuTy;TqfRym%Pf-=7G~7V;7}i zFf4FY9YW%Y1tU~V#nI##r;e48r8?Q?!S(@zQrSK};=$etVhq=wzQpFaO;j9b*Vg#T zr(dFZ5u_*>uUd8v4|((b2aL*+{n;!yRTbd^pZ&uL$9spI^M-LbM69$YMA8OFl9$sV z)mCGl8>=o1SZ_p69jiyBoUkro21^yXzq&auTX?BYDj)6CcUhL2yxhX#4%91LHQ?h_ zT`~I3&yaz&XV#)-pJIW;r{R}^NZ=j)C_L#|Ur9|IM$*7Q@RS$8C`O|&6M-FERxMg9 zzHuQ0SbVK%!l~%tprEc!*m*dmk%ryl8QXUra%OXr)zuZsK}l0j@pZ%I$_AG&U1Vi- z4R2;RtE_FTP!3BtuG)Z>-oS~gm`!JtN;oKB6fr)8FmNVHgc0OMk_r$_ls}t!>6_nZ z7syAcEm!^)-;8Z<8EeL2a|6XkK7y5s*UsxH63rNmsBIoW^Ud0q?*B@rn>_Rvxzg|m z8r~jo&BO&C!~mglN%he+QA`%*g(dQ!ywlO+90BGNl}^U#tdjgQKP{vG)Y@=e4sO5YAb3i-_h+Hf0ALfPZ*Yqvx_Fa;7ijTj_p3v z&S&s^Oq^m7u%InxNq;X^-GNSX*7_0BT(CxZ{JzDjMmDWxX;V@YeViDdjyGiuO}5k! zD`k0y+Ha!WGaR#O+Cbu{r*Yxfld3Wrk3w0QABJ;|x~{`P05Oz<5UV)9%ro4W>s$G< z3uKs%IECxYig;Z{(g2P?alb9Bhk>zp=Quh#p%{!{BaU}Y+43;_VZ58dT$z7O=#oB^5-J(ss#~VIc1pkmi^rMbC zCZ`=E2D@a~g6k2vu>b%d07*naRNsS!3wG4g`1oGl;4G-1MIzOF%ppk$hbo(<370ZP z<)?0Hsw&)X;u?o)9Zyh%NcZV@Q3{1sRaJ28i2+)iZAZwc(d1X>n!JH^*YWpd0 zPVE8dXO+B0MLnIQr)yK%Q5IuD7z8p7Ey*|C#P$YMhTYGsFLVTYSrP&B(M67a0K~l6 zs=DaGC*k|XJ6sda@8!26k+H!fLpkTe8AH=K+n?5fR7ncd(lmjsOAJartETa+pD;8A z@g^RvvW!L}s;Xi#nc#fGa5%y%%w{u+!caFG=%7F~-r+*HLd{eW#yUVpR7r1=! zGLxenjDZVR&fDBtgW%%2-hF%vwe6N&)!L73n4V{*47!un-_R^Qgb|+U=87@SR{ApBu@%6 z9Bx%Om5KlLQ!KctYfvynxai5XfgZcIm^LVWcQH~pPv~GUL^W{FaE-{4bA_$Ak$<0J zoCx*_;&Sv$)$WS4o|YN!^zJ>4wR#sq4TLy)xq_DbGIHfDe&>99{ONHiL_YPc+>B~_ z1%h+Y-yZ9-hHr(vjblI#LGN=?P)+6 ztQK6pcAiVmTw$;Byz$;W?(FWdGPaysD>=Eh&Ap$zPrY}@>Tt-`=9sf*hg`nA&gG{s zU{*Ky-UoYp>nC^Ep4OPsAW?vCs+y4%o_+o~R?l4I!<|EpC)4gu?idxxM86K_993P# zUBSoOwK}|fw5_rE6Zm1?;@o&}KI&WXXd7PRot5G8)24Cp9?5Vwc)pe2x-~qq#qFQc zG>V&R z7UACh5f7&gFF*GJlf(Pmy7w+8(-T%UHhJdRixjJ4est>rpZ@SHS6;rv)%6k6ql&}5 z`*=5D>*85nyml7H3MG!27~c5tHvi8z-sH6(-=juYwSq|4u$oRCS1(`Yl~+E44A*%7 z?sY2X7?y(=hRdTy2xqEj4-AL+7>388G(1k*uaAR8mVC1O1l_?qhguu{78gT71lJ z0a1eGXRhdm^2=JMo|2ba#cgJ zQPNm`3bh-)i!o&-SdbJ#*n&3xpiq|Kt`_yawY~|24J{4)K9z-P=hN1s%o*?XDyEt} zHabn;%0U;tDpk}|GkXK~Xm7b-Kb9r$b%UbnTg%D9Ly{~!#A``7ZET`w5Ho3%!!sE& zojXiN?8EP{O{|2lR4#EA1#3$vQ?yQkQe&0r#Bt-j54iR5t9$-}8b~3Zn6ChiY z`6?2pCr!&@)3qBsg$)57Q!5SOmMayA!D@0AlFY9_Yi{gWGujS!n`dGKHAeUs|KgGD z%&tZrs9-xBM_cqV8(mToQxNPfC3|N)9F$#Pd76xuwk6XpSgt)IF&ejxHERxOU+PhlQtsY4;l6$m_JQ8GJ48y<}@Fx)< zeUE|Q7dC8IBYSMX18Ah_k$NQc#%8mdWOFaF_PYCh*35`Fei0Fw`P{9l*wO@9Rrfwi zW@N;Pv!DOL+M1`Yo#Cu|8nu0&c|GNmyL0Y8oG=>Pp(rfXe9CmZN6}Z9(He_jn7hc8 ztOaWnmGjIF7MxjG<#&GfclrFQU*IPn-{s?5cQ8dSx*KWNFakZoqIN76i-g=7)rcoD z2s`3DZcXRVbbQ>M7bAB~k~Fuu?tVw7dckJnnx7O$QWj{{jb-r0rQPq$GdT&h;dF97 zY!uS=tnP6A!?!tf`{fa{Jwk#2Y?c1}=kTYSG>s$gNE0yW{@VrMYVF=9U3%2&B zl>H&!{;l8QpZ>#Xc8HLCoA+~XzFRE0MrJL2w1hPz^%LLmj zUFxHHI6U3Wa*vg!omTgx zb{?`byM{=Y7OSJ8EUl9|GUGhWtdr+gnw)4rf^Q7c5SD>bT0K0p_sh3w^t5!<#F-m! zfCyeZlgWhXY{8)4r_dJXW6L_9;9rORK9li`@BjEMR#pf6+ONFA^Dljsk3ac@*<_3z z7AWlrzM?Ek`sIjWZ;jDfpV6SlrL*f?y?lYYW6%ENedcvEj24wA;JJ8ygWvki-{iM{ z{}0&phQE9LO}4fttPEEp+*ybRQz?zo7Nsq-#hm@glqzBVMZ-NW>QVn)2JktOSKe8$ ztg1!0HQz|aCRUJChK#VJGqgl!C-eF?BEGr5%ElMRk?oOOphQ2-nQ7FO$CE(~L667d z#yZVJ9It%T(bGUm9r2>HU?Gp3K;p^`mT{wUsOCB$CFHBrwKe#b12t1fZlIjrCryn) zBP9Jazp# zzwWW75))t*y zkV;70%24!sZ0}9@kKg$ooA;mNn_qdEmtXxNdmsD&zjdEb*LWZ34J^IB#hTa}q6&(i zzITT||Er(y^Sis0MZu-Zm-xz8zs#@w`mgi37hdG<<{p3l#@pQ98q+I>6ehaIv{e`+ z=98FctRIZWY;Nx`oh{HN;n0b0yd}9(MXOHdudaR4A>^3v62D^$gGfgFSB*pzk;X>J z5>jVCn{0`5e0kU7nW*h&1JY4bvqbGGy9#5KJW7dfIW*&>a&%N?$@tDE=)YP=KWa#T zuw8dt!cgwQMKuo~x#5jDeTMCYD!U`!X-S{4%e+_A<}D@GRQ)dGozH zy#4c=>>SMK^#-XwN)-9opj9ej%T>;?v$w~=WZW9dX;}j~kR-{#jX;$-xK!BKlRNu@ zv;W?w4p|LTptE)fFEGa*VtRqjoB^Su>Y>`S>oj!7E)tGP`9}>o^oxWb&bja>fAS~% z@gJYeqL-r@!qTb8^KI1U>_krwuF-9`(^ioKB;^Zrl-tfw4c4$}#hyqbGIO?#G753h z>8G9Aj``dbN;jMXMU$P@8hHs>B5hb8X5{58yP~kvu4a30hoZFf22auJ^>CeRJ(Kx^ zE$G=E^XZJY-@V1dhX=g)`76Be+&L~^`zlX8{RLKJPLG&g>P6VUy~We7Ug8gKXwF`_ z!uo{^1SQK5Shkk~TNfe4`X+ znV;Q!hlgs&u4|CeFlypuoC{%bT2N()pv$t9*<>P3;Din(H-Q$Co+PcKJSC*~CM3F? z@o`*{tI0svCxKo!UJH#fG)9`Jw#A##F>IZ=kWQRQK`Kp3pOq-GHA#eL^+Ki{Z+Et5+}68w{wb3W!li2_Xe`6n16AY*BG%Z;$&w+2?1shFrU_!S!=zxwJB1 zwbzRXqCT)+3BB_xY+NXCMsf4u4i6qaPT#-EwXQLiPDp!kn#AJR8&jwL zDjM%&PmSy;={`)hz;()D&fbiuo*a6xj#or!-9!=tG>hGQK1b3LA5f&|l_Fv#(=n8j z-q*OIh~e)3V1Rcu4<0_CC@q&RT%bSb$F|6+=eA0&KxH+3TVVQzMP2c5bC2z<1Kus} zGAeuYivnAe7#02Sbr7a5uyAv#**x|qH=4m<1#L~NH}~0oP#6_Eew8-v#dvRzhYvTI zPGdt(lTrY(;T)MtTC&KPW3p3})6I(J13OQ?z4voy5sBZTC9!M z(1yVqH-pM2+oF^Zf^PJ=MhfL5`&3=s_T`Y}&q2q4iDD{?!EEGZZqkURyaBXHN;%x# zlq`uXh2R^FTq)3+Quhd2GhZyYckdoXY0jV9ps+n0H6i#m2PJ*C(2Anp2YN9}&j_nm3>xJZCRYY%twI$Bi?CkDx@4-XHvuW%nXq#9ZO2v|~ zY{)H}Plt#k9pYv?Q!&O#9tr7swp8AS&WXutMOITf`_Qg&)U#cx5jEOk8-RJ@^&6s3 zdy+5MrFf+h_`E$k=nsCss@>E{coTSV%=8cI(5=5Y2X~rKX_|SL;FrJJ0%6D8*H(XS zCa<7vWqkUG=OuecG6;G*&+gL2&*u^=Qqv&SX}JJdtaKCA^R;|30*yAzXLIh}y+^1$ z=gyy_*DqsIPF*A75tRcASsZJWiCwUAL+tFf3@K`)5mYXYNCs+dUYfa{PW{1+j(Yv( z_BMC!-(@_Rp^e2_LzY}3(T^@fiRFS%I&|_$2OsxBw}(GVKBW}SC8VR&0U;A=*9($q zq07CS1AU67kw2qC%w7yWrkP3zv6oDW{Kh2j!`G7LPuC)Ay=uCwU05Ga4^C7)mK$$s zElMdtrK*m6;Y5r_{S{fgmgN@`CvAM42~Mmz&W|zjbtRP@2U&$)c%5~I-&L=-{_(!KWK%11mL~iYqtGK?w zazDpL@=l}r(Nsl@>GYJL#s+89S?-23J4vO{CzS& za{#gpy(f5#225AQMYiZ@lY=}lSfPx<1!2CJ zGnvlV-P>n(XP3piqOb);S%OkH@6i%-y_a-hmDPadwN?2u0bKAn7mg5Ys{X)>BtnaG z55dRv3@ww2oyOA7-Vrd-Fzryo;rkn72&zLrNlGfB=LD^@M`=xz%^0 zyE6YA4>mdasU-Du3=!EhEnZyTM8w@K&YV64%18$y!;^Iph~sj%(o!kkG9jg!LS(HP zHk6FR_JHQSY=2t*EolsDcnTG@M{NSwRJVVKaGMy(Kk|rrcaAXTM)Pq2GfEK2sL;6y zCOOnA1Rc;S>C++i?2D%)MkEu_C%rMdpH$W%i47-}P3fdMdM41Zkaj+=n9p_@A57UF zOc)M^4EjC#y%J-JMh`}Gg8hga=|UAbp>xctis^jDcsgY^o5n(eROHa>l}S&IWndxc zp^!M7WWs5);Ie)T$tX_*6^mOG6a^}E{mRCtcp->KtJIn;sfAjbcJC9X?=rF25mvW& zd)Z*@{N1QmxiJxvq^w$&#_8V-cJWB^>Szm`LeU+SW89<$Hebvt?Fp9XqsFPS;TUe8 z^{H&xMz@zCgylpUrF4o!N%Os+quF)XLT|oT2F3MiBUabo* zf=U`}%4v~C_q4`fbqmfCS1kFbB|S+dHmxw)Ha3S+8f#Uv*3kOuv%cTF)zCoHZH?B% zqK#CTs}98*I&wV*W>o6T6&rCj@^8txk@SGPmrG=^>{^WKs}^+%MYl%b*-|)Iv<3&q zk*si-pqCsRaD<9g^Ty%p93AaRkA_9VEIO{E{HgAyLB_e!&DEReShk=$#NX=g%TwtZ zx=qv#X>c#14rm(BO$dQST{BO`s;&4;#FmyR>aU(mEJi_5l<_+0facH1q4~68x>fy> z3#-9o&eM(rzN7;zt!_Lll5B~*CT-9|r1SMgQESzgc3!%nyzHVpyr)X1AW`1cblBo| zS}D*fwjG1H!@-xkExjJ9?1vP?-mG z-fRrDY_R4^6%`Q(B4Cd^2;pB$;ISdWWBN`DevRc2f7SEir^gjK{LO@*F$!SbjTad_MY? zEkTdRL?3k8p{!05#my-Y8vkhHv^?4qzHx*x{bL%kOI$y@GBqT0#mEvmb#YBakaXOb zY2HsZRO1;;6G#*KY|ruJ<1ugaS?7}_8#J{6ODps^I`o)a{n2Ij$)7B-wQf*{XLv}= z9D3#=IYTLPa7c(re2UN^8ew7>Z%)^IX3UB zWHTJmd5<5*F#>g1ojI&-o^rh>XHKmF+yvqk9VEiz#}YvkT6D4QBy-i0+Y$tT@D%}^3nM!{7w5>c;Q`lZPCv4}c25H3kKb{hOs(PU0 z(L{OL`;S_QCmBa=p#Li4MENCcuEvvJZ;vPjI1b9pB^V z^sSs~Pho!6Bczm2RS$b2PMY;+e}8#VyEThT^ElG$1u~Re!w{QG9p13x=qfAJiL)Ec zX)vURfM$|wN-b}gp9cNzi&a%>W_-=>y=dfY=cm&;gnp%d}GLvJjam*&EBRLz#6nm&8zWP{O z*C~>P0|_bwui9XQw1ksgU-7VzGuV#g!8Q-sF8kwp8d`sI`d(twDxLclDk^cL!+i3X zCqA4v{aHu$TIPE^>GiUE?WlkF&}V2Pvnmz!D(U)wmx)q!te(SHR;SxfhraPR+&k~j z(PvnW6+GfPS=^p#pvD6&&GQ{KdXF2+I&?#W70Z=ZqTReY(IRl?sXscKmqD78kACPePpWP`>dlI1w3ZyKomYGT&lQ_ zkvN0FU=%2oM6I;f%l`V$*rw?iq1xfLoyk6mP)}OplfIXw?b6MqBQ;Xyor2}arQuZI z^ENrDs+LG85=|zatjBb2n$>_~7G(MN{2^&Fs$#ucLex|NkHP_=+t&rbC%sTBjaPzE zbqpqmC09f|BKhj%(YUaLK*WR&b#%T<67{)qS&IUzk)nu+Ork(^l3-6r;fK})rSTZ* zpkm*`x&~a#*wZltFDin{lt$6Bq&A^3)Zbn2CZKrS;~w`)A{b5des~{nE)de%MC|N% zi`W;@ru>+cUARPPPdKEr7#%Ly&4_O2+$vWHVvIR)(U(+?MfWsGR>V8s6;jx>iGh6`IM4-^2BQR{0w%lw~iWOV~p*3tbDN*i!U{p}{4Ms;m_<7}+O>3$}fx%+6LR)A(PoIUT59{wo-*5I-x_m(N zY0_dT!C%i}-C-lRM2@*_K0jTG?S4W!_J(SH%}Mz>#B0_BJf2Z-JXHmrtA%T#I1``< z3a^E+4s0s8tphi$=2i(aqZt5Yx?eU}^AcpeI|HysgGDcKulP^EFJ{!fhK&o9&%TIy z`XxAf1=Sx#3}in;Pxh$q-)H{u$5b~zK##YurNj0HC~X@_-yZOz#N8Y=N!yfiI2KM( z&nnK_1+QH4ymqbP#`=Pbg=VM=(19_5d$W@Fw+wIG^}MrHaj+Or_6mAhHEo7F5BA6r zzoHQ_RIaA>bNYjtjf*|bUhFa4Fq8w6QcpeeMaBM(XXgRz-mh3p1gnZzHLq3kT)&XD zoMv{+>ZLu_7-Rc_tWGD>6H)G#0xSM7wpT~3ICZK?|BDuBMC2j+u0vM`iWm+~#lp#} zb>NFm@uf<5X6{&(KtXJwCJJf=RSMx$y_2HaE?F9l zv8Hinc@e~W#CyD3;I+j*_bR=wd;?y3jd1oVsuImdgFDnedjt2z-{bCm zh?&n(WuK7pGTXy`X!$as6Nz1mfHutPfS*r!el+7ZpZ9$08R3~Tj**#T5~P75U^E1J z>|g2g^J|vB`bhJgj~3jT399VTw}zNC@?>06Bw}ROYR1Y%&(qHjxcbbHl?{vT#oEan zqZ2V)t}F*TihCb>?!G_gV9O!SV9T~sdUh6kb_4tvhj7y0g9IOZ*tW*rUQsL6NmuA{ zXcZZ%#KaaIsW4;@hh%@l@@On`iFI#2xTWy(60)c^h}9@@JY5UFx-k5ch2paF6cC)x zr2qgR07*naRCP_Q0yQ8?637dz1z`iv8S$J|C4YnAbtP%Wb>_$9_=kII4Z0es4}PCC5lt)icQk@E5-ii;Ph zzVjE<@4rK+rkGJ5w8jM&F_FoIukrgiX(?wgi#VpWr&`SU++d&o{uRx)U(}rKSIB&U zpVcg=S>Vv38Dc4Q%|F4o%EIEj-=B`B|L?~7#{a%LUEO;mL1+4mG$`rX$stZ={1Kbt zFqlm6g7-B}d@?9npokU@Ar*H9#}yU$My>f)<+$h;1h-)B15Rt4HLd=w6bl_FLSX1U zUs-rc<(M1A4*(Y;s#5Si0hX%<1Hu>^4NLE0_a+4@ID(rKtf6@R6;^)Z_mG#q!~urI z6bK%0C{YBZ@o6J$tsMrRm)^_!Sr*`Lg*Z~mO2sR%uT^EC>CRyOrQiN<*C9pXJb z+oLokbLSXOCtU5%`Inzp{O${u3uVQ@tfH!2tcx^#q|k%_RqgTK;VVb!4|sOq_-|iY z<-jZc?{^mL)lilQWh z@L+Rq^Dj)_eCOZ(fB*K;MY3@gw15%lrm>e&x)Q;Db z=Ia$)bPE=0&O!z1Dyj&@(10~KMHJ6ssEo!0VNg3>0d|#UyVSgkp>hr*V6|z~4GG{S z;%rVPc$@*LYaU^Q#nvxPy}=kJc`AjPx+;< zQ0zXW8t+i=+`|?jIfwO-+O-Ls^YglZ#dtdF`w4> zIuKakj6$uPqg=fN&QtH*rJnDg11y}zh8b6f!ndDa<>s#9uW!}NoMl)T^l1>dZ5csm#gJQEaO6S(Fap{|&#fL~q1e(nk~Tj1{8 zMbB$Yzlg3iqDRAPn2Ru|1FvewC)RLR1-9y%QPHC?1+}l6%4cmf)|!OmuLR7(*eR^QxxQfl4$^6}Vb6M^LLP^uGKx!YA+JzJDJ( zt1-hesX9L4Q3w(ux7VpCwoYK`&z<%B>NA07*Bpy#!o&rf2Pylgvm3B_nM$oAg+`eY zc1vWki->0uV5MI0!fKCiJk{r&or+syg(N74lQj;BhCzsq-1W=MGZ?nd=pvX#MyQpB?PvvXE##KhozJ{!vCoDiMJOwqEdKLXa;G>yhbF6rN z1po4i=1NcT_C)ym{hE(w8dq72GYl_WrF{Nns&{`zc=!M@p0c!HZR&vQBhH73pp+t- zg%bwG^Xg^z{3VZKPE`k-KwT8*wTqZD*OC4iP$kCnFzyT@J)FOZuXYK*%qa$C&8z1Y zd~P-H@Bq9ou~wfz(9vTp5^bV#2 zZ_w3yZOKDG{ha zbP7YWH@1E%2@LnmhZRpFOPj=6cEhc%{#^q2aH$=X^Y=c+Xpc zE$}t?vYu5GY(@foZH#<$;N=4*fL+P%2P_s`Et(FBh4EY#z9k_%A;dFpx`N2 z0;?OA!h)-XxpVZS{e#n8J^2IA(AHXdh6odxj)rp9WK;Nur7OFUmebqJ&Q$S9gG*AT1tupw-o?07@$WZ=#`Y#Mie6?VpbP4`5UnxrNW~r3d3q&Gq4Kr z61@pU!RXQpc-3dTvq^BC(hOmKzvTsu3qNpCM^hR7e^E7+=Q+yE4pTEGmTjkC7e?nc=TpFI|`o*i9TR+d% z{Vlw&!IqT0g8rb7wGN{cI{9g%vZygOdBJifWzL#AOs&Tp#FpHn{@aDFIB6{Ba_B^& zjlSI8ND?_^qHbJyiC7v{BTrbxXkk8&K|&(%XgGKTH7L>3G5bGzn_GYRT~@#R3dN=K zgh8L_!I&atnHAd7>-EuAHEuwQ!b*0FrA^B#(9wc&a3x5@no~v*jE+8Tr4b9Yw|qMF ze6r{H=Cy(wS4L!UHFln#jsu@mkvp5NU%AluqBUx=YL-j)^I9rJgaAuzthBDNQd4+A zy9HiPF)J5XzwxUS4?kt{;BEG9zK&m1FgVA>&;JufL(A^=C)93&Reh8cpltM)XQPS} zcwL9l#73QpLK(Emy9&diN8k3@+TUbaPq}{SX-fSH=7g7j6wqorLybi@LF{y znHB!-=W@WqsX(m)K?Q75DJTo(AK&5D|Mu^>F&yyRzxXx!lbYSve@5@z3PA$Ztp{*0 z!-N!c(eYYNJmNK2(;mcT4yrwDX}3e>!{k91hJOE;yV>3Nd-kx?o7n< zBceM2N(C0aV&N;wUddZ`e!}M7CSUyA*ZFT=_#HO4Z_zVDX7z&UVhSNai>ZK@8ZRzF z9b@9=WEtO)k|!o9Wht5*5BXD#Qlhd4S4n8V@E(Jp8BO4T&JoWG(Z;|I`!7x!xujp~ z{BY5GJy)K6?WvT|Pa$wq_87Rp{KxNb_fP*F*Z=ju;;DcAyIlM4ev97O72JHrz5noC zHvjxD2=_PX4SHY-#wxHIYHFu3N~29&;MmhJJNL6e8D|lkBTVO*MMaUhxEHJnU_4vF zakr{@QTlikKir%1zuuYf{e6vAmcGO+IM8ShGOLk!h4ul_ZTXs{Ad^Y~gp3QQMKPTP zHphywGprXNS_rBjgxIvF=&!Qz>_4S<<~r66SUvx_csRUAydhvgJCv?Dmo0wOx*geYNLEtpg_H!eKI-JP3!@ZeMIr*HGZg&RD* z{w(Ei$opIGvVE`x+G2H|;1!FxV?L`9i9qZvIX>p-ij|I(;~3`Iv-a@`x~@y5qyeuY zXVo26-}7`&lN_zXE?U+q9ksE7`w9+>X3c{NfuJ>J&}T4Nu=xJZ`1oMX#_#+yF8=dh zVff5-!eq+u{JDsTR0n!Jm@Cag1zU#bw?!IUyGU@kX^?7={R0pd3&Q4oimki!uHT42 zh$?c{eqpIB{CK9>yg%o`-0@$w7kux)u*;B`=$krytYkV1jXmpxG zRHn|NWGHXcP2ecTJfDfL@fn$HC;$q#y3?k9THg*H9 zZCt~?^er~deMsfO_DXt#0h{AZKDhHP{fB22lAA~+|Kn5{ZtB480xkwkSp^n8 zAl6`3`V`YSi?`q9!PYhhKmIAB8`sdaWBT4lsL28Sp~V)OZLRpg!d79TgljP0Vk9ch zFYalA`7#!x6>jS`i}&AR@ce7AzD6*DbwKFx;iTZf)FZxT&k38p#OacLVX-2Fpa|O1 zD?#1c#@&1u*?EY<;3TzTOMPDQ;Sv?WBQ=86ikT|;`IhI6dzx3yjTrVFZsu{fzt8U0 z2LwGpw8Cg1I87xGw8OeFda}z}VHuSL_p1Rvx~KVY*W#tm$QnfI2J5=%sgfuog2hLP zIUO%}@acpr&laq&6qJRgrxmk$oA>U%#k3mJwr(gbn_D)Ot%nYC`*Mk zFg;N0-u3u-l#+Bf>J$1fjvuP4ADo&7-Hby;vM$y2MI|AD*R~&6qG{FO3ZG?ay@FA{WMU0(*}&V@ zFxCbusljLhv#_UfYFyFh6!hjA@W$}ifHBJXSmXRHBX0=D9`h5R(!C!xB*sd-8(k98!5>MV6 z(bDAQC=^y17IVwJ+cVC6xL~xg%KB&(sphraR2s0$moA zrKMkL{8V`G(Sq$e9u@i+t56-p(XR6V9^V)wZ(Em+B;rjzF+ocNE=yoL!lTgkv!fi2 zx>RCLN?VO=1(Y%zSj&%t=e!a6h2f%tz67d}u$66(a=oNjIJ~bw3nNo9)CH9`{M0D^ zw$R)u3XHOpNNnsw+&F`2qEUH{Na})G^e6?`yiNVRzhZcH1M|5TnU4y>)MJA%Pzuqp zp^?pcCk9^_^guE49{tW+xF7xvdg~tLu$NLzJu0ZCkx$H2NO;o8)1oyDdzv6Ue!A)T z^S2kQ6@6YgC#+hDZoug84ux%tk5)wLlvUS2_p12!iQSyTa(LAgm%TRg@p%26L{ z75$=s%5wLEikt5&n2!r=VNp6HiQe^#ok~3?{7n1pju#CjqQVmxg+qqXa#zOylB7&3 zR2$gN-i_P~5RM`0>@G^v&;qyoU#~3}tC}MCcppdPQr19W(N@r6*;9&l z3gItH#m|cpY>%N*=wumtQbQpdiAiPsF?naSHek!x&}VwU{N10j7_HOSn*P(zFdvl! z2iE(Tl%y3-Kw~i)$`VYqK;Hj3v%mfi@X^mG@tCrotZ+~vbqt{GnW$1)ZLWbt2Zlq# zY&zn*pDMIo@Ov+7UOC@mZ8!rrPu`%IZP<4fONlQEwxr~Tw+sHCw-i6zEK$V@E2T!s zf`E#4MmkU-G@Z8-eqM5)22bButX^TdS@YhHCTN69pX)Oi74-ViFAX)K9FUT&jKxwA zrk1-O)x7`ajGfJhldVnet=`&QkqA2q!;%ZH>te{Xl5qaIZZ@(PCeovM^eO2Yg>|wC zGX>^Sqvn=0seRdhmtM|2>~ag(}H=4JKz>f;g`?g?VO3KuDGB(gmM60?}Z4+Ni!eze(?zm+>p>U`$M;N!GCOfzmnH-e&&6Tg+bnF6M)`7=$@`5WOJ~p=g_ae>r8c zvwdk#!3)+1gTCQl(dRF3dLAwUzw*q0FJD~Y%5X-X87RRiMXd{_RgYT-njhZt{O6D0 z=R18|F`#c_AVV-{GBLM0^Ah=F;?f!wpezbhDA~I==k4$BvA^Hr;xi*gYZ_bDXd5}T zh>5Dt!mz)ixp#BMr|(YK-!c@skF|m*AL%#cyLX>jLWs?cx-^sKs964N>s8BvnbwYb zG%3f?a_AwLT~Vrq*6G|@IwvJ@>O(qFelNE;h*L|(TK1JBs#BtIN^`r=?Bn^^2Cj?Y zk{337K_Qx;6_seVmEmJ6d^j-Nw&7vCd`aQ#~-N5%Z3Z6NuI6u$~3lP;~Hirk}z(>3A z(N4kEqK7UD`h`k`03ec~fOGjwoI-BQnYmtrR;o2hpePmMO7=HB)9H){pL#Yf7ObCD z^oBO2d@8D$Fy5WB{lK&P&{0oq1N06)^-77wx~d66MEGK#+f=7!s4ZPdB8g1Qhka?E zZ7g%>2*|v&A$g119qRn)+KY{7*BydRe|JAG5>qmjP#IxIE5^a{u?$!V!XU)v=t^s< z5ZL#Di2|=nL~9C>Cc>51L3QSkt7VMJX#a^ZNUn}fqRbcyJwVkJ^}Uagtvk4PUq{x? z;`>8XQKCaYrhCZ#CVITbpz;*jqKg4u>4r!fAuF<^mUX=hZT6xhRRl_{(1m7E54b-Q zHg5}W+*kB_n!;*=7^=#%m^+*pg6U&QOKFLmISI{l+fLZO!;#bLAr-)84+sjB_SjO8 zy2MR2+n);Kdo^WWQnTnyv!zUM*M7+NVk&?16i z{EBYZ1Umck*+)arQy?f&L4~|KM;*{hBX3?SE{-q1Sr#+-cM}4o3bEgbR!pR1VpId$ ztI_!2sqmNpr4!07F^5!iEAbe{va3#KD2e4(-iJmdinJUz!1>rHS+tI&T7HUb?NZ(Q z2$2HS8%2Z4EeNteS%oTw1PW>|h!0>>cdq0~@jf1ElXAj+@QBX{Ln@||lDL(QNcsd% zVPX>f!U@w#fh%Gug#^SaY$)iLCRTiFj|7Da+20OA3qal&z*^(QH|^qr5D6-w7-^lP zoC0eNiV|N3s%c;`4k#5;n>fMOk*k}+L~n-nNfJjte*--cQgqX&U%a z;;s-9PIvsC_rBqN(ky<85{lqm9VL~usOe$_}Q>o|KRlKYCqaUlOfiH>p^5rQ7E0#Dkf8wa^fHe9woFI^2>X zXbLEhGT~Hcg*VA98Hj}J>h`+n0LJn&NlZYYv_TVzN+$^rQa(&!44JEj1SF4A2^S;w z`z8c@a9C|)KXZgyJi#kMY}MU1KT4gXl**u*ArhrhxTRoN%6&^slA0>{9K}ox>Wyjr z2$IxdWzx2W5Isq`;a?O*DBWQc5>FmqN}NVP%0(zOB3Q= z0w5>0Fw;sk9tn|zq!uFfpVGN!OLXrA0YVhJqGRBup^t3zG>PiOekT%D44s}|tC$0w z8~@~f=uM-PW<5gmBqTQ@2v!$O;*-%DT^7mki!4@~*iHGE9Om5ty!4P-yy`tM9C-@fgm2015Np} z`2eXyYDbr@qW8wvb$x7q@9tOzYfOHxkPN&=g%;Xu(#KIl9%JM*(BlqcULUPB#uk9I zjn{!(U7WM(bZYb-B<2)!GE$N*7Z)l%pGm|St#GXk#^|U|hiE&-Hr**elM7_-n1|?r^lT@wXN9uX+CTimKh&qy6)uOqGZANT(6FV}TK@+dDytbu`^&@= z5|`DHh_#JnSUC;Tn)bx!hgSefVYMN1vFvfMy3NOiw5cMXEIy?{=6>7}i$gU=OYTpi zbPO41%*5QewcBPH6h)ys&KyCTsDi{1RgmnKiCuX$R;eWV0UOC&Fo;bCR{C3ML5qrY zn?eIM5mg19wyKqmI@MJ!Rf=RTm1dnKQ%H$L4Za2mWGr`(Rq?=QNrS}qNqT-(HM%4F z!8I{p5N19w`udlGa^!2ibe`W0#pgNFR3Srn7E|kHi#;5x}Y+K zxz$wK;Iv_3pfZ9p5KO$jMq*`1d#B~KPQ-mIfMR?8(1|d$id95K?XmNkFt4c>74>3) zEau2!f-DvoAFu*e67FBe716B{$_z2LxNB*l10koD|8$>aSq%^t)q=9@omm^L{f1KN z3xD)SfAnbNB!D2ImUQJbxsW*ZaX?KcE?8RFlfM!}%iehe&!{l;`-ak(23)=Nf$5@V zTGuQ@s^^Cq>U_wNOstqiRWn2uI+5#;a9cr}l%V3F5C_p1{ zronoR@eWrnmg1x;Mmtr%xRx4Ifwe}- z*-+Q3+uPeGVvrsIJn!B<2)V27@}FN|WEG?K9_ItYLUU=<ku*U?>;Lhp@w^Oz4Gl!~=5K}9ZXgn?ghaXjIf{R6Ha?6K*&ijP-m~8d#i{sh*U6}ptiQ~ z_ddbj{|IJV6op`leuOuEjN3Lm@=^0T^1arG4c;&6x~?x=zI@_k8iF1$AXaTD>6XR( z!W4YW@ZKZdadu$2abcAkX9t|?gVmnwrH@T$G?iE;)sP1V3qE`};m+=i+9^tFI_kuu z$6)~W5IhFUV6e*C>Ulq@o=>5 zXC6(=Ss_wEV6mX`n(F*j^h;mDyznw|?h2u|4h#TAkcuD`s#>5P+{1kECiQzi!tdOo za1LGMD8kYEcMrPisA9*>s91bB`e=f7g=?L%jo&$MYU4%w1?5Nd zEGQqiI4t=5l{KEZu)@d+%Ga@V9I@l7O9@BDSkCkcR(nHM`j%1$KHZw(JdFpW8O>5-}S_?I z@EYwkWr{`yV^PB)#j|HAFI+~>pJ(yLU*qq6#K6}m1ELIqd1AQi<7e4fv;1EY1BTPF zIhOsVT^qJ_xmo`ntA&C_?Sg%3-Zg zSk2Wni(!r6;pWZ)=LKt)@3B0NN|@+6Gpr2P**JTZQU46$L&U&?rCe%=TqgKL*rvz& z`UOyed$?daAA>T<>v1}_jtoY}vM;STvzYMZ2ee&JUr3yc4r!{7S=qXL+gm{amZRAHZpXpZuE)%hTU`# z8i;6YX<1!4!+bHOatnNL9fHn_c62DB%grfGuXa4Uv&mQQf5bE6hiHUKmC-xk>ES_E(p%Yd=YC<+Ty*(hUD{Bnt`wR{LU8l z`VZM2jMy9vK~h6Cm2IDN+vIvy30@$CK&=$!$_(fu@_xoJFa)sMBKj8=8`&;gOdXuWEFnzFfq9_;)R@vz4mKIN3Wuf^p_ZEdb2m8ql`o;!&Jbo(%9R18C^`7xBM!d* zL+Y(9P%#vLrke50c$>Eu7uX*52`UAdMH=qhsvi-eMM7$E-Cx6Adx>!FI+YV<^D&nO zGk)*+KL6^e0mjv+q2j`ovj}i=QuBYjKj#1Xq~d;17+0YSgPgfUdHs3Rz4uYm?bzZY z1zQd)V2|_!WztfQCacrNkxsJGA;Qz|e%v_bd+Eu9n5H-y^kN=x@DLo{*PLHJ%NM@* z6`p?fc_ajeqZPC^tgNjv8m+Onx5eiDJ50wDLQzmyVKgWh_DgnVRSbEbIOiD9kPy8A zMNv=`Wjd1qqZGjlE)7dojp3l)DGRl;-|Ba&(= z(?QDUQBUX$0+t$LEiLOKa!6YaJ$4F-H6V=nAb2eSf;b2aFg^Ft({~+RS7t_pyFdNl z9+8>VRoy*UdRxy_XJux1gg<}&eb@I??SBWeosI)Tb%3fb(Hk>jVs0y@|Mxzx^eyT{_35^Q&yGS8SeJ;oOC@y!G}rlUbXp;Pa+0ti?H@ z^-q38ovs`-k&Ri+D70BArF`rXkH2+`Ti^Z;n`h2)?YDl1owwfR)}Q=G?1vv9dk47A zotaOhQR`W+XB07VNP%1E3bq`f?aa)ODu#w57!L_npbgk4xZsdr*=bw;Vav1Iw)|cl zS#ilecQ>#ZXm9yW*@U|a!%HFPj02$I&YjzQ_`&Pzx~H|dGqaC)H6?66}|sC<(uSt?Yq97vL572291=lr3^kB ziU|@FYH7E(+5Wq~CtkV8`Dd?j@SVTp;h+2o)ojKJhC)(0X#|`qRjes=h7i(oi3<-q z8@b(6=uUKl!P^3?Ao$DYIt*J!m3-Lw1N}Z913fdA_w4O z3V2xKz?9G#p}hgt$$`vaP`9mRZm@P4kqfAw?o{o+W>Ls&0DrnfFXuyd88g{To#XU$ zQIi3GB9A%A?VGNwT|!egktp2%7@j>mhS30rcW zM0c!-5ORLS;sZh?r$xq`cx0CI2J$SUC?O^S$4eL2xO91w_dnd?Ti^PS3uo8({ong< zxO91)*Kge6Z@&9B)2U~5Jj~g2on4?rGP#U&^EmBM=VAn_w9+-0*3^%XTokM@s!GnD zyU5DwIs+eA%j;nBA_tRM?ukSbXssp+w8yHy^bJNWCICL7Aq%-NMC;i1f%``-SDzX4 z2QRMif4_O3Z@st8KW)#rI5d3u+<;XFX9fwPjAPKYv3=YLo$3UI^*6C@PzK=)Sw!{z< zgMUwao`O2whg_kN9#T;hgb;b>osZbrK4g1m%GUOT|NW1@$7odX&WHDDrm#93QJ9XL zF?ns;rosC*Wva>C`G3mOK_xOPEDx(8N3LWTrdZWpVFaKoE7s3mWN`Tz%;pAK6j0ZY zHCzN-)?!mvvOgG5JNv}bT-2syB=yMb2s51$eaalPh49cTKYCE}@wJvupBZCbJkK}Z z-Q)jxcbnCsVcnhQnawrM4GN4TiewjC?DU8@J3xU754Tfgw_)xtgZ}!$m{Rj!Uv%c$J$_kHL1o?h16c6@f;o;GMi3ug(3Jz)26;I ziE?(Hx(P{pS%qm)aBpRWo#B|Xb&aT|9yF4klQb>U4?kk>=Rc=CI$Ubc5cBC^bBEX6 zYRH4(m|0Pg2$B|HPd0?-pH(((b=ogO{}?ms+W`^=Dy;W}km z;Ab@ldpmse?mKL*ZxBL)9-tIW#s1zt_wL@InN2ARhbv1Sw#xmTLmnO+;e%jpV(wI9 zP>onCR8>g`k?C|w41uaDQH@L{hwSe?WOcMjSq$-QBzO>$INqEQ0+HG$Z$@bZCrR_G zNiIGlGMOE4I60tcJW(xOY^ST@FvcuFAp^Lew9ayOWsN&48(cp)pb9lgAmn0QZCkd! z^KJIudmF#Ki)lh?4NVeyN5G;S+Jal-6}E>%q6o!8dh6nIPck8CGgwK@i>3!Oci%-` z`ZRWBgGz>oG29QzAAK<6ULE<`<%)|#%k_;hgm5VjU+Gm{Zr0P?F6==fa-5kr=c4Fq|gLW8a$m0C_7&Di!ilus@k{b8Eu6m37XIN0dbB=^^jkxIs~rXs$F)SlFa) zN`8iO!e~6AQOm9SyWG0}kXhSeU4>f^o~R*%%fuyo9L!^q4An^X$8E%}p$U!-vh^aFE5x`^S z|LY2Z)fSl067Rf&`RJz<8&}Z526h%vsrjIB+_~xb_Pv@5mF4Vcz_4)KJDl>?p0Xn= ztgVh2)rU0iyiR-bXH@}#B8k%X#^l;W! zeJ8?fgA+ql8p`1S?*`nwcgWix@322zQ6zH3H1h-vX0utc>LpdZgj}#`ouTm) z9&CSvD=cR=E>f71(1t!ST`-skUBz%TsrtlPq486;cJJ_T{{c#B>e)6eblqz+g)ja6 zcZ;0s4ytI8k79eiGVB{yd=(RtC2z##d33HmG57AmUlKU z(MU-VBB&)UCQtN+R2n9`HlwweLMa|@6Myo3bmao_@~^;fKv54dIA%WZ?!@!XK^FlH zU>wD0z-T;XOhbI@C-|TK4R-e?QfNv}l4ShHE~<(4isZPF_(Tuh2}6Lw7_A?}x!4Qz zQScID6pg9QOr>*!EmVK7yg8Jv5$D|f(*2w~SyWo@?Xooq*lJ8sChRJb{j(++c_KpV)2UGu1=c1libSeG zMU0+Vz0cP6O{_7jkI!RFm7rFfQ;4M?LC6fOky$fgckclY54J!&g-iYROjQy?z=t*o zu5_-c<)u>*OoS+g2cscBxNwCscz*fbEiTNqu`%EX{i39g2Ri$IW-C4#pWz=aUFIj} zud-K-u&R(t!BRiIM;BR-{U7TneM^1oJ=!1se;9$mwJ$=sj!4O%@HAC&&2e`>Y@|9 za{ejON2yro*O4DkcMUxug;eHHRG$4=BTAin%t8|YdNHxH;6U>KiqO*W|`2ctQv&iNqzATBRK-6F);_w(h zh5Ort58lAP@pqWJ?@&6$7OO-tAo*7)z7ibrP z7!m1l^l^A0N#LVNKH#XivUh0`orcJH9-ReAb~=i*2Umv)*pwlC-JkGj0U1Vd2_@g_2D z4{3L64yO+p4c94)(L8Zql;AyeeZ;IjV&-Q=^$FsLB=#iLUMsm=eXcPZ*2mThLV`gk zE-GFucUDGB%V)X0c9v@gTU|@`@0c6~gv#%QR-< zLA{{I9ubIR|InB!XI!E}3wPc}_m7AlzlU6XhIsBAX1Iz_U}K9+4~e^X2)93kJ0D>8 zA5d5@#gK?i-Y1!#Or3|N^DZsL2~L^RTI@;q*$Xi0~AlGslGA68|^83 z=TK)k*t8VHFp5!=sVXeCtgzmr2lvp)F7eLm=y(MgjS%BdAJEwh4)-Z0hZyx}VNq9R zyFhzs=w)eKh}(X!^zl37n)>ZZQNxObJECNKfPCTp|Sb!4tjDTo|VRyv-Ht9m7zJA%(GX zDUrrNhz*G1aG2JiQV?7!=2ahXF)`_jrVx2hLzJA>B#Rqr-U4K9@BmqP7-JzSA+(8^ zl@#!@IcY2NB;^vdfW;tUiIT$IF~-c_0mOJR#Q8n%Qh7}=e7?X{B z%_>nyrAr;PZkPO@s*{DTh4Y*#o?h!F7EZGi`VShCpyW1bNT$kyd44e+A4O_Z)bY%z zNMd5j(5Ew!u0E5BU0Wc8J1y#*#w%z*t-}1sJ0pcG1j{G$aSRTsA$v;_Em?|; z#=iYSClraP$mSr<9Jl-Ic5}`ph!RuFx1gFEG=Vh*9hI3Zz?-Bo(*`q=s_IhUC_N}O zDS(l}@<}_}%qXfc^-4_4N{La*`?PV3BJk<=e1wp=lf^Y z#@*?%jGX4gHAY0u699QH&}&u2p|K(zJ!=2C`956Q8c!ZT9AE0wCaPVNNn$iAPIAqlPo#z> zS6nA8k-Q9INW51$JyIpJeCBt#u3(^pH<+9On10`NbnPaRiVV`6j0hGXs!92Wl57Hv zIjywQlyqsfS-MmZ+m%|)bJu$Kh9z-4rhB!W(&&8iY=#{M) zob8@YKsC8c#n|o`%Yv7FUebGu2Kp1ml7?QC>P4x0+FXtrQk1R}=3cuz?(!XDX*zxv z`>UKbj4?U)A_JTlh)p6O57wa8p(b^=vdP(v(jpphQlN$H5s5=G-yL&z6_QTHjG43K z;4r-#F}>fU&tns<7TJF+IRObX|GZ{mmadqVE>9#affa*VUC`=DsKYN(Q1E$5voJzO#i6uGfqc*(}E02s~2Xh&%_U#p&H&ZH=CFb36v zIvUy#v9ZBQ#7Ux%z(A`dvrqz-l7gbhHVDgk=*Jxg9VAOO)iU?q6Gtb&^C2G4Q@=kc7?ck4l~|>!XY6L zCr6mW9m4(=a=1ekYg{!XT9>p(UgV`sbnIYQ!pQkgHb;97X0f1!5-X5`B+x3ThgfUk z2MH;s!kDa)b9P(rF%enXRAi5haf^8!X|pAdOJ@Fz$taBkC9$KD!8mnd;9~IltO=u4+9~qLd{Au$3m|yi{$!+Jvbj9%9 z7j!e@_=_3h_4r04rE&HhOm%S=WUY{&tVAU?4FN|y_YC3stAtB0!rDc`a7=Ut$qs!p z*(2`WLO*&Fz4abtbC@_FTyitX!W=q{k)Xu_(`9!I3K{1nfouq9rI;0itXSeW607<9 z2m&+Eqey!cv4?`RA-Bb_`5sfNI2P`=*NhxnY?0)qBO;QH>sDGq5sMT!%*;1JLYFcXZYK_O@1_4;XsFstfj~sD!Z?G$e}rc+TnQU zuzq)rELs~U3_bBjjGD(39-e@q=We^ljYSQ-{LUp>*JIx-Di|LKZA)!O#H+8tr@x9m z`!aES2Bjbnh!U_dpsNC0N3Om~ap^VMx4%#O&Ob2NzlRGY(Uu@FH4;*bFn3=WV<`%Y zYU;?840MyyseB+vAdVGtrh*NJjw0$j(Ipg$Bz&#`qPNIIkOxY9&=Q)6m|~7y7k8EB z7R8c0JAE@!5y(yLWAv$V#0qh!uxT-83Rp43A`%Q}4%|u`EmN4{!5<;RVv(ELdMdxhaOELsct(IvFTrx-e*7|*Z_xwG+Fxuy=X~EAR)Zp{_ z8pkW+1HQa^$miD&_~We&zWs26Ex&=d5=-uGmH)&T2%3||vhklhUtMn&n{wEX$@58G zj^$x6#^|R%{pnM8!n{bk z#3%-f4~h>hvIfPa0dl6q53=tXA%>izLL_!A%POH56u2Ta%xUh`NE;|z66(~iB?UNQ zzkwDprlMjp)KEh7w9#X#0(WkNxl|H|kw!u`bQKM4?`AXzrWEY3q^Jsl)OekuM=jDA zoRxeYr!e>;OboGWhMI7DjDdh5MB#!S^53o9I8?pmUbe7FZ0?D(x7|#>t*b7q3wUjNERcZLm^*w(7(iX1`cc8BEK`=h?M%SB{Y1S_x^$fRr z8yjZ0S}DSW&x~sR?Rm#^y2^jt8gXET$*Ynvs4*!})WrbExj7=K|4SDyIC(s(Fgstg zifT0GDFyn(FFxs&Wkc_2MoR7Uw6URCS%()tPq_9HGYs|7A)`?9@_Nh5>q23LNr0_d zc>hqjb=XixFeVaP#co`}z5FkT4{j0O`!Uu>#2KOlqK4i`Nr^)XMw$xh6)6qw%z$`S zXsa4xzywDVg{f~Lgv=eHG)+rwVOS;2(^`*RGq_7b+Im9R^SF?T3xcKurqqdR?%goi zbtWpfe1fP%?Aic#VMrW;j}eLBgQuA_SmW3nt%AbgY(hP2FomQJyBg4e!Jc!tiA5Ss zQ9MoVOk|OkOy|N7BN#`kmJnKAtaka=XSevwcpsVuZ2(njEdJ7`Xg~cg@n>Fuk8dE; z9o)e~j99c0L_DvRd;FWTBi@+|_{XNC(E?*)pT^pykVaLAsW7>VFn_Y~h%NSX0&T5N zF4hG>J?WFjeT++#Q^zLTVIrfE7@I^mc>X!`+Gm&zHaI$(GH9oK<(%Q)y|T`iFI4P? zmfJ@yGj)7$;Q7}3`~2WROWlqWsi70(%r)#YpC{hGi=A#`O$sL)BzYCOU`giz(XMjE z5{JO5!IvpC?xLX$f!Va-{9u)@y!a}wT)9pY13!582LJT&J4~ljMx$YZ113_gIo#O_ zoi@ZK^#V-6kQ4w4p{pyLyV^t(1w=4{R2H*gVXQ<65F(BDw3C|WSI+bG*FMin&pwAn z<;F+v@mFvD6L%*MF@p++!%M&n4dq%%*o%b2^xWs2!8*AyxS~i5Q5aMmL1Cnad|`Em z&#r7^^bneWgak+G&2#wIzD9WQSBb5~@^iE~!n6^oAlee~V9bQi4!8Ky+K3z5tL$q@ zp+W(Dz)Lmdn{?TbkH^QoRL%XIop+463-U>0UL;#p*-x27u?wyAaIBkDcfIbI79ub<<8`s%;tfB2POXLD^0qr#onwz#mi$^ZI; zzhvj=A*+Kik_jr!utWzQrYZPga;os6f^il!3qwuv+g~aopBYa%=MEt>D4D=UAPk1Y zVvN~&h-RsT5X*(}2EX&guk!x>7JvHVzh&CijLax`Q7VCv!5%3t=D@?k!q00YQ(}{9 zi&MB*z-6ZlVuS#}fMBo+ZZaXf^AkdRi+J~Avj0qUsE&_q)cJ(Qao3y zhKr@=ok=9BU5ZUC23oumu!V5(rwXL|QK#Oe1xOh;@vHD_|_UYPmgAUd8g-+K`Q^;r+HjVu6j0XbVhL zC43q@om-=8p!q0Ni$tUN5~7V*JQ@v6J>$y81-|~$XE-xj;XnQO@A;b#e$Ls^8o&Qb zzsf6DuJeWGU*YdRxIt4l6n2mrfMx+UDnw12YSD>#%$eEy?W0K@VWY`zJylxYa(-=t zUwQsDEbxE)m;cO9c5hLYC9keu;rGAxTm16%m-(w3KVWxy$fz770WA!sG8h-2(QJ%9 zda!Fw_I2t}^^8nIWkIkc686meq(b4=3FCA4YJi@(K=tW=MfvjQ36mpe{|4hDT7~?r z%CLY@it{WGeJ(@L<8`H{$(Ah5`}q61?98V$3PU&&&DKmuesa>+KJu_m!_R#_gF#81 zu2hwvlHHpTD@x-dyLHNr`_x9o=dLI}JMg@@J7I;uSI(`lS-^&i6p@tckTw3?O?2G< zJvWT{S9(~ckmsT~U!ic8L0Pi3zsFzx^n3it&%Vb?7oX*eSFW?VzQJfvQHT(Hrs3+m zQp?_@{(^GCQ|l*VASJJ4qcOi6y{DPYSaBuS*UquqPBFs)qiT@6B3*DKTRCwFYIZl< zLB_?hrF`!>M_Z&Nnie%4H67z#gb?vspjW@Z;Me~hVRePJKA^nvDpn1lP4DR(1DYSD zYG&*=bNAXw9{}HyOgt|Zzj>AF z%IEQuU8WD-g3(#r>Lo;6UrTCYwoO!+1( z4^4$?ekytUB{A%sKXfKy;xnFK{E=1b?<4mJF$Nn9QrFnSZCsdASL;wZW>d$H9<==V z%_+Zrsp7@;5rwV!`o@4?I)@UQuYw_Yb|WKfn^ z5v+n~J=#XB=H!g0S~J0Tf!d&rLCTb3TNaKcc)s)YPdT@7mf!!%uk-x*i&*D4YG(ZD z&%V!h-+KeEfwgjoN+LaXUI|S|6avXqJ7LUEN)d-Qu-lew)sA{#8Q7e$m$AP(M|1_T ztqJ@4#7RUpR>0+KpUw|v9gQ8b)ed;rq>M{r9xe7*5{oAa_M>p=_??6&5JWFkthny$ zvZn1_atpB*Wq!Q(gw{)!%u|yNQzgf`5sPaku>BEsvPD=~O?|8j%g43y@86rU+j_os zvEp;*2W(aaXNQhA4r>0>hZEk~x2Oyl7Zrs+!tCC`96U&iXk4n?=n_wLe#-RoGKvI+ ziNe$(6$mW@YoI82=fQ3Mm%saSZtpzccYo>YY+QYgzrFEe{?G6J1s`nRV=x|LtWAb) z2*im`IToE5DTq;yU3hu9M37+cN0E3WFiz>3))=bMkbBJ$|Ni@b!Hv5g@q3^D8lQje zMSk%9Tl|NA_%?TTw^eKiO%yGAbFC1=hix!-jvl>v=F6F{)Nsv4YvTL%ekZJKaqlkIYN) zSVfRC(3mK45OE_xDZ-aM6J4m{F4gNh{FVK?x_@O#6GJB|kh|*pDle*5EpNV@`_q zE!!4-IoRXYZ1I~^LC~Un+DKuQTu+^XSEjv)5wB4lPo%9*9&$0b}84HskL;_&I-n^9G^y6s2WYRRF2%s!@2@ z;tnMh4RlFF8B;#?$dr_tYNOx}TlAsDUZ@Bz8HI%k8^aaars2l@kGXO0Caoydpki1Q zcmrxIrj3M$Gs45jpe+)aWX?wEF!Q56g9OJ40dGrg)a!ifVZ+r?!z)!w8D|(D;m+Im zd+#S2Ut1s{LTFN2g7uivK~?ZUy~?+?*LY*L0;Zsnh>%Z+P9lyYzXhCsvbLUYgVU5# zeA-B1e&E^5al*AuSf}|*3n`}y*E_x=O;Jz<54YZ-{pnxfjAd}~6&kmWjYkX!w9e87 zrHzT`T&jY>aKOMB+~F4Ct-r^<^<73s`$##UF$R-0PuG~^I1uXRV+0dGrxD$5u|^2m&17ivOt(#sSo;K7-E|4`8Q$-&% z#KItF4AB|X2MQyU!vQnznT3|Ba15M7trD%lG{8=a-1n5zM5dE6Dt#XveB2O}${MC& zg}>Z`l|uQ(MR=v!qF@GLimf3`)2&EW_;vtN8Yox!s9ocaADrRaduMoPh74?=Yb)1z zTzcqw+B}vz9>^&TI~VZBJpB3Cu?#snx&mF;B|6v9!XxI^@+3K~7Z!gfAQo3zOfy5@ z{~;l^3}2n%&c8qy43NU$Dnq3P(ITZ$8cW#*2HUrg_kM)D`F9L=Zc|uGV~TEqStl(& zl|?wF`H7hnfx+*!$wLt;%!>Pi#eTHxCY;Y%TP!twJ zzWyf#zH;p6CqNJZN>e_)hVDimTIqL%_NPJ551q@EmbTWho0?bb&M|j1iJW}kYxIL3 zQy=Y6T>l*I^7F8A7K%YCs}d!~296GK_wQmqdJ}W|4a%eY6xI@531}uOJdWDZ9Omn* zbFD2YAR<9%cRitwuxfBCAeANB&V7^@(hFhg(R~jO!Om>z^;xPI7>7#7vwQ+>Ux?gxUa9VV zMxd$+9{4r>Y^UJkS;f~jMtpAgkZa`;D<&XnX(^bg<$hD~v&kBNeXz;*Co4RRBL-!O zBM}0fG#-a`Px_T%u7vvoHxEHDCfCwEW-JSI&##pYn^WTF{bM-^GWOxl^j*h~k|?>F zq9_@Jn&SRDwEOpIZ@!MMUce4lGwDe{XA{`phP@rk(L-#QVG2WQUBA)hZqIC_E&z`1 zfi6CzZdW>SND%yiq7zTt2OStpVf*_Q1!)zTMwki4CvVN%5PbTv?8DD>gf6{S97gm= z2|E#nf*C0kspikLg3drDN>vNQ0uhL&qYqXj3ShJ0**)+@>WIaa>wk+AL5qsrIN)!l z6>l~pu9xR|ww!U!wm2fQXxaCU+wFk&r>or40gV#|g-|M>CQHn+tUT%2EXN75AT4Y- zoxc&twW!WXjM4tlAN`S>7F_8Cx&%ZQP&+JL;PE4iR97#@!d~b;E^}<2o`b!M8aJE_(0> z5uGF(U{Mf^3MS@0)_u#Xe~yu|&}<~tH~Q2EJ=76BNJh6nVpPq^RhE=P;mH-*ve3ru z6I@w(ouibJs1h1maVKtacLF~?3{uDW$O~ZN{Mno~7JqlDgyjX(RN0=UB&f?i z8Z~H;)aX0C5y@;un&5w8Md~-FX3Z?QV*JUYFGLj(^^~dFP!G#_R_bf_TK$4I|LK|pXpUdl0b%f?9eU}?t6a~hl91Jr4jYhzgV08`)h=_Qi zG$=z&LI(+tGO2dL9cK+pK4B8 z?+xUWrTS!}^t1)*gfS&+Y?)KmF!6zq$9gPs|hi zy%)*Eu-#O3$)_yyXS9&_ERc#$y~k%-f&^2$fO+y1!~jSt3v#Z+b!EuhUP z2m$Pj=mMxmq6IC9Avck)NZS@cIdB-N|mptR&3YpVDGHS%@ERQTgA@4d8SH>)aSP zK4kf4IrfXwbAg{u5SNYH?i$?;KbbI}j=VE|Um#>uQDTURN3ZV(nHX8SIrxwYg>8}G zq4$Y5&)CG~YHY`~9a4plnKN6>AA=ryP5b|fh;hz6o@ItdAcrpem4(#=dQC9LeUb&# zw{4>2T4>dk0*SWAotnu6Q?X`9{jrTw=3X2bZui$0GB($_@z*KF7$YGxC=q8C3O6v!x=5Gkzib&!f*{=~U?N zsmH#F0rUxD!OM~RHTPMm-D)pj{E& zsWFgd+SoZ62^izCW`Ynfp+Iynp`pX5c&r8odF|A zHhML8Z=N5O9XU?-M7mp%Q?lz88(q$Af%$8_R}}g-67%=wyqHCUy3;9UF4DbV_c&kR z6xZz27l+J!B{3Lc6eMPW&WcGyaozdX2{iO`l}zjt!#u+>arLG3(G1xP^Lu&HoV0sR z`P6RZIM3~)W5LVO03DWG&|ZDEo%A;@bcEzNJlz?Jd2|GWF~)RE%bY6AWaFYsV~J6T z-V=R0zfog}BrV)XO<|P6j1XA?iiG2=LvpFU$vnnFG60=T*>^D{mQFE(Z#^KmqR7}& z(R>1^&sEV%PbI6OL}GF_WLgB%lQeeY7dYm-k1u^x@wu(Egs%Tr+N4pSjhQvX7{sPo zbV;(G5H+7LsSJlg>VzBGoOoQcU;+e-i6AP7III@SqfXw zrH-m-PjVuf7EH>L(sfDtX~)J8Fi{vu$+#@3Y>~p+D6IyLLc>w0X?#nRh_#8a|D+S_ zX*7>$XC-tb>=6kO8-;->7!3-BrlOKmpVy!q#)gAt#?-f{#>{OY$LxIA*fkVS|7iK#SKPf0eMOj*mOV^Z)sWZsvubt@O<{~zC zG@TUm>1Nb<(R$F=eXl-=!T^p7G(Ads^g4i%&RFZTP0}K=@V0J4bp1!VI-M>j)}-CW zw61AmcEOD8ry!9=Ug9G*+++*w3ZT9ayplN0a17mXe&wN8A zK{dU$?fjl-Onvjn28|{P143kA3pT4UXR9%5#gNj@t5SkSX0hdAJ7H(K&)#fG69cix z*L%{_J!P1T)qS={R!zydYRtx9g_UZ+(3TXL{Ui)I+vFI(<@uVMRjPnZrVt@gbiyYKF8gH!#? zi^9AtZgcs`2E>Uc;pt0pVmiF9#LasJt78Lf@6Rmsg8Z_&&eTvec&xa`uL1#1!& zR}694*O}WlhYY7Siy_aho#Vo2je%OU_4wH0^9D3Pk?Z8D(s90AWw>5Z*piPAA8_a! z)R`=x`8oARYKB}ohdpR|R}g45A|Y_L81bpqb6gy*GsF=y4OmPBdvx(lQy5BHaIsin zW4)qs1?~Pl_S-2wdzVbnt(x|5YWY~7pOT_NQ#bgsX5&i}uKwnX@$*LnGo@_6XrSyZgK0dDmiAqGA?ctG8@7?*h4G^C^}S0rNR zE(IV;%$Pf$BtFu{z^bjdx_X8y!*wckcps^Qrwyq=kVu*XAs|7BCSsj3EDElyoS}}M z_jc}b;3q`qup#Ak0NJyUJrKQIChihv9nnW>-Dl&)8PEJ$VD##g!%*XA2Gd5=x5?-; zpqcN(IwjhOmNQ1rS3J`?+DTyVbs;t-uF!n_lfv(xOv|3~&R+~eFQ}Phxb(kW+&Kc- z{UwrpzP+a-dP;&bAOB7+qW53MPlVah#}2byZn=o$Qz9a7{Pl_rIz!970!=VDKLZp zGav9oR@O#rtgT>d$_lLOmV>x}bArU67?+#>WMdcw zuReKUvK!I2EtPRxTHD~_$|gl-M6G@5Dn1%p#w(+I`aoy`NBf7&CR6Z{(n4h&*T!d< zOeV}i&5W3yPfUu&=H^8qMCjYTMNmWZN)tTgg&CKAdB*w+Et4=K%mjQ&A*f=-s<}ud zBO0kW^7~BN8NQ4utzjG(zF@iZ6+?Yr@OK=>TdezM@VcBdvbRk>i66TApf3EJ`X6^~ z53(?4t5GzuCOK;#>95kYDV}R4rEOEldGqpRE`REI%5uc)sK)tJpg9X3tICy)5tr9j z7&&3*=#UQ|9LiI>?^STYD=sR@v|0b71Ib;%ymAy@yon0{v0cAjXF-aJ^hf^_x_Rh>z~u; z6s=1J!-mxtCTzS^v9;Y0n=-`%K0!qLX+{@ijvBRo0&5Z+OCRkiCKg;v3vLt0h7Y|T zG&P<~VNt(;eCg((_kauAm>(w|J zUokRkBW(y=fA$Kmy!sq%+w$@4yR>!EY{QY|%9V2r$Jc4wz|Os0thWrxg7v|e;k4qQ zo??vP#HCgiJ$?qUWFKu>7%_&*m26Za)`}7vVb&($yLjm=FTQq#avm5p_zu+-{ljZ()*?E{zASNQr1*LeBdIxE&hQFJ09u&;W=XBt!z- zCCX$*8_6`%gC6wPjg5`X!;HyH6eSzdKtUW62$14n>jk|Ox~gl<%02UL5#jDf5AG2+ zZf15@6(zHAAggcQyf?xl;`s5ieCIn?))R?KS#agX6|`|wb5B)yc6Ro#&T{qY6|A*s zx06VrEMuEu)<&haZq{0KX2>`Bb;6kIl%*{q<)){+)DT^QAT+*VO<&-*w*H9kZv8PA z?NyEzd)zzuh)+&F;H28;t?_U0y~}^fHTNdIsqvvgY(sHrPPw@t5&WGhV^FKnjOT*u zTJh>46Fpx}5EoxEv2vc=zQ_!;u{f2&bRoptIxIPAN~P^nD??F~*uvp;vKNDarVco* zxqWGiTNgK&oJ=@a)CA=zb>!C8Mc%%7jdz|L@a*6ub<4sMwZ`NmOzWU_9Q#Zi$bl$pVI?XDz)Sg<#Mk^MZZ!#pqR&sg_=>v1x6c2ZpeZm&Wte1 zP=yI0Oi56$0wIO#G!DdNU{^b&L*&Jr7B^Xr&ehb?{j(}q`I$z9_%c|IY(+1Ro;}Ot z0KSOAP6A_fYDv(V8%ile3qhrvzYYvR&r%yNa-9GH`Y0*7R;;2#`*@e zXg+-UjDzVMrxi}6N)Hth2BeE7ww6$D`S-I^DF&Q+gh!JBNm`iCE24+-c*Nn+341$7 zoJIF77H<+Bv@lEUKWe+1ar0+kW7-Gh^WK2kYu(_oILTYo?7E3_d z)s%^BT^w=u*B`R?Y>(gh-EZ^F?|zw`-CaKUXpSp1i$$PmLRUp2N)Z%k$BQ{{knQIs zTTyE|=HlOIX&Q}h(t^_}nL-DCn_nFNglk(@d3)_^=uM5+4U14?Wxza6`Pu$o@o4cL zRx||z5QvQ<)LE-}(+X0=SO zJa43|cZ+yi+LK~ZPwJ+wsb({D<0-VEwuvKo=VZ!w{BpaW&7z7b)A?>wHAC+Gp`mjO#_7kQdlthl$5YG z*{u@E{l5WC;{2#8!XQ%E0v({L8g}<~x%KKbUb%gP_usk82fw<@=EZe3HrIIbtv8sS z%y|6xF?CflbOW@}_#jMu#k{GL8Kg`G|Hsq`E4M{Xx5E>~^FWV6oJ<@OkA|$u7&gZVC&(WY}(HtQz>xMnT#r$7$qQ`c6mh*d<$%idS0U zs|6>|_6V=e84QLL#!yGavuVYTKmL^c`GQS1pss4lLCFH)-3L$Dp3Kojky;`<3n6l} zyUXF;ZfXpq46#W9tn&7o>Ih?kspe7phU3|k>7Zih#yIP!n+2bK`j~R)*xI^8T_w=Z z=H{5q%^{+M`@eq3<3~?(<#8fBpVV`X7Bjr0dOV4%=kh+}Hoi$)wU~y5Z`hm9xHeoc z8V)I}q4J(j?mfZ{9Jg-W!sr30$ieOju~9^Cc=C9UCr@@#a>QC9FliPX&1Y0qlK@*5 zw6TO-83GAL8>8UG6Q#iikV8xLxP)ni*{U!#MA7WZGydY}-}CPD=X~eF_xbIMe?WoZ z$9sRtUmgB?9?2t|9ip_t77&jI%pR32juY9BYGI<;tWceA)5@d*LkB23D?6)Eh~xt1 z_gbv*bH=h_#RR2@N@Zar_igf=zagac)nnTQdwr5XF8qWoLHGRyn4yjt~u# z!#N*+@PIeoe1q#ZZgO!@Hlb^Y9T?D+Wag8bZiuzT5{}<$!$G-4-y`(fGj5?1YWM8drzwl&&E9$ZRs_ z;r&MpM?(${4wzT76rO4#N)?QX0RwGlB(gI*Vz-(Qt){fO<7*o;&6>(&_@~wyC3K`T z&T71Gcvc;Y&VTOjd&`f@<+520^;QE;2c0-5@Y;7s*kXkzq;|@Qb z{Ab#N59hY92+lT)hmQK`h^PObjr z`ZJ)TXGF6-IPIRmYDoN?<&|e^ok1k9^XM`5z4v+DTGlRYp^Z+h$yCf(>)hrcYdm8$ z&RRlU^YG)lJpAw@VqGyD4pSp|rO+m8f((|{T4PCZU`+}g+QNbrroQ3H?2uAxF1iup z;Sev8!-FIC_l{E3LqMS!IEOU@tg+M**qxv7WOhJ>rz{Ih4o$Tf5F`;YrkAbrmmEl~ zz+&)LF^x43X8Y)3z!kfeuEj^@2Xkio6QX#~5vMf+H^7+`TdyT8$S0G1=F(uDMT_7i zbX6lprze{L`MI)3z-oteHX$XaC5Jzc6qhYm{&>LXvL_S`QW;DvsbfPG78q4fm=QQZ z+lGO4GD~JpG%1XUx^_I*O|kRM8Od3H!EueWm=+>3^5$3a^BndO{UF7emEHF=Av2tTI`Pr0ZycXWlG0sAg>Y z6ZU0+7*eJ$+lOcR%j74~?T}pxcX=zcHN+6vuTN->J(J;_tzw;_D=9D_5iLTagqiZ3 z_yzm33H!5SW=(|{m236dVzy3`^k$OmSglA+?(-xB(1ph7F|z~1lfSN5Jn>xq4afSc zbIe9S6>XGAQ#V32)yyB39Q|y-(YqFPIAB~jtd*4Vme_yToiH!4@XIp2&x*jUM$=Xu z#1|bs27hz*+o!FF{|Tcd7%2*e_mSg=kC-0pv9Yzq=EW@r!(o?vshf)F$q6U>N6b$q z#HONfNtoLW-SitWwnQk>7IV@ii1yTLcy zd}k+@NRf$5JU)6vG+H~HEtbzH?+|D0G3m5W8<|<|VW&Q35|()(fhNp3jukDKD&;6r zir#BU4ThA#=6)nyxn&!UdWo^z*My*xIWd=td1yFnCfK}_gf4!Yij76nMNR~0dy04b zCoB83TD1iGa}-j?10Ap$OyP))BkVekcLh`c*PvV^Dow0GEfgl$6h#^sL<@9X6T<3+ z{R0I>_5NKsj#7XYotn6O?pO+R0cvT<)48fW8@b&!`q<~QLq6xX{xzpXW1Y#k>C`2w zX=0aIL#33pF*=(Ny*nmyMozPp{{osbjfBM0DRT_?oSJT#@Rdp`UTIAmmFlvut%B^I z|6C1pc7IsDmTcuFnuVx@pi+}eB{8SUGsan&6z8R__of$F`3(E?Oi(~p=PZe$LA0Pt zL82x$ir^JeCwPET28&Kv-a+CUjEb(8TTA>Sd6f&x`_f0)oelAx9n#LZ6|Mg<4c+2d zKLgOJP6@L*Zza9>iB8Gu`n{?`gtM?(D zDp$3jLD|kMlSHeC`&R6D zM^UL&)_K-P`Yv)>RC*sc{~G?GqdTN5?MpfJ_kJ-`-(gza33~g|Id<#Hxw=2~Fz$Jm zldf}Et_f7j?<(4Yf!>@(9kHSaU?e;I+M0HSn;#Oao9?JmFcTJt1& z59DR8CU#`e%Nx~7*75=51W8xIo!@KE-#cY%BIw?nTS4uPr(^|awLFjH|F;6YYRjA} z&!-k}2L^gkY^0oeAxi=>ArmNOen8c$tY0>B>VLl#^m9*e>byNh(3KJdx>TAR0B`xQ&dN6(JXsc(*SCszEUvDe?(>-c^hJ2OnFQ^QKZ4Z?Z zgQAzF$mvsk*6KgA_nq^>^AzG)0sP$23){_A?rqR>~kW1rrZ zRX$Lg8GNz(p-!!c3`G@>l8~^&qDei?6)3Yps?&XEWjFckb4%}k%UhDatFm(_5eYs! z7{o5bBkn`1dFTFdEQ8_ zL2o1PJ@C%n%{LIG2wD+z5@#a;L#FA?!X!$iuu;1w^g#13YpZn-ho${NdS0HU@q`%B zR;My9WeG9Rcu(*(O%oGeo+(m9CYwPmdy*155c?8{^Z6sD83hMd((75>J#CTWxRMCdLs&2>hg`aJ zk*!M?7>`n+fy78vRh%53u)Dv{!Ql~gRb$*B6F%x}_b$)zT)FCPQQf_jNDx8n09B6B zkhBPuofG;x766J&9MERHdu&J`zFW4C>}d#1{{&!;sdXdg(ncfF^sJsyKuzsknt zn~b(@P?i_4+7e?$RUI=w+-0)+l z_LY48SXO-(MT$csNsYZ^vY;I;?ibF{ib}{$)i4CCEGWX9Q8i~=&#+mbV~kzm!dpvY zhtzgVWk%GhB&hTN6U%G{0!8SzG3yW25qOgsOQC5zipY(tmwD^8*SP)4E!NjZiEp|k zmkg2lyk_@cpZkv=^2vk8>>W*s4LCQ<4L|e#VREIpI?r+I+v!P=bjD9N#vr4MsI{A@ zwJS)m4!R`b67_-95avjI1jkR2<0r5<2Jv7lQE7BsmScUEAC~J?mM)zVVqCCj8W>#W z!mY1z>GoF`U%ic4-$K~|7KM%xnwl^>=6LTR+n@fNy-$C^e7euTmMAw&=3>TMoEDqs zrMtValJCfGEhnGG%S1Us2xlbtWlWg9y%aMq#EQ$)Lo``|!Z(!731xjk89YUhwDo4^ zQlg+F;Cw@20;LTUE--bluw?=-N$fbV6Kb^Q1oZ;?O9m%R5TR*mjDk1r+~POhev?;j z-C!^nq=HTfCPb6hZ-R1cM9c;U)BN3-<02r#lcsN;v7| z>7F+dov}jvBHf4e>sh{pAmb}UWziuZu|Z<$G@woP z9im3GMaoOWOJguY;xjPQXV_SSu?U}|o;x$3-OnRU6EK78Tz&hGx$)IM#I9XpQVI1U zXJ<3TT7xhbSV+q1ZeG5_>%%ct86N)P2l(RytkP(k?)|xQXr20&6R{ua{rnmC#!I8^ z3OcU(&+ssnN}48ih@Tu@Qs85tsT+Lbmm0b?IU+PlK{O1V!N!WBI>P$I&R+$^yiR-< zhGY|JqcE;WINA^>l)}cyu!(4^sPrba*O?+Pkua(#NDKrY5>8lag7**wTWG2nsOklG zu5R+pue`<0YZr;3rmCuBW$BiINhpV9uCl3FR5N_6DF-9odi56bdBtq{OO8%vSUo~Q zD!FQL&@l))H??nL`5_minwV-U>+xme(if2Rn*`BlU!f(X!ejO{qX<4E^F^D)c^6E9 z*}MT^PV_Uve2?e@D)U-@o~0-`pzM83bZcCB^S8P2_U~iYFEOb-wXcw1usB?H@naSw zBN1I|>S!5^FLC{Azelq;;mObcGg40w259Y;=gQaK#^#rF$4i;&B3CaYsxLNrHZ&-6 zIxtQLi*AKmbw5j|v1uBry25*(oD`)pP=9F`c?1a_VvP$^OqeIfOf=u=Ry+VlQ4{QVURX zXUj9dvws|!)I~x9OW?vVa(fHvI&lBcb2KX%uV3TJo8RT+={=4=eV14*u!X|f0`gAX z;&oz-n2Z%)a&#=a5S(W&$*EriB`=j&p(yCW^QV`2-nLV8BKPag&RFoCs#@T^&(VaO zC_xhbSdoDG3N%6yYKpMHAk3RURE96U{bl~yzx-F+c;!y2G%<$Vy*(a2{FI}E9meA! z@BjVZ)68pz%3@T5W0I;>^nef|Rnrh-U^E!wjAb^R;TJW-(FjvIX445xz2MrdtGxco zEu1k_b)7BXRIy#vH5%di)oa|kaf1sRn`oujKRRG{zry&WUDrlK?%cl4&dvdcNAvXH z^CCCK;C(|~)k*tgeiCO*3XORvE?mZ4xJjc6@D*ADQEO^}rfH}b6(KZ?OL*nln9a2@ z`zJMfM-`}q`ooT}Ygh2)Gh+3O=sn`n)~{emA&__6q?{A=gP4-F>#sAud=n4M7mF-*0$ukamM{p|~>$eCevNH`P2i)>I46uq+r}y3K`KUtzL+KSg139KY{V znB46ugk(lZj3}2Fol;~(bsBReA^f?*`U0P+>pF#xTD9CdHmAa13AmGmUIZU}u6Ax= zjgkphk~yGMLdhy66nF+Kuu`J|-*`;nxcTaBzV$o5LpdC#6UE5E?1ZD~gmO6I)jO~8 z$-D1yG@X+w(;^O!june)kt^K;MnjZ<_jwUHM?_IaPZd0_D7bv_BAe?QDUT5WQD~zn z2PNb2i0D0u);D%NT)dBo1s8|#>Xi}Scv(oPwyHu%sGC!U}D@UQvRFMf#~6ukQOTU@$yi4PAC(-y7-$pnyvQWVCrkd!SO z4ob9AG(O;Cs`o?d#065P9*X19nDzDbUKcDy;~Uo3*Lm&sD_q>%U^<^s*A<6{hcwlK z$!vx;hQc|7gw@tjSR0Ml*cfA+LN(wz`&Dumt|Zul!602*<8jtdxHX!=I$jruXo3V{ z3=9g*7p|}K)f-oN>*|7%F#te<1L!~`x$PVd?)L25r&Y>j*O#G3E9{-7g~yMb`(Ebc#fd zF?GQTxtbS1B8mDdRsMEeWo^2-Teq7@WVg*Gyb1{_htrEW_b|!63J?h=~j( zgg|L6H?Caf+O?}p=5s<*@#NuSo*f@E7>&5NwZ&{cPuWBznK(SvENY#+e`{^pogifv zwZRnyMd7eP6SYZjTGczjc9s@$Eajb!C&n7*g$waPP?h+xs)n z8fOx$(~CxO1gIPgFhQZ5&0WE=#%bHZWydG&@QJk2_WDDnrsghwtH_~QrMul z_tf*HYh$)2mXEd*X}rq(>ee_0#gMrxauI|At#a3}*7Q+`iP;}(&nQbNJy(f7$Nudylm` zV=|WbT_vf#ugwt(qcj&TY*Eh_9G^^BTU$?zquB=3Z5A`L69vga;%s^ZQIH_m(&UU{ z`nxL}(lj(GBu+go9cDurOVcRsK04wT7x&mG2E4L01_f2{+}}H5Z#GBiVGoxKI!A?^ zvnYIm2;_8hyS1;v*4th5G)z`7N+=vuLHKW<1fCp6{`6al>zjt7lfb$YrY;pNd-~R> zN2`c6iQTmA%+-pb?)t2^q1|P$;Y>tEmYslm!H}04J$~pUE~gKs&U-B^`7_#YNE?q{ zt_iJ3pcWF#WfEjMJKe_sMpKj})8h$GpFZaGuYQ^D|C4{r_M<1<{qSQhT)Mz$IKVl( zGzV?afUYm~lNhE0!$tF~Y!gy_+q8y;KCOlj6 z(IwkEG2K^9owoRv13J&4D2o(n5$SmD5-DRKrMm*6GBJ$;s|Os+BR}}%4%>%w4rju* zZeQSyOG6s1csi+>ghcDrdQKKi(I`|cDFc$X?H23b$9hR7eQ6_9A$UULmr7E=kh%i| zV81f#OdT_CxMU*3GVM%WB=w-7E&YPvE9z!OzyqmWUnie=n&myuJsd8NwLC^r2q1fuAi>_}eOqN?z| z;qsNsEb0Y=@tDm^mzYjwY*Y)bUcJuK2cOc^F+n=BM;x_9lAM9~_bOIvS!ZDpryKG$BgK;*WGn=Q-qfsg? zi2SfZ44s#6ZBDX?%3z}=VKd?!%zADkAy}me<&d43@aI4Ml>he^_j&vJ8rQFG@az2s z(IX0N&=LsQWK;D5RV`4NYAm)sOco}sRhR6F=#FKonjJHp9x#vwWnH&O>ROn2O>~M{ z!QQOl_LgvcYk)_wJ&nwLdcI;oq@h0EWi~w|sEE;RPm0!eIxBEXXLWUm5=6(0Yh85` z)fox@>~RKd*X>iS9hPh8`a<0jN2ZTS_c}QNN$+W`X+i)G$|iLkqoz`hMmrpyLE-T8 zIlunkea4$(hQl$3dwcwJcOPRkgYl5U!=5e;Yf~NHc6Zz zqS@I!U}tZSx~VCY5TimDE{CXmYUrsoAx2`}H4KL6E1Hw1gwZ8r<6`Rc6)Q?5xYALD zz^`{^RF&|H$8#>M?X!rEqHs9L+FcKcvBB57nC1vAOZ&9Lk>o8b#*n%zD3bt9vBsb5 zaPstHw(fk1V)Gi#X_{#H;Az8?iLmDf%yr}!4;LsRYvVD`o+*C$G%#xlio$?_YI4Zo z&c{@X1B^1cTK}vPZ8r_oZL6eRwfjI@$+;qky>Gv`M6a}@XgQ%fE2cY6%r8|Ja%o#X zET@pR;O;HYTg=03E zaeR1$K~gMN2@5k|W=AYyf`1a1&W2LSE^ZfN$lxInh*5aDyT`|$-sj5YOKc2FBm{!@ z={zSV*}RWSP14jDtr8=@bGUNA_Uo3luEP#g26b))Wh_kVo(MO3xZG1r3EuTCd{57^$|+N6oCo3 zy>h2;@~)-YJ|!VxG!`?C?!CkG=387|-(oy02y@2=I||toYHd+gcyOpVo&}1bW50%@ zTCm!%K2X@;*?aOKM~~k_g$iR`g1nw1(2`|G`r7;S=z`F)RIFWAFFjc8+-H3G9D$zC z=PF9<2YWg@wQ~<;Dd3=3S5IPhlHab$M$n@{=Z zllxq|e3`F(;SENk0rSNInuv-j*Ayf?14_DZQ(+4RgAvEGhIc=@%iTwh2?8TmBxfd{YPA^@}Yy&o~&yvF#}msk{<*}_pb z;H*$6MPS6UX&_7?SdA%QI5ZRvrjPD&@T(sa_n%N|gEHm?(H6_+d-hMCftIALO?K!0 zy+6(|Iod;2{x%=GW%xZ-fm??)Y*8sz~p5xGLIGv&* zYMC+80v3f>MQs!dGhpJz%*+VEVig3HEXsgD%pA#DWte8#9a8X1(AH24N{%N}e)<0U zSZjFmwO1%dLre&WPrYD5Ty_J{Mq{kQILF~+!8;$^<=qcHqN*E)!x7FIVhG(GGsX~o zLtWR|^vbYJN$jY`I9wETb3(oU5z$)Wg;$7XlzNoJh)7D*7$q5aWPn7apqmMDaG$Vu z57SJ*q?v{oK`D$$K(N*7_tdIFAp}uaYtVkq(c^b{^vg|dU>IF_jnTTJ3?N=5C%8~p zmpDMI1?K=0Io!U><9B|*E*QJ}qG{Q(*mhqi1py*`(-CWw{L~ zT2GW5Rfs4w&ZSl3bJa&bJJcRQw-b&!u_QQ0T@IKrLYpb*6HJ(6MN$=5SAL(MG0|A+ zVx8$=gSj377MB~yr(GbONkkGMx=xe`{VVZ4k)aGnBcgBE-ap`PfB7y)^Et1-dW#Ed zBMN6QqA($y9Z8m5Bf`_&Lq5EFpZ7odnAv>6#%PRjhScXe_Z^39&qsVn_yuc{z=s%8 zgCS*7m`fBYOz?;I2ucx0S3!>;w}fu1h71DQqhmlr_9(*yS6W0H0ty`ktmLp=GIb2e z5!Ee6b@t}9=p0H^6iySGn*E2rpqlJ+>DCw7xcWNf`VCYuMs!jszNx5Bc9}i>kfVFQ zq}qMRKu7eTBz6nv>@ME^D;bcqj3crl;F3)v&XM`{m=S1bK3ACGGw>ei!N_yLBJG*A zPPKU2YMQ1wi-%T;oG`UEvnj(S3Pe+x5#BnS8{u4&+7@IlU7R8q18P7}X>T>LNgBBY z%I63|8_-W7&t5z|&tEHrT3z8hOye%u0LXJWrD{l^w=7=~iz>N{RmLd{5 zqGE%o7wCG9_48EpkV~)v8ETuE^P}Wm=4}-ZZ8)`6Lp?)8X$&Pp=LoUF?|;bd@qLc( zU!h#TMlrmAR)!!Ai^U1^<9(XRK2jg!j9`kAaE7>iDS$1mCj{R$W;G^rX`kA~+dG!h zU8j~s79gWu#Dea}p<~El+g8=9jGcg0%9EATbqNKn60qHxRA8EV6J{e{YqU{aHZDyx zdFCiZz!9{iDOiG|RBH0$BZw%R5*$8143p^&mJhGJF|Dc&F(k7nr{a~gY1zydCxX=) zRSbx}VLGpvPAky+nRY8bkeI~4I*ZjV75jFHoHkUJ|C?@AZ$4?n81XTo5sk`h{<-*9 z5wS|4@Wkkebp`bihSc9%LP&)UlF*7uo3t>|y^P>eJBy;*Az>L#jd>yK7NV*YIYWTe z7SVy|E9#?1)W>m$qd+2rcS9AM}- z>O@-6ZcUA4Ml*`Y;$;#mF~lUkt1ze)L;n2HKG*<~vRQ41qu8d;yX;Ta5uKB}BvBC* zAulAA?c*3cu?flPF$q7>#o$O=tI+Q=P8W|3!FSkO$&gCjn@bYPWDZzkL2K%!!TW&d zG%u~e8Jm!MEM?XEfKrKxl&Cs1T@WEd3sEL@{c0UH?;A`m5GGgnsN7F5Xoc1Vsf$%4 z#0sR1w5ZHboFD_OAd8S11Lf;!;iAg~OYE*Om9){*)GabHGrMC!Ta=Ax6^K6I!y+^A zr=Bj_=(Lzta5}4YMjIY%6&kXvF%{^dVXAGhcSgPUjwikMXs`eIW2MK+c|>5{aoc~D z>IA5rRJYqpuMI)I!2alWnQJTN`oDK}Q_j2*8VpH0h8U=F2h|i3G?}3^b_Cz;PmGef zQAuL9*DS|ojM({u1Lqt5s|d5#sqjGYb33b)-{R0 z!l=YM(wYWM-Jn&#nk4X|QYv1d5=JDZPFiggNq{CKssp3*oLdc;?{ObEuN3$u;A7~e z47a;`6@#B^VEfxFH)hg!eAPbvBf)DAwDvfbAN0FA#T99r&*4Vs|B+){| zn0KkH;^ef9t^RT@Zs~JIC(sU;(Ou6OXKat<8%x1HJBu^#WFxn~4yqY|-t)6@hXbD5Ru zGMBA=3aL0*E1fFPCHD%9p}UtN8f%l#*G-+SJ1;bqBMULdvfBl&MDRH|Ky>T8GhO67^J#p6p$1(!&=Y zJM06!?@La}Dy^}`C5JN$cdHGxQmH9?W-)3(Pe=--sqDC=!q619EQ;iuHr}TQP(E+W z0+D%)aMoe9N%fM_vQ1^DvZplKo{&)@K>`MiG1+kpt^J($L}?vGjn4f7bsJI9LI@d& zD7h|D6u~Ed#I-v!`CjLz-T6KF#%ZN7+TepvZTDE#4lWxTWtTO-Y)#V@G0H;U+Iz*z zWD473K%cJU?Dty`Qr~V}ImUDMh-{AZ%`eILkbZO}!7x(y*Wl5{Qj}$`hLG+CK>|Rv z;X}v*+zLOc>x30@#KB}u(`pLsl7PhsTDfFa#H1;mOUVjw2^^(TeAnVq>R&}tIbeo9 zwoYS+L`hALG;Q0n-UCtzNA9&xwS-zxDBZQH@ZM)3R-i0JG3c-=?Hz7+rc|&H3DGCB zh73K>iV!rx=X<3TF$=i01y0G*fy^`zie+?0(}vVY(J8GvlhWm0(MwX#)#siTSZ2b~ zDO3ncy0jIp?=}#ToxxRw+InB<89Z++1$w+xPVKQ|WiTB84yHVMzFSQct#(wW2$pdD$P)Ci5)ASfi0FL&<(m0xI3_DY;>~=kLA8sMLk5YmcWg zKY(hf-_#lDNajV_ZCaj^)=@nDIfYJ+a*pG7LINxcY0oOp^Ttx3rz{P0$y>kftt7>= z4a4elIWxh}A9;G68cv>e6osggm{Fu-Z~ty`)TgcN&k&S+lr-A@jC5w7?gABONq{)Tr`Qh`wCP2$s)m4mfLNLKkh8~1-?ByQ}82{l0s3wx2OxJom)MB~;7+F}H3m}9GbT(!fX z-ldRf5}uY=rCmF1Sg;q8i>J0gm9s<&15%(Q348P&Rm>4Eqi6||E%Fvvw z(HyMfrvq#=!m0wLQZt{t>X+I?V()>r+gu-Tv)pD?7MQB4n9t`73(Fg?-r|kd?r`n; zRmwq05MeT3@M!xfzy9O_PoC~FU7S#k3tZ_yG%EIq8=t38RPS@GnJOLD#t7ILv6AYm z0(sZdkh;xiqUbL9(Xm{ebKVt(*nHYPIum-)fX*c7A7J$(FBY`xSAEl@?c-d5eKB?a z{E-~0D5<0=$cV-04%5vqGabFgqP$3LM|fp0BDm-&nq!LDBgV(SVr}{Xr9VK&khihr zMszxadDfOs=T>N}1 zN{LpQVA=#moB8S~1I3EA?8HZsGa5r=KA8}`=gm7e_($LQ2H*LOFLURW8?3Ldb%?pD z@f;o<@yUb7{Qb}0<0n7;Igg%g<3q_{FiKs(+G~BzV`|~Q$pP2dS&b<1sOWJq;$px^ zK&gn&CQ}qeP=4~4UqEo!{B~srpp3~OtGbZ-J zqq~CESrd#j5CU_($#nf|OfLN<^YvG0%qCuI8kH1=2O0%cc^NajNj17jb$Ff4qo1=@ zKfqEUsz6DRrx{mI+iw58e>4`6l13t-*r&YyjPaXK7~I;y43B|15#Q}bXhCltV=o`# zt{t(sIAQ)_q}jQO@dLEURTf=~zO0H`#dOXcZ6gx1*$hqKJ70gBKmC(GvFPK;W0I=WJ@cH+?xqeASQ^44S4zVZp~<_^J3QcO6cOm1wF zW;Hf(@hMYdF6}ZJHaH8@cfs#phd4;_)=aJNypb}XhS_Y2NZ?yv{}TW9U;i)s*4Mw9 zLy@guoWH@|x^{(s{!jmi&9ycDkAL^)ymRj%m9Y$S4P$%lDv1*gk!+P zCJD2OMA1}@$2T=We2VB;N8!L}NpqENZT7GI4wH>Hs728%8tO$23Py#)IYm^dCQm6zjvJP_+rnJ@ z21Pu;?jKTy!z9GYEWMKMO0q+%GQOG=qYY|CxwX&6TifUxPiXWMN%g_005mGJaw$>L zL{v10S5!7q42~JR@c=v=zh6=xU&lypZ6>MC?{hVkQdEs+QB{2TjaT?z|MZ{mTi^Uz zrx795O^UP~zm{mijBH|17W~2Q{3g@Ig8l#N&v~%DpD5C7Ytv@teR>x2N?1*0_c36i z$2D`Dqy$S7g?UxcGy!W2wkYwzGhbBr#xod{i33DZvPM)ylp{!6+j%;K@wvC-oEy~s zw7G&6{VM8ZiDtU(vW?$K?=8~%&kHl3{d>Dc0x`mDaFyfDZ!lSVgM~6EKV!=^T(~%= z3Bt)@Ox+ZSQ;1n++@K*!!L;1MY<(41J;5CP5-TAAWqPM;wPjaykR6mD0;36|n@<>A z*{0HSqE9pQ5tMgaE${Hk#_QB!!S?YdocLYDCc&;lKt}uMR~_bLi+Fb(ni0;lBs1qY zH|@0Y+q3D63*#Zb|6AYUyWePqIem9N58S)I!;_~+fZ&Yc!o_u7d-W>oYXe&B#9&bJ z{qKI8_wRnn&JX@8i`ksP`fwRE?is6{=8j7{NGUMVP=pyaE)o}qz^qDi5qIv~;kDP^ z;KGFsrYFaI`ssb{-@ngnHfJ;(WXgt$NJOF{Vu+`46RKT0pXHaGD^Qo2IcA8vC+|zz%h`rURt3sm)5CdKn)PtMU!#9X}M7{7>U-R|bo`3U= zl7)}_pFgenyGI()1Dr|Ps-}fwxWD$yHiRNgGO|~ zT|CC!e1abwB$m*q6EkRV+$g@l*Dn46Z(RO53z_iV;79yw|3{qE&(Ne~Of8;bI4x<}BpYl~x)qxmlzWC~^eCHcqVLTeG+^dI=5BcBz_aE_tzxoxXEYKFN zU)|u}{OjN1pZ&?#l2GSyWowh){`S}S**m}D<9iSBzD!gP`PsEdyv`U<(q&^2LB|Fq z6-o!15LwiL&CN}I_j|w1_rLc&u3o#Ivv|V6{vJR6$xrw%|K+dQ+ucSf!MY;VDB=k? zJZ80fLYHtkPcBY5?b1T8x}LO4<0yIf&$+kDvDDCxwzPzH7OlN?`e)^Dr-kRtDN?pb zfMAD&;WeV&Oy;f^LKC@GH2m|oQw7LRAD{4(#|=IXD05ml=e|HCB5BS)znI9l(*=j!d*N-UD(6x8u2NZ-*~t*xWZdo-{yk8!p`0{C+3iuOwop1 zM%9`h24xr6jXmu8F=6jUmY&w!IA7O@B%<|UVfn)Acer!w=BYagkDeXzqyP3PfA=?^ z!rB;oq)?x*Ha2|i>#y*owHw_rwbs1(>MdToeUp0+pU^asqA)3HapqYlT3}`uh>adC zDWyHDYKFsge*gD=kAL+q{{^>izrxdJ&v^Fi8J90!;#=STHm}^i&0sL(KmDiwz`_0= zBV#a1qb1wk%A{7#(l$Thg*5Z|BS~5(#>w=OLhI)qvD>R1prq|>3tf_3mM1v(VX58^ zr+;#*guJ@Mj`76>f+|n~)+jj%&7$Jv-AJ@id+wkthl+;6x~*!iJQ!tK5jD zTthO@zgvs_`6!{kOKI1jhclF`+r6w)01AV(4ybO`htB?_dm|77YilE}T)WKLxYf?f`5he3Ib1|246uOugnB;V!>1?Q zJDe|D!{@JTZLD+i>SYGyfW}7>EHsI(UcnaYmW(P2)`nXXa-+TwLdtqoqK=N47TuMcbf<41D_;{|tD zNHz%o03ZNKL_t*dBVl17&hZNas$k?4V*?ID3?`+&O^Mh6q7{U;K&*AlPMTB)RI~f|K9l(lN=KYJRjsBK#u=;zeEghir?<$2 za#%1N4^kStH$oH+4(H6P07HxU@9lkAvn0oL-gh#ys=9CAW%j`iV&^7t5lzY=Ta;wU z;Ri+7e?o71u%%zX(32nZ>IhqoupjIvIbT<3xNS%DWg z?ykx_emI#~nNc0mGi0xYONLS(#axCr_UJR5Ng?P;5K~e&li7b{cc% zFi!Y|vM|_KouDd8>`nKx?kOQVq^K6}vGbZj631L-R7PQ3i3s%0o!j{FkAIBseee7D z`qzE~U-;bTaPrhCOePalrNn<`2Z%4bL+xtJ9C;PItamhJMV~A^Y*9e;!gtOcP0CTj zhz2OxRRl_QPWYA^Cv`Vr+*xr?2)1C)lsJ$W95JJ0MrBG|-Cx1C&u!y3o^SB>P{%E@S15Wx$msz`C{=-Zvybzeufa72 z>*I%UYV|36>7j3eZUI;J&w&-AY$?(h!zA=bf!^u#PXrJXWE=UAW7z^r{k^>zE?>NZ z&D(RVJ^VNxetH9Q!x)`8i>JQw8Jt)jw{E{F-3L!nCA?2u15W#3Il95E{RBunag4!@ z8#nQ@*ME+upLrIiPM*Y*PdtgweCA0!@%ZC7apDB__xAA9pZ)|FE?fYCqI0z9I~vRx zAd-BJq&<=7&2tYHX$JfAjN;9vNI`Mvb6IKap(Pk4W!6)Q+gXW|m;d$0)-^v3ljoq> z!ElYzdpi&_ijpv!Re1I49LJ8$@x@0Nr^*J$oWWNg8{wV>{@Xh>Uc3bCF`=jkh6!*} zN#j5Y6pU|!jewFxj%l1p4E&i5U<(im5T^2Oo;@#%6==n{y?+(Ixbah*8Gi=HMvvgJ z$>;FV>>6fnQvyNyi6E;0AF4rV^6j@$o?ISJF;2;BI>YYHE}Eu68S;_<*u1-o_usgT zJGWOC0|Hs z5G3F@8bE0cQ&ia8x`&^=_B#H-*S>~F9(fpl@CW|{U;p~ousWGwdv_NvzVs5l^PTVD z+O=yKjmHxA+8c2M3quj*0dRnY1%u&~%j{aR!s!^>f4w?KK=7HSkeDe%9g55)_j>M6 zSir{Ia<>5ssc_^lL%BT^^(IDkA8ab|R#FX$O5xsYg73Wz?CtI2A3mkJXk1098iwv{C)O{q}6wHXPFMPGvzc3zC$S=$yfCZZSO8q8ZLc0Pn&y9-+# zN9{BW&tNoARt9%xBfR)Nu(>_Mt<5QZex?RH#=AENHA;{!#FfeIV?4ixVs;a*nE|E} zpz-zujveZG4Q9!|D1bEw*9^BcfxEW~wXzLTP9~Hb8oLj+jFY2B@x<}x(KPpP?xX*W z%iC|jVh2T`0Ai3P6n2E^oi)^V#^9L(7Z%V~?2$?Albfc&Y&L^)7Nit36;MiHwm-*v z7cS!brOP;b@?@OHV;f`q;lKD2#?Rlzn|E>Uy>n>l2HV@)D60z2 zCm=n2`V{tdwlSSfWu3KxBZY<)tP8M_7%BxM=OkF9Kv8PF+0sqy1;YWlQre%B&m+;$ zZsrI<JGQAz}QGspcwWJeG=Zqr!F-(el1K%FGUhGPw41vTA+!TV5a7l74AgsGbo z;A&`17>x|}XDj&WHH|lKHdreg7}a3UmYC}Ty3i=VSl|B$lY8fZz1x`CIdow`%7}ZC zBFyJv!3KXiuye4rg;EB5djoX+3|3EULyhmjI)-Kg%MGsXyobg)Y}c1DZ+38g>owfA z*PxA$YhfIqG-fx}aPRza?BAGx8V2V3V4A|g!5D+0C}FKl7Sh4dTq2!vgSXy&AOGj& zSMk}WpThBtbpXKeQ|tJ{fBu{J(m&qCySH~R9veI|2`X(L%8*+B`|CGu;s-DN1Q#z| z0XGf}GingZl`#raz*>jt{uFi7c#n03y77T~4B(m?g|!%Kz-VArTWoD@;@0ikC`^Ir zY=-G<2CWrVR#q?>kMYs9YuMl42SevVh7_Cs(jQZ9HwK)Z>-^S#bDXNt{G*d#|5O(b*F7CX7kM@3n1`ac| z4^;pK3=CT_M%tNR^V}IsFFy>LO#tJ-kbsY>5G%TABb!N%SOro7j1CsMGPtvO4}bT+ ze}reBcohHa_kRzCk>Kd-8wI|wv5IFNKLKkUM#e}$d1{dd0ob3-@WYp1#gBgW2JUX% z!}`h?3I+`UbuAlbHk*NAQB|cl7|&)X3W<)jzrTl>tuZMJQJK4$D9oJ0)vH&<8->M2 zoj@>V6WXV^E2KJm&SpF^Vyk!JE7 zAVN`Tm{QcSjhCbpim^7mjFX!$VdLJb(DN-!EyIy`N|O^8B68p82BrY2FO_y zO$EC35bnOd2M33Zr>~=|_JubTi58}A7f#Hsp$Sl2qksb6UB%Y9Gq`u|5sc<1QLZRh znnR+77BHn?=Gk=S4Ws;=IysRYi-T`jRXBg~3jXrH{!dIstN6{Ye;F$)<2bJ)Q}~tf z3y?5Wn_Ktr-4|cRUw`MjxOrz2Wm!TO26|LVBvsp>X=(|rpa^AIU_NIwEJ=_;WF-rQ zx)@F{0+AEcJYnh z_!3T@IF6z)`8@mioXzLB{?QHm-4B0+zxmtm;k`>&QLT(HDN87l=${JCI{-Ntqdgrz z1(8BgNNNuvLRD5^&9J7#J_~DCPy+>vGBCKLAW_Y|T!$Fen-J_ zpqhQGZoh_AbqDqO=doWsjs5Zzre*~V3?!B145t1FtNZU_W9Kc5_b+4Q8W4@33yqN{ zg^EG|Ng{p%RartS?PItp*jkcns-gr61#KAX*uehn$FTRtI%sPL=Am1ljXS`oMo3A= zje?t%nD0z5yLATj)iWrk>nO$*ibC|01r?Ed)=I$`4Q&i&Q^}<*v9dLaqJS|4oRb(I z2!w8?QLAVbQLfE^k?|#D?i80 zyZ5lZIzcfmVRQi!7a*U~STu&l2iLLI%4t;=nE8mPX*317X=m3-;mJlMr*_?n);ic7RU=T|Wqfg@UD8@-n>!_gx5J`@# zzaT;pe|p)8QBaR|$FW2OQbAMXe6A5C(d=tw-~d#-hidm6sNTf9Jdas%61851b=otc zdocBNtj#WA#chI6prHvY43q}O+IX3>cbqLNu_V*&LJ$a46kv9+B(a+;7^8|%6~|zw z>!>dP^P9U+>vupaGmqT~a0+g}K)p8x@2{b#S71iUZzBe=0StR30!2|-QD^{_^l2T6 zqQq!a3iftJCRQtqCM&3?b9}V9jqm*6CA|9PJ9y;Lvp9A7I94WOILElRy@MM!Z{h0o z8@O|O6L7%slP6(H32z|Lqr7B_6j*x<31C!JUg}t+GN_O_NgdJ#&+C));MC_e&a5B!lBgcn^ zMhu@c5Jrh0_PIR|gp5)VB}PbE2?AI#B$;`tTEfW~7V(=B+IJC77pblED(0!As!r!!o>aT6cj zydhE*EuyfdwrB#WP*tdkGREB_L}^*F^a06;Bq9crgm+XW_%U*#Bajo>k_JO#&Wr}N z_rPYjkOe`J#3~881`rBuBuNqpGv3%*;(&P6ok>1m5#om|EYyAqFUdZ98Uyv-;^%zn z0CdpcAqId68!C_tGz95!#PXssB$q#SLR^L*%F*z2Hwsvcyz`{^wkfI+VrME6I^5|A z8VL{!6)+2nI4lJCBQH@2K?yV43JPLI03q%%;3o=D)c9zq6<|#ptHMu&@C z-6dUln+V@wFslV5CY&)Q(OAl0n1lS=D5(=&{8nC<3!4ly>vRrff8Kv!*nTlETK3WyUMy!3_(jw z66;t?5JPwpV$L=mKWr^D#4iy}oLxz&OcUw68EK#$MX_QeoPqV`onC4$%#2_$*|-j* zYAE8?Sy+kjjb%oQvo(ku1jz~g6+E1^YSWrokEz@EAFU&8JcU`j)9YF=u!JcnqX}kc zS7w`IrUYwik#QH^1HG2Ol*VWnQ;Gs-7Ss^_R3zDe&N&oC0p}zii~_+Z?MWApDI$g2 zmv053OKA+Ms)E)EO(StctUJK#Zvoh(NHdj1d>kQ22GAi6=+HP0yXMq^Y}C<=|bZZMnA+Q_1V20kqyh0}Y%ZRraM zT!+L*hYX<60<i^~51!#|S6PzvkZ&`_jRU;)PH0%=;~gVqKs{+v zC=FXTu#J@%bV|7LknIV&T|9P-(ijO8?xS2XGv@OE$ZgnOg7+7MU@YyuQ5qlJRGR{% zHEc8U070-2wKtRGG7NdOofRx+Eo1JDgd$_?WxiUIKQTCp^dz8*sGP&+bUO1qflNaX zM_Oy+^UhfxO-ZZ|jZe=k8$)utL;xY7shK4MSZLV#oG@US$Hoc?r4&R=sQ{%~5{t>l z?(^f4h@z6=Yc`v~`q+a(i#b3sMBrE!MlO~{oKWBp#1S&t%7}qJf#QM@$#F{HP6e`jvwDBR*Ag5HM zCS{d{ZwZb9!DyHx5RgAr>Uxf*@u!Y|PfEz706Q7PB*5Ht)eCX1155|fGpBZsl#-%u z12_kwzD3j>dM4=URS&2I!{o2hGDU4`vRJ{nbkXMX7)X=X`h`gHqDW{OAuC8LF`rcM z8cU$6DgeTHgCsy>pzDQa;uyR!yqwk|+G=bQll%lsC?tfB0mowaqqK(B#)~8gqtOV) z8}7G^nwX9nBS}I52@9aL@t9kH&={Qnp-PTsnX9Hzu+~9qBZgAG?SL#oJ&8fhUWwz{ zQ`a-+MjMb1u^T+fU38mbAN$X{CI=pheAFX`h$8FS8;7!lQws#ChsLO79#~c)@~&Gc zH2F@v5-0F*Efn~+>m!NniVon)4oT@6Y1}JWyr@7cEeUG~2^NmjMf@HxoKh-s$06uS ztd|`P95E~V$<&^h52Cq{7+q^6H~oeTKnS33i|grAZA`lfRV#wiT7$HLV+*ZJ1dtF) zOn3wpV<-o#ON2-pwhUmqBwBfv_KCi1bc;Y~&rTCow@?+Kz}e=18@V}&*s zWm1(oh?6?k7*N#_jFV)h!=ksBy5xpJ&LA>4E=Vv}43inh7LOTW7)7(UoH0n=3Bhwl zqTKu6+%hj7;YuyPxRI?P5-AG%qcboWN`jC_!ADHA!#>7yD{mKoX)&$OELVL99WNe-k3XwMhUli#6 zu*Sjeqq8QFpGvP%Qiqd|3>y-Z_7;(mOi+5nUn|-lmI@p;>Qr` zwS|&UUu94un*`wG&089lqZlt7j{&1cdeQ?TQI3V%(<6?^-;?0z%p%#yj$r@ZEzK=s z3X&Dh#+Nu-C_usj2YTE~o4Az@hw&JH@}g;afiJ`AbMlL_J8cQ_1?_XrNWZ>b5EXi* zM>=DaqGzH*M{CTClMeStr>HjirXmGH1XkR^&?+wGGO13i4|y?3?;yt-hnbNEBiYdg zBJlvpUX14~7-H3>b%IqWr*G3fQz?wse6+uliml=Tp40+@LPq6o|ZJEu&$(gZ`|BGxpuxLX0O8*;K7 zL#U}mL9*^fL?{4T5Zd_NSp$n;;|R#_Flj5YPSd7SjZol(g*g?#je@cTi`UXiaCH!&arLsBRZ0mR-~ z5MDCDK7hFN-R3WeL{FsGgK@vsk{TjlSVs^_rQp{gpF!uYgjVhF_yaMQE^6PPg=vE%mR zx4w?`CxKD~1s{~qV_bl|W=wbmc5+`U(ME=-{QzQr0{G#(FvSAcZMLvnWTz42&BhpS zY>&91L|Wp_LW8||f|&()6`H0-T{kfcmGi0PthKOB4NEo#gLh1R#grGJ1_r-DSCSRU zk4WIQ|EKUMJdX!vrM+#CYGDE**C$6Ukf&`&ax#bni8u^yNy$l$mXL}mBP3v=#54|$ zj*+7#O7cMm+BP3kpvik9NfQ^EIuj@Lh zmW?6QO%3Y;^C|}NS{ZM|<4_g_0K#-S6={b_>|Z>#CnE9GRvJnh6lDqPfZ22^zz^{W zY^?PvbSLdN2c;E?s({iO^?U{ZD2mccHN*;#2>#tg^vMq15kO?k1P7xFC~bs)P#(*A z{v>1q;3P4)LVIE;B~f}9Ef3)jKmh~CP}T!Gd$kwCpTwC>&7tUy2+-oM)pGg)5(5*{ z)D0MbDTPxHUcN1}>;W|CHX4Er?W^<|&yb};8KqSWjbci%Q?OQ&ahgJ`yOf{>@`xN&2rvgMh8P7FYVA?>cEitg;r5vqKG^e7Jybs7F<#_oU>lLrrOPJ zv{%^3I~h|%jHZ>6Ou8g}80UR29itkLP#D>Owh5_(y*SPk(BxnkejEm6HIlxyLR~jt z=U}|n6%a(HO$C+MC|hk&jkGr;lG8}*0)C&uIr3u@w>k!(jcjh`=S&;pbBMR9{g}Tk z1V#xbGkI~K*FZXd@~{U(9G5hpghYp+nSdu=g$PL)s;JTN<-Cd{I?7Fton-m);t zFR+FpL?sA_1mgt_pT`>3idrDjuFl2h*-o2>E^VTcQ=h_K?TVuSmro4Eh*WG+!$z+qG}J&L3Z8A+XH6ro2_9q zf%mr{q*tJK1&ACtQ|liH&;}6P%@<|n~3n=ArEJuPCL9sH& z!6Zk7P^T1=H$F=xC;2#XVDWTt}1KkhGVMHuImxhbBIf?pDZw(YuItFa{Hm9tC~)S?89e>;)0j*q zxOVLtE?&Hd?d|PfDZnm@B8v2u&8_wF?V#e9&f(+=Ap!9zswTczC@3yfI|=+ z3v4+OvC5}_vL}-XzWUX#;`!&F$Gh*oi;azq=t$Zv;aK0<*}3oITv=Jc6Hh#Wr=NZr z$BrF?)*8FJyEuRTJZ{{$f!S<^W5K(bc*ZOujBmr^SFNf`hCNE zMB;fPj;$J1RYgOkXt3mqa}K+^62tn*C!fSK&pd+*7cSg)fF=&6ummQs8Xd_Vx;P?o z|K!ROPdtI&`mNu>cs$0HD_8L4FMl~2(|1cS*tvZ9GA>-WfW5tgV>kRViZKQ+yzm0P z@|CZ^T8pb!uj1y-o49)QDsJ4k5$j#LbP1!;2oF8<5YC=Gi_@o15 zNklx`Z1yZs69f zTlZb$7{D)545SVtHa0ev0yEHJ8KuNH*w?Cjv3cixFKU?|h+6q}oy z_Z8zg=Wzb~dEB~n%f|pYxU|-6jNRQ`Y;SLW!lP`<9KY;A3Q+C%wR z<#1}1%)q~e?Ur&*Vk|!>56b;6!Co6!oZ_NW60uz)Mt0HMPCnx?!2IcmZXT5XZ%T+k zlENJz0DWYS6)E1+A`l-AJ{eFOh36o~=RtW;K5hwGU-lpzDFa1E4>Y4H#UXB4aB~6$ zcOphvmRMh3Z#{mGSe7Xr6Yr&^6}y+cSCW4&aZ1d-ClAIBx((<4YYTc?F#7HY52&}u zT`kvTEqrWY8{KQ2p>)0FhOYOfYSC}%T+J46pp(=Dc>zKU@k6u@al6}g#MYl&a}@JY z)S-dSGkzdNQKBfsOFDCAIV8e9G(e|0ayyk$cQo$`=mVqp3&F86M5F0;ya=Gv=VBRJ z`bBRMp34%REO?1zThI_d%IGAz7ocON_l2iHj5UOg%3KbKFNsDDpL4$F$YrZA(Wb1H-Z#GG&0xslY0b|8nv-UEdOz^p@eWnH0PpOdTY37Fz4 zd50EDEAvg`QnqN3{ zSqjLVrc%J@f?@_B3x|*s2<`EEIGVOUn$SW^?Y4E7x7ghl>Bzc0=IfJ_EX4gf3p*NY zJ?%FKaLTLo+6#T>T}T_8El6))^+!YSu51n)XErwe^`HOw3(V|@Xb-?PVxqvdM1a;> zbC{V!QM*3+dxp(>^zNK{GX!(wOc~x9j=*eImLH;07}{LrT6DLoX3p_r{gc%R^_((t~99J{@qs z({g%TrIL_rj~sZ^EW6pC^1~4gd97|M68SVg*oKIc_SxlQJb0!Sjh(X#-H~T+9%~@%n z4#}8ez@gC%UtPX4my;OjwS3O<8e!1gzWVh$pqbFCDfM~)SvS~A|9-#UbdBY|l++j+ z;i8tpBk^f!Tj|vfyjgOO0qC+QfBUz8dos{rR$73zmN`@Y4pXJs@yTd`yLV=#&~`L@ zdk{WJ_tQc6DnI;XS<;e$Ra5|=uh8)uCMhv!ZAm3Bn@larNdWq&vhQj068TGc^Dpg^epGkrrW*x1xc(~<#LmN!t?Q#D z-gFAEk~1WvQR6VO#U-2BF3==r2lpxuHq*b=gUqbWwCVWhK|7L@&%wIkod?F*J9Q2` zPx^z-?xAz7Temy;Ee3Dp4t>nre>QBRylz)z5}pmO-;zk_coz&8osI9G&63M5Dg!qq z;{ti8rrDTOliVX7Fwi&QhSi#t(G4Z(9+m-eoXVk5W`HsT9O+y8quzX_FF;*L$;pGRIp;t#Ek<5;p7=%=OjMxQ zhaEi@%tmtAaY*&H476pQ+S6JAL^WyJD|CHe_IedYQdL!>m8y-;Jsp}})TMk5)X2`G zANWblBaC8H{jR!=GSugg5AsQk}2qz`Gp}#^+x2 zTgDaAQc$F8jnT?9O`opf?ze?Uc6Xo$Q<&Y-!^AwWo@wic7)O^X>h(hH3sJb8 zEVztefYb=^9X3y|Mk0&I9$SRfe1n`zF@}hol-U}ba8OtV9gW z%sb_%xL%g!Zc&zNA%;X6d#!!VfYE>;6z*q`TDHxBgRpjQO1s#P^WVJ|6RatjqTGOI zR=!{i1~Fw=uiIXvF|+u8^1Z!6$s>#3vv0sOgl#)`Jo%B6KxkuoM>;5ccGo04oDv4% zL1QHyM!$0OjM8j5C4ZFuUnzpHnppww1zPnQ0h*@eC^NvEbh?YZNdJT$RI|5 z{?@m?HT%W2&_UCwEK!B-CeD4osc4I(3G~heb?Ow{4{)0jSX?VXC_AB|W5+R+!9% z%hS#bcjmoqk2+7JW9{_bsoo{O81R{kHMF9u#*8lm01*Y4O;>>fP@7PRnHxpwa#0jl zCM%QAYM*X*Xb$ps2zaQAiSxXBAGf56j;wF$18{b<`7e@4UNXNPXs-x>BbVRDYFQ|U zfp+37C&+-)mF)PIniQ;a3FLI&Ye6}H0_moR;N<^> zW9&3LM9HQbPduXtWl=(Fv#*socl`M3RbSN%bQq^B&>{u^bfrJ6isBcOl}TNeCBTv~ zlm}X92gj{IBZYJXFwdV{b^s4vr4E)!en-$q_tF9^6FL6GH*zp6!;-Zbe3sgK2uD71 z|J^xKXK`aJigVICm6Q5I&r-5M*r!|;28=}8mL2tBoJoeMp?Qmg&1RrC(3rA5%nR~m z;I?Wqk4QGQ{Dr#Y`&NojRTT=OKLX>;>2!LRh;%ZDw1HSu?1M;ERdwAI`jwTH@vZgs zwfJ7SaJ`EObF94Z<^8oKxF-L~ojn3Xevpyu@}c8DQa{k`C8GF8>E~eGfP5)#YElGKl+YpCex^?C0wc%!9P8%mmzip1FC}$3nS9Fb zETYN=U@(DxN*2}_jj}ADwSHTZd-JdU>aQGts?$iX3zOU!ed}A_+WS|3{Ku~rRr%V9 z<0l@zbLTFmv)MAl*BPvTm3XwLPo;{9e2$jDRNKZt=bh8M#g<7Or4)=d2+j?uEpW@o z`b(Wv=#fm}eo`--;;D;Qa2slmXv(HPI2*&08FD{=$Gj_w4$M8}PBO(xE1076hVf0j zk)xZ=TqeZqFh$15?Qn-GbtfcL4WrL*r6@LxDa?^`l1_O%8l%)^hZrwzPp9vZ961J( z#T%WbVo3qo5Rv|)Kl-Eh70h?m*Eha)?AXSs8#ivY(cY6CoepL}+XLkQ`mHm}UW>`~ z?wa(PPmU3-4U`gPQ9SC>V}`s2iwR7e0g^N;(vQQu6|;j1^44V2wDGpv<;^fz+?8#c z={SNFWPJBbvLr<-1tR5X>EsQ%OT_sl0&){mzhM@=aZA0l#$4T%9Y%oZG2a;s!JmMP zvM4YaufUk%b-?}Lhd=z`CJ_ZoyDnAJt|U<=&tm|Szxa#4*s=5af0ae~!_%iu+sR}C zYwaK>9#Inopr9}^P&SkDeMl_27);tRM`WKok(|!$@1$C6H()PPP(DF@OFw$W1qV`r z+Xz$)Nd)iw{q!Gqz9)ZyxpT~LPGT)vpW@A02WKsub^g0c?mJk^^5-NWy>-%t4QV)h zyDbzYeLF_eSk(0#uCeWO`6+1kW0*Ag+|OYb#rml}TMy)fbuh z^xoc{q*d!=qRQ<8D9%$W+Dcx$-}eE92EJw84L_2c-s$KfZO2Fe5E(E=0O1!%kE*ge)1fK#<_q|jHg0x!txU$-}#+6U$RsQ4oeuk!KKI#P3rb1H3<-A zmI$k>Ygk)bt(DP#cW?jRzkm7FmoEWW9cYdRenUgT?yBUkx_tR^Q*<0np-@o4k{ zh}QS^_F`tL`~?E83r9u{h^-uV_z)T_8M^JgfBOcMUrt4P-R;|NuBGiVt~z27&*S2>wyt5fQ}!Y)G8h8nArMQxB@5bn zj?(+>r4|tTJ@tAHhrnqAonb6S0O>O{TqB)J>O9n$z`#>DkC`Vc6CB$(2Br1;^ZD%GeR$={w|DOB zGyulQu$KZeAOIXhApxKR=}}z0diCDw+S&)}lMP*sMo*Syu~yeLrn6~G36Wud@S5Fs z?TDjN8E7^!-ARb!U0xPW{J>u}w%Ba|h=FF(wdlN83j7(COzx)}k2?MLheuhxjAEnC z^S+|oW8Y7AUi03_KR;ibR6apT4w1eghJ{0(047w$!X4kD32c7*HIl`B{7u2d@*#*^`EG#Z_$it>b3 zikx$3nkHiyqfB&Q9(r??02uja`zQnLQJl|c^6+7xwmYish>}klYKQtwblam&n@b*x zwYreIpy@?#5t?ZG%6HE)nl;BjNk^Tp{hc^43jciD9mUNS*0p6`g~3&%FdmPwy0(g{ ztfs{LqrJWT|M=ed_x{Jdd-rw$Onl41UV+gkJC*`;z|JX9mjK4sZd}{k+}b>UZ0*?X z(P*rzs#+~gv8uHOR65v{F$#>%z$$bLx0_lX$RmA<7&I~dN!BUS%ZVteB?7xlP__ce z_0Av%$9zcozgzc6j}25_HZ<=4Ui4tD6yjbTKhyp324FvEA(JMfa*2azl4DawYgAQ< z@pyz$RW(}c%hTEPZ#VC3{ik#9pZh^w*K+`CNvq4SGCK7@{^3A7>*Ra*3ryn-fO+=W z7hX7X`s6<<$^2&H?9;PmwmzLs$MboOrfy)Jm4MZhPGX)dRb=FyMIX2%T1pSlF13R= zU~(zQM_IBFkfbz_ksNfU4lHUM(X!_{b%*xRz&P_dJaD_ycH~?96P)*z?&TIkb^#iG zj#@wy`xDM_fNzJBv1Qmj)}`3D^xtj(B7l?@!zr`O;hri0-vjDg(%eAv-&pvs4i1;7v+89yy7lc!WW(Q#3@T}TGJ44B)=kC?eT>v5HauTTpB zsirW!AFKdGbGNAdWhGs9L`6&<9W7})vi->x%etf-r+$4zY9k3vR6^1aDN95(JDxYLxoNF^XSTopv(3Bre!e%` zy97a&K_}8cfVoBs%tHX}&BLKd(u!A6N@Ex8pjcVBiI zw#p(6S?6R(8jo$FUGT+^CNG)l+8Gh^E!;}-m`bRzWH<@r`OP1CYPU|P66ypbLphZe zYO|=BJRjrtkf$T1J`;nLQqDKybxO_=$T?@{&bd8i+_lbLZ<^-A{ps|=bbtS{Yns~* z*hfnv2Y?*{<|6_01j7Iwlr90N!}k&`U=u+)hM&>oLkdcufbuB3Oym_ zF*8>H3dL-gNjYW%1w$YWf_BbnrIcc34Q2%=>0%fl2Nr%=IZt;eB60*)0-e?Z&?Ga{ z3rabJat}hmM@7+}R2igdKj!m8v?q`=UQ7UMC`SrRMAiWgObwI=C}zvfHB3~Ka}8-- zgE0rYx?!FvrDm>iQz-1YrrEa4o6Nk~G|fE#dk}!NzCQ;6)EX_RF@&9m0D6$*NSVU! zU%=D>xKqF`l6xs5nPT^<^OtUl6!Qn{UnXs)eRmnwbTfrdpk>3e6LH`g2I_PREx5-6 zbv|xc)>fZ$>;E3W)xGa26P5l>B?c*QbunNHSatFl0I&Of=6}zU-*xhADBbqzfqqgT z4uGElaQYt15|KIu5P|?t`0PqO4Eh*61^y!WPMv3U=X*+{E93y2_BSMf83O9`uM6N^ zAG9v8c7Z8nQM)OOmI3i$0DKXf*u9?S`RM{>_nGvXLmz;<;;!!R6ytS|^9DJfr$E-l zm?`k5?J*W(+w`;BSGSFx*p55gE)BQ{rHi}>Fou9C0N&7MSOkbF>7%=`y1yx@*9G8o z%*(C=SP0nZ^%S6ou=}F&_W|g%q`qQ{0J;mb82HVdzeU$lKyk@6H&7@2?0#SNX9wEo zUQ5T3&O;Ay7nL4BAGLHgK=@n)D9Zq?TPOXE1=kMyedzb1dq<_UKZ!E5D9cEXMb}f{ zpw9heWXjO@u0!UcO%gVsTTmA`0)QU1{JjDCL3vPqmCFAGfldxq*{zW(00000NkvXX Hu0mjf=je8V literal 0 HcmV?d00001 diff --git a/docs/html/images/distribute/stories/noom-icon.png b/docs/html/images/distribute/stories/noom-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a85321878f0fbffda70d911ae388dcd73a3de358 GIT binary patch literal 6530 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

        5IZsi4@x3vhBGKNm@?=}0%p(B?AG+< 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

        ys~kQ%LAUZgl;%f<;g{#74I6 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 IxBUA504`Jz7ytkO literal 0 HcmV?d00001 diff --git a/docs/html/images/distribute/stories/playlab-icon.png b/docs/html/images/distribute/stories/playlab-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..af8018348df34723c15c7f56a03fbc582ebfdef1 GIT binary patch literal 4034 zcmeH}c{J4D|HlVqE$hep$nk!+29CykLk zEn~}I(AXlfX8VrM@BGgB{r&siNF#SB;1p888&XIvDdY_)ibe$~@f31m9T{6e!d8&6b>v(cZR9tnP~Q;AZ-~?i zBDsP{t)nqSZ98SXjYMrDtrJP>Lo~?iq*HcD)O8YdmrPwJ)9U&zmAXq^-(9D%OXFmh z#>r`;9p}I8zc=vzz5)K%cn{iS7C#e*004lUaN6n8W!W#%BooT?rXkY|D+3Uqa@*%F zfIkAeiEynK;>(#io7nmUJ~DFax58xrn^g8L!>JS?K(G|zhKp}u}kkZ?~g6rh}A z;400s|7(#j*V8B%1^0mg)OR^pXd^7ABi6nis32D)4B+f{avEp*_vi2cw@0qDC=$@n zS({AL%%|GU6^Vc&JOP~-f5y@r)Bns5M7qHM+b5AL{~Lq)`uM;QD8SA@MhDF?p2lq8 zs7Els+qEx}v?X4c8bEAg@Z882DzsrT#VD#H2yMi9?+!}s<)n@s4&A9ln5uM9y&6v$lEsB%(XPj2^pWB3^W+|5|OuI>eGVt=KC6+HBsGQ^zePdF- z7Tela&Jq4bmW5c(Oo6)J8b_?)Uy2Psa~L?cl(j5!dqI%HEU$#Zyf@k|uKF%<7bJ=* zOAY{(`1|cCoX_Xe?2e8ZOiby6Rq}tL547`|HxwakXKlr%lCO3)eA$2v403tu0l6c5 zKKO)7C$38;m!i`?^j+yt7OPT`$%ua4>FV9ZGPu@cvfKRtAG%?P;Q(Ln$A)VP6az2S zL&96FjWmpe>I6i#mZm$XM`!dlH8c7qwX;k#41f5w-G=$+Otvopp?1pAC zgCvz-O1zS$q?KEw9g8>ocHRisurZ1A$&Zz;MHhedueix&CO|2jvXxpnNUV5Cmc8za zOOG+n;7aPvSb?w7U6xU@Im`}{agz`|pWb-?Nc|{}*<8Q;r=A-j>C<-{2mc>?DYbw^ zkx9NZCj~(8o`l%>@N=)dZ{5_}!QiGE24`xyHv+sopo8#LR_xhr-B;>S@U()?9N&S3 zu1=u48zI{MNOyAXm7#m^Jg!)}l^|L&a+kK>S?vJ2jlo5GevudleWsQ=c;~LiCA%b@ zCij`i4db^a^I>{l_jVGGZjbF3RkAz%=ws}e(@A|jBbzt|)oyL5_l}Zk;Uc?_xYg$H6i(P}Po{b4K`I>Xapm+!}I;cGal>;5vB3N@@=>?}m z0O~O~K0>TH<9TM4VSK+9y6R)pa|K+Ny~l2{!A@CLkLmbIRcg0{aQNH&0Q>Drxl&;x zc%oWHpzy-|t}B~h8_j!rf97{N+2Ts#FY4clsQ(0JE_)uz&}2ftw`7b9?#~V4>JLHK zMG;LY?Kx70$Gin6BI6-O6*+YYgNFDJFo zAt~0(l2fc{p{@26mJJ^{!q(DfJOc=U>{o>#!8yY^4tUkRbG3HfF^xCeNe%@+YXW94 zeY3TUb(Y^m72?WwN~hN{`W#whF6F| zhO3!e#VM6T`r5VP?S0qY$^2Y1Vqe#o_T4i;|Eg{i!JDYX8KE<``uH56b05S|IsJ+6 zc8bW50T>}6aoUJf{1PO=pc**w>Cy04hi&m8$WuXitwWx;G;2Z5uVV=q6Sz)=Er?>Y z`~Bv_#H7(Z5Z9z#wQ44g&9 zH|YxOI_zMwAu6a(r$knPVm==mGk-43_JNHe5yO=2A6Bt(jgfMl&0NL1h@XY;Q%_mj z{jBV#VhG^QnvOaJaC%vyKqkG>D z;HMQ%E*ykXi&jP6bJpSZ?v|-O!v&c4hJy=vgO*w-q8UA0uB)uvqVbI8QE~=L56_jp z#QL7`?G{&i6c{_#8~mA9_-Q-Al+e|0BY%DQFGmtoy>DE>O&8@8*BJoAzWupDpd#W-n7DZ#d8@k|oH+}yJJz)j#Y{M&4JO(V90#nK zNCNwQL%W>c)47&h$Wzpyj_GEExsGMQ)lWWuh7RYH^2SGZyQ->wjQf!Zm?fK z&yf@#X@61|c3;axx*0!WI4@a;$3KorXKq6@UP=ZY@m5Ff$tthKI&>FR>-ESxSS8wb z&H8FiI#-+O2~9ynf`B7 z4_-XI`bxC)_TBUfs7+s_n7qQ5@6s8LBBoqVzD;m^ZbTm%uHt zx!RZ4~$-xi+Qz{UOLtL6y;wMokH6jt14EEsbk*LT13 z^rJKu{sb~j+WqrkDSY_@;=**=6W0uSo9T|<#+oNQ>Yq{2wf2Nyxy=lJ?QW8AX4U5% zGE(#6Mx!v75=lK3)Uy)x&$Hv27yZkvKORfj2mRBo?};K&$H+}Ee156>*ofUDVOPD) z?BFrZl*@;6HdBv?Sl9M1tP;Ah1yoV10S6HVFO1{ywW#0q;X}qA!^Y*!bA{RwPd8Z= zixi3b^9ya_TSPSP;-5tYS5uWJO3T%R#=#QBmR-;AGkC!Tq{=FFszt47aIHF2Gp}N( zooz$eK%*YEzjFt>u#-D%7tTT{>G?meWjlf_1x7rfGoZJc`{z6REbVy?Fg3I=sMNn7 F@gF1?qWAy+ literal 0 HcmV?d00001 diff --git a/docs/html/images/distribute/stories/playlab-screenshot.png b/docs/html/images/distribute/stories/playlab-screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..42ffb6ae93a6a9fe0df254c4a6c32a8fa6ba281f GIT binary patch literal 465397 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%0ASbX5{=SGA5u23%uVeS<%08>9rRxD^9=OM8l@G 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檐mD*em>ccg0bnTrE?WVllpTqOdEt!xeOnx7Pd}GjAjBbhAg2ZbXUE z+*cq+k+>M`B!?Dnu_zT}{Ee8Z0tJANl-ORkCto7vZN4kq!cV)_&s()yON~)WU$Jg;rCs6Sg`cVC*SVf5RNmGWcztiWxBioIOb~^BqFNc0(kUZf zJZLt~k+hac(T+Zpdq1F} z(}=WsQ+_F)(CG@8Kc%)w)>hNkk+y;*{l*2uD`Wq*a$9TEjZsvXQVk?aWU`~#6aKyh zu=*LtA|QwLuYBkyba=}WwANkR_tVDwFn20zKO@=%(wDYbVxL^fWqPtpUJxaLXC zS=4{U%K0frFSIr|%8%X?7#187N`bC#{el8(4*L4kgX{NLnHZ5N(*;j7yo7x3jO~V(>0d$Cq)Jb(KRz_2-XE zLjpHZYy;qDzg0=zA13f(Vvr}6$C<*oU@n z^*vL^<+gfPwY#j@O)1dN&r{~XUf$}$r||V%i~dU$zly#TpjR1jeUJLj@W9i3E6CXN zdT`^T`*v~qy4Sio<<`4nmTro&gjMSy>KOMo9wR3YYSS!G#XRIjKMQqEJ3)C1MIp-o zE9pS9hB+5tvj*N+Dkx7Iu=+#Yr;KQ3@;P4SG6Vu^=4TIzV75tyHToo#rVcBDX%NpU z#LPhm)W%!xRDK8Qk|QIkY6-$wD)RBEf=WnnetwGO+p5YjV#PDk3`CidmaaZiKRg|E z!w^EuyW}Ut0QS10Yri*JbOEI~Xkd#WSu$*2W)zf%`*o8|Fg{?*B?CUc8`W!k=ff?p z1AiIjbg;zmOPcPiDA={K#L$MS@;fcuzz|47v;)W4B{b}VlXa1$IQFrJ%f zD#$Bjqd@9jGBsnlV~1-?{64Zy%t#_;`|4aMM^XFNL1rMR#*W-BO&9Y9O!4d89|}c1 z@+7wP&4z`F*3m%zDF6lRg7W75Z_I4>3}ukxXL7+_fmBr^b+5ih$3x|czs>+f^LB(o z7KlbX3))K6u;smC}~_9|-sz_zpCMCW6gGo~z>$ry>#pE*?8i z7$CwgMTf9>KGtniuOEWIL)INEhGb97VX7AT>xb6RZ%-HyxPNG{vIu(Q!E!N((+ z3HoxBdh^)mG^<@Di1qtL8((pHAGa->uhrnB?$pgFA@q1~W6V`fKydU@BBX6m%~iZ^ zH}m|id(rFSZ&16yJ{SHumP_{yrV=AN6Y@qhcgDEcG4F*AUL-J{zZtBENJi(E4V8PZ z>4^xM;c~`k0U@oz5BtHYy#6dgxRi|pE>oPPxVq|gPOsi61PSPO!BjB zHYqXXYdHanjbNC?ou;q}u-v-lx4XgGtzgiNbO++XuH+4BpKTw*^gpC%X4NT2Lg!mp(WuGVxk}Z{k)=I2K5Bq zo%0AjZ~1>ee>LXpfziaK@~J*SZnutUPVwaOu(2TG)D}g>?z6QtwCMW~zKAu~8eXbD zh0Wxcmmx`}UY5BdR2oJQwp;y)xFo=oruzJJ`0Lu15uxFgXD#PL+CKFi@|NiQ@D%_q zRt5d_)*i=CK{zEHYw-G;;TaHur`X`4%K&|FWz87VgT&TwwKnDT9Vo}GmgQ@TW`tid#?0+one_PXSq@!eaA~f*>xe5wJP~htJZBoub9q4Ju}D{msd0M%b^!W$w_f< z#2894+!5pDW0%_(Ub1qnS3=BjL@L*scQ99Kk$-3aVCoO$&2g7x^3Xc&McjlxE`jrY zzR5U?rbHnTP@!{;d@>Ke#Z*sf7X3n_(Yyse(cQ)mFEbLma?iQ&`Uv{XGxg%43$^01 zE0nuY^czbA<0SdX*~_R;KpuFWaW7Dd{*Jih*cm3SREGZCg9;GBsHZJthud-tDL%=9 zQE>TIsm^{R1h{8b?w<7pNAY&eKGx(7O1h9gofkUOufy|$G(a8$edHId3u$3J%++nG z8c$+Zpgo_YvT!zk)j>X>jc{KYZ=0C?d4!A)Uzagr?=$+^qw$xz(;ixn4K$`j-n^F* zdeYT6OP{kuzEVMLg{h)0xeKUBH6f=O3h>C~`j%8}vK0E@`#!vBjBCN=*WQr2I;nuj z6%8ZWj;zh`f#|e@qENQ;?(iOyRFTHhl9tq+SO?0ykTo2t6a$H#L_4tv;1JP{_7|?1 zc0qx}%NLcYz*v2Xpp$u$zIlZ~y&fTT8Boi%YuGMVbxkZn(`mjYBH3|&qU9e3f=_v1 z2>WUcK(3UNU6v(8URB<%)Cay$DZj-@tSSDXqyqa3e=qf3B^XLauvD!dpCido_IjF7 zIXJpwA7WUwGqE7de-9?ad&$g7QhEkd}%uZ8=@LGK!ot|P8O|7 zb_^1dWCgfABZoWl7#V~HC9QZo05|o-nl*TU_^dYxw^w zZ$jii7WR<(8Dvpcc+l6~l?F^~83BoPl5#6H)C`Tu0k4 zV4s|mAF?SS4Fkom(!okZFs{&w2qgfJn5BoMtN3ST_h-WSx0*q#$0b_iBSNI1W_+#B z--V*7*hcDZzabiSoj#6=386oq-)+tk`{JKhuchZBh~{lW3br4Z&o~HDFK;tHZZ@fs zozJ?5jKkfvU8vyu$|hsRpIHQ1l-skGnq>+c$JqKqWiG8+wR^ezG zMwi($>g;L-($11)#vC*VguSN%#~AIdgDw;zDP~D$0BJ4sWp_ z-)f;U1ZTbwAJ4Zmy~SRI^_x0{%8kLE_A2@BK)2^NdFQ#`YVWIOP7yTqZgf-A@RDH0j#fW^AW7OLW$*WDlE{*&1hUBNzpj|HRYi&LR6_u#mR9JH) z`i%<8?ybYu>zv=t%X(+wkm{ogS)~vVlk6fTaL!UDZd`hl;mL_DlnPL1E z+JA}YO7WGv{U!c*8)hjWhV>=Jt()>n^YpxtDcQH0%Qs~S2i>nE<}wS`S%G`$u)5VW zI}R3f!?Ov|>it7p$_eskXR`1A6m|3|&KniHtC4R;pHSORPX!%PL1FYLyGmQzqb;6d z2K?VkAtMXgiCxtjx4aa^5SBA3rP&NtH?v&I983@QKr!8u8W73mcLP(`B`gb%iMtHi z(T&sDyI_Wb_biUOvI9@-$q^KNew8&Z``j=G2{QX$mtQ z0TE!6oBr>}?+Pa4o{3_5%FTZ$l;%3C;y{f`^IpH_=y{amQ;^1~p7UBSnk zP9xy1uvl_nLf2)R!{>uG2}}JCg2R~Nh0hP;`|j+*@CD8Fx2aESbkVRfOiF$RyrXTk zoUgtw=h=S%pW~na`pHZP(<%duDOQ2S*|IYt3TI7HY%)P)kkFK{-k_TWKz-5gzfp!18SR z^bqdO;O-3NXXH%jSfQfoq|%7Vp{7M4BVB+i4RgpTm)Lj46bWx#P)M}Tm^i3BixHCo zsdID*+#A1RU#_iWi)~zj&WD^_IldB@oP1vsl_auEiFK)s7b~AJA=VXc8`IGKaPo4aAm4=H_G@Q{<_YC;H9cIa@aG2Duj zD4iXq0?LEq|VELakpgBA8e&@<4*Z@E#FcCD)kAL z>ks|2qc)emGnwuk>0#3~73rI&m!~2lp435FMD;&JOiGojxtsvYju8X8s3)UB3D(=K zG!Ut4NcSa6CPNh5jkk(Fos35gI@8s)ScqupbI&YXn%%BiXkaYlYGupG0Sq#~E!@}I z31Q~#v695neoB~oB>Lp}6MG)nG%ciY((x~Si=&2&Y-rXeNgAdK!*v~=h0Ow%Fwase zQce%l08mfOpapbI7Sy9>9FDw9De0+S|0;hG;1DO?au97z{nrX zqTfS}dMz$6%1-oOMX>Kf4VznUTr~M3_2=K5JTEDFLNSD{cm4#FR%u;&8aX%wSp7aT z)=in!gB0rV9#XMugPN^*&;L%+HZcWhf`rQCB<~ZdEbD3U%PqWex>YPrw@-Q{$hzm6XW^yi# z64UPIl%4m_Je|)4Fb01Lswj!z+OhA>Ctj+GH*??l*z{gu0-qm5zN1> z=dXr41_1#&Z7kf7_{=d^X;z7ile*mgcoEBsEhL_sv-c&wRg`Ygz9wx$AX&U?^Xal~ z_GL>>n%At);o_x1-acWL&Hm8kT1U_-wi!JKq=D;R5KS!#B<97WW4-{%cf36_gX}8r zDI&YrJ!5NmWSooY9_d!Z6LMP0QnMp;X~@R)Owa@Yp`gS!-*+Wpu)whvY~#62l&T&3 zCJRF2>uLu*Ac>Iq_+6una|W0C-|0b{N!AgXzRvp$cQ#`5bc)~M>(;AXIP zyYH}@4U69o#F#mUvOC{eDV)IW8_#5K3sR+m;}L(kkePiXSw0)%)c~n|_zJ&F3ym-D zyls(L(d5(R`A=D%AU`{Ie& z9|wndHLbz!VpdzMmQJsRdO!y;(l_6wysXH$ltbDqs2VU-UasuqS)11!ohy%_hbuO_ zP5Ol=iN;A@vNN|&JO7Y!*HXewocyF>Ot8$r*RzhsWLs}Q9!{v>J$Bd@Vfip6FQJ2huoYUe!e5xo-j2EcPQ8?$Qwz%wY&+NSYzVfkmD&JDp!(4G^4@YmA+oHnS9 zql+;g+j8XohWRWUl4wJtX7STbWGp2Bp`_ub#T^C-{ALP%kjmA-ZsITJcUDCEn-h7P zc_3^Oa2*`-+bIXCcvPkCbs<)pMtSGS!B#qT;BZGZc0 zg;d{oti0O3+{2aU_gN-VcRLpTaV+wtZ|12sVqs@8NWcLt-{vC?|7u zG2{_qySG#5Ct_QJ8>^?nsxb zwc_Dr>kl6yl=V9m8XV)2SKyvnPBUGJ$mKcIjTzo9QfFr$ z;~g*NehiM3_`5Z_>!VK9Ofp~M1H;g*m)iNjDz54Z`FA`(n3b;8Epv;GY=%2or*jfv zPnIgc?^fLlt_*Am1ScwNE~^+G%@qT8LFYS2J0bAX^mL^Vk68Un?s_!#Z~|_9cp$|C zGW8P)Zp7x*FTvS#@!SJ#liF7{yRQY?Ba6H@w~tRa!7} z7D4u z1%SD4zMbcq*~=`}yqeo5(1}>=uguJ7&W%>Q!I|Zg2yiQX-J@{E&imH$MD{gTQG5D? zLVD^!2p}PvxH+@Soq1tnFsS@=&2Jcf6)D}(OfFpf#-seKG5LJk4!vsnooH(`&f=44 zNrXlDFhuioJ-%T3kvN6%X1@p^Up8;mQ!|CtIbwu=J$+OI;Cqc6;bp226(to}Sg13z z(k6|lGzD#e+5It}Ei13M_SqYMG(pH!@9PbVIE@=g04<{-SP&3Vm&hD}zsiR!$!`z) zGtz&ZM@w@233jA6arA6zu7`UEAx1`+Z9*Y;Hf%X-Zzy@@Ng{g|I>$jWuT$BgKW}6u z-1>0#R==7~#RnY5eu&QUfK~_!X#y1!Lo1k|G3*YKdBgr77q376S(gssZy0i?<+3|< z16*pmMOP`Y-w%eorD)weiWLx9ctnB=x1GnLDXg&hKPphR$A~?J{u!iiV3_biXr88( z*0AcWFP(p4(mpKwNWzXQIPVH5L2kQd6K6W51~3A5AC4&@6OPjg%3&X?B@<05Gu8BMT2W_+cBP1(+98 zNj+VcWb!%ay5-`fov5pK%rCKB9tk)e3U~ zD|k$iEwr&yBwj@(5-)v7#@>wBvub*Fe`fM<&w7-kGp@tNm@rGr+>EIz__ccwd9cCz zcFhxo9`uo&v7IuA3nhR?j+xk9A4IC$6dnu^8UOk~H$}M+gY(Z8V9GAnw}M8jqGpj71xv<=kD!K=NV&Fkt^WnDr7l|DD5;LNE9|%#x25TI zu9hQ1iF~LliGLhKHgYuewDZQ;VOH>kz>Fqb!yWIw@26qXAQThthURwEF7l^+8MQ%G z8eeGxHx6`$IZ9qAF}U+NwfIeWl0@wbE4b-t5CA6Y-ofNqghfB3zy+$`%Ei23-`8 z!*+5)Sj-VIG}`PTeOyskzh>u|>DrZ>lyw+_>w}rminU{`Zw!wdx>sKNKJLgsx|8a> zuF9D@(AIof$tLbn#sb&>Z6;QxZMTG`J<(ra_+CpTO4s?Y=R&rnj|i0?`1fh1Sj;bc zv&f3_%;Svr^~Ms0D;2bo^`3DdU+ux(I6t!LVTJsi^hw9o0{QOe97IHpV)dO0Nd`E? ztSam_2)20UaRSX%R4hm^i(KLe`#NVvNZ*)*!zc=Q8#pgi%IL$}K{|sx(iROE-cnLE zKo3?~<^`k7ltf|EYv9#dKBuW8ojmIwZm zN@8P0*49_y(;V7>S<|A)8WH*M$haXW)2P1`arc68o7f zFTybKT4!lHBKNnvC&AgRMFTKKs693m4++yc4D5DPChxZpOBYx)!daCU|HUPxUOo}O zLr=x0esJ}XKiw!~BXESUm!hoVEqj%F_QZB+6$A9?kr`?et)j-&nHoH6q?z&JlN7u6 zkPI)S^w9Df!j97Vni`&nu5Z?Axy`bkY~0Swnv#upbf=?Yi6Wp{QzFf6K|eZ{2zP+z zs$S*`!P3q!9-ekHxSg{+BSH9x4sCW67E)~}aq29dL~l~3J#AB)BLlV<0C;oh!LzVo z=3Ats!S(MAu$!44I@~&|TLZTlSB(l9d`>OzXzp7e#Vsygf0y!ZnN>@`tp-P5WHI7) zZZv_(d>G_$YHDZ^L~LQcnbh=)Hj`jWoTJo{2; z;VTIguYia!d+XH08sqP=dcMOCpqu|vbEvz2B6f_=@<_UvQmsuM%cJ0QG1W2w{}py; zR!v3FG(fE!EBIL*iQO+N;~4ma`+-+{-JfB;mOLU9SHK{bZ6?Gj zwAE{>wrib0{WHEL#h)G~GGy;h+-<^Z?iv~GOq+rAf-^itA#H<+-J}=w(_TeG3;XsD zRfr8Cwu}uJ=)56TQm5PiV&bsP&CNp#S+mzww~fKn&?gW@Ng*0L_oJm8Jj1BG@WSWO zHMh!!vbTnxSvRyISoFN|W|&luTYJrHlA)mIkJDBc+*d>W3G7DxM{Gexm%*16e9<(C zsOV*H6Q`$sMk7bKVO=>9&;3j$GIK}hTNlc$N zVwjhn0>g4l_)`=yP6(NmE!<;c+dK5Dv>4&uN}0mC2H=@jZj0+$+YZO=X=@qrf&N5t zvgcoM(2gR$C!LNJh;Z1=N8xED^BuC(bfl#c ze3QIT8!V+`(~vqbuSoeElA4E|ca^lGcD+zq#Q*W#r5}b&=gEfJIGl^=NV5QPk@Db= z1ALyDmO@HJABBu2{Jr=|Z~HbM>ApGZT<@}Bf|L24=uFZ|6UURTpU zvfIF=ic>D7zA8&4ER?q9`N`(8Tef*NfIhL_<+)zC5rJU^aQP(T?aDyR#7Y^VmRki? zS8c@cNqNZitu9)DG^$6h-&7f62Qo79+TG>B>E$ItJ&(HAIl4|f=m7<~q&#kwq)1)2 z5-sZu#x@P63;3+n(-9Z)eBe%ozp4%e8=at5%i)4+7dEU(kMaYp@s9b(e*{aaI>1zV5Tr< z`MiN;&@}^Ig_QEEs{Tt;TPP1n#3)v~3Ijoo8C09^FUMr3iLTLoZDmPpaDUW3Rj#pN z1FSTRe?XL}E{cTr?c)F(T}TKTyz=8|n<`i|U$HNAWaPYXsZ(`h15k9iMW^u$!z73{ z_=N1muOaN1lE`jcTsSepoEn%pc-#!%zBnw%Gg3*Ggs2Vi^X}1!=L(i%nJlxQKd8&F zH32Aa9JNSy{F}ribDl=SObihsgtr}U#X-EOqF$)N6gMKV z6phwZi+d|~@!+6CXh_e;H{&gQu7Z%jG1buD3j~+e=-S3il?2)Mp)D9RR_i=(e7fo) zy9S>gNA);1d5jq7muPjPY{?tP?;(;}PH5^r!bWtJhA5F>^A_yQjl~v2d_K9>-j9}u z{KDdo0erAdo0^JlSE!aNRMD~a`;wlB9_LX*8}oii+8$JC4{2ird1iXJUV?~8l^eR4 z`8Doe=fuLJxcx3REQ)pS_FdIVlx*)y1qi{=6b_VsSFHwr#-$ts~9QSO< zo>ucpuKP7M|2z9TB%>Vmh+clWz3XUegnZ9zPV`r0rUdQ&&43K$Ox9LyS&l5&b1kp)1S|GV#10qc#MJNbuEna?(fAW(U8JA#8dOtIfG%eq>T1sP*o;vtJ2m$|L#oi{ zjF1#BRKMo32#xnAuR|VW+R7}%GBh_i*(D@fuG*v^N^T$6t$_QG4)AX2sQ6tMQo_r~L3<J@K=A>PtP(8yKHc+It%IH_Dc_a9iu1K^Ex2C}T@noI1^EeW{TAF*RhLW0(ky$}Pz!WdoA>c!Pyw9_cQenRo?O4@P~c~{=Q;b)KkvKy zgJdN*d;5>TRC;=7zDz>2|G!u^!rm9m2(S#b{zf=KLmMxcWA{gYrc->F`x)+N7dx8WCUe>%h`$oKnXkM@V2T~yDXHh#t5BsInc$lCvN)^P-|n7;3jL52rf;%>==Y<)#3-#&-_&Bb=$V{LSr?xx&eIA0J~ofB<$-# zl(HH~B4k138^+30WzpA^n)9KE=f$=AoKxuWeLO0uYKu1(QVX#i`-_ad_JeGjlk$sE zJVXQ$&q7erTLq!(P*a|@Y0zG8Pebx)tA?W>y!I z7nIr1bd(Fhj20F8Mefg{!X#le35yuj9c)nHMGMNXmGo+YwW{obzVoiAYpKuOa5evH|0=Nk_9Q*Hz}m<_>JqM21osK}^zVH{g*29Yq*bd~*KK zoZM-3)b@~*Lcf2g?I|70abIgi_k^XW`cuz*E#9M)*^1IVbD~4P^B#Lfz2I~zT182z zHgp5~%v?LvV(?7IuS3tWe2(jn`ZzAo+?szNRBJ)U@{%}mZF!)ULe*TMs;++7bCB9U zr8d5gN<*(MI%ESVcVD(K9<8sJ!xcOUCImj8Zb_}=>Aq_aL;o3y6sWVD6a=hMp>HZ! zAu6@t3)HqpgvhWHv31mF!_V9VSVpN@ha$vydd!ocJGOOE`T#@BE8E%~1+U|}?@LUH zwfoxy7W1J;bl1O=OOlh9yi`4(eR+f&F)~I!u6x9wgWx61!3K?ipOXxS9*9APWJZV- zl;L6mN1de6dOriBhv2#Cp2NF=>R{1P>pgQrul%rsa02Eor`b%ZcPa;W8(Od;6QGK% z22p1Swu}aYS%Kj20Mzwef*3TE$>=6~U)#9o$`Aur>OelVx=}dAu;pRBtJ);JwXW6i zD$jh)tm7_8OVU04te%bgPPoKZ39cNM+ z<}47T2YJnfV;NXYf(e?mKlLlTyeB`AwaeaC92XBr%ms#3=n*_<<^;%oO4$P>@2Qr= zTaMO7GbDF`J`?9R=^h+*@Hwo0s)~~Gc=u?%mbJ=GSd4A>{o-Q*s$D!+k_6U4ji(IO zn$k>${(pK+CTPTi59e+;x~JC%ZtWJ)BhKO*YZftHRqrPiwz5WNuEPv6@g{_suBlZM zZAr%5&*}qv&yZio`rK4xk}l|@s2z3G8jz)gw%}G0f^gW|N?64I-oAzxa0yJR?&;*` zY>Babu-WS&FR3{qF?i>ChJ5Bsbd7rgB=?>OH?KjqBKEP+xxqV?1KP%4O% z;p^Qj=DD&|?jgTg(VZh+No1IGzDflRlbT#OE zXM~lPStIJ-`AV)W=QUJ>wJER~l&S+!8NABY?eoLUV<<$1{MzIQm`y~{vTDCt3&8p- z%#{@td3tlm!R^N4F650oLr2X_&CHrTIB)&3tu+txeZDj&;SN)e_e&Xoh*=?)4w`t{ zl+G`YHAToc7;U6ETh~)j2O?>65&rr zs^ltl+69Y|RF2bU`90eRIc6&wK?3~V^J+$8;lXk)3YscLp|$N!d3_1n=14tqaO%mi zS#}5y?aKc{%8}vTm6wzb-|go9u;GBu%{GDl!*-rZ%GM|?RfO{1<;?f8!)q_7gqmd` zfA{_C{K5`?R&+10#cJ9SqpaNM(`o3xPc%esNKRO8)2!Yn1}8}UXYhT|;f#s9ifMBp+)(ws8|Dqk@P zfx5M>I0>FwTWU+tMm@KaZ6B~t^gMc9vJ^MJ;&X*M^>0)#QTJ^(5{mOIZ-sVzWy$}{ zyI>+TY|dX_z3lWR$;8u0U(rtyIr9#_);4~fm}QkAA(=&CIL*>DbTDbp290!eh4hfF z@caASNaF?{?J?6r_kHFDNJaOrP5TkT$0n7u;8$CvG-r|uXVfJft>#Lgy*oFK72yX| zU=GimVLnqpkcB!aGev2nCL{~b%FO<9PldDm+bYU-&D4o0wOo;h&~>C6m*&gGnKd)BWcD33 zKJ*U}CnN_s#SSx1TqC;j>9Mr`&T6qy{!tLOe)7zLN=e|ri52o_^QSfs z^6|d)!;KS&!jlnTD`FpO9&wu_cZxSJhGgJ9eOS)r>+8F1hPh11BDkdYw&2Z4R(|U! z@gojx6jA@Uo^C$L>c@_C9lM7L3SZGLDtv!G`?6U*LbT+uckZ=78NN5;>HW&?-(#FJ zgw~y!`3O@~VnhL)3?%$ricGA|;(BS9pR9ttII@c9vX+9S<^(Cu9h=}#v@J!#muW;D zPdSA#D22LcCjrjKiEA$Z=QT~Z{0VQ_hE|wqup)<8$_O_e%k#KY4T|t9p}LNgY{=gJxnj29iqM)iMLSj$VSZ0 zY@sIWNs+E5OQBaAYu$O>C(YScnMVxAraOC(S=V-Ci-1?~2M@e?bc<6|4=BBfpEy~? zpMrKquD8cI1FAH`6Oi>a&<5bJ@u5)%TUN0vd{DcJgX4AS#`muh@^20&{3YTSM=nIK zTCoGK#a&)o-y-Ma+mxtF4Vk*cFn4_1e(69*Pv9u$h#IQW4r7zoue`O9evQsif1($` zb{%X!DLGpI-L>nGIDq$}ey2_D{^|%mYZ?<~7Ii(C(CIV}CQ=Yt4g@yv#&{t1!4kq* z@+_`T*+a6d?K!#h_ARIq)5%-G`zFZEC*=Eu^0vwtFm5N=CY zTA&PyezOVzCzQauBN4sb%;0fb7uDh(#=MDRxP8>7_w{D#aP(oTryybp-cC8p8f^yc zATmucMOR!X@Sa`1%ls~VT{>rEVZwaa;Z+$-U59S1)d6o(8eZV_)`H=--T6}F1SSIK z`J&>61n@~fe}%lZ`_)}L~d zIk4(kru6Ulf^Zab2;=*r7R=Isc-Hau?6^MF=^Q zp$^T+R#Jh>uVnnA@FV~kTzB1rCtO6D?(0Clf4rKGci324@owR~g)Z)XZ2rGx_#Zmf zK8v}?;fzDE7yGZv`g=vJi(G*kg)S<9raoGv9%~@1(@(C>LC_r$I*_lB6n<_wicZ;U zd?C)<+0@jiHc8@=nQvlbt%pZw)D|4;O^LArSkl+Mv)ft^^ z)H(Y?ypr_v5FF&s+V~s^epAvdxu>P_!F&I7lxd#Hy1lid6~AYn=p!%10sN|&UZo-( z3TEvJ9}Duq6T@nT;KwnVfw#01uh_o2lr3Wun}M?MgFVkA7oWY4&& z@Lb7%B6V6qFqK24)2lvY!3f{9?bF?_t1YVF9fKLDrrn_(2-I+E-*f8wR8b)y&9#9a z!B&s$taFSz440IY)alCU2CxuE{|Vclb>hX5^Q84$I_OI5C%b^&gv$K3+{mzE3aLE0 z96G>oFGD?q*zX;y66YhT#vX-LE zvvH|1n8>Rw#X0RZ`Z?dZ)Hr+@^UH*9x=1B@>7B-pkV(d&!N~Tmp>N5#bsO!wA|M_Y zBE?oxNrTq==m?{_MANHcg^&MSbwq$56LgZjId^kU;^WtI^yYL4)$^YRmyL*${Ebi% zkwO9eI#&uLT@`aQ)c59N_qyv{yfO9i!Ub+jT+W%?TR7{7-6%3(%bv)M7K6+Tb`yRa zQZafmmvtOWlri2-h^)Lj3;1Y%!Z1HsN1kx@WchYSigmcg&U0Q&gG5uV5X;Vck%xlhJh(d_HDYR}5{esLlF4>%L++gjIb|B8uL$Jl( zPkFRsw&9((%z>WQakJk?CUm@iaKC`c2h@|!af_hSR6OPNDtva~4BW7t^+#2z3m(zv zOX($5Kb{L^N&P~_8jaE%vr6}&+=T^8h?1|>uN#mEQAf>&?k`z@FaK;f%so6lI@8`|;h)US z^WsdG1QqpSTh8>68GS#3icos?8L)Pz%fj8@#47&zef#A!2^vSp@YMXD%&zU1yzJ34fn67-q~*dHmBYT&h^*1O1ZiG2HW zP9pT;pK;{hAUF+Fd8tFXs~nfeS9%PFKlg&s<>>@+^{Rz32SYouNpmdYc7Mv?f!D)M zEnV7TgBg^!ftW3vKgfR1CrSh~@N>niOh47l9F`Sh0M;vkD%axHv)4LPanHd6aIB`e zlCyx)6tfL?Giv6IKJc_dk<(=^4b)S#1kMq_H!U@lQ!qOVP4Q@M9gvftPqv*wt7x~Y z^HoSQp6bM=*33u<*Hx7ZlPMMaHW}@xE#%IjV)nYjzpMURxR7F){9Zy((i~Sd-&HS4 zJAN~EL9$2}Qhb9WF5RRL2NN^W5w18IQ6wj^d|{+1k;JN_AzY8=KeYQF$q|3Nu$SZj zWosriTT0Pn30)+CMWIc3Oe z*X3;hZ93GR7p*eU;%6pk2wFy7C=;P_+hyS9dfrEabu;_O)bl2IVt~x875ddn-Hy{c6Oi9XFnMScokq@1mFJmy@rDT<9ei5*8~{iu@_^QmWAN594#;t z?3~wVC!L6`zLdTsTQnoNQq`2wX0*nV)-0j}p)wIu@2B2INSfA@TKcjKvNU0$xjkLx z7J|)3Fqcp0Tfsndw3g;qL{A~1(gr`&*9G9;RMJoGF*3{Zz29>1o2>Ydj^{0NQ5I4G zbfd@#n5b<|(M@hYh{as!(*|81gizp4%19p-$4J=e>mEWzc+lxO!}n)2OJcrNs-B|| zi`Pv{?8hw)!&$)Ua|TOgDQ=2qrR=GlQ8|aE1E*3^L+^3vskegPU7c!!nQk0)#9sfQ zZ$FSGtDx&{rxAUN_1kwhlYqWMZ($?r2(bHqiZTlnNDJMOjYN&(cHDlSdDZx%9qIc! z$x1t+R!OFkIu37ZnliV6+xJ-QdCCqTDo!@)gFm=B4Sm_Gi8g}Fy6+7bq`W*3|dk&>P zcRgav{(p46by!;5~l@Gk=PnWdSke&VFf z*vTiZm8sx@`~|ioYH*C>W>F%egfkKKKcl z<~EHBUTV>P!;0u$_!;g@X>+%`O4h~ihVc@{;^3sac5_D+>(m^*HyKi*Wj5yneD_J0 z3K~mw^m}mJ^#e~aKYMP)RIN5w3xd9Da_Qe??*|GYtI5*Rx-|(TQ-f*Yq0hf>VF`n0rh8cRHL&fkWh(|C)Mk zZ$~mbT#3-hgVOu2I|evv2N`8>197K`^eiwQ}0GCe%ztpPk3{GB@LW{U(Jw)rN$9gN|rE_ zjdWTuC^|$LH#NP$X=WD9Im_M~Cm@nSWk#HzA7F25cK;{5*8FY&Cn)fv`N?A9Cw5#= zUG8jO?g5fd#Tnk1X~=$&YkqSCqw2mM-=pY4-9LN!oy?2~{2JC*;mt9+G^>-Q{}CAB z0ZnFn>#gkgn*G$$j68Ue?{+nKx&n-h5yUrdFS#WCahb^|s$`Um;Bg=8SI#kdrps5W zJvBn#XZ*|lrS~x8Rs*HzB)VQKB<0Rfy*OOSI_a*CX7DGQLHPC@Uv5vk=#MSO=Watr zzwi(*$HfjKUCTpOdjTYY+`YtIu zXtMQ;k7)uu+FpMMX(OY2hwJ~OIQLnXy9jX$PHgaQdqMlnC#FeUy2MOX@pfDS{NX&+ zNPfk5-cuN5B=n%UhTj5?3;VE*7}wrD-tyw zjyNuFX?*4iSOV+EVNt*K`zN%urV`sK=qf$vN0SAAdOqBI`Hy?IGYPXS+5MIbcuueIkWbfQykV&5WpoF4? zHnN`+?A7`XfLwG9?rDHo~9Urd4=(lOsrYz?OFj% z^nR6Lba^nK?CHJX%#h}Eh==@Ljeyz#XY~O0Gm5tW**UA|mbN=Uovd`FrY~Xw|AQgm zN5!*bN|2EJu#P=Ns_dfGn4~G0$H1R@tLMx{v_Bz^*gx%cqeyQ&@{8|G#+zMPW!<>d zrY01^0VuNG;jRQHj1FB2E-^Wf3w_m&+&CfTPs6Lsm&m}8hY98BFFr}an2rvUyjTqQ zaraK4!?wxk2~NVx3zg%q9_gQxS_Hdem$0?Oc$quFni~2vdHQp?lx!1yzJ`|T{MXG} z;$L&f_zg*eC){j1zjx`h8t~~6tTg`M>k-%0Y>I6Jgk1C{QQ@}KvQ^Yq+jZ83*lKoM z8FkAqOTNtXEE_~15VzFhi%b@GN2Hf_Jd;>nlsWbGSU$Wmc4jI9j%uQISNgw`=%2U0 zt|FqpD9Ug0)X#mkT*GC2tc{&W6miT;xbB7y*>923NA(6roqI(Xt&eoSDihz1vZU>B z;{PK}{5M4Z$U7<%cNm($AqQl<JdMmX6*Mr6l`W{+!{yZ%pjf=I6jINIUzHqw85i52l}fd7R^IZNv6=tyTo(Q+ zn{7*#7Cc%*Te3kRyj*p@tXR+MruB*Z@Onl z^l5#BxzQ#7`jU+=8Pw6LWO)xne<*esa4x>VtF3t_0&U)z=n6buTcn?b*Ghjl@PQG2LA`$ODV2zt!tc=vaPG@_^m zeFIM+BPzx1j?D+|Zcj07U0e$A(lbhUfY%@Ijud@P=&QW18Q-?34qwzwZ)jEWO|}*# z<-$!nUgac5ASXEmb)8IU*aOl!`KJg$j=l8g3{*n&zEQ3@t<^!z2V?#(30D0*8UwQe zhJ=gp+$_RI|8SAcg-lTeb%?MKlkTG>f??i9bS1eB*;GG2biY*q3XG~CaZGQE@l=2q?St$nT7;r|FL`+GmJ44Q z4&ES{xmwjqjxCYP@KQkY#3e`rg&dF%Y$ZhvKWXLr(AT!n)in8{dG7S({dPQj-8Nd> zv-uE+4{P#B*iXf+^c&XFyC~QF0A)sw&vZXp%rL%Ch{wEe_+Y(BLQi0Tl_=|O)z`J^ z>cYUJ1oYS53XCzs$sO*ZF>U^L4)09{ctZ(kA;OW$4q?20odWY-;g$#C-j*%oZiM=T z#>LYt=|%pDfym~_Tf{YtVT*Y6z4p-lcE?KM|H5Jm$ftCea3?17W0eMlbocI9zt5$6 zL5ea|P`s4L4=P7YpKAmd#m^8mzjIgm=&8K^Or$!hDVqpH$}e$yhnzSl_K;JjfPt7g z&$5d?JM7nLb6zVJl`_klIwkI6;)ZY9)?`nj2p;_UDk>UkVEdm{7l0NGAb|Fo zlPB=`1v=VH@=9Y3E1y&sJO1SNqh*{KHHjLavv9@z%xr@bjV^d7J1QM1GvN$F2JrCGXBtKVAE)_GpQnqo3TL zQQQwqhlb}tlE@SVnpbQ*TF(XF50sa#O0sjhs1Dth1hjcLwzzn2iP8V`mfdm}&CoDF zN>#d3NkO@_MixK+g$CF+JZSdoJ8WwgpT&r`KiU#wfxBqfjeV!@@%m>Hjzj=W<60eQ ze^TlMqsQ3dI(p7OgZ3};)jQ?RftX;tc}59Xe!@{*T}L#ozu zoGFCNFJjv)*1$_R+G#!K@s zG{9RXm74x6C$H@{6k8V8A`eF`97O}_eioP)=UBIvlkG%mVGno2;k&Q`??*7549n%y zZ7!D_ZkvXj{xe+~>>!iwAX^HcZvh>BC5lMJs#4OvELPVCgd&30 zewxp47jt^~Vd zO|{90W-XBG!mW;1Sk>x4Zd`aP=9`+W}OK8d7x}m*;Nuj+bS!*sbBuzY!!R z2xUC(<~9UF1BW&Ew+*gXk=3=Y#P=6O7{eAw$ubfh>zrLIwL{!#P|xQK%P2%6X`>eR zf(@iJMYbpG;3bcV+n4FT+R1i|H$Yf}bEhocbu9Y#xliA)o)DijkV$_8F3cUHg^nLaI6kW{NSZYhU)j`~6bG>v;3= zk#oMaPe<4~RSE+PUCV9muKaLAqo>OM3p=)=81+08W3cO3^(7C=7vW4ZzHuAn|Limv zh1+W3e-Ah*q9kq=YK|TujcvOUSmW&`zn`-xuf7?0>g3Q8v&5-YIQ2WNf>9%WSW(QD z&`=cK(x2^jxR*{ea?0ILc^m?b=I?Gl4!XFlcEa>Sn11g;kWS#9?Z0H91(>Pcc?l?m zEH3H`eS%}gM!IGz09JKsyD!HzAc%Se{`~Wbl^-4*C}-@K`AFh?b>Iv=t0HrRTCgUMj}Rz8y($Y zZVmgh$mbAoyWyNTOq(CKFUBhCqc3j2)`8z*5xh}swNOQpx5fGm7}~`zOTVGe^mk_G zNW0y&IIJXFaBMIRj^^Aq)c8(ra-(4!G=wD~B0K{CVyHc9hR)eW?aq$So<=nME}+3W zd(*J4H&HI%k-W@n%@IEQj!*9WMh%o1agugQ00(~dDLNIcS_{;Qb{^B_rs99WK_n#+ zs^@aR4y`7C`>I*&htX`y7x;EZa-*LE1~HUAlI(0-iuN&}BxeuKGhgqCCzp-!_le%< ze*CJ`vbv>fa8UP)wgCuRf2F_QSjH;bZPf}nqbQw5t{EwRnh3fi58tlmugkSY>!?># z-?M13saWE+id?_LRx7nUp zd(mM=Lu#bK^k|&l>!!~y*W)~O#2xr~=t;6*I$qF!(zr?wy`*KAhJ!!a$tkpF3%YQG z{^^l$S$YPnq7$t6V<$hTw zWuxzt*Qx_dlnXz5YRfDw0rXI_S&<65UO!X%GLb-eZyk8{e7lc!23;f@!zebs<<`*p zlgjvp3juda4YWyqZd>78NA4#rCKq!4|atFr#N-aJP1llR# zO6H#_Y6xiGXExPK2iJFQaal}yctp5C|B1pNw^#-TPc6JvLF$Bc_jTGiv5fkQvaW)`jeaY zdp6agqBIy#hHPBXjKp!V=PVFmisWk^d}JopQ5`j!i7r!$=hF3SPj zS+<>Fk=vJjJDDn*T)+F_Jxy|!Rbl+u2b~_#+t#H%yYGVpc9e~)=1_2z*_*yuKG>bT z-cdnj=1tOjMBUl_(i6bPW`y^@U6QAqb`|`{9tyX`-r7%R^gyauQGzk;%$A7|MQ0& z@3+=221`mi+&YGb0|N7=Hwr$)p~7sP%wZ2ws5#GEPu{+Zc%L?(k{5DA>f>*U+alJe zJ?{^_AmE(%!9enEA-GGMN(S)Xv=X`{EZXY6kUXbU&UYzYN`Z1%wREcK;y2Yx^*FqL zf>Wz0byuBz`BHLJ*KG~=3U{q;csj7o0x627I!+^9RV($j_J-`iUP~0m_|R2X_j}#U z?)#Xg?TwocKwqKyT5a(%ul8GJ{6BLR*98{U4 z!tb^enWssJzDgotan8i#<8cW+#1o!j;C`-+>#fbE+B%_Zn7D%N$nLusMV zQJ3fmL+2$6bB!Tfe&gf$kZ-?umP~4%@zg2`9vf~Qyv6PGZfEjaFYD4+VI7maY-svS zQQl7Be{f?sNafPJU))5j?61BPF`ABBMD;3=WM`bzI|n##x}fZ)jf>$DZeY+=PF(ns zHC`G~3828Utb?W~K*;wOiDt&6)}^^Z>=Our(?7mP%PwJ>h@#A$;4sjf^Q^3Z!Oo)& zH}6ACiQ_GC)|ZZI>T2)|{#S)FEMbYIKU0f)_M&=oJ&-Y6MA7&1eNnBR{45saT1~BF zdfPK=B-mpj-C@}boqHX^(8Bktqa@37Ar*sQ)M9LCf@VA6G$Re+G$Wec?6YJ2woD}! zj8yEyVf}OPV4Bz51Ukex*o?$6vy1vn=$WCT)>xy?gF$*;Jf&Gdd#C;bnOqpgY{Lr&FhY&Nyf*tD?5-~|UfJ-qqSosk}U-eRh(umfe5Ht=(gT925aidnN26~EuX$-){s z04pH2)&IDjWiHB>q81;ns?>;It4O3^4ANw|kei_kGM?M$6!p*XU-r|4*q3X?7MLRp1uK|2xHW<&>^dU*2|KPYQ$bzlU#POHrYrIu@grNs zg%Rd`z-y}vbl+xJuH&j$Xmzgo#VY=sg}c0PHjP6Q{58;@F_?vvkK zm)`sf5+moQ^5Lylz8C8ejli2Ok>_+jsg~o=4ktdEhtj?oq#^&UeE(4p+tiN+yMU49nk`NMrB@`q(f!V;=lv3Lf3!;0Vn%_i=) z)J`7^$DAI2dOo}*Oq2|x8JUR{PYYS1wPf1MXE*-z6itT>k_MchhV+aCGp}!eh&wtfdRz-6-3+KdQ0xZdY`k0W;0;Lx*}940=VeuD`P75H*mDI8VnGQsmnLFo z?wVZPTOL*@BP+5=Tq$PFDGHa= zZ8ZtqefbTUyh2d26*_dyE#|=;H@@<(u-BH?bUR7T24asnH&xSa{F?gnG3kb3TlCLVyPXO=`F>{HtQY*bzk2ymlb*GAkj*eEA+n5D z12K3H`TpNzy=dyCXc1Q8Y$-!?YBXy~Ym+nAXqQ3U3U8nD>75wB+WuXilt=eg#U;>z z)yZx{3TI1@M6F9M*n)8{ym5v(+BHvXA zdKW+BBvB)q_G->t*55pSv4&Upii)(MObTs*!kSR-snYp|q(xze7O{YCP_{zEG?$aF zmzl{*&qehiJ!(PD1Da|Gr~Qg6`7hPr@_1kJ16J`xZz3T3?J37vn_4nZq^cg)9F z#`~vgRDL=qA*r<)zQhas;wlX}(sRLB^1T=)L=rL|nRXSj(%>4^m!44_u{&z5Xp#S(Q6;SSpC|+ml3#rvG{BmN?@^m*BtS zIdV%|bOa|(L1uPJ=p?8<7ZHGB?FOV2qD&7PT7AMz(MvY@O?EGX3v%>6gTIL~Jqi>v z*m-j9!nxU{@9L=gEtHZ>x71f#F$|ihYc4I6w5C=GE{tVFrcCJ+2M^El)i=U zUd)v+{=NS^^y;-q$&d9X7n+6~{vs`+6~7Fuks}nqeEF_~&2GVUV_+YW;?6fMA=pyQ z(m&8jMyvaw*lPGf+*n4wjg6aQGnH?mbfK@Rr;mY% zhr5b_3fjlq-dj5AA#jL+tLQGvjnV4VJ$yX?#6Zr8;V=xqju3m(nEp?q9}~pktsij4 z21~|3>>GbY)`x}KIgZtaH9KD~8C?57m6x)`Uu6FB^33UK9&#tPZhh^GJuJ(gKaqF! z!_^Mguf^+yoJrp2C1%Xsgz!q2JFi2XiNpIdpg~}#BNNB-7?Wy8%!sy88nPGWf?>o}T)0ThFB?nW*Npvuy8Hsc1ZDwER3T4wjvBXIW!#I*6 z?W@XTIqGI&t)To(dDxc#MnlLk4`h|@k2~hgS&$N3S5gQSB1Yl7{}~Z!!bMH|F1Pwf zL=GCTppDT}@^)v3w=axFZfYIIJ(H-9?Bj7mxmQ22GTdFUGQJQ;^){}7J@N7J!40J} z_-aL=8MU*-S;uwMJQW_#hnJ5J_&C;|f!wZCooDzF+g--=D-GVQ%9a4@((43?;f}ox zKo#r@_J(LObCkoj7;jB$Q3UIFxNr0y3IxaZN>sKy9n=B+l-A1H+ax1faa0fEgHb|#Y^jI<2|ZIlh>w>>2QJ6v`#_k>80NaF$&7gu7VeCS7Q4A@0KiV?LfhKEc8BeC$iTfC?-b{a(^1I&{Gt% zW2*l`N{{p2=XzwPH9*Awd`eP8(h{O5d`M?;2nwVV>^`oI2bA3r`caX#(pOlr(QfF z)?Fkh*5kaJLG!Ra*8LRM1Tiy7vOobuQ5d?%eweoXViyAYe{Nq!JhOHf1@yKR{)V`J zEm(E8|Bh-OND6T9d|L5Vd3)xd<^TDa+PL+(Kq`pURCMMihoWR*kO#g4i93#PsUbXz zzjN!~TB@3>YSX4t6uA^aEFjcepCm@y3@);n_8qCLq+MW}n-`T!Gxz(|_w+ zTg z4Ew89004WOgLfXhUGUnROKhb{_B%(I+99TR zy&CyMN?#dOnsiTD3M>Ee z(rl)weWfy4fAmKrYG;kDU@P6`?+22f-=9+w4%;|=_11&`{I9`w&wl;`&{oXuWCh9D z9Bm^y04wL%b?;seh>6O<&C*OR5T`3vf`E{&n-XvI)}u6EU&Qs!D*rZRCuTFarv_LUl?u(!CbzH?G{Lzgh`O_53H%opW*S(f9;RY^dJ z_ddJA?}h*zx7xY|Wraj!3s)4G(_(;Ba=?)^A}|yc#Z;0_F3ZBFLis^zloPutm1oQZO2D^$y)zl6 zXmEa(T3i$mkgcFqq2|}OZwN4sD2K8koocSOnE+J!(Y>}2lFw(lEuim3{V3!(Lu2yd zbGEH_d01J}%gOCW`UkuACRFM7^Su9_@;>pscLXLi@jf8?!i##x>9q!F>HaL!KkfVz z4BQ|cf3xo=USDKtnzS55^n}B*e7*9U=;m5x9zMrhp6*@@wKEXb^LUGZj{Hg*R=Y<2rCN8_*q2 z_^cJ%kE#<-?iJvkuX|*QRm_wZ`RV|^Q6!15hmj5|I^IbVj8DF%hkijf(OoiIWnY@Oi*T42bahJ@0k@r>>#byYD%I=_O ze-Lh(Kyx%y&z5gISU%c1=byL#68Y zOM_rKwB>2wCsqcGRtGwJ!M@$-LZY(j<;-T37=@p}@O$!+XpyB1{_<|&FsJj7a@sD;m`&oY09Fmc0-&@+}nW`nI;((|X zd+GxHNva?eptcl9F@8J!d*`OBQf*PSsXjCDp=yQvRq3xxr}8WIbE=3n)j1(*CPsA@ zJw0oQua3D_hF2Gw?#*>Yp9jd=`x&NNEQnk=Tojzs#7v&tPIfR+=sNjn5R+`rTj zlBq&}f0^hiPBWx*5IUL@)9#N!gyENd#bD^`^4u_=YiMtN>aIgpxK_O2cmk2PJ(f5o z0JwFw`_+_UU(Fc5jVC^pRjACqF_ROkOWA*AF?jVbUYA+FaZHL!|CU!1Zff)4sD;p= zx{)I%GdtX0C7P&rSH>%_aV^S!Ccc4y`6VdzWU}`{yzK!&$vCLT%x_oh3s^`=>^*9E zIAWOgJ`Hw#DDSumblVvgJSn_6!}Pr(h{u_l+iTnJgdI+0UIFjQ!AEDo2SrO!=w*6l z7nqzI<$7y-<$L2Gwv7u=x<|bm0fD4`MBze3&O0Rc`moOKnB8+hC`P7VPkwEy@h;*+ zNBl%bm9nLIQG_G&&~Vpml)NF7(nZ>uZm#Ylf32iXsZV`rYdAA|vz78e!x8?Li7y75 zrbHV_6xH%Gn2L^_UbP8+@%=R_-@&|De2E}_<&0gJS@xqUz4oe+^tORvYrs8?S67z(6PbAVpumxP9^;7VZex%YpDbymBsLN=$PIwj!Z

        igPeT}aM z2|~iiU!z`pKVVoHV~0gZT!fj45gqL;Bu*ZRwXFNX$Pd@R3rjRY>+a}M7Z@TpYoO+A z-l$a-*#*@c$~J~se5;@s^oFnPtRIOa$h)r7ze;}jVJE!bthardeK^CsydDUhtc&V| z+D>U;#e=iZ1QcPtRuCwj6WR{@pbSvr)v}sduvuIxJU8%0cAJ+2`~_v=&yM`?0W$y+ zuvL5CSDoeNHZzMwIM@39Ht6N>wdhh<$vUKac)KvCcqt0dLXa_h<+hW3XZmoH;}c0& zI+eb%$n}CKW`USjeziQd_41EIYvb|VGoes%)Z@`Kb}7Vi2Q=kjn&e?Ms+t;5ZPspb zX^@ND>FOET=_7jN9R=yy*a#FdY8CTQHBT~dPhE&WMSRMk>~0Z0{CTN-kkm=jeKHtg zWoQ-SdGJ}%LeD{&eQsJbNIHA@wmW2}O@PWRcK(;cy?&bbVjbF8ug&@y;2c^Q`iX^; z6}u#z(KOx4rsb8-XO<1i+pJG9VU=`j$P}^+apoT>hDtg2dJSEsH-fRH`DIXtIqVZY zzkBifTZMQkL$5tv)${`PD3|HcLVoYqtXEBE#}9~Cvz?^BoNm}$1cm^aI7asi53k|W z6i)7~rifOr6TbM=hWUZ3gp;kg188jG27AOE^CX~y!6=3x+2G*Y{m0F?GKusP{DtqD z%2S;egIBig#~Om?1O!Q*?}Q?(SjAUC%e>%p;2wa6s|GMxC%_W2uf35fOsk6+IViz*6+9*gm zSkJHZ)*aIL7i_t=qr*{VaSzGW$&McUrP%EPD;M*ao^N_jJqDLOh@X{w3*U-8T$htj zJ|<{IXvyb8_>R*oC}ah*ckX;nINS|6{^|bhke}`$6j6+aE>J0yqul(&t7v|AloD9a znA|!XzdmV>SV~!(+Pcd{<0qoOG=P;?=@MfPL-mS>)zOiSwAcZ?zbhm#*0i6ep1hdL zdChwk!!`re5UD_o^hgUjkv=2#cN&yc7EJH#T|9AVUx974M!5L_oZDqIbKiZLp8azJ zzn^lp-lljTGk3t)$|knP9$yS>|7|Ip7A9 zaAy0)vVomaK6`@Ua*$D+Am#=gn`|Y#$)GIfq#Em5?va@vIzRUYAMC-FhUSp1`Vcl zuB|D8Ggqsah3p($Ah|Z+jgGU3pjz#it!k~pTtoeNW#dV=mxJ3r$hTL3M+nX!V&T{^FyzYbN z4j-0hT?ifb?%I^ur@p$h8~SG=wk(jf#DIvHKTFh0{xu8OgZ3!1=SUhw4aIN*R`SUD zn(UPi4*c(;_}9T_=NAVRdO2E*>`JkTz=zjKM97 zlnVG)E$g`|t#OF-VQq`WgH4vz?S~Mnaxa=~!eX0vSbw+I5tn_i*o#*#L z@cq+rzz{FK!!&qKEYq;PLyDe4oG3&lFWrPdgTD$+_k(zCRE9aXQ-czIN<} zX>SVFnQV{=CLdx}fXYTv)EN8l+t& zY4?GJ5SL&J>;+daG={bDGu7|nfA zSVd4#){+jd-5;Ef{w>7KHJ{(N+*bEqzrT;<%aXjp29TP7$0$FLR(wU1Gdt)0_O)r=Sh?U!io|bobrSuk4calXD}&NNSqAe&Mqr#8ABgn<8^l4wzhgF zzRLL`ex;ft%IxB1^A?_c>|@>BWoJJ|&ZF-f0(-r$o%fd~Y)|%1zvzMhz83Hmd+_q< zJ=nNf@EflWeEy9^Ie4HRirRIg+wY{h)+SxVrS84%fa0#MWsoK}(2-^^yfN+H!N0-r zEZxS;&qb3|Z=2*Ip-K!!Q_wr^xZImGfYkWf99Ec zr(7((L7~uaBg=t={f(#GMAlc(uDXp~4s5?Ix-u=8iZAby_bC;}o3OE)-L?Qi6l-^h z2icB6v+PjlaU`)q_d%EH7aV*xsY7oVvMbroqnF#S?2nMc-Zxq9bUcA|&S{M`e`+;o zMasqpN!!-mXK9T$0B2ASrY(enM4~KIdE9&IyjMw2g2x5iRPM`>)*E^<`87|no1A>| z<`S7e8DcwWJft^&mYy~7w$q4^UK9A^Im67AcsmMZFzulsu!D=C`B6Kbwx0W zAGoqqz3a0(DT*p3R^zvh3cbwlE_4*Rjp%SJ#u{C@n@qjOxv zvfJQYRQ^@BJ}=R1`n;tIxEmem4g{zUxuMo;8RR#Yf*T0Y3koqoXtnqU8Dz({CZv&p+3%^um_b}01&+jGMSrK4&1fcFKb*=J=39vVy zqEeL(kY@RBASSaFFUGfcIU1(^p7;nO;nCMhayVj0g z^*^WeE3Z}G3J3%2UG#oFUI4s>xck?C8yoK54<57q#G~V38FJOgU1grS!Ne=OW{(6K zKb3Jlu0fDTaa5Ywy2yRQ6(uc{E+;s13+z2PMx*;mH?&=QkKpWTShTV&>#?T8LQM;m z()akRQGd{>=HMg#(Y+Q4h*5b#q8%gIl8(gcK2-N0Jygu&kzcyosdufT^U^#G%gxH| zMd_Aa9(w+#p+{)s%3|nfYkecGnK}DNyi82#qH?R*eVq@@(C_iC$6-XGVNf^EQebED zrz=h*TKR7Bu__*q8VFLde`R_egT41jt>HIEbZVe~CoaAzXJ7bbV<8ibxZu+D>@ zD&uz+wOV zJo->}cK7Vjns;mRZxWe??N%ivV$J&NMLmdw@vzl)QdXBww zmh4ozXcUX^4wzfP#etBNfJTY?SohQi6BB9kAG0NSynq8&97dbWI9v#ZENHO@|c4!=)jt%z;*Ye)tFrJiUSXM(Q_;ojeYi~fXDFwY&kHdQx3yPl#?K2JF&rX3BX zzwkFO&@zh4U&yC?JyY)yZ2q6-d-u_FIpJ`yWl2yf71k$1i?}nv_0PU#f?eQT%>}nR zO-;P=7VYZgIQ17&$Ysd&I9yZ@iJ>con|ZRTEPI_2@OEYWefyUJ zDmq$|gmhxlh8zpGd`MF;jeeYwJsO3uq=^1Awq=9n3c=tsj6S0SG8vS!_h*bO0&~kv zA6=1@;S9np$e2NHXp``xX?lbL^|8+jHy{P8g8rmNdt{Mumw}bzGkc9Pu9ZWcLt>YE zm!K~{njbCVQ=C*+S9qk(j@6A{h<9KYz3k7%wev?4j^uqDq#r{F`yxj#qawR5?<%97 z)+iQ|IM7`Kt*Ctb9iI~lt8_l8j257BeVTU^aOzD?6r^JM{l@gx`4s;foSXQ-VaF@+ z(yK#oG3~l=!T0fHnm<^pKc}Z6r(<$Azxt|rJjs1|-}YU5@s#G=$RHLY2~3SAxrFD8 zTodn6DsW~UPilFGp`pI1gmf?b5?im8^!@X92&g^lt>$LvZh9*fvC@@DD>wI?>Hl#E zj^GGt1_3cK0vHtg5k$$yAdG#I6mdDY#cbK=3#;JP%)CQo++y5L^gVcd+kHNHgnYXV zz}wj{Ec{@3eGPLXIsq)>U>jRxW%*XH{BX17v3JPjo8ec%e7R*7P#4ZApm&VO^`(YO zPuBnK;qUAm1A<^LVBK^yY+@uPqpGI61nej5D!VkoF>=H2E_L_ycpq)bPD<`LMO*7c z)78+E8G5+N`sf|>9J2+yEC6|5p7j${2V6O<=bt_*0;YDfNX%pbR8 zsoy%a+#}fT!HB31_e=7EdbdF6u=3ef>&>G%bdx?Ju#ZR5Xvha}G;lwb4j|w6eT_#D zlV~V=w6b*3tLm#O&@CeJrZP_$65Dx5gmUR|oQLa(<}T&zm497Gg#Flf|6`N+!N}?$ zo+o)km=}lQ;^RxiWVA0;~{0|c=s{mV?A7jhkAR|rTSPOGoN;N zXwUQ!nnpTxGRcs;VM6kNEhqs8v=y%y$1b=7XJJ1)fQ$k?*hEjIoyR%-R-Zp_@S6c~ z!w1UBatLHa@qS;N9Z{|L{e#fy#sE&`zI)T!>F;Rl+VhXYMVw#%oC+?>EN3zPB6I`s z)6-KL-CQkS?X_Wiqu{V38Zk$yMhDutDQ~krd2!I+B@6p{f&J`&@_9=PG`x~}9uPGO zN|f>ecWlzMJ?wIieBt~=(@TK$bYAsA^JQc3djHp1*H~W<%jLus9b%iD2u-q@5lhh# zzXFLcEWxdhusUof>F@6^$bTh|3}w7gm_0#qaJuSXxXu)gB+uB%@xv>#_eu3ww%YBI z#}YTY?F!bENH+1dBfF-bZ`HaqzeWX3iN3?0*pMlBlAJ^OS@36D?&Y<8c>8rfW4Ow& z1QT4+unPq06lcSp$}c#H_E5yEfc1Q4X`3l2ceImNFdwa9VR2y;A;0mtt(xeE(eH*A z+&?+|_AOXT{dEPNRiI?mNk%2l?VhQ}AS&!x;G)FT?~Md_P|wu}$L>)JTl9wew1gdG zJ9=|kSS{X00LsU4_Ws-W5@%K6XotYKPWHEL+pl#it?%0shU1oQsStb`uxr(zL!~*w zw2>kLdUpr8UmclN-lj6(nCa?=DxQ{`=sp)G{B5M%V1X12bwHmL`;4BH2|N6OM=@~g~q^v)gs-GHrV zX^v6eG=y#-s7LMh%xq15#5vXujrqH$P0vwGw8MpU<2p6ik41D@P%;wLO53p=xSjosL^5KuREm}@!hX%ag&ht) zw}RkqdG$l~H&|o!V9X3-hoqyPYJ{Ytbw|A0m5trhxh7T2qzTV#G0wv2@ArXp^H>G> z`keEkFYSAO@4m-&U~qP@a7`Hr>3g;($(|=#RD|;Lq|Y^OBz}`Nk9*YK-=}`%CpEby z^R#O6+f1!xIcH;w)0D#`ialZ65W}|)K(1-{fN-7`x)^}K1jL`=T7@UrT*IaQp*@l)VQ}7Q9IVCSs{$R$W z&O;w>uei3-L%Z!YbWKq9{y(+?suV{XgRPdq=~dXof&;$)MshBPCOotE0yLhIdrH7C zYh99hY?ygl;csH~hQsNW4~+9KhCCBe6oQ3uBQ#8fxg_HVY$Z$!(R7^X0)Wdha+zoE zo&Z|$dc#>GFlUEuYL?$&hDaBu3bg{j``Y_SJ-#5<#7vE zc0?rS)z@d}>GL+A2;7=hD6N4tJdafZ0KnA^JB8s1vb;9RUL3r>Rw$l`eC4!nKFWZy2%hGDd;^giSvf5bdbB&Jzz zkbwWt7n;&hoh6ICPk!y&XlD;G{ux?dEUTJs_>?*99QOuCi6Z*y8B(8yAR|hGVP$VG zI)I=r!YuW|A+kvUzi^{*Wgzx5`K*QOJ#Wb>BtcCf(0*@ZHV`>prF+^OM99{HxKuR_Z`{u1AI4h;c3ZrA@{%fYa&OB*OMaM|GcYJn6q;j3&rEd^g z6i!-Ie>$QXjq0!87;yxZ0?ofi>Eb2c4cYT)`6|3&j<1>>!shrB6Vd8aSqDqn$v-XQ za>%;XbqMGYx65lCEg`>fU=AJoECn?f|sYAj~LF5UAyAi>X!!&d@f8`9I*==GeR(R>GKIjYKI1St+(Qs~$=ZEY%_e%g{lS%i@5*rIAmuJ@k*j;82R4ry7H zy2v{@e+$zr09Y$Gg^(%({2Y&(o0ZweoaK0W<`|aEKMCP+yLk9Dmby4nver#rc6BYc zO~-4G=1~`mJdocmuM{m!r;AaM%EuJ6jyLv4!&l!6p@gNan1l(jZsKvYkpF)G-#{S0 z;4l(6_aWf)E?v0~VAmAuyz&?St#bIfzi@u__sHF^J;_1m>pkihfb9j)`fE77HrV~> z^zyjY)Bb66@o~Upa&i}S0h~tz;T!0V&JwOvs5%WC83e4SB-z;zi1S2PQYPx(qjAP{ zSEk|Vo03)#$T^9Ja0GB;5vs?dY05Tp>S49(0X5@U?%0 z-naDLJyRCA@*uJjtex6yk_q2Hnd3_&3>HzgS#tzczafWLb`AMu^m4qo%TapY`JwM- z!|BZrTcU#Sa)g_dVMkN(;<2<_V)!*byc{l%_f=vz?dwO*Rh8==Xz1^O209wK_(>hw zylA=-=(sTpub#;6mj4-P?-=6m$I4-4$4XezrUI7Kw=8N6559tqfgTFvw6X)M?@Fv8 z>r%{c%WJpuLFgLffi5b%+)ek}Jvb*lh@Ki0M*Naf`P8;_3upEji8ISitJI-oM^^95 zO6a#s2RYDvuU|#q5Dzo`td^PnDn04%WjMXIb1$4;hPymBUlffG4huOB#p5ddo(m7h0djl;k~5H&>WjmEfl_Br z4|j!T2a}yjj*A^_IDeq{2#nusx@z_lJb;bma4E$0F~hgQ9-r&D#15~nwf9P7BpidX zyKQqTwe@kgg5mVqVE3cb`@UT~;C&L9RukCteD=f4_-hZevkqQ&BPfA>kC4WBCuuT2 z3ZK36AKt9e5FgiUhVL7;#hhoA*50pMv^G1wUS3`Z4GqQAc5Tc~FT+mo!=?vBm;=iu zVcC%0V*A_|dZYg@$1(Z+31~VeP;TGHFiR64{-Z7{4W*APdVYyj>JH4C9!Te%P z!9kAi@V!nLxb4(!F<_GeOrJ~QC;I)e9f2{4n0Lq(6+c`?&MG;`U#>xwZ#PKevV~{J zS(lwFFaFzgPW(;QaV6rpM-g$79N)8#;=29Ait`($wED_G`~yIud|y_=ND;5;twqxF z+RW#x@${;rbbsWuO71zo^xfiMIKBB`Q)Cc^hI-`6kZZmedNeKn97)H}2v-cFIEE8l z13XdP#}oB^JyGu_)D3jYF}7Gkj4@sXv|pcvm&m#1a}6T~985>24L}{W2ft>~-dC`q zOH)iF4IW$CgkS1Cf~9RMVDq3RY6vQ6BqySSzbCq$3lWn%wIfY!PmXREqBAY?I&ar^ zB{s7=1>NZ0WOOHb=;%rGVgfz!B*DLC!Y`o@x42q6vE-=c=D;!*POM7*TzGc33dhYY zyL4WrZ!Yv>f;`b*g`IQ5>9w7E<@D-d2e{Xo7<_Xq5j(t7rQ?2+GcysDl7awoWOM8G z%q_1xan<6-AHsK(m!eWr#WvrV7^Ebo!SyX?oH89mT5mU`Kjnt3C*2Y6pM~U~qYz?p zB*!-syM6s`>Ll)<_YJq6x`c%Z=hr{s25|ai%B1A{rk$rN(0qea*zX&7$H)Bg7~Z`; zez5lsgi~;+aDp#KDidwFM?{E8u1*C8i%Gcl)BW-F%i_5ihSO_<-A_(0xA4BdlN?^Q zA0GsE52NQ+=kRJI+EW0%)2rc)MNUc5xbGyjm)^jNI!!RIRd2jotuel<-wG4zwZWoc zPhlQ8wC|E5tU11kNlAFRPapi%qq~LU`*;6taF{bz8UIW0_+M?`g6F!Unat^Brm{yM}iDb?Iolj2vyguDOvo>k}(|hHe$Z=`A{TN1WcVaXxW+*_=@}EQ9)ASy zFCeKoPtGnmz8YB(IUQdlsmsf0e?m!ISzj9eeDxq|S1FBeKjQEdPv$idwdsr1(sSR8 z2gakSO(Pe z^FVEKJo8JlEjNUd+js?cG0ws($5SoNBW5ZlUFt!iWcA>YLv#>zRlE7wp&L!pVkul)ZS!tqqONRp$E~^3f`vC)Bg&3F|^$0NJ5@Y zER&}bYsGUCo@dCZ?i=iZzI0xupZcpU_m}W26QIz`|FYrq<^z|21T z?=Hg*@Z*c4@!ZB(Omj@ac5;G)lE?`rZR zM^={D9~hs2gpg$T*FTS|CO7P^v<3f|{=z)dJS;QK$B`Oak=56e9%4`IY`G6h9QWdQ zK(N&Dvxd73AGq$1m~^_Z$ZzPsIRrh#I86?>($dUhY}xU&4+s)ns_(|cR}7E+-9ygs zLAt&pet}|)FHgL6k{n=$$0+l}SKQjoPV)|L-#o9)aC&X9`?00hG)t#UXGW4g`ypZF z_$KV7oz_n8X#yzsuiAb0F41H`Bqr8+eSHkqw+Ja@=S`6kcwcAhMGS6>4nIqoccJMn3aEbOpCA&d_a&~=S z`tKRMxov{jr=x31?(sqZ&&CW~T-cgkr{w6Ke-vXkkmQ&h z-!j6%4Rb7oX7x*;YR!fS3k!qOVRCM7lmNDs0g_9aEBO5U{IKc&?41W#6j%GVM`K4t zdKaGVFMDK2H23uFne7c-4eTA3i*3($*>Wi&B>&dY$9C=8S_ zNP@u<3?YWH*Q5xHbF90-%Hc(pnCPO;8%mVpwb&?(lJU9(qa_%l!qAu}I_a$gA&IOu zo-Dt0ioPeuDX+zvp8X#XU>neJiR^Tv5(f zflewY;7fH`?6TtE5H=7;{rcj>y}>+JVuxbt7lX0()y>E>k3>ehFg)f$ftG3D-s}x- zSW`55wI3QE`U=;BeI>=OHqMe5o{Nkp;fyB1jpwD(hXnI(atZ=d)A_2=tR$B8!py25 zGx78wDP`@2nWRc>^ZyDu>D40sFG#QDo?;xmJqI^}$HDdfBwP=g4*#$Lc=bpG+U%`) zTTFlp*iTF>Zof&HF_{3f2J27v)5IeLd)-U0s?R{Z?fOxbzXzAS-5P?aTN&HAqdAXYZVi|JeI=}tr#bEI% zrR{CHB2+03$O>0vz6t#c6Vd$q7;yWh5L3Zz>CZ1GkFEC}W3t5d8B?zKftzz&X+L#h zwmr(KC=-*P4m_gdhUE9c^;Z<)8{Uw_wjO#}3(YY+Jw0*zHfvr|A5~@bP!-hxs1U@r zd-v|}@(Kc;Da3chrF+u*RbkM6H~#Z{=;Dvz=WnTf&VS12i#qA83&&H^FfuBtRz^if zp>I?q+EH>WCAT$UVhn9pyq^(7$A}nojimo2suZ)1oHhx+DOCq| zyekYZPp0qIWN^FbyS0nh%f4eW_7gj%Ve+L>@G8=WQ??n2tW0c0TraWY?{Amuo-i}& zi2ma_Y}~Q~cb;1D;#*u1FWV#S^WkIkr_3s205MQZr0_aO1A~cS50WGWR+Gdsltorx zlB+b6iSfSKc$N0`YLvjpsA!&7iPz};Yc!8Bib3xgY@QVCy7YNM())rl=KtSFub9(S zf&l-gIy9{XHvX?2G3Zz>zHluNhAO(#f#h~bwd9I%2pED%qdvje2g3VvVZ&g|^@B_N zNZI_sNX-vKAxT*7(`Sexd1hkjo0JT<_yjmbKVOw#O~|WIv)32Z=JsWylU^<2KPA1b z_XuCqE_iZc`SL3S}4QHtQs1 zJ+XygRT+{9L5@v!{JYX?Ll31{4fXg=thRL>hJ8I=#pfiwpBlH}r)?NGuv%(a$*)*^ z_fKIRRt>_Brk(MNRToTc)dkZGy5MuuuK2}T!N=3*Njp1XuJFQhI(RE z&e^N!-Xh8r&<(h+3Nvt7Aq;6@Cs+DwG%9+K1J3=BYTTdswy3iCaTzc=5 z^g5H&$mq7i1>C}uFO-UP2YZ7h#`BSaF0z@`kXcK>c!jqI`W9kFT(4WZY!Ou(X@S?^lH!1;CPsZsMB6n^;lav5T?GVYWrdP==CTL?Ze{HiRdVU|NmheUZZqQ+)FX*ylH`~ zwmyq%%W_+=i9)sDC_#u{mb{*)@8g-sD4cp6h12wU zp5#+%xtEPjdbNmuTY8OlR$#j?ClgykZ1QP|Ro6`L!wyTHO+L!v%h>2`3b*@HaFw_g zI0L3TOC+}~rqwQDXAbmsX2U`@u(w>${v+&9!{-LpSlp%;SliweZTs@=dp|W2#CJ{a z{@6EpBsPy2ggKU7Fr}p+w~VjNyJ8NB?OPwK=WtIE8t*BA!_nXH^k8e?Al+&Qn-Y|n-A?Q$*#8G)uZ$h$z#)3w zOs_l5k@Idd~a@Pnb@)I%s(#si4GX<^0}Ju%4y{|33_M8Dl+MeJrhVuOZat*C^Ik&XcoLneLkSt^6Pf^<`-w0OOoF+Vv~?r|i;9q3SjbnMPRPqc9Km{$jv)zV?S*-Ag&~3-6QP-z z2u@EYF;3&#&9Zj99I%# z1vYl?_4s7mOU=N8%xpwt=h3m}@vouu-k+wkHqGvI+=}DXNv~G%Z%S{Q-T5T2P1U4U z%tjwW$?1%BUIx|jd-&EuSne*8+>f^O-=Bk&$WUzmb|&nX{|2YW<*<+s*YhG_rKrbB z(fM#ZerKIn+4jV)ZX>XZE9GWnH@t+@1dF7b|G7raH{%a~3u$z}gf*6)J%jl1BB z{%^w0;h9Km|M~Ho?=3{HeUW(RFbZI8_8d%sVJ`!06dOb-Tr0MpudF(xV zWia_=%bpOxbzaOn*q>1EO;LBB(8;FgeNy&yX8 zxFWfq+L*>9oJro#tXYN-+?k=0!mD5snqL^LT#UF-Pj{B#*As2{^kMmR z4yQuq@Y9*>_rFMzEL*%V9JeCbZNu}+Q9D}K7zgk4z-7OI{4(Di^#u2u zgHC$u!0woASl&&0E-db)@EukSJzq}uXc@*kmtmZfg0Yv&@Tw!p>cuLaF&BW&fhp*E zFI6BQ6@x~ag#cPxpnHXS>Sxh(&w3HW5+0KBuaCC(<9@zQ!B-5f(ESzzRJ z4vzG{TxOlJ&C$}7gKcNi>gvv?A`CHl;v2XuT8^>T*O<@1UoW@B*$n0ET9<%i^rX+F zi5`K;7D3;-_hy#AW6jK1n_evh_!D|OcA@)h z=I2eZ^bm)=t{iS9wLl~cdBR8)_5@Za<@;VVOnT?ttiYi=ZE@zoP?&QAaq;nRURp0j z3L<+VKqR~}PTn8F&%69YSeD@&GXldV7%MGzCU7K*D}*tGi|N_QI?hTX0p=+#Mk>KN z(n=yBW<5$X8IH+SFCk{7!>kQ&aC#=9=zLdH3D1D1z60k}v7K5UIYrHn3iv{Zi6d|6Xvsw+UY#=CJ*0cX&OR4A;PMJT3vR!^wXL zF5c|{x1hI>p6kyaFN^fz5@f5~KmQb+^lE{W^cwH1z}DOH65i)$y|*Fk@AT!XJzu*& z2|qesR@;|0H2FIlWyJ+>7~K*-^)kROy$vy^j{%M@n}@HQp0kYv6VCngfMOELw}(|{ z;;b!vX)j|_r$N}={Z)Kr-WeZ|z_L#8ob`=SgbCLMxvxet%9Tz6`cJdvz4nE8Ad<;<>~e zBRu`?6>x_X4_lq|>Oxbz6zO#(3DUrnYksiY;0SK%=@&x3Bkq#>sg2fKFJrm0(BQD3 zq6Do-YSl$o9lh#yz6#Pxg(9qnIR%(XpO2M9OC4)%3~{)rcAO(F3)O@@mT{=KPof*5 zhx>bERh`}FHIkB}kfuO*QxtkMLh!m*VE-r^*?eqWQX z-o>!XKG^>#7J=zG$SN&EsVt-W{yGld@3O#GTg|ZOj3GAr8sQHT;Ii_3z7%guP$a+H zM(4MxWp^%#@=7-|QQBe*kDzIYOghCc%gsBklioV8J30r}w=!$SJA=p4D+6}7($U*D z1-);lqStK_x;rGMjwKl5Sd7;%l;SnV3XHn=j3l>=pQg&V^CjqUn^mr7DVKt*PV1p`rpcsJl=oG zXy;P&yi4avVxKRIHn-Dt(pv}AhAd(Ne6$p8Pf|WgLV)#70BKRd82<)`Mf*7%aN}^$ zox^^5&8X~*baX`;dLS2+Mr_N0$xfl#GpmlQw4Z+nt5*H#l`laL@6EpxZ1^I1 z$u6t5{HJ&Zfq>if&aJzxRQwAib7QiLqEQ#uA znYdmcVP(^t2qv*iYA@3N&V-{0aDyHS*Gy4x*%WyW#()b=_plU}W2M0CRkqE_C6*{# zXex;BTod>${e~XgbdQ`V!M(&6+ip%Lz5hG$!lgHur1u<P;j+Cplb7a`*=c-#?`N z4rj@I)Wn2sxZfQlkF!P=J76lE6RBf8 z^e6_E6;F|Qfy3=BB)Xw`$aidr2iqE;>|8x;ri|Av6|vRG3}MXEVLM%6{pUq~`;*=7 zVv%nsKmA!kJTh9DAkNYR3AR>8%R~f=bchOc`2x zX2JGGw!lr{)#iE@+TYAXf3I}(CHi=#5vc+v|bYW(7JtY5I1GpJG0=})Ts+=-d56}lma{nT!T`QB^Wnm#$ zN~|Qd$*Vg*uD!Z5Yjd2CUr54RfsglblCrCbjhB1jx=4Us1IOy5x3>59kpOJ0NQQa|>99Ek9tyyRMYGR9p&064-QD36dt|YW(W3=sk{s)j8b}hcy??X~b zqROQ7syRx%NJyQ`QNl#k%SxEeVDDLpF8lwMC04EblYdCf|EM{_c2UOjlsOXZO>t(m z5kGy=40?z%L6)!2{y$2ut1MCSt1&89TJqvs`4b23GMxu{DBp{Ju?d7udjEIg#Y=A_ zCb^NkX~ASSe>7fs1{`ArgXB;CzK#qz<0-ihO$>5YbhN~s9wI5Yn$SBp8VwFkQb_OK zNr=c3#`s+q7$JNXiDT3VN$>QV0g}hb7=2Y}+gq5KfD+0$1aE18=pzkqZOJRxGhIS# zHLz)fkaXEDJB4Yo{Y`fl$){U7K|*>p75!XO(C@yOq6LI0aMblw%mFz8&FPI~J=jnXSd zUIkiK0zCQ(9ZZ#!~22+On$Dig5@WjAJCjGgh_7J1g4rax29-8p(H5 zp3Yo>lPU=ZfW2 z%*n@3u#se!iLMwn%|0ShX<2zmF>80rs!FqVxHl7%af`&;FEyRNXAXJJQxn>{@SVLS z+=Hg-q*t5xcS?G5@$-ohN*8I)F*}|`7p$?)(-@m?tGDH4^M1B(i;cH5xASGJ^lHKn zb96V9zEpoJdIo+jSP3qBc*x{-(q&J6A4@J-;)A6vG4qdBJRdE$gr#FGZ7a^w{3FF^ zyQ`+2k=ePDoi9;)T=QM5himb2{|r`z`44+KDEb_@X@M=<5AqM7u*0T6fDI}C=&bC*amdAD<=$GhtUbMpedKyTf<7 zm7N?3mmfJ4xHgm&TQS?Ga`^Lg4tXg;)ngXp-0tw(>vmaae_N56iC8luL>sq)WuLyt zF=>s8q%V=yT6k97w=zeJjRnrPY=wgRA0S3w53AO#!%mXoXp-No?j5m)mit4$h46f8 zXUmImvaKbY3=H60uRgz@6|RBmpZyP=^wtH3&_cXMGV|KmQl3}OmSB)e4hCMymXV18 zPU#qMiDdL*3i_W8G*sOpJ2$|X!JQ5fqti>(eG@muwB~zfQza8{suZ{V4w@_pLp$z zaBMv6SS1*EN~r26k15*}rM-+d|7yv%;bpSwB`dK#8z;2+Ww4Up&zH79uThN@rNCK2 zFVFI2q;SpdCEFv==1Lxhk(^2$U#-Z_{i|n+@#?8Uj69i#kq)^Sbb-#tg=F+S7muE& zW60$K{pUuN2mlxAl(vQBrUj z7ea^P$K72qW2Lm*N-=YFZ-iy#)~P3E50YROMdb-_O19=@mvJuEOi6ebJJRQ-@FXd% zZTqa#s=eXiSS>5%T|%&`&1Xoo15z_k@Kn)MqOz(SkK_HZ_2hS$x{yQrk2#c-{XFDRpSI;H+>{ zEOxZ6o~FuLuagLVR@LGwppQ?N z8o}ZuE&rUu{)pk$XYto1=IJh+FBpRS$}s+YP|7oKTc59_m)l)RLQ1y=iD;#VA%2+s z3o6AWx-#MQ-EE?nCg+Yde)#EEA=7xvT5Ud?&IsNsvF=%76_Z{o6#Zh1rwd82>HX71 zrl|PC0;kt*&`GZ@G{y^;-UlST9wcfK^mV?a=$J_sSuU>gjh!+VazSG-_Bq&DX*VF7-?h=VA@F7ADB> zxWVsln|Bypv!jCWuB6ZY>tUVr)`8;>iZJqYsf-egI8}@hCyOw`p#Xy}W?;~{bPPI^ zMpBuC0S+WlN2AdH$Yb<95Q@HggVB5EJ@ndf7d9I_(fvZiyn(D36k7mAL+p zwzcUFjF#L&?@fUi@E2|4U>Lu>0mou!`|aAG+~FV_o0nBpW|CV|DXuEhR#;-#91bzb zp~!k#iA%C-%Gz*|c$A&Xm+qcP;HqVp;gZoBYn&9q%Lq+6$6v#Rds5EYev$$QzpHeZX5FZ|75kHiuekAxrBq|foJOb)dJRb zLJ0OtGs~okd4%gllX1IX4hktBU{Qx^CfqJsfxg(hg!-DGci;Ya#7cKr`&>4SM3yDm z@4nttSy&k)!?Wis-P(yNKpmdFbal)Q(Y7oGI} z@5Bq2-cXWWCRZZHxZg#o=%JoI<(WwtfPv&t$s z#--pbI`)CCw=ve;4^wXX^8#CM{W+mDnLaPiat9L0)8N*T_|rT#Uk+P-hHnsm4mw;G zdSlMo@+aa*Xp3zv!Ra-xme?3#ajTa2%RnEA=8E>aS;VB7Gx5zQopG<5P{o;%-$r<@ z4Q#HDSQ`tz+VeG2Q(PrnO-%ULE5^of>S}_Gw}qac_xZnu2Pqff8NUG;`LW2%d9j`B z{ZC78FiFnIQVc&?Lef)26k^!1d=eoN&chiPav&80?GrHYAj$5&2=v|c0DZOvp!=rV z`2B*=X8WH;hmC&dw>u024m`nt!?752l*IQ0iSMaQ3^|j7q31~o>DWflF|uPFLGq;u z+oQseU-B5TPPxQ)$u&j0T~?ASme|^G&9}gjC=M6=H^{cGi2SEj=zCoHn5vPT=VA0& zh8@eJ^P35qt?|fY<1eWNJ=+r9fFqQK+Y=XzfXkFNU#9ezy~>*~v3@+{oFNX=Jk~Vn zDE)6wvhz2syNmGqlMXUQwr%M+a3>4aTVgTrKpKV~&Bd_e1sLwY#9TP%eNO14w=UF0 zdb#a+yqKc6KK^C}9VEWhrMzNDgxTblNBKh4c|o@5eN_8`rC#=|MDrQO zFV>foS~2gh>4?|nbBIk2Mod8ouEfM?Y*$+wm!e~lkY9w#s;6*FYNjN-i~|8Jm4tV_ zE1eHI(wO{mjJp(%=~rX$+07^T{#GRB-F=KDf#FyY{0J+9AL7r45qL<~hIKr3=<+g5 zUrhPnKN{hkg$*(K^LiLFOTp`((d#d4+W^aIob%g=c_(Ww_|wGP6Lwg4Ls7D;icWg9 zi2s!Is$#ph0Mn0b#R3O2$&1ZOe>dDRs(QP%Nv}Xlw3Am?))H2YxquQodYTZb!ppcz>_K+%CVB;4r-V*v8?5>? z>r~5`g!={^y9Yt9`d8^Ie2H!e642yJhIoD4WMsKgVkZ*Qp0*93&!qN>@^mJ#Q%4Qp zGmhSW%G&>mk;yVI#Ntw8IoF64GP%_RNpDWXeaU<1dC^Jl|4zIV=_NUnGv>OVY)>Qs zUNcE>$5e}Mf#+DP>Tif&=>DEf%x%PBd#C0&G0+f4`nJO1J~Dc@;)U40zX8rpuv8M_ zvlC2lv^RSsD~lwz=`=~=JkHjkep58dkXb7k=$ya->K`Ebi*Gb+=Mp4EMoN= z^TPV8ehc(?r9PgVe-j~GOXReXRc9u7&FbC>>o{X1(Q;^O1CGQsf~K?5Ub*lV$b{En z<8VBo^%H2?MMERpv@nMo32)dbOWbH-2Di;-@Z?M}b#)8OKP_ZJ<`EAQJ^AC&Nw4-C zBk3J>q8LMu6%qv)LK)q`hcYqvKspBQNy30#vFQJIB>MjO0R6WHf}8CsI}+u1R-O;1 zd&A%oFcxfd26+c93MS!d;6z-y+aDn@f63NT#IUXRFko9S2JQ^UpnWkIawv(!JB`FE zi$pPxB&>jrk7SXKb=V0KM~6~LMzX58=gSbDsmSp4U9AvbHk8qgTBO5s$`v3 zvj3U<%BQpcnfS^_V32c!-iwDSJVgJqVF~xpbXLo2CGGRzbRaKIb|8xAvL~I+d%kea z=`-{?rjy>fP}l0s3vZPJH|cti+_IsHm;g(PZ)QEpa!N?8oWSPT=|an>&1*uRG70+o zDSypsN=h7qDy(F!z#xCOUDCQ>ig;b#L(F}~akceM= zo?y#^$2bxZ$@h9(*CBvdX)x=Es*;l4i%Di`!pm4qd1F=S<*OlQSMWVgs~$g_){mZR z_fmxMwO^xSXQIpacy%K|Zbh=onDEUj_-?~6{y12CbNKm7ceUvcNhiHp#QzoP71L%< z23_P{Y8Ra`_jns@yk%7Ve!-d6Y8QT;cPn@YQ^wChCa^WZN_|gNpe^etN@a}RSr^wU zZFiNMDdwHB!+XECkdR#kpDgEKae%ff+Lk8T5!>%DQDa{u)^Uqmbc2Z##2#WV!4mig zl+yjjU83W?PTOa4OKDtNM}mEp)3R3?HynTG6SA~Z#%R~6J63+yLXo(U)Lz>pj2X!H zx-6eABhAqqws!3?rh6mhL{Y|P< zXlse<8%Dy7YlcEQL3q!Y8uQypqIs^SCb;yA87_1ZN_brf|F-SmLIQltwk%*q-J8r=|CPAqF2U!eIMC3_6^PK?k!ia9`6wy?a}DF zH5|P+2BXa~MJH{FsD!isP&L7I51NAO!Ea*D30wSh+y-++`2aB+oF~b)BZR@io9Mqe z2!sBPz~Egm7H5}gA(-P}%8eqAL9=<-x;g5^M5tDHjRg`gN!AgOu=nsSa@Wp=EUUc&rdK@jo z$dgZL`%m%OnP(U*v42VEcn2RTz@S4}u=D8W)q(ZcHp#14U z?c~>ZXEus*b5T_&i0^R{A;}Woy!yan#rWz{>~*1KB&IXI^I>_;Dxv3SmVai$bxIsh zO)#0%JXBIPx*W>H&{N5na4`X&xW(Z|uUIU(8;vyqQP>jv1UthbvHPKd9rS)HO}`qS z$^X{un4~8uysnux*zBe(y^P=lVaU23hm?uVozYO>21 z^(lwUyhOfqciYv^F|U?potjv7#Zt*bYC@3Hco5Pj1$F@KBxE+4BZ!Iahs!Uq{ zv*fll(PEptdNZq5b&=Rlu=Zv`yQZ~)Kr7a6SVe3#!O?PHrM#}JvyEn$Go2n(qAJJ* z{B#aaPEf)nPvqpdu(rDO`T6isZ^sJ{q2z_1e_f)K*MX1_Tq$(Ys|!u>qNR7O+db6V zO7cZC{PP?pdEdi8_uGgn6x!0&HBv$!;MA&BSkt=~zM$^{D;1UtF%#ttZJO~V!Ey<< zA7Cge3AVtQA6nv8&gYT>DQDQ#sghz_6Rh{y?79} zlP4)lsIJW7wS!l|Z9a=pS8wADPk&4z{4#{+9c#NA&KV)Y_Z<>nMQJU=_uU@2K1S$# zN)GF#IdH%bL|dBjCAjkGiL`EsoglnVY=r91Ay($Ru+ldcLP(LGd6-#a}zik z8^e{>VZkjwT77?To6hQ_w+3@kd6NPGSF{VGWz}md7Lq6CAEmZ~w5GV)?ZoOp(=hn`VBnwe}RDk~LK&~;^0R zP1(T#-B#Q~za0q}a4?5HZxR1lx*pa^Z(RsUqWtO=%GX^b!E|Cn6P45`z?QpmkVW6` zs$$k_Gf8V%eS}8WQ)V>U^hMfLRaHtTR}NV|!6B zQD!Bt4BOrGO7O4rzVG2&{yK!`?e|mF_rW7S9{U2c^`Hj@E46hOXh#n>TasJj6F?jB z1Emh|!h4x+1xm2S^k{^4hN!f;rG$%R4rdK(hKkFSXwkHagAaWIaXKyuIZvOWoG-~yjwBM|`F;EFRijx6@tj5+)>t*+t41Fp5kAt- z0OuxI;Y@!++{*k+QY1sOJ_UDflBC>9;y4M-&yT5Y%NwB7miOi2mHHt`?>>aZ@2(c# z;FztlvjJ=hd%~YXb}swV`D0P=>R`mQw%~~*QBAN_l%Pcg#2Ojwubyte=y_7tGczC05BJoG2}?aRgR zBgGhYSYSAb?Qq)WaC-&`Ffo$ocd&@|Q!GQ`7{t)L{s;5XZ*LZcZjY6HLW*byN^>b4 z6{o)^O<_j&b1&i@i~6`aq#?2=HA33hMo8{S_qmJ8^8XYP-%8euX^j<%=b51B``HR7GN>9B&bYSS)5ksxJnF@-cQ!lmlWS+tgwh;%K3a=q+dUk$M=RkfBU#<;hnjX zRcDqK-Z8T{Y(2Du-^Sb%Hj>Y)n)vN(YrZzC>a$RlHT1l6zyGGvb5u8EkrweXr1!Yj zD(tw^9IYuqkh(Ezg_Xjdc&gOlR6F9clM5to5;=T3U!@XXeRSLZNO~V4%y;Es_g$g0 zDlx1BE!In#eEaiGw!!;L^d%)%%twE;KpQruF8ifu2m36Ag4oLCmc3pgSjnyYA@PE+ zA>_gfN5aoq@|WJ2hlaS2&%x;_J-q%l#>3CL(DDXq%hd__5JeJls|lU->OxbzaOw3R z>D^9JqXE{|cG}(hm~@Ne>^Yd?698`cVWk$l@da1lo%{&`%D=_R>22^cWky*^@DKFL zw+HUg5*MaerxH^TLc*-Nt(S#Ez)-cJC=TE4 zitvPk2#Nh0m6bwmm6*a}{yg<`7pl1KA2kYFTC~ubKZzC1^su>k3wWBD@KT&Y$i+87 zRt4JG#1xU;yTP60mQ`hzcVH#wuB~nLG!J7lqT=r0s8GP zMBlx+=({@;eRiaw*I)7Ixj72&?0O{Is}KQC)>dcI-0x4N%v&?Hv{w$x{IPUhoX$(} z(=keWL~-|V26`{Qg}!S7F<^5z2L2U;!Mjp1bZ;gGQbxA#UJ}&(bj$~eh+>k;V*ZuA z?@OO!=l$|&?{hV;7{+Wg+;a4|u4EVaRx z0FwZ-;X7Zl0Cynyw|`KIoTniqx57BQnwa!+J#6t%mtKZ{^ilp=jy{u*ixFj%7fG!a zUIy!xSz37Oq5r!aPTc;z&Ye}UAzU}B)L2!8iSAzCZtw_FmR*Lk{}3c)c_TAN`aXJI zbkeH@7eoKRU-YH0*i|ZdW2(VQK2KLle_>P@f9f3FAewI`ez+sixV}rSPmtJWE=C^p z#^1h7bk%!8W3tPBZIRkO>*!?GMib0jE-k!_H@AMOkX!ap(y~hOi{SEwWt13ELL`+y z$%qKi$N2(IiOm6Y>s*wm%B(HVA-oKo^y)%Wym0BgPSU&6u~xVp7ts6sbxb0O)rJWq za^d;HP&+K1Rp!AXX|kjs@}z!(>yJLb_c8(A+*S_tIQA_^Y1S^Gr;la1pb^2^Ay@sCx?V! zOS5LxV*5{6P3JT9gSX+vsxNh8`$FN#}gO@Jlk7Lk5 zXV@HZ!L++U{PB(UzK8r5EQbHvZF-CN(#*cQ^GNzdt zdsS!FSe540HHa@8nnNlrR%Pyq?y{{5!F}b3Udw&ZXI&8bZ;rsgZLt`%GX+CPe0%LA zN!^uAGMP){$;hQ?Ip{^xhaSww5E9oR`*Sd4Up5BQI)nG5qvv1AL=usRo?8>>GsdIG zmN=e4+Y`}mdlG&)tLTZn@M#rB?#bl0(`yG4<1F;v&Gwm(KKocHF^TU!CfX$e2k0D% z=(CSxn`D6MBc--=s-xJz08R{HrmFelY^pS)+WJiR=JL{z{&q^QsU!C#n2r zU?t_lkCmhMk#e2%)&WWBRl$%X81bHX8l_&M8xTo(J8_#{dC$!?jnx~dhrd`majAKX zsBba!1PLr_%X_R0ZBJ>Je^;skeegL8#cE)HeJ-MNE8v^?ouufBxt48%sdF3RPYvR` z`ic?%19k=d`F;0vMJex!Mi`?!ePvi2ZLlQ-cNpA*2PXvg;7)+x?yf-x3&Gvpg3I8p zLxKi(cXxLN+4=VF-XHUO`sseV`c&1CX^DpHsXUi-h7&why+?`+;khtMK*N9nCGWXP zZ_^(}+u(lk-3vjT1z7e@IB6(r^lyKy=%F~V+4j&(A}{^MPF8alQ^Q{DOq%>G;zBB* z%o{Uv1u`mVq37373(#-KQ8DRc#{!A-SGHOOE9DNfb`Ik`Fl5j~G)Q7vg(y-F{Q+F1 z4$tl9BFzWN+uLb=FbU+dQ!gTQ`BWSnj5FKB?%~@(+NIJT^aF8pFXvkq%$q+L$aWY-#Pv-{5#S45``w1J`(+E!|M+`>-$F42ZdWvCkDM6-C2`H4oq z^$~G@x*<@*M`Si=*R!5`JYbTbWm+_lko9IKr-e=`?eD;z!{4+^<-n;o#>W{8S{?z6 z!N>-2XL0uUjdC^TJUU)gF>_qN$Y=;6UaxG9VpDnbu0>3 z_Tk-DutV5D5>po5FdhaP6vz8I-V}1|7OS$pHS2kj53(D_Zh9%jX?9KZ6Fbs0zPcw!S;JYm)Ynpm~xU4YIl+sdtjA2tm6)mrLieqU>$mCbPS;X{eEtK zyOAN*LlEX4fV)yKWoJg)UhOTL$AE62Ic24L_dBzil%nS@ut2xQmM@GT;Ztb=66Evd z1^Vsk(5?Vh*FE0l?Yf>MUf}~6kZahXz>&Ob%wad-^NEsNwgN010l+Hvyk(}PYJm-P2x|k zXhJuIqv0&}n($W#u9I8h==}G160xEZSP-lK>pS>%ehFQcen0%RM9qLwSuga#GaUbWH1l) zL#2hvB=_fSNs4-fip^XeT{Slimx-poRwpE~^6X~$l`$83QFspCg8_5~!;s}cvi-b@ ztV=c_r(WJXeZOApEGN?5tq27DnJO1LjdoU72Yp4y*j0T48BOkik@)pOUagzrD$*{! z{2MSsPuf?#A&WVlM(ZHKqf3-_o72mYBcAj<+b|0sdl!h39c`8_wZX=A$iI_rIprVn z#@a)*v-}Bv&bf?zJ{<1C-*zFTOHKCc7qBO{w*NDp%ZmGE+8AMcW}l|BZLjJ_H`S#r zAEBFH|6*8R0}|$2eXgbxXCR`sFHnsMj^>pf5CqCnt{{gP5tlK9a{vDS9Z@cAmk+xL zA=&4F8#elNaM*}kc|8q$WG>wfa2ijJzY=$dlBVob5PX}45#?rIi?gx+uv)I=LS>EG z`s27~W&4GXOOzLJHJ7*U&NqO? zl*7IGfE33u#0%r}yoS^g;w~=ceYDh2mlCWYZ+-5x%#JI^nq; zvXP$nN$6?De}*{G`BX#S1{J0za#N5?w=S|GtuVEL z^Z#^c8P5U5jhv><#J#K2k%We#qN35n5)-&n&#y7Zg>F#^*FYAhIyC`dD^XvO>!4m6uWgk%LPJF!5$iDhF%&{TA1ve`AS6= zn#!_2%-231rDP6zaS)Gr%u|=KOialCP!XC@{z+`lPyeU#_K_dKi%-r8Q?5ql`I8)D z^0s(39e8o^n;LM>7hG-P&RFyPK!Zl~U?jZ{n{lAsEkf<{6{sEEFr`!l@dSr z&SSbnlvJ=KpoWpzo7%T=o-9VF_0<-F1pE3S0>=G$#_dMtPtpR(N4L&|Unoq!sk!&t#&JU%}jPuRjT?6ORfJpC%W$4z=Mwo5qe923x;rX+S{&GydZE}aXgrlol$ zkH~QE;8lOU=N0o_58(#ONd7J>+g}f&6hR#`L*1F~X3{|cvHdM2=6vOP%FhQDc+MuCr`~_)Q&B|XA>uGT`MP9HU zFub1kMRLFJAvxInt0=}?;@&@jM&H{*oR`FvbPr} zRF?b?wD5s>$UeD?y|BJ3dWImoFKabZ=DKN2@Xz0np z2@VVgQqB9MaFG^}0TK@TuCr~8_CR*z*DVWebEG<1j_}!dB5FLD?Jogx4p{iuv{jbLN082mlY%?& zabQ}~hWN^A3F-upbo9kvu~Vifnk3L_$M66leeA*aM@ix=W-EKR!^4UgBhetU%f{il-I{fdJ9Lm^c`j*JZ`~D z6vY7%`bCN47-Bi!0@#oI4uY_*<~uHi*2@QtRy>XOt@3(jM)Y_Pyt3xK4|+4gBO_Cl zVC5AQKEHNhU2c`;{e6fveOY?n_nMmSxNyOve@d9;IA4?5V9wpdG?eU;pfve|TbJx;&|9 zbUws^Raetf_pa8=rCNC?}4h^g3Ms z*7=|KgW1uc$0rnnhyLFq=gw}+1i_f3PK9eso{g`s)R?WJ@#Hbsyp+BgtYC_VjXqtd z75fogs(wXR<_|Xky3~5v5$4b%BtetADcHqve$*9jOzWE!;zd>=q;m-*-`2ml35?=S zH50f}D(bZ_0?d1=x3HWC!T7l;Xb-hQiUc9~I~AYYbV=jJN!2GUeh9SNQymGX2T?HG zOx~bJTx5vf3hB{`y+80}NF1=^(A*0pJA`bj`Gowe_-a$3PB{8r$1bf6{#9B**JzrJ zuqEtqO4QTSGi#ofAlT6c6x{4RwrQm;4M-*DFm62(dFKc6ncw7r?#ikEW4XoeQa1{! zcndM|)3T_j>SpA^n>&{=Rm45+(6-P~FVSHu*kaGdr|E|6Da}^9(~GTsWyUhXx%uBL&J6vKJ&JSHU@@1F}o^tvG#eppWGO%^J*Raov`MXstX~=C|;Wxg0?(fl*V^N@4V5V&GS?5MAl_ifuWLyN6x$mbS zB`aTAQ|To7$1)f7N|MqzmW^EG4`5pW{hm(ZOnElZkpz?Em2l`vYxISDiD*eYS;PDHz3Up^%P#YvD6)4N%6;wQzgH|YnyZ_&B{DbRJcZr-lMr7Z zoi&MISZaslU^eB~ZASFZ+BCe+`EE(W93iIqte=+~DcHY^q_XyQ`M}Em>h-#oQ@`7a z(e5zj5lWC0s2%|Hb00P^W9P(57T%P*y?xQm9$S!eBKL|n>|3}$QF>};a}-13xekjY zQqDgzi8{(2HE!>>g19)wqa@fB5i=0wqT`ghytQVmM56 z5|m4cgA>Rw74b)6ITS05yM@`9fhzMISu-X>!>U?=k%JU9!acV*pTten$0XY@PKMN5 zwF}#diZMa{-|memeHVeY$@DOy_Qe#;y-(KmF_|BH%ok~WAG9J8Z7PEe)C|j1*)J`U z^>qkQy2Z$IIlmyGy2t!VjJPL|M?=$Ug-6B zDBj7vV*tL@!>4?CElGc_O2AlzXZ`i?C3b~59R@eP^HRh-h<~LR!0caa6@xr4clLf&h7?sqqV2S ztg5XP$rT@zxwO4i`Bx%B@xe0L3a(1GhqeBB`9#5ILEKxv27I8({2;_maJy@coWsll zsmVR=87n@=0w{eZ6akcx^RWAAb}AgE>}Ys7KAKv^D5>GiPi^JDZOcoT$Ht^ z*PfU>IpnU$!EpWc>v1n^{VJ*R%~Tq40-bfAcBcekf;cDN#5k98Vq^rv_=f*U=buf< zE|Q~4WOY55bj)B?wE%l8do{GH_^?K#292*q*gD(9q4Y!w!#HqY+=1SoX!bxSuvl_n zuG;dy(zr^wc#Pr)f>c?~0=MA8(b5RI@t0+i4RU{}=Hkp=UPml~c2&#uq-m~;%rI0{ zi-sCl|7I;Gv(Ecz+NJrB^ngvOQ-3tc6*}6ks3YHO-_g7*k5b&JH+!b#ya}-|w2Z^e z^cYM+VmFGTrq__~Zu%*qtXlXE-k?4Q?_xg77>N|J@svr|QpOxQIVImgY-d2qqhZTH zm|xY;qCD7x`#(B~`BCrsPkOsz=1FqKi zLa43_J5e_{7wVAd=zAub0pr;X>(;60-PQ2(j<=6sNXkdPrtAxs4DS2oO^ev#w`79s9qh&> zlFx7~@ro0u(!R_+!DPRn(*{Z6$^px%EL_?H8;M`6XF-O{qVL%0cU1Bsepqc?9aQ6~ z!h_#aOKrT>>3?sZOnke$JNT#fNX1r?0g7-?IxNzPdTc3b$;5TId`1-*t$|-kNqQL2 zZoeEx$zo#32YLC?%C8fJl_m|qCJmSwg?Xfln~un9XDkkfc)0BhOoA9*GRs+OW(1r7 zI-EB1h?>iSOpJsfpqe?YOosi#K>AKu1qXG^q>aitjQG#_5%C;s zo10l0^xjy|Z(7Xs$o6ZT=oUy|#B6Ta{iSgmknfOOVqE<9e8C9{wi_M+n@7;ZJKy1N zFYJ8^3F|*0ww= zjcR0n_OrVt=9keu%j(#(zN;X66i9VucK18(y(i+;Tv~t6$`5gcrh^q9JNP4E(gNLO zLHIxvaqffLdaKUadBOc6c+XuxyJ1^|&ELO?3rgeWreqPvlN}Enr`4haLXkgz=nA09 zhVGf<#fNWIx@lP$D52kVg#Cw)$3!O38()JYJ-t~@Q)PM`mv9$f--sOi1CU4HJdN8{ zNC{SijKM<)mUiR4Zc8rCKRicbrE&5>np+ha#MzlGF#b=NQe>ze)HDvKbI zDfbPE=2c^f+Er}51mO-nRF<;5`r17vPjEDqT?*Gsb{-m}S&r)MUW3RZ*^0$CT=1kx zGpv$2>n%n=^eq0CDa&&|Z3@(%cT*gTe3F0m6}fctq9p7F%@+;jL#osTbUTU)*8=t3 z7PX@>vrwn}{dja=s}JkiX4e8Q$TOVOK}>~KmB#PiXNfIDB7BL$Zd-0)-=~;H>{QiQ z5SaHg@K-VyrJug&5S?BIHuai4cgo%Be3{&IE%{GyC@Zh(E>fLTIynkWbNu+nFG7U2 zPq-6?l;M)wEEi$Qb4OMEV}#+v9FjhNvhYZiKmEbpo=G2QCy+xp`!RE0)IQeg0e|AO zvXaGDBxL@M#%BD!hq=%H z%q#QK_?J0duBK9F8-3{{tWO3$>pkLB1D_{=W&s=d9l7m*-h{P_@R?4H!L!Hu@!==} zR6_6UP#kBMjlyQ9qonsA@vED)t8T=yU>nNCCrmE$Gh*$MTN9i?NRw?ef0-@%yq-@= zXQ^dnE}&zAwmzFYIZ9fNSkZs;uS!#C3Iz?w5gyP(k z`@zN8db&;)#o`vFi2IEIGA+Pjd(ZNFa~pkUeVC;aQ1-YVW}*8HJ8pncE6|^B9eV2K zic?eWl`}Q~GqOLqn;;e^QW)H-%ei=}>bm)^WPbO08m(!!rnuqnnnxC&&Guy;?^;59 zk+dpl7j_1emdK=74C)eP)D>y|>xwh#J>S><`>aM5J&4G~MCZQ^?}VY6oq)4V{NLDn z2UdiuX^XhOczVjvEs?)R>D)E2eEyuk`Fn5fV$k2JH|<{8U>dXZ97}aM*6U@x*q>@M z)*y6^&Qmb}yTC2y4Y$*S9cBseFe$nfpaXm`WXOLygVkk6{(AECwKl_(lBat;XpG&{ z_%(^Q(!UiJY!7GNB)v#uj%IZI5w3KYp_qeZBC|yY8yzEKeDp;P4kH5&8~@ zN~O##o;X2FGSD(63hsZB)fSNMy_OfUe@Hs5W)*|P(6*CCg_}06 zd<$>3GYv2Oh4CZ)OI5;0aFi?)xvaPW%QyGG04oh?BV&D*d@e`@W6mtWGyobp zh^?Se)GTfNaI>D&N#slj|(HC_LDECp=1-8HYQRU4o61!JCOzz!||=^jBj1BVJ;2IdgYK%@0ik@X8zmyqgR9`;-=ya z;5`f&?nQ9gx;zC+2>sZ`)`ii|DR>=H(AF7jAVg_{>4=BPWBsZJA>>_m6a*Z79sE(( zuaXeQ+_n>S+U0{SH4&yQtlXabJsN-QVZ(p?oufJAvfh%ex~Y=pE0C1AQ{^OT@9xJo znrZ5(uwCXO&lSN{NjNX^KJ)cmI*}Em3vD$3%Zm?JMD%w0Q zx90G08I+Ut4e>SSp3dl%;>%pgptNY;fH}L^JKEaovsxY;wXMy~-;JUJ#{{hLU9h;oPYpXx zN|KgPQ8IrUZ>)ldnOj1X&YaC*vz1|$3azd#qulQ&K$ustd^Hc>b$iT}^1 zZVIS3V4)l^=-kX4W)EA^MfgZbj`+psz~lMA-L_?f?_3nQ5Uh%Pu}G-|$}`#KbJ>=> zyN!E04SovqF`jE%w_On=ybZO-F#c`~6X5seP=bhLqHE3Z?EU<^pV7*hfo;c(y_-ope7pvJy(Nfz(2g`aGxKh(2*RUN+e)qd(s~a5XZ4!_h8!o%)KEotN49iz{+M!hZ(tH%I z91Wih`{n2fbi!_aRU0r-vtwu-zK5TA^bu{(MHODe<+bLcbB2h&fO!x*R)tm}8;c*J zs@>!h*o*(eeCgDWL5r}m2y<8mx9p2-BzoY71vA)c34O_ zt!6HGK&aKr33*1to6c$vFu02wc=?BZtJ^jY!0aEEz|I}fBG_Q1z$li|)YI8#FyjrJPizINoQxK@TdL+Nj*>PCoscO&69zDN8p~+@qH*}p!Ggbq zHV+~qasu}%Sis{rN6#<6y4fdppZgl+)$;)TH*} z<;%1$fZQGHzhfPh6_bL?#aIOR$j?G$in1Jdv>z@wk61G-4>Yoyl|7;dvG$G3_n{_E zJ^_KggIe1=;msVlj~NX4(*HCk9vHf#16 z+j^2Ciy_P-75c7w1uHk0lS@$)Vz=0h#Yi|36=?_Urpmsjb+{c)N!blN-_FVA0W0S& z&TOU8!B|Lxrm$D(-3N*Mij5oSf>SQFMhqR(K}`&DFEBv91AOR9Mpo(P_%G<&Qb%SG zhNs)=7HzY`M&M0s?5(q!%A>ma%qB2K`7OW%>KSX`ngsq>(3;AjuZH-(a5a`5LId`j zh5t_4%=b`Du>Llq%P8C{BqU^Rr5SEnaIm=wx8|)3|H*E8tQ)zMUe{0KFsqxWJl}9Hr*|4{3Vm` zz2U1aHN9;qu%c@d;tAm4t0tbmO9apI54mJ^c6Kk%CpC+;CU65P>EDFcibG&8Hzhtk z!jX|X24-&s%{J@dvb-?tuPJoite`Vdpg;Mn{8+I0{xL7?Jcvc~_SUoP2#T`Q1hhW{nM`#(=yOog4xWY;P zEVc*c2l!-~&aq;4hzH-^s}UDZXoa|Gvw#(BNK*A+tC__0NXPq}pt2}j1-W_)=z;_x zsts!rD98Cuyi&;)e0OY$m;9BX%Uz802)|c8P$vdVkvynYfq2Hy2zTxq0zJ~rYMhYH z`0p+5)UxR-hM=PNy!^8v(?;R%Kb%G!!f_ZvC@&PwpJ>LV%MxGQo@pyfE?6(&q-Q|d zrWwKhO1_L)1G%JY;q>s3>ISVgnC^vI3J>R)M+aLp+*424GMyCjW~`?#w5+Tcb#-;& zQBfdi^@#&lp7e|>^LRJOEIz?()YV)pU|k4}a)?3@q{_rMo{( zv%BH}9f@XBR?8lLeNaij3Zf;n;Nb$`TGLOTnhYu2`}JSS`5pQ>CC-b$`}`i3($`y_ z;?ddd+JxWkHh>aN!Ugeg#xy`2}1qNL$FAUIj4cJbw zhw=>%L#2l7LhDIshML=;_OT$(PtY`@tp_-c2->FVPGXW@j9B86J0-lWGs+(hWQ`+$ z?!kic{Nkw4UPeXUG1-1(8Nn{VmkXzhJW6N~YnDgl2r?_%*Pwh3Q!ZAen0fpWWv zJ|^Y7%d+6T`0=PTZ}a##GG8L>`huqMpIsR>g}P{HbHaV^L%j+u`I(3aRs(xY&x@Xl z_UL`sUN*M&SlrLK9&2rO<)3$nc#UtYxC5~X9Ig165;d}cq&OVTSO}i-Q+>tt99a1~ z7!}35)mU;h!=KPESR7(QtVo%ZRyK!BW-u_nS|Pz?S-1`ZO)NE1-)WTrimnFce7e8A zx^OBqXWTT(t75(pE={Su?VtG6>f*s=S!7suaZ*-k;s1hYd>Wg9t{`VMfEp&;u*LF$ zKF=@)`iwP$^7a~Z_j!MUGw(Q*R`x+(1siN9i>-aMyT~t*#(Q3|3#T)_|Bd%|el1}b znDmSuVgRvKKKoUpq>5V6{RvF9Km4}jA;(v!4SCaDelA(kHD(p|A>yg`eOatCn+xWp zqmy#zHq{(yt_#jJi2y)ULsG5{aiG7?T;gm`QZGOKU*1ihx;W;=)O?}T1F25Mqt_#d zgfllcNO@5|;*T;pHcu_3{`37Wm3NV{Ob*1o9hn_RNb}qXZBzx}!sx)+u*5K>HRYLIX9~c!FIyOeH3%Bozu~+PBLwF-o=}X<vuSO{4nAF`rqCW zzMNKkB>B&B@uEyPF-NR?%Obepq5*)mN7b6UK>N=CMbw|rw4<@mhRW11*Yyuzm#F_%{8O0uUq@Zh@)h!E@ zs`cmHhGZ}`e+`cQEPnY3ZdchUINLMp%3LwNi82+S$EZmJQ{40IGfV4{VXeNHX*VtT z{KyZJh5~FJ=BP~qdN;PxB*U|(QmDaC6D!9^)KxFlTD}m?kc&+F+;UyT$bZGR*5l7O zJnkka#h3d~88bwCmvwheTft{AHmAjDqdJ$tvZIZkJ!?F5 z*i}z?BAA;i?{0qr_|R=d1u!Khrp;AUTY3(d^4ML8j*HV;=EdC{Nn>X|(@Mc;#Aqf* zLOT5yK~xzbt3e&t75DkbL`b>@gN-Q9?vjo;ysh0?;c@uX~lk|*~>CKeT7~> zt2XiX*chYgeOylO0*{!-5)+!%chj)+UWa(sA;gE4j4iWjk=%sG5=?UKE*6M8ubje_ zu!HG8G)Ei=fyl^XmN+6g44P2cPEJQ2uo*r{jxjw4$6bM@c=?ueK@ zB$z32lkV3L5f`WARbN%qD|H&AZ33c$Xulk?+j< zn0ZC?>F>!&ff5|XJGtI#*U5*s}Eq=p%vxfD-u|#{T&!uH&>x0uR_Ccs~0Y4A!$pY7hq9%WIM(!)~ zPHr!=HnyHe5g0y9zRdeI-eO3PbmUvR9KdF7poldH8ZMGnA5zkK{Vd4*a^mGGhiu{N z^r_F|ZD_#jA#VTi$yuFl3%@s%QSq>xrQ5Y$4mdNwC4QuDX7g9W0)bU4eSng5#_xQ@ zr#77sW2B$BRyPw3v=>tQT!_3{6Y|2z0;L!T+yA51G{`^!RrI~7Yg0woGID?bYf&Zc z;Aen*-~^noLEy}l7=o~snI3okMP&U;F?PV@gFnV+@p;LTq9RE-0R;sGQ1_r|x;ZBg zVB29}Ii1FS7yGopBA0FgNnEsVZlayK3B#xPQ)*I8cPxkR9=?CpkNr_q<~=2Od9{@m zB5%eERO%>C;(ie>m!(B*IiQn{&UJ`GMw)}y!6l@S#*t*^hiW7G#$S!VP8#Mf+47t5 zNf1*RNvK|%KuEh;k&()*6?f+7gUIr9Zuifj*k;*oXtJ6s#^!1huH(`&6YGT};de7` zBb>^a$S2^K_h)h{+YKL=6{C8UGXB-o)nv!-N-R|QhRdA@0YW2fmdFMR#FRwN|IW+W z9{$P96D+D+KX=Iva7!tu9%x0A(~b(Flut~M{0TTc1kq-`6B1#g6FG{0NLpjC>+?GJ zY#*aV`wd!5LrVT*FbI4kibD;K)^gQkS=U(#Wv??=d|M+Jfffv{Ynj%ZxAG#fH(nQ- zEjY3V$}-wi_QXO@q^&g#a*iKn48>MyWOMNzU8M#~+$k}7*=Pj|_zauZ1>hGhXu zchLVd^oEYFeX0>Cza2Lw-g%4)_?r6O$}sziZooJ~{lU(ciH8cMHw_2x<&XT7Ruilj zMvNuUA}{z6w?*L2yRjblyApWqe=ZBKD5bCqT8!T}~{o4@TM90~O z(v30Ni923`qYz04x@C;n~esOI$A=4TU+oaa?2aD%RNjf{Odl4ky&$Y-^R~93`Ax* zDsV6EdA-R-ddAb)soDW5y1q+`FH>;QbIrY898*NZJ0$s!R)FOcKmoH=-L+><)*e=a z_m$fyanBVyGi{`o2;Xlae`qei^3BJt@Cmcej27a)#}w+{kofF6 zWv-E|(UK$D%FYJfz(Ib3k&$kZj*Pq%q53SMd?J9Y7ad*El981KY79VRb|<*d!bke@ z#a~Z(e>vrve){UVNl&tsB+J+V4Y!E=B=QC*ZF{rV%1!+j+;7r_=2x2IHkV}=1J&X^ zylGQqc(vh}9fgK3PRn6$-0(b(*HekEpX1Y*HSMj9*`BXLwVS%Wb@C~up*$v5R;7)x z^x8)!6mSw?DglT^x`tV*0Kw;b=}OMt*cFAYj?~1+CvveJHx*9O=$C zsRIV-@5PbswsYqR?Ot!CM2|2W>n@6Ft{OIVd$p&yX#Y=X$J%9gfmHaG0^%dWWnO{f zFiSCLdaUS?Tx8rfcr1E-KsW1q_~)zD^?W&Ey#Dw6(d`EVmjl%cHCt#?R`Otl2B@O6 z*S_UZuUWTh3zBbITHuG?u2$f5$kvC@o!P8?s(N@aQbX zyt)^hxMC)ulmHz6kl@&bz22eaE^r}E%OsnwOn& z3d>eVV>7u%qTJNIN&V!S8`-M9<5I3?)u)~Qjl_{k5F)OBEB9-QaGm3s9%f)8tmpAS zHhnZE?5Gnj{Vf%9Mrw(}j9iy>cxxkTG^Y1prNF{2Nq@~%lY~?>`E6r=KAqCVq^tA~ zpzL|f>zc(DCosLiMv zq3C?ztRp~}K8kV(HOk{+y^21&VuPQ5e1D%$`s7)!?xO4Yo_K|XS6aa6horZF-H(p2 z+%NWi^j+5u6`FRIv-7E*p}7>@Ifat-!M+MEL8&PKU5B>$K6ucpn**>ZGC&=;=arSQ zb%{iPyfzDK#BCiI^;|`pW~RTO=6j)&aphpcd&CTMCtECyJ5`@2+a}e-z2LPQK&xyh zck|I>)aE|uq8;|J5q|RE3OOdU0jkS;@x%EpwBtbO{xVmf-ij7dCx=kp8sSu55ig6#k^=NN z4f|Yl4L+Q*1ibHsD*M`8sQ9#Rxy6h7Vy)LD8Q=ivjXM7sfdWtu#Pwb1^#Aa8{C=7P zade!2C2m_G!a0o_iu?8X%;nQMwX_gw;+X+5v{{VP1|H-z_aZ6WU5yL)d4UULM|2!& zPCzW!Zj)ppn&L7VCs|x!5B2kl5U|LvFpSWK1l7B1S12+saMKvY|AAZVb5=rUM`F?c z@QbNQC}`-KOE{l0emqCeZ0~r^7lY|u;(iEhDb^<=_H55m{KS~E%v41xxsr0BAe1V~ zyfyawb$pJ{)**&Mn54twY~c08si#<720WX_n#Sc{d5VfWbw}z+G=3errS-;Px(!jM zjSh$iLW!su@&&AgEYT(?0vk-~Kavmp0DOCIz+PGwm-OdFFu_H~=AR}CC~Mq%&07C& z&uO&g-BpI_#?5th-A<5rJrXK4Og4jEUc(K;qsxqT!QIa{azaLJ@(72*PM$UN3qA2p zD4mV%BPuB4Ep1YwL+C&JQmMp_`;ES-5-(M*T3@{1n-?)_VBeGB^V&EQV(_a}t;;JM ziY`newKdf)^~bE-2DV>B3UW0>bIpI|J}6#vOx3v?lWWa=LtR}-FmECIH1SWYGD5_U zaJGMV%Z~s3KcKM%mt`l87xo zhPz{7*zs7;^GB3>W~blN-b|_{)?RUS`Ioyd9oUBZZ&4bKWjwgQfdkIMU>0pKWtC`#!a7w(c>izn-#+v%>1i+I z@p=kwDfcID8mWAwqeHZwF~(qR%NB&P0x%XzDR8XiGj#6q{@2-;j||BP<4;Jf$%{|< z-tq8KJk_Ixk>_a3MgIMZDVd;$qDLrWmG^Tau)R|qM2ER;J029TMIEiwzP}|g9G_6u z9$#zNg?MwaFg5o;VCaYaGh*v+`Wr3!g|uiNS9_{DMVPT`pQzafhX(y(I4Eb(Rz=N{ z1uQZOov$}{UV@vxQZ9U&Da}kZ`tqeeZ%mJ=ggBFWtPTU9th*yU7%M*#nLyGWt}1O) z`RISLk&dBK0M2IGbI{YOF>`X7=&pD1U+N6H6?N?%NMVD@t7*-{K{73llVbG)geP7j z;`0>F1EX>A>=dDs%jgr-Jr-JDksYTk8lOi=5seW3Y(l~~UanB0{pEg6)s%B&=ArCt zxQ6S$%~>1LNAFMH=9x`ecp&F$Fr6J*mK zFl*vx#MDv|n$*E}>`ew{8+(s2z$;B6S49hTeq~?&S3~x6NMQ8ipBu-#DP)vz#`)klZZpCDp^B4Wm_b9!>YJf(YJ|J2R}*dU-469 z*$uR8RN3mSqbGV?fi;Ndi{zSwjI@qq6>uE^A3*ZPY0Ajw>ln(kyW2;^y+~$ZG5FcQ z`#*Ho=!62H*=kU79nrfS)Utb9QVQ25*}9JDUnSBmL4irMHqGO*=~BIgJZ}yCVzUl| z2BYuJZRSu@!vI5QjLYOG_MoH#{QboS`wGalj3;(O8B$kzr>Uz`;hvsyhl-SiY~i92 z;!f5tkb3ORj3nIEaOj8so_q04em?1j4=d!9Gn9V>pqiR)nfgITZSrZ99Zu3HG`rr4 zBNf|#9}X)gjkTQYfAP8~6+u$Q$B0LouT#p7lM~rc???nqlFrRbG5B5ZDrUX!v`BA) zpr2IFCk&AI%em>vah>~K=X1(u_HMP4*_5hkKkq$t?|dd6Ju+)D7dv z;c)Gqz-p2w900}~wpU{Td8GTTgAu_BJodp*0l?tVWtg?=DF={0H^k^Wm!qoX1}``H zL;VkI#iO0VdQKL_D9M{a|2~65DQpw)B-(vwZVeLOLDb{8`sYSf%PHJS+_dBAcOwU< zP{tcQ;~Ul~H{yWRolEO%w-v*IB)O{iXIr>kaG~$&>Wb%IKirVehMCFJH2cQvv^Y&P zRFm7R=n&ej+vl{7$-v)y{}u4%`*jwlBnX2~avOS)s2se-b>pvUd{R?c(~hRU<{2sC z4NUXf&3`KKT6xJ;1cXVLP|G4%x5vq^#~Tk>kBeVOq=G#e z`%u|*>Z4P_dS(S*1a$1k9An{Ny2oqU;<#p>*SwFt(V3}TRWsqVq10O|u2yNgo^5nc zd6=%f<6E9C?Bj9AIVQV`H3iH~q+8QmterJ| zhRIRjj_yf5xaX|1&z{uBla;I4^zDt0q>eRY#qrT+p>w8zyh9e4Zl1e{*;=d1bS+27yrKA7o??l*_Vti1%;@ zuV)q~rM7X%6CEn!?L{$>vjdklFg4q25X10xlG#%HwFttG-ZTgoBm`Jox@aa_7cId``EK-61!OH=6ZPB zs;-=!+qj!~DKSX>bjSgkv4bfZ;gugI%y8n6%b{|q``Xw_Z5t*#y%B+0)4Ay4U3KLV zkQ+AA211WNeco&4BWkPC#j6Mcpt*rsOZTTnLV#?oF4DtiZrM+tEmy3HTh&(P2%01m%x;S`qvlZ=O6TVw7?_VwM?5fzU_?mZR zR*m4Q?~rg|8FjSE?97Y5Z@}9ko>|C^Ds;MOqc|ZafC;VWfcKJHfrLL#O$`#ywSQ%a z1!U`Am6fcIC&g2GL!~>-!3-y_F$sBj?2x|9oe9zR@9h!XF1e24^O{;KCMk=b8`jfx zthBEIhj%9nBli^)+kQE}fAj$ZQ&+2F_;t^OSs61Y;9AbgoM9^Q9>|2T6+TfVU>nfM zf2u3oF|QN+h)(arWv?y)t)GOM+r_dMxBzmLP^s0lGkonIr+S^;C51(OVB~efDFU=J zB&u>Zxv`w2q_{eP=y8eP(=YxROe>wxcxNT$+GY)s1xH(>VG=j!J&|u`f{OX~@LG z{Imxj1Cx!Pq4FB#FG^2$nuxQK+n0(6wnDyOhI5+OKkGHT-8l+Wlq1z2I7B!luXVd* z4Fkx~m6j}^00k?_P;>aB3dqVOCjMwPlhYcQ%>QLCjLMV_ud-Zu`Cq=crE+rfh)d~S zDh8L>vqj=^l*4DxS2KMR3GYdvx!a4cXl5VX2>?Q+%xhX-@8hM*ATr__jqzhJ}gVPvJ!7xf@;-gQH&5OfN ztI;@_$l--$oQR(C;NBx&%+g4HG9`wo(syz+eto7r=O;##EBkhlZkJXZ=daDFuB{@# zU_CcQe>X+NzFzqeY~^}J0>jTZ!6pB_1;OU~g^(cETa?O*>i$7_HJx%MW&?}4Xbm6N zbGH~wbGp3|$8LmGh(5Lv|AS>hj55->|IaX~pZ%;lbJn5O5XE|K_jnCb1G(&8bDeWO zwA28NaKnNW#FJZko=j~*@dejey+ zQpKHUglxM$4ykFk^Rs4+*`kMEY8}XT(SIgSxExpAbEn?YLv2e2P}}aD76`uP2=27l5u3A$yAYb z-c7{=_g(Y*|HwIEZtm`$0MlQRwTGQ#aRm?^#C>t?Ouz38bbi0c&(g0@io^Sy{E^e! zqK9Q8_IoYB_zEn|Yty4un%cq(NU~VOTMfLCPkd6@dP}~m_RTHwWEXxV3Rpt`9HFE_ zzAFKlO>wUz?{!jv&x{VBt=OGUpglBb-sk^VCCSltP0 zSF#dNQXq66&LJx=j*d83uNnf^$_G-AD9cewv%mb6m^$$Dqg(RJG51_miL^B{-G#h6 z`VbDC&80YKL9Xap;23NlqMpWlPH+GnaO*hTL(QMD`zfsdHiZBQDak_fl!4O&iPc?rsyuP`eS<_#OKo_q#b6TkPKD52e|TL1bz3&ejXn zz;<5ImoQh7bO)=To%zUd=Dpeb9WQxOJ9tO(z_|^^<${UlYX$SDl?~fJGqcE~Qjp9w zHKM`1F*A)K-g&2RNgd#s*hswv_-UWiSE|O8IBv@BQwNE-z7GJ?@xYRZY$Z&yH17ZK z^c8GTxL>e81*Ji{7wKl{4(aah&ZV2BM7pILq`SMNyGxn{>F$QR{_k_|S9t5pnRm`i z;3^oun%nEwC9xv=<+XT%x8K&sGb0l*yk45kl=)3*+Np3-oQz%Dfn81aH#H zezgoozI!(zs}0eIN-Vs8)Tz#}pAryQdgf^l`ZmaTA(ywXH$*agyZ<5_QeKXwsv*zR zyN#i%%k`@fnGXzH@YCGT#wKjm+%T=z`myZ&=qSyR#0hl_p#pJWTA!rgRbKTcMNj*VZ+lO0Vcoaf7GMDIOIbovXi9yv$lJJJ0823M=D?EZ3;#eA|w< z;F&9uS6%6*i-Ed3-tAGYzDA;w>>jbq%0BRq|f50N%f%*8QE1!`N|K^Dp)6LJwO?46vrfGF?RGo?!@ak5cEg>U+}T#VRYZ$RHba% zT4R2P!C+(XnrKJLmzcxLSmqEhDZizneF~F7x&f`Ocbt6OhW>vWvrH6v>|4 zUN9GhJzphPn1gr6{2R)08l2n+rp_4#Xwy&e#Y+F^NAA z(Dg8nFnPfJABYG#SsRF~QUfy%_01!@JT+|d)g-0^2M4BMa~eSrgn8~g3KV@6mKF=H zKjl?ByZ@xNmW`G6`qfwzc3ru}00bfobvdhR6H}!tr#iZRC&VV*6|XdDqLx1~7+SnJ zbYB*BZ$Hkk>k|!CwFa!VW8W$QU_G3L?gSA zWsqf9u3%3!Oz!tOHHAnfXtgyL2F0SAFv64dsc;rpIy=|Jn=Q`A+!G53bh+Mn@l~4~ z5A#*?N{2O9u4JdiB_|g(MA6mX-j)j~(rnJyO^7W|vnf%OYYrnxOuHkl*~R%RewMx? zuFbBd%x7p+(KF_-Fn>S(H&MU^jl~(#pR3^k*q!voPGxv3;M~KZ{YWrgFXI|BUX@iZ z)fx9&&XU39cb3I1(5n$H%SUl{uJjx+D=fUqP|f(VIiCIy)a7cs`p<%o+vW#lR7Hd4 zT4@rIQ-cz|!^4zD<-_f~Op>+tJ`H($0gtfZeiMUSGeNbOjVvx?PLABDQ#muPrOTYzIeRGdWg2?@gW7+0)KfflmiRbI_(~_z=B6Rr zzFVVE?z6f=YVpkwtccH<^qBq=L**{8`ADG1ZjL;eYHX>tv2oW>)y5igyx+r8(NxY) zzSdqoPwy)ThTr+GR726y4HL1_-G**hE%RWy)u21IaNh99HlQ? zWEff=#gV37*}k7-Y&@DtL!WJA+bDPip3QyCSpa=6zv)&0gTnpm<$=$X4=8Ok{;^!a zkq5YXECKFzKRNx_KR(?HKb1heYToIoqI!a%EDWdERj*dOZv zn9m_TXv0?-Yzz!?cOx7_P=-6n-by~R=(G+JrsnM&)5HuxS2Sg|Hn;OmW4L!HIQXDK zw>O@qD&TKXZ{ZW(sD{0Nn~@yCwpep-m6hl8=bq3HOj zY1kYlBZPke5hUmxyNOmF+zT`ukO2=+_C~QA>tNd*TVqj%ghNBUhf6#o81XCEV1J*; zTDm@7(%E*oLpDKBbHRWA!H`)(;aTtdwngObeM&xzt=FVZ%7L5Bt-E~rj+>By^8sb; zRZX4>nd|8(lyY;A?P`mKDHNUxfq0v+egAt+O9L?eod?JsSb-AifcDqh;*3LvMUZD_ zqt6aLW*v2t+JD-)*Uw%5JQj_MK0BcL^P`MGWLxk0 z#_3FdW1@Mrb9xy5QFDbHXitHv)r`*Sk>{ELv9Lw#-X;F&QcpZM>kBcpt89v*s+tp2 zoBMVb=mGuryz`8L!{|el$iVwr>0f=s;({-yp-BM0kbi4Ne5lrBSJ{wF1xTlt3H!`p zua^IyU{8gt&HY?#_&rg(rP-Q0LJ}3SKav4AvLmg6p#a|O-TnTJTT*O0gZlD;l!dsv zXx~IwAx>#PEAK{~@L^W_$)pA#u95s-z0385O+Pu_^ZG}RF&KIK%^>twhwXD1w%(Tw zyM}^$+x1{rLWI!9g(SZ75H>Ux_Yrx(KHunLU^?`ZX9Y7cBjR&fl~tk>N_4$_o>L5v zVE0p=vM}?wZ12pTHS!IuzlEC2tS&)7oFe8-E0Z7Rixz2NTSt@2o{Reb?7#FYgE#g}>!wcC$2D`UNwvi5wPQORs**xHOvEnQKnE$;v)dafx1OgHHU0J_20%p-M~2H~GU#ghkVxP(6W% zw+(=GO2uQ@bf^%=?-W;2iw;gAu8QEE6ZM(-qGZZ%wlxpym9Qg38j)rZ`AxMge;XX8 zztNm>aQ2#zi^}C%SJcNe!^@?G<;96E#2g1C@pQ)oO7$)SAEY-yTFnW4<=3C~0Ganj7hPADwhSf{c#NnTCSUC5TS~0A(BG^Za_O!HVY~fz7rDvo33`T0*uL*MrdoW@ihSjrT01o1XRNotF!)b5|grMz@m z8gL`SQ>wPu&iNjm{Ajw+VtW;9rBf3!!@bfTeHu-j!YlNA(x#cnbM@aU5M3g&w@+_A zB1cUGK=c)R32`WDrUJX>zn_QEx%`417( z3tN6Ur6Z-AxAk%FiNf2U4ZEuCw_<87RTe`;sQM(uhSGe@(z% zfT9$0Nc5~LGQDh1Se;rF{lwr!FTd;XaDciV;Djt<=FotL_gO7(Cpuj`wGlnrRrBFw zB*#zWzP{mv1rSlj(M?qrppC2btlQMpUXqxC{(i*#*K6jU=0S7|B1eR8Pg#CRsuS{4 z6J)_0kh~(PZ`6lHT)00=D#8RwH!}Sgxq7vTZ3zR@QWNuPcCKBSUTv4Y4XmPkH_+_V zj(q5*=wv%u5FLI(^}#;)TdzTLQ$vYfg%+wn?362xG;;fqabdMBV#LaHASJ%e23k*U zMw9646srNCr7HEdTu@-+-1_R;f9R`xSKUnopHY6So>M)1-&2pqFLdXxctt->jgUT( z%xmf_LnkJ#Y#`B~T$vN=q-(rySFM5DrD%03k?hr}W(U_(v${IgIFGskhzaG=I_~;b>Cf3XS>}=Iu0o%HbP^E_5S6&92fn@qy zfFJ(sL%CUH*md*vjQO29)XxjzWY}6P^G^x{rNM$_&l8yE(OQ)0Z{a65VTd~KqAvPw z5*_)y%1Wx{zu*~rfi zC1BG`X1_wK>`W`dUG|?&DPrnAKnGS6(;tY}_Rfq-hwlJ7k_nNEbm3uQmX<-cl%L-s z_v_i8TM9p+5)$VA&BqU8;o2)^V{vC!bzN~^QFBqHUUaGVY1K6JCmzZ;pau4UT@+Ma zXjCQcN98;eeVn+yYzFafuWr6&riQeZR*068F_1&DvJ68;q_RVl z>0*wKqlRTJq`iFwiXQbbc+>|J{Ox#`}6Q)1LB-VMWj@tEQ`oUz$Kab)MRnSE!;m{={m*<2>a zye|YrX6~=ihAsc|wrQi?CzNA^_A=PaG8GE`3}txLc%!NxZZz0aDK7@((&oxPlR{4Z zdcOH56V+lEKeE1nf|1{R$$FYZ$G*g=D?Z)=sIh;IP^Zj19n)JqT$=kd4&XjgUX2Ec z=xt#N3VUjQJUE*AETahxT>M8MI37lm9d`OBgd$N0x9taTqB)p~n9ziulFLc^Nu>=l zN1u!-uk|^+*i+IL0W*}Zb+=2zEH$7Pt~t4JKZT{ihT##}SSr}_tvVEZvHjdPS;dX{ zG8M|IV$KtOtN6_Ot3|HFnfST^)}fGJEOyB6<#y{Vp<}d4S>FmE#sgHg8U|h0UY=lf zH1&63u)g@^obSk-Aer-rX%o>tHu<%Ha`G{EPX<$wgvE*3xLt{nK8y zJ@b7RY9t>;y@x}tycq8a|K!g^gAg~Xp!EKgjq3rO(Xmm!{P@0&ZcGvw*_k>N>4<^L zijMd*^TQ}d6$$jg7r**+!S0rkJ(_?09W^)4hrOk{o_RZxasJa8rr+q~CNIn^^cbp< zs?3ed2!VAZJ?t}tgSAUWM7yxQ8Zba@8f*)8c_-mMIgk0NYvETif9=u>U-qv$IGds7 zPVf~nfIM?;?zZHioz)1U7iDb`R=p@gdL-s^YpP_deiL;+hQ%2{P3+yB=M%DvN@^G(giWkFX`!K8}RH;s*XrZ>_^6=_^ zG#gYB7z3?d(5e*^!~c9+M6~^f*G5i z>-YFoveHNuqO1K;$R~KzqZlS(==wA>fwys|`L=)Zb5Tlj-^(a!>e?S9-)_;8_u&tE z^Z1TVF+rF|1AGY$gL%fE%J0Tkp5y0n`2R}*6YJf4a#U0Z^p-p3uY<$&!>Zq2ujLcK z+mDEMDyG1s2EhI1JtFcq&>%*W(8SQbp2~W-x9r?uafZ01&U$lZ_4v9%IX%5V$?pvZ z5m2D=Pobp)Mzf&!`6vGO8_W|0tZ+7Lkl16H^kH{TNc|4w(2>BIP}q5NT69nO6Eb=} zfuA2mW}TP2fR0-8`K!I8CO0h2`Hq({)Lz=jCxwI%xJoZDJ4?o45Nl1*>o5)Krhc=+ z^1;;mGQ!*`)AOlDm^S#q2LunS^Yyd@a?h-qnC`~*Ikt!Iez)yU5?)ie|l_;_5tk3#i*drFm8bF_fT`iQGmX}_n z2AnJvyVS+Jv^|j;5Y%bdij}n12Dzy1(S=N#6m~|tzoM8v!!Yx>d@M?t>>0mh9j|Kd zT^l3bYZj0OcN#y_)JhzhYr(Fm$8WSIo<*2zj!UdGhvz6AjXl!Yn7*|1<=`$0cemx= zPc2dQpZ~v@F(u~78eoOthR*ndc$(pc;z&HF zuw&iJvG#^Qwi+RENcLW&bIrR%6C(yZkh@iP@Kgx?9@!oAd1l}G_1X&k6#g|;)@P)~ zxPmRpr0O@#B=Hk%^RE;qxM=6|t4>ju;0C5#L#*!x<}-MP*)bkt*UW_!D6g!d#^^f% zcgmWz9I95Fs=9m|cxeh zd42a>yaV?8`vYTkToA7RC9O%6_QaRcR~jiQI429Cw^FGxJj<&Oav9_ATSJ3vIqN0i zE3Af&6LG#>n5a%irjM-9Uv=>gOWvjdd zsMF&2j~v>@M*wMg8`;nT4qs8@Z`X89jyE?yU3C4E-;{=;oduwqt@hrzn@e*%INn~G z12QyVn~${}d%D@DzUg;{aeF{O?L9iXr<^m9IGO_X&3X1Wfho~xZ%rTafKsej#Vh`xr-22mptQUosJ;)TiLM~Tuy~!BQYJn!@DQdrE zt3cO1L0vk~v4xuEALem@K)dWk=?EW~ua`FT-r50LrlQJbrhaMHhL;871XahII}7arIDU z0=KByLl|$PZ6maV>tdrLp8((~N4powUUOAnX2Cq&L4eW zTVso``#+_?(ZqV)k7;@!k-YQA8D_TsPGaDK z7Qt=Vpwo!JnI;O@YOGCiggZ)~FusO~XDgkjFDJNLnNWj*;(;1r@f`mj#X`QZDpcJR z)pA5*2LhN=mfdgTDaovHW~@47n16r73VoZgBq24u0fn)c%i|O@SB4i%o<3}3)^BRk7I_8nai#S&r&aQ%3f_frObphhh6wxL3&&~vlPw~j5BX9Il9 zSm>sPzgB_{tN{@C1tjJu9QTN`GL8c3a*Dkm=yn~s z9(^M8>FNA2jxI74+i_Fm`O6?i=twA1#J2!_q{J{O?1`fNHb*?)KpTr2eBty-*eZSN z)2ost-X<@qs-kyl`*~>aF#s&^A6qO8bEngn!RFW*&h-Pxq4+UuzMnNkOK~p{yx*|{ z8=mEbpg2Zvd|xT+)~+uRdanPt+dp$PM(=}g(c$}{jyB@|lIc)$9<})5eKR_QrH2AI z3SF)XnN(^6?}C!M`$cDvG>>mu&8#Zz2tPJ=P>S55gy!usSulUs^I7|mbvH3)84uec zkKm?~1hsjV`fJUqL=)WB<(x?esgwOX!g-NkydCkwoA_qZ1` z$-VQAF+KNX5}9AtAk4Qj`U{Vm_u*@CziOB0Tc;C?W)*Liu_eq@@N0l1o6}nVXN1Lw z7?&bWP+3Do=6K_1<7CUkanS6>T%v^`KYijIxaIfS7|fpF(#)O{=SooVg3bzkNaJne z*UMdW=_uKRHp{a5~;5kyL@fMFPrYQIhzd|@?3zBu6QTkG@-Lq{EK zP6}nNwK!c!qNRzE(?{O@kUsWxL%cnjH{K`{eIu+LUR?Q3(LS{&nr#bE<1WdNqsU1c%~-c zq!0t0r&!7}EtAQ<^x)9xdT-+2UHS3jM_I}e?6JDDH$6<{5L^_i?T7JK^oL8(hr4$) z!w=W~g9$j%Ny+BjV$a&C+vAp;!;Vc7TZVgK$7=yO_a)wN4Q;JxdVi(CG}-^*Hj!kl zqxGl;Nd1Y{JMkxAeq7IV%;s@bPEH(f0zk!urcj@Ls_1(5oe85?) z=*;b+mbvX@Y%8!alSopgzT0|(Xlz^#eY0Ef)^&kyvI6lc`qL|o^7DTwo9Ex>v-Okq zKw}V`iA%Wk=P`uwHyKk*N?IEm6SrTDf}2nSQ(=v#H)-V90-Y7_U=&(cBd(}el8}+s zge_U`YM#EAB0?Rwq24=VR@*++PluI(4-v)~w%0VM5`NjK_Y`_fmf{us1ml|K0M1z0 zh#yc+9H~0bVkW!|*szIWkCPGm+tz{hy4uPuAg1-_h&Cmh;PR^T(eTZ3!pw zFGYNTvfLvc(^uH*TtcI@4Z@Ql6Jdq#UXP8&UZ#sU* zsEp@NfyAtn%>zw-r?vT9=E&4hxxhp)9C4Z1%#%O6wTAxd(Os(WR_6QX{W_Qs&HLZu zb|eh&E_dMQuU?Ig>qxS9GBt-LfA|fY9f-csZ}x4Soh13%80~>c{`l^wFg9gL8!-xc zkd-pVGm`de>Yo4F!Bt4@7E*#bB)fI-b#GM2kHVan|9>vrBJRfGC;P&0tRG0-;ZL#B zHjP2#?q-9-F$8$sCBX&1x)?b5q*MCOZi#*)9mmggQs!t!EtG4H#pu8qIh9PJ9P&1qe5;Zg(Lhe1m)*69$V59g=YZLtGLOpl`8&kFMu0Fi7((!#N z?oXj*nYvCHB4~)P)||rp=cee!`n^+~zHYzP!i(tBb#IyUQljRtUYDACVbIpw3i1wl zqCyVuV9H&3yP+iL9limT><~pBqkt>VzOWOjMIjlY^+(&LjXqa2;k#-+UQpq4hM+9# zk+!M$eOLFg7?aZ{jk3h^1UCTULtNbJU5ftQua`!&~0(C=;9q%c01luAk z5aj%VUlu}dDw2^LPIRb^&IODjfl4C#lo?flnH|pG4e06*p1XbUft9rsX(G2~Pm@{% z*K?zRP^fj0JdMOoh(K{p@U8<~BBokye(=T7<5oPTk=NZ!BeUBL%v- zU_M!~$6+f5uL=A{r6!4gQ`4YZ(j!L?Z(CdM&p-A?x_okZpcLH-`ol_=f0W!d!KHNI z=Z8vDq#!%{SdQwZEkXy=Sx*`M#^W0i#ALh(zT7W;e&MgWoc6%-c!tR}6ns`OcZtOO zmKH5*9(h+X*6tUqR!j-mGhI}|;&BKJeL;akM>3-F*(+D%y=|T6)+F|xMXw{p!-(RRL=ue=x=f{bUF}cqZ zFfaSQ689eM=X%(b&51QAsmGHZDwh>SOv>U;Y~11{A76XKm$4?Gdj-|Gr7(6Tgwdu^ zw95U?_Ix*O8HxY|A<5QJe!4ZkU~(E)1l#IU{gTt^-k6uZYE>s3)R4b87RK1m7e&uH z`o(_plg`@#F<#(ZiDX&(KZ$|0B!12GEr7R)r!#YrMTjY@KB0S-fvi8xYWkPYhF+ z6Xm0O>JE-{jZYgJ!rdHjL6YsEn4-D17s9pj)%Kjm?Ea9dHHs?FmZ2tI@E#-2c2Q2O z(T1rtle7PbOISTkgy8;hJs6VRZR9mVsA2D6e2Nd7(N59%LD7g1V=CpY2{O>Umz}Ae zMo@lWOGjRfoYmz~nY<<*TDZEih~?|o7E&u~-%Brctz`7S$#2q9=^B%XsjAamZ%57x z-tU6}i5^J& zVgp<`JNEZgHqHbyjci@NKuH9TbWnYm$r6Q&XKk-=(r&>p9&cE6FQB%Z<6JiT#ET}w zBe=tYQ+|wbR@x!@GAG`E1PO`ZWCbIq3jgr=&LDx1K0m3kvbanwI6|PQc~WHC-=Y-`xP<&6$|~bkbv2OYP*n z!LgQ2B9bF)79<)(YM;IplRKno)Nm~lC0O^Rng{sJA(q$*Ulgsj!%+{%jS9=lU=zgL zUf2VpCh!nPOvNY^YFjUco{u0w%UDZt>VKw?i zne3_S+eU1w;9jShC>~9GttqX|>P`k5U$6Fy2L|)frh>ypB8Pmz&d@L(0f0oNFPl$U zc|I_a_IMmp2!m!*7W#@Wo`V#YO$S(Z)i82u6T@koIOARbQg(OPP`4TECU7`Pjx0S zERNRXZ#p@cq3^7{ER2&dbEdbIb{`Kt#gR8F;nUW(_M!*aXcSr62F+rhmF6eQ1`~OH z>vQUCFby6ctS%F^lQ8IjbcyzJJc&?+=EWP_RL6@fPaxnMes-NHUvPq1&PKdjz8uh{ zKp5s_rJRY(EtjvZp<& zjz5amEjknpwq#Y07fXyaP}>#ERonp9`&LbunvkbK*gEth|>&T)u+L)DT#U+L{f z8ePpqTR3gZ>hyw#Hn)mA=d!zS%X2)Do6r^(*Q(&vYFv(15QOHsu0adEFK~cqGr%Qv z<@;{e^W|nBS{Od|BnKGFAesCB_l&G-ME0AbpP+MoKKfdX2}kR00LWi79G-6V zT8=h%f{^UzYy>bVRDe(j(PLW-1}r#V9VwvJwW(9gsUh_6<*oeo>)yKL6qGd_I%yC0 zJ{zjOpYLUOddIzde{HD3v7pC$pE~wzPlG-0yLj^#QiI!vyA|!{t5$7&SH<$Vlt%9x z`y2a?7fQgz$x<}F$ctuLRizQPTiA1b<>$AmUsGNw@ES)nJo<56YOdTwl*@4}l`7T! zUGzy|lVCLwo3m>VKT_teEX+^wI2M=Ll=M#mvMtPe0)MamQ!}K8QTAm6kdCgkng_FW z#DDHlLa2WIFS}m%zpPgges43(&j$QK_f`6XsY-@XD4kKt29s9jb)VN`7$p5u%<&)% zKgaE8&>(EOmx1aOL z4AgR{8Zr@~8p1lMt>Ijh&zpGbY#5eVKZmXwg zdBF_FkJ8lBJI`}cQuGySoyfT%HKf&0)ICM-gc2> zxk$>egw#e+%2)3`^oyJ3bt84%dkl=1Q?rmCL~&29CffhGxcX1y)9R0g=qjFT#gAz> zy4Lu5jN9<>Ou+w6ugC_l#GTH&<(*VlQ*}OOEPeS@l^J0_121T%cX}j9hJ0igaryGx zrIYF*R5+CZ53pWo^5w&ldmwtya|pV;wXCVW{e~W>gME^}BRi)XQ5AZ)D=0WQkQFG<(5r*ykMb(vjriw zI#um&n}&Ry=zXz_*p7zlnz0Q1^wb*L;bE9q=q6%}=XT2<%v?vd=-989BLIL5=GzAw zqN}B)AN)_XS>Yob#kBZ3Zm0$>m$S|OF2XyC_u+Qxo9#XzHj~NGNreBj3o)B%IE@R`nOe=8+)BeM(>xtp%TG&G;wOdfAcHWM&8GP-!A$b!>(2Lysw*NF#dX)OM1)c++Y!Lsc_YYap3$KFf^TC*1-?d(l*#j!DX=t{4X9w7QKIVdIg6m;O3 z!|_)nR~gL!4p=PdlBCCKMpMeb(zY4)n^s2`F0Zcn>d&#P0)_q zl*vqvV{^3WJhN3RNt96jzXNZ@+6fsN>pvCi3`@XEa{eTmFfyMMFjM+A9o&Y4pel(R z#m-^l_W79E(*~yFw!JBik-mBoOr&8T9u1s=JU?!8nmE$A)O%0cHI*#iqH2pv>xf-uee`eJmMh5+Zn=`DP&m~{)X4dZ^nxmol-fr}D21py0_6QTn<$NyT zo9ES^j@!^8<3OTgN;`z}H6Qji{F@KIWj6RRw$Hy!h=&4o?}Hp+qJ!78h| zz-7W$vfHV>j$9ZNdC$NNAN9El>4>^4$rdiwvO=diYg3j}P^KYT|1t;q4#3*3cw1_f z8v4H0LEl&X_ix0W?+XOz-Wg=0ZTK7cgdVN>kQ*3E$jw2%=YG{Hgd<1p`m89-(UZuD zNpVM>b+%lG9dnMz`n0&$B83fYQtA(l_kK_IR^@SMWktQqCQZmnXBq> zYEocR?LJ2zN3nhfpS#5XohCAt5`piL8?nU8bVo0YQRm&*&Y$B_{T*+E!*Xw0tJ?4H z_Z>|{gdCsCR=jEnyL1L69<_;_Hj6T8%{g-w(w8Xw+8gR#-4!XZH{Yuv+?w+BWwUna z?)34od+m{4o{e`bdliOxb)lvInzKs5PI?K>Z~aw+j;R{B``OlZbsKp0T`&8u_n`FQ zbXcyexBUQ}mX*Y3N*((Un36S<3cxDY@&1YV+?dN9U@cTKmgrlcY3R&FzcRa7z4xFz z-n!1s``)ml`BWa*q$99MTiyCOy2(1LW1Ig;4!F$Bc0RQ*m1f8E51w<;VI`FEbFI7a zbg8EPZ9_IB(v8VwdM9P3l;B|vhpTuxZ)h4>Fq!xS#xsN7X*n`R#c_!bmB28mU~dD0 zjS1ADvJNc!-KdutQI>NEZ~C5s3Tp<49_A(KW311+$LU~LolQh^&LYq)aX;{;LMpMS z*-Sn7@HUmDUTV<2K^P{gYu_J!b>kz{N%4N)y<=5O|UwP z_cmvm&e1jgG&dFh;Vk&JcxCq9UVM=aQ$vtEofY`!xz<_Z_gdn&HGr?mb$V2(>?$%# zn;;aIP8E25k5H8<85rYY$M%&eIX!*dv1X`4?Vp1N_qaAT(Z+b}V+%1xLNTbS-t}Jf z(PpHfK^L3?!LcWExj*|jq;l}&`3zSTABXFK3e7g@EH4KxB}vq)&A!iOepOd%?zzMz z_po#S0lfkVNOaplk#!Zmz+OK1(sD<(;^X^m{>i2i7&9a|2iOn%hY&r*gN)|must*I zTwFg5wlj}i_SBktCbc)Azwl&t#q!*6VX&$uvXK(E>Xac&uI@xvAVDZy1odwA7j}ao zw;g6DV^iooE+mVe2#OR;@O42c2G?U#ljIip?6{%-+7#$n$s%&bVR~;bmZB=Qa9sETk1>0S0uCYm1TJdX2Z9xw41n`X0CrJx)tkt@+_as;^w$^G7f3oTl8tC z%as=WBkxO+)9%pQJfyL$+nki@XTrFbxf)QIVp}sf_5mbtIzvHSGW~!fwoSSzT7nJ6 z@F;%XzROfvOD2rrV|#HjJo&`$cuNE5unI&SLIRnLmc4g^@~w5oWC^!Bh2-J3nKjL1 z$}EWJfU`G?MCxsa(bRK-)@JTwBjsxZfxR<`n?xIDw<Bk_f;=EXvCgIuf8m|jdZkajVwzA%vw^aNO`fnU^H!DAK z?A`+8i<`Jbxcazv=z+F=_Y0M9aP_;C5T$CrV7T-W__coCtSbN4OJXe%3-{7}!SPGJ zuxin@3zIxJ0*lKVVTf3231s)t?Odky#~>$?`1L<&4jeHKIi;fa&CC@I1C!|7?_})t zRSlUiN_whRXQbr+?QS@9ci9FhGW!GjFQVx2(iJ4?Gm%N#iafX75y!r`BOGkUnx=jl z`g=V)kn;s{WD>h=TQ#%lJ*zthHr?94ow=Wr9R4q513CTq;cNzPZIme6Wku6 zs?wUKgGY7;Cxa{%{(gsIH@m%q)D~0t5#S0(UWd)wBMat^4uDrts4z&Q?jH~jnx072 ztro5gRIR(LJVH+e5g>(;uk)&sRx-an6b*>%*AnpNsB2{xk(^Z4&2M3P%fsm6cmg&- zGr@tk*woM>K>fW}6^=Pe@+B=J5aANy$@d55RB`p!WiCeuD=DFI5$Q~7RJBc5nj{)i z=;WS*o>Y{|WMabxahk2IugT9G6>bNf_j{*BjtEQdi_sbJrydpT&zJ&=Rllz-HFHa! zdFQXzzDsD@U3$Nm*E;k+B0Z=RY_az3c_`vf0H;2jh=$w~ub+lBgON#Q&za!r=)~16 zz~c35UmIe0B7tbY-xMi@TD!)vHHq9cj3ZOS-{0$YYhE``9X$_7PxhOREbz_EF@BBv zdUS>r4&P6m39&%dz~hbvLHLq5rbn0Rc&DJ)ebXt(ozGMBpMyQPd{YD1H^$+iQ~pXN zVQvC|mc5znt>gPzKxoR&eF7*hLHEJ2Os4V8Stz@%hKFtG$hqioXmR^_&zhE>)PM~& z32K4|ih&ZoR8PVwo*zZoMzl0O_QC68;CB?L;y3|&o~?q-CwEG5+54s`0Yi5T`65V% z@td^#?=h&aLrZ;;o9z9o{x)2}ey>YIm+KO9GpXwCZO3q>+kWjJw3lB&$h^3lWczEh z(NPX8`-}9u{H$^W)|%0i2GacrhR6FWjX`IdS-t(c=4=SFH#!Orh3eev6$doqYlin0 zfYc)i*7Hd|2)k*B^UzIQL%WLjO?46)uRJeB5z#Db(;o6e!1$R*C_0|?lSvhY^c;vM z#gy#A?Lu2F7U4Ir)agNh4aI-gV&{BK@8xHDm}ZCm^xg%Xt3Vy{YYfwXtlA>rqzy|H zJ0wn;;}-*=2(sfFu29x$aP`!=*tHS$S`Nf=zEEMxH?DYQ`+%3<%Zg`(n{lXKjE^qV zox1}$D>EgRekL$xbvbD@5oGBR$HrpMT^ z(iHI8(3V$TG=_#oPAi(efuW9F#Kp&_$?i2gJ|Sshfg_Tj3L#ASE<01pjZW}k>8E2) zco<%0gnUnFiC89bWdBI26%pD^@b%T>pUqaryW=y4`0!-hXYlR7-%Fj(jd?)}rP1`n zD<-9d)g<#aM{P}cwAVLoS&2&DMZLoD#6mQWUs8+Nm>~O6 z^xVlA6(>$RZj79mxYblUCjW=Aw+@T4+v0{F15rW*qy#~bu90pq=u{epkd|&3TIud) z0Fmy785nX1X#wdRY6K*PkcRi>Ip@6RJntXh_3b}^i+kT|*IH|@`0ahaAbI+3JoZC} zMFL_7=b3HLcRSo%oo3>7cJ@RiHLHsy#${r&HCk)K=5YP&Fzu?=G*FnH z;HiPftuuYUOVa2P%NpTk#pX$+AB6665Z|f08$)9dr5W=5cRa@QWvQ~Ej;1v6YBWc0 z#;yoP^2qX+)4dN8AUym~5$Awcyf2B^zISDX;`X#Y1akG_F?$tM-KHR!NQv5eG)?8b zr81h!B7P*{azf*W3U2xNzirqxH5O2t|} zE|ewN_Xhv2ukOkAfNN7Z-C+aGe9SLw`Eo;t;F4e?QScv0V>euft9TEKH9lASzE%Sq zGAGEWjArjt>781UOl7J$z`?C*^k)@0OekpFD5_Dimoz3a7;g2?SvP%%QB4N9Segot zD}w)^vF5gh(v}A$B%qxN?;D#?yR7mgW4Cpzo;ViBTdnvO=a8ow636Y zxkS-m==5!fkdT6qSWQpe>TN8oBXS2nB znV?@EoOA{n0&nfinmYnp|sS@p?=wRNu&XfxQP9{e2x_l zZWCedNY=$Gr?-9a+Th{&Mz@K9FSX{F5Ig5FbQmy9!2FyB8MCXI zy4CQ^5YFBUmPs+m+qUA~{UfW@w4&pK!MaX!mm?^&`^Gxt`u$mi=pngji^3-cNc-h{wzMg?p$J(TFFTn^A$KUmnE! z2N15JbcAAG>lm-`jn(qPGtiuB)ziDTo_X$!XH@?P0V zvCjQ2ksSv+1IZSxZXO|O&h|{;vfY28>xSqLj~HyPkIKI}5Xs37N`HC%m!=cRs**l9e3k zjG>(-ak_JJ{=7TzPz2M1Ng{W$3Hw;o`O26V^B9Abw%FJ8l)F`rkf$#xvZU9pE_8J2 z(n$?145uZJB?+@1U&UzIJ>IB6aon-8R4#1ac>?ZcD=2>Y^^vIYVNkXO9cQss*5=reJpBau?Jil;5Bw?M5AOJ% zUw17%8RD%Xd0Y5ofQnW`x3x6_cw30%CSE92N~%W10m31hZXl=hHr*gB&nmV+iw*!8 zZ6?Wo5^4Eo{|^xsOUOTo>X0J*7>Z{25-Qbw==4ImT-3Q_|TY;e8*vq}|_C9VFXQQ6`km`7($v;$8 zRn?X6j|@3p=Q|xbx!lScj!rKIvx~NCkyn8nla_CzxXdT#nf+p$tLjoyubF5!G)z5tmT0v zB>1Z>Vk}wQ_Lof1gt7!fPCCgqyA?0oBs`YDW|sc zF2VXIRaHJUE=v?0&8R%~1PS%)h>>R2|2wZi2jRj|1Sbt3H}wIGC`o`Tf%oeB-g$Evg>%~H6iOORX!%1 zMqAgT#>(%@O&n%tQPt`*@8q{Ok^}aVjSZhIh~l*$jMpZzl~Bnc*%)q%hQDU^)w`#N zAs#bo`jDyh4Ky=YGg_2RCGHLc{vAW^Yn`2(S!Tn+;OcB$dO;@-mXe8DPoK{(G^Z1( zbVC0=ih_qedK|!q-%-df*7em{RaKxApx7ddXid{`+|XL@XXX44=kg||WJff*H*&^5 zI=p{AxoDkKUZUKmgEZ(8GM@bjMd5^ipOC09c=kj-7I3e zuoSa+UK|-Y9F*a`5b7KkUs43|q@@<@7Zi7%JzxEW?kAm6dGn|>u|YT;id$H27!#?{ z5F1}|E&O~%?_N5WHFC;zU%va|NdDiGW|sH$em31bUxzzlbn89JWW2}ArBXP21S2OS^JYSox&^UMFMD_;)v(*3InP>>nJaN-<{2)N72SUA#E&^)UHUl0kkSt_g8!#`X5DJn^fIWH>gvGY}Kc7-rMKhG`?=hp~A;{#Ti;fxFS52}Zr|W5l=aJT5 z18yImZ^z^srgrs$lSXzfnA<|l{;fi{l7DiJtTR#+4XwNOr)Q}3T*cb=%<>kezht@* zW3;rsI%`Yf6DWkpKRwok?d2u@j3R1FVXvR)E#@CYcKX~=5@;n|zohz=XJ`s0dU z1BL~fs(a!`5jn#j`3Y03z`%%$auNc1qK$aNClp%?0s7_(3+m+{JhQ|MG~pOI3!AE(258f)msNRt%md=SQRC{XW2nBb49=c*DUP!o5ZL(E_m_KN#dFokM8nGi{Z`p{?M~X0my8&d zZ%nT`YEmZ5_z`l&mgxe3#W?dYI#koRUR^2H{(b0%PqOTwW9yoEypgA5ma6fGp&#U> zZ;@Pm)hlZ3XZH=pFP}3IIY&dN1XvPj2;9_fE68YO;!X7oHL$Vnm2%t4v77XCa0SDd zSWFAX$r<>P%D5>FMn1n7qNI(Rw{eIHQXh)*R^Y6@@4i%eYIoxmJXph>!Kg`Q3wt%< z;3HZkBgHVD+@*K>GvS5{Np)YJYAOau#?upYZgcy50j@OzT0>(h3*OuFG0@RQ~({?dI# zhU)Qj1XgchSjX>3WC?RERAH}|4Zm_NS?bwhIzzb^dmK6P%Dqsq)%-g>Tt!_;<29lX zC4B6IKOjMo!Hb9=Tdq4sUK8Lu?gq4gn5zpnSok@{95Uwzd4<>vbkz8P&AmEM!S~DQ zSVfh_8;y~ zR$*u$|=t#wXEkK|zyC(Z1ih zvJU#PR?aqKk^PNt&DIJ~Wat>FJ14jo*A6(-xn(T+#WQl+E-ToIE)Xdl)gqeA#SW3? zxn-3UP$EM&TiXkj)O*LeS0*iqd}e=h!H<(D5S9BkghM%NFSvYGWB4VfRF=9iql5Uo z)S3WbGxrmHoJi}`d^ZRz4~uo(@x`d4aWmX*DRi%N_&U0JQtab)?HliGM_GyX=QMMm zKST`%x~4?FI?E0UKm%rLV@a>SObYi61@R*I6m(BuO?26`0uM&mXcK41NYw{;Qi;j_ z+JJdS0d7awU0=ua--4hsM&^trFYtSX+*K_Yr z>R!o789A3)>Y{h+Jd*!1q6$@yJZxpcr|VAekTKC1Sot%QAI8@Ks7)yI^o z=CDSxN#AQ1WQJcgab>tJq2{P&eyrPQpj*Vwk-<8!-*ll*@~PZJ9&FDtL2HX~)jJ?) zS|5WuwrUvA#aGf+z98!eYfU6ow6>O*pEC$cYWH7N!yD+G`$JM+U3T}Jr(#{~SE1ib zVsfUjc0u>qD}n0FS@!b4i6eUIbj%upc|Gorfyd8Efh_GsE=rK~8dGA~*ueW?@)+ zQD@}n?%I-Ho(fe$%Yjo%9%NZbqBq}|A13BJsY3Q-Rk-4bUIy?@O-Uju11Zdo?mbEJ zR0ngzw>wv+;Fi?msAKytzqfqOa83Z~P>-$$m?0xhW))Au0k@sV1lP zov8kVjoMwknsO!TAsKH=Sv?lGFz6&b!J?ybMm8V(uKd>iJc}xi{R?wZ3V(fS<_Kfl zqJZA1jE*s@uLlWqjp=#`RV|57Hx@d#CA)f3Z)!tsE|@f5S1YKIjLJMfsz44~PEb0E zi0tEDs_Ir)oyDU=G7yq-ua#-AVDkJxHQ9UnM>X*Z1!nSsW;v5UqO)P$d^{tClV5mE-+_h9X(+!H-pv=U_Y8+|0fcm`9|Lpy&#$n=}{b+Hv?hWlr0gcO>Y7H`+Tp-1#Yw~!GZ7Z@S&t>OGJNhS-9wQM`VPgjw32OfM z4f$j}!wRD2xZM9(S6o|1S6z)DlK<($0&1#ac8+G&(%=-_;%FJY2zIppX{mi{7}u&e zTTKP~?;7VKhYkZ=Upcy)5DB#lh3$wbq3G#$s8C z8@B8FWktk!D?a5_n{Loh_^Xqp?iE{WDPq>_TtEk7|7&A%)InKv$z(?(nN}r02MEE{ z&6im!%{x>|$%k&NJp&ZSLLJ##o>w1?_FSmtcwu}?T86fVx!=Fn>2B%~bTteTc zU>fwChd_VoqxBO$B1?PtlqIZi?>i4UXR6vEDbqUjiOyHDO_sv<95+9#T%`QzcIOCH z#wWI1VEAE>r?tzyf4%4?Na-dyb9X=H@ag8+f|zYk-%$TR`~48DssZPq8mSLTF68F0 zMIa8rqA*a<&yBbo^jlqU=Q7%=qr)6d&qS<9C2XhRG7e0@Do8*=cqFbZm>b5qWTNQv zwx%cy_qAU}Qn{deWhpJ=b|h-sD`RXjeF&`7V3d3D2b(4~?WSVd$NFv|LJZHboV`kJ z(*4d4;!GmW6@A$il2Lj?{fdn+U59OK4ZmhzTkT;>1ij;;7WwdBzhQOiI=NF#htAA+ zKH~0cB~jA_4i`1ZsdlA$g)w|C#5}z}&jY(2n^wCqcZpEN4@#m`Vfri`*N00)?AlFt zEkrppZ1z0=+-=ycCM5J59~S$z*<ny3TmCl21)$1DnHgC;ot(^taAA zeKz8G7VeLj#LAANVxWafATvHkrqlQ z3)mD1?f9OrYcYa+qO;oq?HN_Ne+euRDMj7rxAxQ9`n!@dKJNjs;Z_n|&UrG_-#vYgXrZ5YSviHGX_B3F3 z!W*)}EmKHZ8|fw6N`=L1Bewg>GEf!rM$ctPi}!*w#y<>DfV{grg5>p0%R4=)p5SIP z5k|!{MqLBF$2i^L#~G68Jj!4_-;EB z$*ngejQ`$!8<}cD06%$gh}Zp3-9n`+K;8|yT9+wDd-ttGUZI%Y%^KEtW-@=bn=uI*r%tI3#TomSy!DF<>5Irhz3ojO znvHX!hc+Ec{R-7xrx~Rc1$0;k4951#Xv>bCY^;*d-g3V zj9ZOM)t=*;geh=>N=NrQi`N`D=ok;&E^%PDk(^yIk3(dgpz7K;Bbx6!%$TePD}DQ` z6*BQG?pn~ce7;KOckepBh>=(#eevW;U%sGtygl)yAyb?g z@&iwwbG0^WC45a_IE-=7ci^trbw`CQ4^JGhpCqdY38Z24Nr$r z)%O86Pj=*+o6OU0k22aAPTYyfeJ73}a_w)4vYze7Fxl5Var5hgScDj%)wMk+?5x?h zo$ZQWL9>$YQT7t2&wgKFFkT4K1UZlf)%q9;nd_?JqP{pw2_B5ch3mDi?RywjX9H%$ zgMXV59?Nw@n~Shm&&dH9QEcTVudqD?REgbUe#;jT$>TmzbinQF>$t?^O4&2N&#B*R zKyG=gJ=iv&`7Fx_0nOI99OPa!U#Z)Bb#Od|->aIzOKG2rMd{?@PITqY|GTH&nlG*9 z2&M1y$9+Ac0Z?rTR3R)&N9RDk2q)o!nvqQ*JcS`RCBw94G}G;49WzvAMnWDTB#`1r zvuKGe18mF{z{X6aB^2eLRQk+521=(UzbRQxv3@GDQYp^CE%j!4xmXk(?g^P5x0Y{zr6cUFj2UT>45@hwN+UZb>1v`Nj~6~rf>QABhhGi&MQ z`c42*sS%CA@OMF;_r%epRDEYrYy`$RjCjGsL}ZdPT?g*Uu#J1|RP?zv^Ore-$ble5 zSDM9ao;oDcFnKc9<%4iyA%V>&7jj6j$$vZ+G7Hbg4sYJrdY+*XK`TNgmxC)7e@O_y z`nVf)QFcU^Hr&+RnaJh4ElmU_b`Xl=nJ%oS6%*%~I7BOur{a|+NRidX8OD+4zShGd zA6$PbD&T_%G`rEo!QE3`Xp{M}@`7(P+A>4)*f03?o6Qq(f2{8y2LkN9Kl0i>vEJOI z=-fA7D_~Iw*Rl+DADWTqhUQ>l0biTCvH#N&nfvDa&TDndSuvKspZz}b5Uc2C`d$Io zM5kdD_-9+-g6q0Jd6EihJFrt?3sI9fy((TSQ(lF|q-!Y}eA!E7t zI(TY6?-`O1YE)}|=_ae+d$m$9a;kG#`OIMT&jq&LJUchSrf9fUZv@=1VL4hK5GC05h9uOz6GD zRRC+f1eb}kj>L?ghk9CY%BoneE%kHgsyKRLo_!2L>5CcM3}3BHZ-BLfHIW0^P)2wk z@6@c*?240=28Dq*)1f%Rrr~TJJ{N#FNDnTg89{=ziCyU1m4TSd`P@1E+4D+x`@13=1>YSHX7V!{h!uDF^Ea2hITK&6~<`PU| z7ASZdji>MEM#?DotB`($aC9h&ztHkncS@hxC(D*YqXBjN7>{toom%0ol0^>(L#od( zXXg*6h(~ra`*ViQ-G^;u!71aUh5C;}dSjQ9iC0_Co8<98_9N&|&>Mx9$&vSN_JuUeQKiBwC^GhQyppuF^x9c04UwfNK|-h3X9eYe zMQt6a!Svzv+05p<^WREoj(*TbuB6-3MF(Je-+=Obz&@$(ViSDsqmNig}12&)F5kzF)S_0nUZwn4Pze&63Ds@bgI9pfM z!3U)fp1D!#oM-bfwK6`rc7{uX5wc19)SbLDuX zfMfsH23$#VGWG+uFE4Ioz^;qu+m|3s~RcRrgDRm#CCC{}_hS|L-t%q$c%R&t`U zse`r%)G>cq^S(`P} zu*rhI7DsO0g8&(=6Bl%D6O7P@*5uG%x=0@`L=?jpA7Vq4Y zs-_*|aG(%UVzJJ!qU19KbQ{xtlYPP#0XhFx^b-iy8C)9o3EDE4cQIS{7xeQZ@J1v% zF%E+;0CO-{={UOr>)Rae+etJ^v+^G>h6w405~f%TbC;o49dt`^kOOUmXnoPeK#Y_4 zgTnIkMYH92!>_ch8i6Dhz8yUg&eaEl?B{l~GLvI(NCYx(rm6@=Xbhp;PO3@Ga$Xiw!~xb}A=!#R*)Y>cxVaSc)gV3ynf5H3c*@^l zqw7&zn|)&g$#(bu`fVg%vbms`L!J;c4zEFPz`WzQtgkqx=)0S#@fo};t&((RIWO} zV@J?A;sVyJ3VLXA?!Ib%27z)!TK%~qYR)ywtBwwkF*Y3J(>5VnA!-(?2`J%a^a>xD zKisn5*q3QkF`;oig%1&x&xe>F$y^m}q;eMZR75DE-!@+}G^_`w$arly@P9ZJEldI`E}_1Bk6!P|9t=EZ^GAs!C#7?`DTLCInv~pN zxKfZROI5M_`$S*;CHc|;dI8YCqf+6WN^QZBr&JKSP{O`2Mr2SWjr>8oqXVTGSS@73?b3X{{7L)M?5+8tp&>) zuEVi%PPLqNkM)SVl>{fYFDD&~YU;diHSM4wB66&w$T(^lh|%)oaZu}p4B*@|^pLU{ z0p$tVKIifBsP(G834#zyH_aiC^D_a=*@mXo!clciY$?PtGr}u0Q7TW3Qy4p0 zFSR^3Ut$ZcJN~mfd7G?Z#RDM^XPjE|HLUwNn5P}W>wvi3O8(e|Db?A`2qtrNYXBLX zrg+om;JNOS+hcaUmMjZha#-vhiiR7Cqq)5C3`WcjrA!kiUIDI&88M|1A3la_hW+p? zQC)3dpqz@p_=4M&zo=lL9bF{P2{&Y`YHd$^1vE@3Rm zE;DdcFaX8)@ZVhdkq`b7pJ`(9AN{7Zx?bmc)Hy6x{lfw?k_~>Ax^)^%yQ`50w|7kn z*wf6do6y2*S2I|U1s=keQ{+T90-v4G2kkFACCffD=mSn5{+&(LrW;*pmtso5t3~9N zX=?eHPV_n05>q{3Qy2h{j||C9U8}Gh9Uf=aE|;zB41LkN&7QUuE%mh3(GdjN( zz;{$p{a%KoVPh#V1v21pv$%hyixlW}_n)%%D1mxsj#Q0Dhd`A@wJu6Q!AP;U5|y8% z0N_xUDvWUpz^PoXLWixwFO5NIsb??m@b{-50QrA89l_;YQ=%Js&x-d=b&^0D+fL`- zaWNt}$3cmM1X|?U+dyHR>mkmptT!#3)c5na0it>AWln6+ra*Y|ufndp46t4kYqW0*{9&DHwHY~TK423W#IY;e(!)<&7^-QZXv=}#a0@hn%JR96Jr?Dxke8?^O$ zwt_0;7w|J&1h9chR#W^2sfA@Mw>a3uBoAqj6~jHuT%1bMPxYpMpc~@jPp5*ImO+D} zCx$aQT?H9xmkr>S4O{q^Tkml|x%223{@wJL?fL@+3TeAYVJqEKN3yRat_FhH|MswY{xn}6~i+_M2 z5`%Xjk*+cf(hH(ZPuwDhTdLsey_13hN!4V}$RZrU3R5N|b9yeb%M- z%Ci4*H_IaNU%fbRDxEqwI4(40U}ov#{wH_jqjo7nEu-zzObgm*t`x&GCJX^kBDuwQ zufwjMg8pZ3Guw55RpmUEXN&eu+AQK5d>yYPZ>s_R5&%YZ;5`|!xp=`RBBuj(1W2_~h?@d!vw`YOa zq=bZ4nEr%X&$t(tUz2xES+OW!Vtub;U=e7@5>Z_FRo>~_wj+Ky&tj9LF8`z%-bg`t}rQ4P5hPz^5aT`#+urQhM0%SF7}zE_Ms$z4t2DACkyi;+|{0H!VCXI{-C11GCsqScCQyDr4#G{HY z7m2A_t}86>TkG}=*LK7*?pg2E_iJi^%9o_+iXUR+`cAug>S%;{dP;Dk^+W2CGO`2u zE@Yk-+fu7o+BTx)%}Ps>0I}|;6KBDSh`uo;O0mY72f})Q#{2ISk^snJN}f#dNgHl{ z0Nk5vewq>e3O(-q{c_c4yOw&Fu-8$15Nos; z1$%9|9ecxBCN4lJLFJt?Xe;4eGJ2vPlmQwM7JVQjz-)Uf3^*{4+N56T@EZa2Yt2hl ztBZUFdDddlf3T`XY$Egy+08w2i@Dlx9FluQAD8e4l!sJ}Pok10?O(*HW7&AC=!v~G zuWK|{Lx&?ROGQXwN@~Dk05t_1Wnr49%(lY&u9=DI_+8QC#m187^bZEr0Pa!`?v*lL zFP6aMXn2kC)*zJnV2mj;5$m(1t9N7)we`jFTz81%G&(KW7`g6b3}1!BlnHAx+g3Yn z_}`fJ5*q8~ZP5YCuYoV%c>VLwMrz@S$##W&f6=r59Z27?KkhHgkq7@T`i*9#ZZEGn z<49Kv;DiI?qV8ec+f^H{h?|*dr;TC8H2jL(6YBetSTBTx)Q&9I_Dd25D>dlgSw)uH zip!7K#e^cpG_d0uU?leonc`X#0S6#?d{QQ{0cO}zj^@`3J9_6NuUW4E1{7EY_PmvG z;l&nF^YFavDPl77MnR55CnIUobsZQ?`+A{jokH10hVVH{i#C%M# z@|dth*qU_brkoP^k|Og7fQ5#cD_BbuG~Ke;F+C&gopA!h2Pu85{>LX1nZC=%+mj&% z|I2-Lnk5N!!zy%eonp>gU}X#HPC4DG@&479M*Hcnnl>(QGc_koL_ASN%&pNdCObi8 zxnLN!W}YuBw|z+;pON(Uzh)y2f*MILOnh%OC zEvv*N&=~|X804F-2W7;iyqJQ+p9*;ZSt@`u&EV{DWYR-9jo3O|c zdSJ3n63XXNuG`B7%Ft`!i|M91!hiG0=9{^9G5hU$R&vWKEBm`kvMN6)B)0S)pZb*` z=){LF!w39)K76N6U;EiSaV{$B3D{^jB%j!For(AP?&u>}Ecv|@n6_X_$SHYKtIL(^ zgMtr>DbZ@QmN4?HV6_}eha9ttH?vf^S9+iP#NBipIUeKeX@3-sc04ufDi{29o!rx1 zwNgl2!d?QOvn@v@6gqD;DD?6_Pq@&k=i&r9X|`!hc(J?L<4`>(!9IC zw2t=Iz!F`M!U?uXW~fJDE(Vx~kzs7a2o-H_Iyx3SM*q%7oHBy>9Y(?3Oxj1_eIdOF zr5|{Obb&n#pV76Gz*UG}coC!@SCayp6o`K~N!`_zV@>MiO|_sOH3RW6so6n82lC-<%{rhvN$kjb`i zqO8QwJCkro_XB^zKd-YFUPs`!CuBs7*@*pcv%b>v`lRLyV^xD`nckW8W9LZ z%;WEsBmjI6HK3QzWfAKQ*>S>djFA4&uY#K1#N9yyThAwA8mHP* z-j0Htx;%^O4<@8E%pmZ)#pCDqdBMtN%+f3h8V~f8Z!p@=yonBD-%Yji6p>=bbW>)= zefb<1=tP*98v5(V#T2_Dc<%mlr?)2&X1V~-GbRN5Nzmr*-Rh|&ZmN5gC>ztn=@jIC zXjsr;{re$XwtKzpAE9BPfhsn7afbrIQ_aD_MlsUlBtb|7d4;{N-VES5;uIJ6K>`OW zl4s(cssya}71gspQqp9|UEOj)RK561%umSwv9lQFRH8%Brj6{v_Rq)jS6RM{<9t76h)Cs{cp!}aNc3sHYUU+~zod=3}*O?F~FeSc4YZwR++fefeSO!>}+Ga`Mff99my;Y4gTaw`DGFFO|4z zzKt-Y_Epo*Ub7x-y}Im!Mg2QSeQ6*RNbS#4X|) zkzFv7EUq=`A7xEpDbM=|BhA$7f{>Xyo$RCH4#oN;( z<4+o%V>WC3<4ageV12)zT#@i~&hmWVFQ|WP4b{C_HHAO&~tD`6MN? z9RA#yMfibo2W`6a2$gjw2RoIxqvxSVk{~4^7B+Xj?wl6sW7C?L5UKVI#qu`ex*^m$ zx-WDN>%L|12MWECyW?#5_AIhUYl@iiP?=i3%}+3KGFS6VsV$U_;NhH?_A7+Q_4dRa z1F-q>#jx$Mi&fM*=%g#2%&Yw{o9hQh-w(V)^VN{6N9m45bboI}O9%0((7Ov>)<*^9 z(D|zwX*`D7Pj>PB$bB(W;F`$sVn-;^najQ4-HK_UhwskrQ23Sa4|$kiiR(iC>ZmSG zwQwhF8Xf3ci>J73_B|5eox@ix3hv62NF^sP?Uu$3R9`gU8d|K62B zvYyz@ zYvy&j^Vk{d#&U?sTrs)9Lzt?$+CWwH&L?T6>quvr#&QyYdWL6U{PQ2KCyKDptf!z< z14*)TpKp9C@Bg*L7gyJkLkDVRJe{l*b||6m->iRdH?hi@zJK>U(3+xo43?Z2nM({d z**PRY;c_=$dfi^>MnQZJ{ba!E)68^MOgR5cw$jFzuh!{vT8x@qwA>p^$d`_A^3`pb z0p(z+PL$OIlwj&8xJ$z>P50TNDs1rNX)ZBgZ^VRqgQ|<+xxr^6ho@R*-*aTa>Fb0}4$%Mr1t_4FB98&9@7 zM#A;cYB&K6Fson-mY3y8vu06MQD7VTB=&xEpjpk{ z^r^?v#!6?0NzMwIy=(6gczOj$`YIyzLqj3&NIru1!YF0KQQl-hM`8$~PWbm`i=byJ zculrq_R4Q47lhj6^BkY{e!lxtoh_yX_}!ayo)H}8OWjJ z`sZTw*;qUd;fqd0~%t$2W*fR{KoeUXkft>EsG0)ld8ZgUuign#bMm z7Xq|}i$t0vw6U-DJnrl77Dt7+nnqu^Je{+lym)hLH(8cG=W6+>o`bC1?Hz&HubxYL z%2;OnN_8&4wO(fk;{LS2WD1dBdZ|t*t{al$rTp>XRE=gV8of6zF3nO0{`Hk2D?hS| zQB7_`pUvjpDu1X~mBqL;9%T{ItY7!?zLKS7tG3qvVd^XVnhg7XMWmDv=@t-BkQy** zfJm2!ba!`m!{`!eBqgK~7@ebGq;xk(4Hyi`GoRYa${rTM2b^YR7i8ma8&9@_R z#>u|I{;w7qxAwjxzKar>IuMP#cxL98{JgHDN;jTVkh3ak#=lA9)^E7mwC;*j5L{#j z3Y6lZRS)}DI8a_wUZ*eEc|+`;2{Bjye+7Ai3c z#MqH^v%JmyH5+m8FnyhZ^B58v4L$Ndn7+nt6)d8!lW#>QLt}S%+>UJm7x87j*5g%1 zPeo`PE87}5I%Fu>TLK1k-16O5+N!KG7k^PMu1bSvjclR_bQdMvH@@(}Xr;J}C#ge1KS>pZm&!!dT(zBB#%ujyJoikgQo7}q!*&V@OR(boz zSPbYaai5q`BJ~@V$%Q5$dklq&J?ojXFU&#&v)R$;2QP)6-Bm%m;m=@PtS^KC2X^)2 zQ?;A}{h7b7&mWi7Zl7g%SNTKE8b>E|dz^)eH9#oyGk9vxC2w0x;3k6Xj7Q%CTf~~g z-|G9*m5@J{ez#+8-8}&-;nwE!@P~;@?Yrd*LBGG-$yy>61P@g6G~&R(iAR6#B3s}6 z!F_CH1U5b8B~%5IUmHuw`;wUiJNOfVPe3%990xpuyM zteFyzC=70R8C8;)BR#%^;2i4xn$MJ+MOnh%>SL<#Xt@%<<}nTY89wsdn!TqzGch{N zqnTpN5?-}sbsrIT)%-0&c{aIL%-RKJE>3AMVhr_lj3lE>o;)VqV7i&?$Z#VpEVcVv zX8Wnx3noJA_|=)6v)T{`dN@#bHv9mZ%)XI}V;*5TLr5Eau1`C+C7DUd=EaS3CIcs9 zB?Ar&6*|Q&0du>%v%T|_#>>?Z#$!Vc*K(<4Cd7{|&EDm*eu$Q<0)pSdQS@fYIS$W3 zte}%{3a>`U$vMtKF?%YdE>6elj8UU_TCHVWX0tzkH4AevcE#z|D?vI0&z@bLD?k zjbZCB0Ed(?GDvmmv745J+kbfZDO`pUv*OE!&Wsme@w)jP*M;$Vk7m#<-TV$&9>pi~ zZdi6R^BmtBJ#xLOTA&`?_d-tpy-cGM&m%24SXI#myA*%+YadJ@=k27Yy$>0lxIuQim7!m7}2{?JOV zUD0rDCP|yDWNO};THJbQi4+iI?w`B@dmc;`X*Hq3N^y_bM$gH%_NJi+H;7}dU>G}e zH#LjdvG6GdmDX?*4A0≫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

        `~4!tI}+G}^oxNn~smGf_` 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�C5Gi%R_E2F5=CKy0HAg0H)vE1 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 Xh7A{ccrE>}zjvN$=&RSN+K2xSwwP^a literal 0 HcmV?d00001 -- GitLab From 762dfd156619072e8f74dafaf055b6f0bf7ab2d5 Mon Sep 17 00:00:00 2001 From: Christopher Tate Date: Mon, 10 Oct 2016 17:44:48 -0700 Subject: [PATCH 702/809] Ignore wallpaper relaunch timeout during shutdown Because of course during system shutdown, the wallpaper service won't actually get relaunched. Sometimes shutdown can take long enough that this timeout kicks, so we need to avoid clearing the live wallpaper state spuriously. For simplicity we just check at "would have timed out now" time rather than try to distinguish between the shutdown case and a genuine crash that raced with the shutdown broadcast. Bug 32020355 Change-Id: I9335b2c0214b4c750ef950fed157d186aa670176 --- .../wallpaper/WallpaperManagerService.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java index 5f6800a8d0f2..760e298693d4 100644 --- a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java +++ b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java @@ -480,6 +480,7 @@ public class WallpaperManagerService extends IWallpaperManager.Stub { WallpaperData mLastWallpaper; IWallpaperManagerCallback mKeyguardListener; boolean mWaitingForUnlock; + boolean mShuttingDown; /** * ID of the current wallpaper, changed every time anything sets a wallpaper. @@ -607,6 +608,14 @@ public class WallpaperManagerService extends IWallpaperManager.Stub { private Runnable mResetRunnable = () -> { synchronized (mLock) { + if (mShuttingDown) { + // Don't expect wallpaper services to relaunch during shutdown + if (DEBUG) { + Slog.i(TAG, "Ignoring relaunch timeout during shutdown"); + } + return; + } + if (!mWallpaper.wallpaperUpdating && mWallpaper.userId == mCurrentUserId) { Slog.w(TAG, "Wallpaper reconnect timed out, " @@ -867,6 +876,7 @@ public class WallpaperManagerService extends IWallpaperManager.Stub { public WallpaperManagerService(Context context) { if (DEBUG) Slog.v(TAG, "WallpaperService startup"); mContext = context; + mShuttingDown = false; mImageWallpaper = ComponentName.unflattenFromString( context.getResources().getString(R.string.image_wallpaper_component)); mIWindowManager = IWindowManager.Stub.asInterface( @@ -931,6 +941,21 @@ public class WallpaperManagerService extends IWallpaperManager.Stub { } }, userFilter); + final IntentFilter shutdownFilter = new IntentFilter(Intent.ACTION_SHUTDOWN); + mContext.registerReceiver(new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + if (Intent.ACTION_SHUTDOWN.equals(intent.getAction())) { + if (DEBUG) { + Slog.i(TAG, "Shutting down"); + } + synchronized (mLock) { + mShuttingDown = true; + } + } + } + }, shutdownFilter); + try { ActivityManagerNative.getDefault().registerUserSwitchObserver( new IUserSwitchObserver.Stub() { -- GitLab From 0bba1c620b2fc65f9809a619042e75597075d431 Mon Sep 17 00:00:00 2001 From: Jack He Date: Mon, 10 Oct 2016 12:37:40 -0700 Subject: [PATCH 703/809] List HF_INDICATORS_VALUE_CHANGED broadcast as protected android.bluetooth.headset.action.HF_INDICATORS_VALUE_CHANGED notification should be protected. Bug: 32059227 Test: manual Change-Id: I06d4a7e3aa3a5586eb09d2538b4b526a5d073f9a (cherry picked from commit b798f79ba26e057531fb51e65824e0deee445f26) --- core/res/AndroidManifest.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index a2759bacb2f8..b145f71e9148 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -148,6 +148,8 @@ android:name="android.bluetooth.headset.profile.action.AUDIO_STATE_CHANGED" /> + Date: Mon, 10 Oct 2016 20:47:16 -0700 Subject: [PATCH 704/809] docs: Removed "Accessibility" page from "Pure Android" design docs The "Accessibility" section of Google's material design guidelines has superseded this design page on DAC. To avoid confusion among readers, it's best to remove this page. Bug: 29513203 Change-Id: I61e3bbc7cacc6bed05c33e4983b967408528e5cf --- docs/html/_redirects.yaml | 2 + docs/html/design/_book.yaml | 2 - docs/html/design/patterns/accessibility.jd | 98 ---------------------- 3 files changed, 2 insertions(+), 100 deletions(-) delete mode 100644 docs/html/design/patterns/accessibility.jd diff --git a/docs/html/_redirects.yaml b/docs/html/_redirects.yaml index 7200d4773517..6185dab16e22 100644 --- a/docs/html/_redirects.yaml +++ b/docs/html/_redirects.yaml @@ -289,6 +289,8 @@ redirects: to: /design/patterns/app-structure.html - from: /guide/practices/ui_guidelines/menu_design.html to: /design/patterns/actionbar.html +- from: /design/patterns/accessibility.html + to: https://material.google.com/usability/accessibility.html - from: /design/get-started/ui-overview.html to: /design/handhelds/index.html - from: /design/building-blocks/buttons.html diff --git a/docs/html/design/_book.yaml b/docs/html/design/_book.yaml index 18b47194265f..8ffa9a4f2c87 100644 --- a/docs/html/design/_book.yaml +++ b/docs/html/design/_book.yaml @@ -117,8 +117,6 @@ toc: path: /design/patterns/pure-android.html - title: Compatibility path: /design/patterns/compatibility.html - - title: Accessibility - path: /design/patterns/accessibility.html - title: Help path: /design/patterns/help.html diff --git a/docs/html/design/patterns/accessibility.jd b/docs/html/design/patterns/accessibility.jd deleted file mode 100644 index b910294292b3..000000000000 --- a/docs/html/design/patterns/accessibility.jd +++ /dev/null @@ -1,98 +0,0 @@ -page.title=Accessibility -page.tags="accessibility","navigation","input" -page.metaDescription=Design an app that's universally accessible to people with visual impairment, color deficiency, hearing loss, and limited dexterity. -@jd:body - - -

        - - - -
        -

        Developer Docs

        -

        Implementing Accessibility

        -
        -
        - -

        One of Android's missions is to organize the world's information and make it universally accessible and useful. Accessibility is the measure of how successfully a product can be used by people with varying abilities. Our mission applies to all users-including people with disabilities such as visual impairment, color deficiency, hearing loss, and limited dexterity.

        -

        Universal design is the practice of making products that are inherently accessible to all users, regardless of ability. The Android design patterns were created in accordance with universal design principles, and following them will help your app meet basic usability standards. Adhering to universal design and enabling Android's accessibility tools will make your app as accessible as possible.

        -

        Robust support for accessibility will increase your app's user base. It may also be required for adoption by some organizations.

        -

        Learn more about Google and accessibility.

        - -

        Android's Accessibility Tools

        -

        Android includes several features that support access for users with visual impairments; they don't require drastic visual changes to your app.

        - -
          -
        • TalkBack is a pre-installed screen reader service provided by Google. It uses spoken feedback to describe the results of actions such as launching an app, and events such as notifications.
        • -
        • Explore by Touch is a system feature that works with TalkBack, allowing you to touch your device's screen and hear what's under your finger via spoken feedback. This feature is helpful to users with low vision.
        • -
        • Accessibility settings let you modify your device's display and sound options, such as increasing the text size, changing the speed at which text is spoken, and more.
        • -
        - -

        Some users use hardware or software directional controllers (such as a D-pad, trackball, keyboard) to jump from selection to selection on a screen. They interact with the structure of your app in a linear fashion, similar to 4-way remote control navigation on a television.

        - -

        Guidelines

        -

        The Android design principle "I should always know where I am" is key for accessibility concerns. As a user navigates through an application, they need feedback and a mental model of where they are. All users benefit from a strong sense of information hierarchy and an architecture that makes sense. Most users benefit from visual and haptic feedback during their navigation (such as labels, colors, icons, touch feedback) Low vision users benefit from explicit verbal descriptions and large visuals with high contrast.

        -

        As you design your app, think about the labels and notations needed to navigate your app by sound. When using Explore by Touch, the user enables an invisible but audible layer of structure in your application. Like any other aspect of app design, this structure can be simple, elegant, and robust. The following are Android's recommended guidelines to enable effective navigation for all users.

        - -

        Make navigation intuitive

        -

        Design well-defined, clear task flows with minimal navigation steps, especially for major user tasks. Make sure those tasks are navigable via focus controls.

        - -

        Use recommended touch target sizes

        -

        48 dp is the recommended touch target size for on screen elements. Read about Android Metrics and Grids to learn about implementation strategies to help most of your users. For certain users, it may be appropriate to use larger touch targets. An example of this is educational apps, where buttons larger than the minimum recommendations are appropriate for children with developing motor skills and people with manual dexterity challenges.

        - - -

        Label visual UI elements meaningfully

        -

        In your wireframes, label functional UI components that have no visible text. Those components might be buttons, icons, tabs with icons, and icons with state (like stars). Developers can use the contentDescription attribute to set the label.

        - -
        -
        - -
        -
        -
          -
        1. group
        2. -
        3. all contacts
        4. -
        5. favorites
        6. -
        7. search
        8. -
        9. action overflow button
        10. -
        11. - when starred: remove from favorites
          - when not starred: add to favorties
        12. -
        13. action overflow button
        14. -
        15. text message
        16. -
        -
        -
        - -

        Provide alternatives to affordances that time out

        -

        Your app may have icons or controls that disappear after a certain amount of time. For example, five seconds after starting a video, playback controls may fade from the screen.

        - -

        Due to the way that TalkBack works, those controls are not read out loud unless they are focused on. If they fade out from the screen quickly, your user may not even be aware that they are available. Therefore, make sure that you are not relying on timed out controls for high priority task flows. (This is a good universal design guideline too.) If the controls enable an important function, make sure that the user can turn on the controls again and/or their function is duplicated elsewhere. You can also change the behavior of your app when accessibility services are turned on. Your developer may be able to make sure that timed-out controls won't disappear.

        - -

        Use standard framework controls or enable TalkBack for custom controls

        -

        Standard Android framework controls work automatically with accessibility services and have ContentDescriptions built in by default.

        - -

        An oft-overlooked system control is font size. Users can turn on a system-wide large font size in Settings; using the default system font size in your application will enable the user's preferences in your app as well. To enable system font size in your app, mark text and their associated containers to be measured in scale pixels.

        - -

        Also, keep in mind that when users have large fonts enabled or speak a different language than you, their type might be larger than the space you've allotted for it. Read Devices and Displays and Supporting Multiple Screens for design strategies.

        - -

        If you use custom controls, Android has the developer tools in place to allow adherence to the above guidelines and provide meaningful descriptions about the UI. Provide adequate notation on your wireframes and direct your developer to the Custom Views documentation.

        - -

        Try it out yourself

        -

        Turn on the TalkBack service in Settings > Accessibility and navigate your application using directional controls or eyes-free navigation.

        - - - -

        Checklist

        -
          -
        • Make navigation intuitive
        • -
        • Use recommended touch target sizes
        • -
        • Label visual UI elements meaningfully
        • -
        • Provide alternatives to affordances that time out
        • -
        • Use standard framework controls or enable TalkBack for custom controls
        • -
        • Try it out yourself
        • -
        -- GitLab From 5803ebaf435aa1b3718356c0ab0bb8b0bd2aa8d9 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Mon, 10 Oct 2016 21:32:53 -0700 Subject: [PATCH 705/809] Import translations. DO NOT MERGE Change-Id: I2cd0be069a4961074e96a8f433e1e270764ccf3d Auto-generated-cl: translation import --- core/res/res/values-b+sr+Latn/strings.xml | 60 +++++++++++------------ core/res/res/values-et-rEE/strings.xml | 2 +- core/res/res/values-eu-rES/strings.xml | 2 +- core/res/res/values-fr/strings.xml | 2 +- core/res/res/values-hy-rAM/strings.xml | 4 +- core/res/res/values-nl/strings.xml | 28 +++++------ core/res/res/values-sr/strings.xml | 60 +++++++++++------------ 7 files changed, 79 insertions(+), 79 deletions(-) diff --git a/core/res/res/values-b+sr+Latn/strings.xml b/core/res/res/values-b+sr+Latn/strings.xml index c7b830652a86..50e1327f4a9c 100644 --- a/core/res/res/values-b+sr+Latn/strings.xml +++ b/core/res/res/values-b+sr+Latn/strings.xml @@ -152,7 +152,7 @@ "Nije moguće potvrditi autentičnost." "Potvrda identiteta preko proksi servera nije uspela." "Nije moguće povezati se sa serverom." - "Nije moguće komunicirati sa serverom. Pokušajte ponovo kasnije." + "Nije moguće komunicirati sa serverom. Probajte ponovo kasnije." "Veza sa serverom je istekla." "Stranica sadrži previše veza za preusmeravanje sa servera." "Protokol nije podržan." @@ -160,7 +160,7 @@ "Stranicu nije moguće otvoriti zato što je URL adresa nevažeća." "Nije moguće pristupiti datoteci." "Nije moguće pronaći traženu datoteku." - "Previše zahteva se obrađuje. Pokušajte ponovo kasnije." + "Previše zahteva se obrađuje. Probajte ponovo kasnije." "Greška pri prijavljivanju za %1$s" "Sinhronizacija" "Sinhronizacija" @@ -440,19 +440,19 @@ "Dozvoljava aplikaciji da aktivira metode za dodavanje i brisanje šablona otisaka prstiju koji će se koristiti." "koristi hardver za otiske prstiju" "Dozvoljava aplikaciji da koristi hardver za otiske prstiju radi potvrde autentičnosti" - "Otkriven je delimični otisak prsta. Pokušajte ponovo." - "Nije uspela obrada otiska prsta. Pokušajte ponovo." + "Otkriven je delimični otisak prsta. Probajte ponovo." + "Nije uspela obrada otiska prsta. Probajte ponovo." "Senzor za otiske prstiju je prljav. Očistite ga i pokušajte ponovo." - "Prebrzo ste pomerili prst. Pokušajte ponovo." - "Previše sporo ste pomerili prst. Pokušajte ponovo." + "Prebrzo ste pomerili prst. Probajte ponovo." + "Previše sporo ste pomerili prst. Probajte ponovo." "Hardver za otiske prstiju nije dostupan." "Nije moguće sačuvati otisak prsta. Uklonite neki od postojećih otisaka prstiju." - "Vremensko ograničenje za otisak prsta je isteklo. Pokušajte ponovo." + "Vremensko ograničenje za otisak prsta je isteklo. Probajte ponovo." "Radnja sa otiskom prsta je otkazana." - "Previše pokušaja. Pokušajte ponovo kasnije." - "Pokušajte ponovo." + "Previše pokušaja. Probajte ponovo kasnije." + "Probajte ponovo." "Prst %d" @@ -680,8 +680,8 @@ "Hitne službe" "Nazad na poziv" "Tačno!" - "Pokušajte ponovo" - "Pokušajte ponovo" + "Probajte ponovo" + "Probajte ponovo" "Otključaj za sve funkcije i podatke" "Premašen je najveći dozvoljeni broj pokušaja Otključavanja licem" "Nema SIM kartice" @@ -705,19 +705,19 @@ "Pogledajte Korisnički vodič ili kontaktirajte Korisničku podršku." "SIM kartica je zaključana." "Otključavanje SIM kartice…" - "%1$d puta ste nepravilno nacrtali šablon za otključavanje. \n\nPokušajte ponovo za %2$d sekunde(i)." - "%1$d puta ste pogrešno uneli lozinku. \n\nPokušajte ponovo za %2$d sekunde(i)." - "%1$d puta ste pogrešno uneli PIN. \n\nPokušajte ponovo za %2$d sekunde(i)." - "%1$d puta ste netačno uneli šablon za otključavanje. Nakon još %2$d nesupešna(ih) pokušaja, od vas će biti zatraženo da otključate tablet pomoću podataka za prijavljivanje na Google.\n\n Pokušajte ponovo za %3$d sekunde(i)." - "Neispravno ste nacrtali šablon za otključavanje %1$d puta. Posle još %2$d neuspešna(ih) pokušaja od vas će biti zatraženo da otključate TV pomoću podataka za prijavljivanje na Google.\n\n Pokušajte ponovo za %3$d sek." - "%1$d puta ste netačno uneli šablon za otključavanje. Nakon još %2$d nesupešna(ih) pokušaja, od vas će biti zatraženo da otključate telefon pomoću podataka za prijavljivanje na Google.\n\n Pokušajte ponovo za %3$d sekunde(i)." + "%1$d puta ste nepravilno nacrtali šablon za otključavanje. \n\nProbajte ponovo za %2$d sekunde(i)." + "%1$d puta ste pogrešno uneli lozinku. \n\nProbajte ponovo za %2$d sekunde(i)." + "%1$d puta ste pogrešno uneli PIN. \n\nProbajte ponovo za %2$d sekunde(i)." + "%1$d puta ste netačno uneli šablon za otključavanje. Nakon još %2$d nesupešna(ih) pokušaja, od vas će biti zatraženo da otključate tablet pomoću podataka za prijavljivanje na Google.\n\n Probajte ponovo za %3$d sekunde(i)." + "Neispravno ste nacrtali šablon za otključavanje %1$d puta. Posle još %2$d neuspešna(ih) pokušaja od vas će biti zatraženo da otključate TV pomoću podataka za prijavljivanje na Google.\n\n Probajte ponovo za %3$d sek." + "%1$d puta ste netačno uneli šablon za otključavanje. Nakon još %2$d nesupešna(ih) pokušaja, od vas će biti zatraženo da otključate telefon pomoću podataka za prijavljivanje na Google.\n\n Probajte ponovo za %3$d sekunde(i)." "Nepravilno ste pokušali da otključate tablet %1$d puta. Nakon još neuspešnih pokušaja (%2$d) tablet će biti resetovan na fabrička podešavanja i svi korisnički podaci će biti izgubljeni." "Pokušali ste da otključate TV netačno %1$d puta. Posle još %2$d neuspešna(ih) pokušaja TV će biti resetovan na podrazumevana fabrička podešavanja i svi korisnički podaci će biti izgubljeni." "Neispravno ste pokušali da otključate telefon %1$d puta. Nakon još neuspešnih pokušaja (%2$d) telefon će biti resetovan na fabrička podešavanja i svi korisnički podaci će biti izgubljeni." "Neispravno ste pokušali da otključate tablet %d puta. Tablet će sada biti vraćen na podrazumevana fabrička podešavanja." "Pokušali ste da otključate TV netačno %d puta. TV će sada biti resetovan na podrazumevana fabrička podešavanja." "Neispravno ste pokušali da otključate telefon %d puta. Telefon će sada biti vraćen na podrazumevana fabrička podešavanja." - "Pokušajte ponovo za %d sekunde(i)." + "Probajte ponovo za %d sekunde(i)." "Zaboravili ste šablon?" "Otključavanje naloga" "Previše pokušaja unosa šablona" @@ -1421,7 +1421,7 @@ "Pogrešan šablon" "Pogrešna lozinka" "Pogrešan PIN" - "Pokušajte ponovo za %1$d sekunde(i)." + "Probajte ponovo za %1$d sekunde(i)." "Nacrtajte šablon" "Unesite PIN SIM kartice" "Unesite PIN" @@ -1443,18 +1443,18 @@ "Nevažeće korisničko ime ili lozinka." "Zaboravili ste korisničko ime ili lozinku?\nPosetite adresu ""google.com/accounts/recovery""." "Provera naloga…" - "Uneli ste netačni PIN %1$d puta. \n\nPokušajte ponovo za %2$d sekunde(i)." - "Uneli ste netačnu lozinku %1$d puta. \n\nPokušajte ponovo za %2$d sekunde(i)." - "Nacrtali ste šablon za otključavanje netačno %1$d puta. \n\nPokušajte ponovo za %2$d sekunde(i)." + "Uneli ste netačni PIN %1$d puta. \n\nProbajte ponovo za %2$d sekunde(i)." + "Uneli ste netačnu lozinku %1$d puta. \n\nProbajte ponovo za %2$d sekunde(i)." + "Nacrtali ste šablon za otključavanje netačno %1$d puta. \n\nProbajte ponovo za %2$d sekunde(i)." "Pokušali ste da otključate tablet netačno %1$d puta. Nakon još %2$d neuspešna(ih) pokušaja tablet će biti resetovan na fabrička podešavanja i svi korisnički podaci će biti izgubljeni." "Pokušali ste da otključate TV netačno %1$d puta. Posle još %2$d neuspešna(ih) pokušaja TV će biti resetovan na podrazumevana fabrička podešavanja i svi korisnički podaci će biti izgubljeni." "Pokušali ste da otključate telefon netačno %1$d puta. Posle još %2$d neuspešna(ih) pokušaja telefon će biti resetovan na fabrička podešavanja i svi korisnički podaci će biti izgubljeni." "Pokušali ste da otključate tablet netačno %d puta. Tablet će sada biti vraćen na podrazumevana fabrička podešavanja." "Pokušali ste da otključate TV netačno %d puta. TV će sada biti resetovan na podrazumevana fabrička podešavanja." "Pokušali ste da otključate telefon netačno %d puta. Telefon će sada biti vraćen na podrazumevana fabrička podešavanja." - "Nacrtali ste šablon za otključavanje netačno %1$d puta. Posle još %2$d neuspešna(ih) pokušaja, od vas će biti zatraženo da otključate tablet pomoću naloga e-pošte.\n\nPokušajte ponovo za %3$d sekunde(i)." - "Neispravno ste nacrtali šablon za otključavanje %1$d puta. Posle još %2$d neuspešna(ih) pokušaja, od vas će biti zatraženo da otključate TV pomoću naloga e-pošte.\n\n Pokušajte ponovo za %3$d sek." - "Nacrtali ste šablon za otključavanje netačno %1$d puta. Posle još %2$d neuspešna(ih) pokušaja, od vas će biti zatraženo da otključate telefon pomoću naloga e-pošte.\n\nPokušajte ponovo za %3$d sekunde(i)." + "Nacrtali ste šablon za otključavanje netačno %1$d puta. Posle još %2$d neuspešna(ih) pokušaja, od vas će biti zatraženo da otključate tablet pomoću naloga e-pošte.\n\nProbajte ponovo za %3$d sekunde(i)." + "Neispravno ste nacrtali šablon za otključavanje %1$d puta. Posle još %2$d neuspešna(ih) pokušaja, od vas će biti zatraženo da otključate TV pomoću naloga e-pošte.\n\n Probajte ponovo za %3$d sek." + "Nacrtali ste šablon za otključavanje netačno %1$d puta. Posle još %2$d neuspešna(ih) pokušaja, od vas će biti zatraženo da otključate telefon pomoću naloga e-pošte.\n\nProbajte ponovo za %3$d sekunde(i)." " – " "Ukloni" "Želite da pojačate zvuk iznad preporučenog nivoa?\n\nSlušanje glasne muzike duže vreme može da vam ošteti sluh." @@ -1565,14 +1565,14 @@ "Novi PIN" "Potvrdite novi PIN" "Napravite PIN za izmenu ograničenja" - "PIN-ovi se ne podudaraju. Pokušajte ponovo." + "PIN-ovi se ne podudaraju. Probajte ponovo." "PIN je prekratak. Mora da sadrži najmanje 4 cifre." - Pokušajte ponovo za %d sekundu - Pokušajte ponovo za %d sekunde - Pokušajte ponovo za %d sekundi + Probajte ponovo za %d sekundu + Probajte ponovo za %d sekunde + Probajte ponovo za %d sekundi - "Pokušajte ponovo kasnije" + "Probajte ponovo kasnije" "Prikazuje se ceo ekran" "Da biste izašli, prevucite nadole odozgo." "Važi" diff --git a/core/res/res/values-et-rEE/strings.xml b/core/res/res/values-et-rEE/strings.xml index c7298d2f0c63..9263b59b65b9 100644 --- a/core/res/res/values-et-rEE/strings.xml +++ b/core/res/res/values-et-rEE/strings.xml @@ -252,7 +252,7 @@ "SMS" "saata ja vaadata SMS-sõnumeid" "Mäluruum" - "juurde pääseda seadmesse salvestatud fotodele, meediale ja failidele" + "juurde pääseda seadmesse salvestatud fotodele, meediasisule ja failidele" "Mikrofon" "heli salvestamine" "Kaamera" diff --git a/core/res/res/values-eu-rES/strings.xml b/core/res/res/values-eu-rES/strings.xml index 90443c993c1e..97628fc76836 100644 --- a/core/res/res/values-eu-rES/strings.xml +++ b/core/res/res/values-eu-rES/strings.xml @@ -743,7 +743,7 @@ "Erabiltzaile-hautatzailea" "Egoera" "Kamera" - "Multimedia-kontrolak" + "Multimedia kontrolatzeko aukerak" "Widgetak berrantolatzen hasi da." "Widgetak berrantolatu dira." "%1$s widgeta ezabatu da." diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml index 712aedc006d9..0d40354fad8c 100644 --- a/core/res/res/values-fr/strings.xml +++ b/core/res/res/values-fr/strings.xml @@ -994,7 +994,7 @@ "Aucune application ne peut effectuer cette action." "%1$s a cessé de fonctionner." "Le processus %1$s a cessé de fonctionner." - "%1$s ne cesse de s\'arrêter." + "%1$s s\'arrête systématiquement" "Le processus \"%1$s\" ne cesse de s\'arrêter." "Rouvrir l\'application" "Envoyer des commentaires" diff --git a/core/res/res/values-hy-rAM/strings.xml b/core/res/res/values-hy-rAM/strings.xml index fd76ab076116..929671bb0d1a 100644 --- a/core/res/res/values-hy-rAM/strings.xml +++ b/core/res/res/values-hy-rAM/strings.xml @@ -1058,8 +1058,8 @@ "Զանգի ձայնի բարձրություն" "Մեդիա ձայնի բարձրություն" "Ծանուցումների ձայնի ուժգնությունը" - "Լռելյայն զանգերանգ" - "Լռելյայն զանգերանգ (%1$s)" + "Կանխադրված զանգերանգ" + "Կանխադրված զանգերանգ (%1$s)" "Ոչ մեկը" "Զանգերանգներ" "Անհայտ զանգերանգ" diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml index 8c60dcd5518b..1f53e8dc1bfd 100644 --- a/core/res/res/values-nl/strings.xml +++ b/core/res/res/values-nl/strings.xml @@ -237,7 +237,7 @@ "Spraakassistent" "Nu vergrendelen" "999 +" - "Inhoud verborgen" + "Content verborgen" "Content verborgen op basis van beleid" "Veilige modus" "Android-systeem" @@ -261,12 +261,12 @@ "bellen en telefoontjes beheren" "Lichaamssensoren" "toegang krijgen tot sensorgegevens over je vitale functies" - "Inhoud van vensters ophalen" - "De inhoud inspecteren van een venster waarmee je interactie hebt." + "Content van vensters ophalen" + "De content inspecteren van een venster waarmee je interactie hebt." "\'Verkennen via aanraking\' inschakelen" "Aangetikte items worden hardop benoemd en het scherm kan worden verkend door middel van gebaren." "Verbeterde internettoegankelijkheid inschakelen" - "Er kunnen scripts worden geïnstalleerd om app-inhoud toegankelijker te maken." + "Er kunnen scripts worden geïnstalleerd om app-content toegankelijker te maken." "Tekst observeren die u typt" "Omvat persoonlijke gegevens zoals creditcardnummers en wachtwoorden." "Schermvergroting bedienen" @@ -296,9 +296,9 @@ "sms\'jes verzenden en bekijken" "Hiermee kan de app sms-berichten verzenden. Dit kan tot onverwachte kosten leiden. Schadelijke apps kunnen u geld kosten doordat ze zonder je bevestiging berichten kunnen verzenden." "je tekstberichten (SMS of MMS) lezen" - "Hiermee kan de app sms-berichten lezen die zijn opgeslagen op je tablet of simkaart. De app kan alle sms-berichten lezen, ongeacht inhoud of vertrouwelijkheid." - "Hiermee kan de app sms-berichten lezen die zijn opgeslagen op je tv of simkaart. De app kan alle sms-berichten lezen, ongeacht inhoud of vertrouwelijkheid." - "Hiermee kan de app sms-berichten lezen die zijn opgeslagen op je telefoon of simkaart. De app kan alle sms-berichten lezen, ongeacht inhoud of vertrouwelijkheid." + "Hiermee kan de app sms-berichten lezen die zijn opgeslagen op je tablet of simkaart. De app kan alle sms-berichten lezen, ongeacht content of vertrouwelijkheid." + "Hiermee kan de app sms-berichten lezen die zijn opgeslagen op je tv of simkaart. De app kan alle sms-berichten lezen, ongeacht content of vertrouwelijkheid." + "Hiermee kan de app sms-berichten lezen die zijn opgeslagen op je telefoon of simkaart. De app kan alle sms-berichten lezen, ongeacht content of vertrouwelijkheid." "tekstberichten (WAP) ontvangen" "Hiermee kan de app WAP-berichten ontvangen en verwerken. Dit betekent dat de app berichten die naar je apparaat zijn verzonden, kan bijhouden of verwijderen zonder deze aan u weer te geven." "actieve apps ophalen" @@ -460,12 +460,12 @@ "Hiermee kan een app de synchronisatie-instellingen aanpassen voor een account. Deze toestemming kan bijvoorbeeld worden gebruikt om synchronisatie van de app Personen in te schakelen voor een account." "synchronisatiestatistieken lezen" "Hiermee kan een app de synchronisatiestatistieken voor een account lezen, inclusief de geschiedenis van synchronisatie-activiteiten en hoeveel gegevens zijn gesynchroniseerd." - "de inhoud van je USB-opslag lezen" - "de inhoud van je SD-kaart lezen" - "De app toestaan de inhoud van je USB-opslag te lezen." - "De app toestaan de inhoud van je SD-kaart te lezen." - "de inhoud van je USB-opslag aanpassen of verwijderen" - "de inhoud van je SD-kaart aanpassen of verwijderen" + "de content van je USB-opslag lezen" + "de content van je SD-kaart lezen" + "De app toestaan de content van je USB-opslag te lezen." + "De app toestaan de content van je SD-kaart te lezen." + "de content van je USB-opslag aanpassen of verwijderen" + "de content van je SD-kaart aanpassen of verwijderen" "Hiermee kan de app schrijven naar de USB-opslag." "Hiermee kan de app schrijven naar de SD-kaart." "SIP-oproepen plaatsen/ontvangen" @@ -1527,7 +1527,7 @@ "Onbekend portret" "Onbekend landschap" "Geannuleerd" - "Fout bij schrijven van inhoud" + "Fout bij schrijven van content" "onbekend" "Afdrukservice niet ingeschakeld" "%s-service geïnstalleerd" diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml index ff828b3441a1..395b049c1d2d 100644 --- a/core/res/res/values-sr/strings.xml +++ b/core/res/res/values-sr/strings.xml @@ -152,7 +152,7 @@ "Није могуће потврдити аутентичност." "Потврда идентитета преко прокси сервера није успела." "Није могуће повезати се са сервером." - "Није могуће комуницирати са сервером. Покушајте поново касније." + "Није могуће комуницирати са сервером. Пробајте поново касније." "Веза са сервером је истекла." "Страница садржи превише веза за преусмеравање са сервера." "Протокол није подржан." @@ -160,7 +160,7 @@ "Страницу није могуће отворити зато што је URL адреса неважећа." "Није могуће приступити датотеци." "Није могуће пронаћи тражену датотеку." - "Превише захтева се обрађује. Покушајте поново касније." + "Превише захтева се обрађује. Пробајте поново касније." "Грешка при пријављивању за %1$s" "Синхронизација" "Синхронизација" @@ -440,19 +440,19 @@ "Дозвољава апликацији да активира методе за додавање и брисање шаблона отисака прстију који ће се користити." "користи хардвер за отиске прстију" "Дозвољава апликацији да користи хардвер за отиске прстију ради потврде аутентичности" - "Откривен је делимични отисак прста. Покушајте поново." - "Није успела обрада отиска прста. Покушајте поново." + "Откривен је делимични отисак прста. Пробајте поново." + "Није успела обрада отиска прста. Пробајте поново." "Сензор за отиске прстију је прљав. Очистите га и покушајте поново." - "Пребрзо сте померили прст. Покушајте поново." - "Превише споро сте померили прст. Покушајте поново." + "Пребрзо сте померили прст. Пробајте поново." + "Превише споро сте померили прст. Пробајте поново." "Хардвер за отиске прстију није доступан." "Није могуће сачувати отисак прста. Уклоните неки од постојећих отисака прстију." - "Временско ограничење за отисак прста је истекло. Покушајте поново." + "Временско ограничење за отисак прста је истекло. Пробајте поново." "Радња са отиском прста је отказана." - "Превише покушаја. Покушајте поново касније." - "Покушајте поново." + "Превише покушаја. Пробајте поново касније." + "Пробајте поново." "Прст %d" @@ -680,8 +680,8 @@ "Хитне службе" "Назад на позив" "Тачно!" - "Покушајте поново" - "Покушајте поново" + "Пробајте поново" + "Пробајте поново" "Откључај за све функције и податке" "Премашен је највећи дозвољени број покушаја Откључавања лицем" "Нема SIM картице" @@ -705,19 +705,19 @@ "Погледајте Кориснички водич или контактирајте Корисничку подршку." "SIM картица је закључана." "Откључавање SIM картице…" - "%1$d пута сте неправилно нацртали шаблон за откључавање. \n\nПокушајте поново за %2$d секунде(и)." - "%1$d пута сте погрешно унели лозинку. \n\nПокушајте поново за %2$d секунде(и)." - "%1$d пута сте погрешно унели PIN. \n\nПокушајте поново за %2$d секунде(и)." - "%1$d пута сте нетачно унели шаблон за откључавање. Након још %2$d несупешна(их) покушаја, од вас ће бити затражено да откључате таблет помоћу података за пријављивање на Google.\n\n Покушајте поново за %3$d секунде(и)." - "Неисправно сте нацртали шаблон за откључавање %1$d пута. После још %2$d неуспешна(их) покушаја од вас ће бити затражено да откључате ТВ помоћу података за пријављивање на Google.\n\n Покушајте поново за %3$d сек." - "%1$d пута сте нетачно унели шаблон за откључавање. Након још %2$d несупешна(их) покушаја, од вас ће бити затражено да откључате телефон помоћу података за пријављивање на Google.\n\n Покушајте поново за %3$d секунде(и)." + "%1$d пута сте неправилно нацртали шаблон за откључавање. \n\nПробајте поново за %2$d секунде(и)." + "%1$d пута сте погрешно унели лозинку. \n\nПробајте поново за %2$d секунде(и)." + "%1$d пута сте погрешно унели PIN. \n\nПробајте поново за %2$d секунде(и)." + "%1$d пута сте нетачно унели шаблон за откључавање. Након још %2$d несупешна(их) покушаја, од вас ће бити затражено да откључате таблет помоћу података за пријављивање на Google.\n\n Пробајте поново за %3$d секунде(и)." + "Неисправно сте нацртали шаблон за откључавање %1$d пута. После још %2$d неуспешна(их) покушаја од вас ће бити затражено да откључате ТВ помоћу података за пријављивање на Google.\n\n Пробајте поново за %3$d сек." + "%1$d пута сте нетачно унели шаблон за откључавање. Након још %2$d несупешна(их) покушаја, од вас ће бити затражено да откључате телефон помоћу података за пријављивање на Google.\n\n Пробајте поново за %3$d секунде(и)." "Неправилно сте покушали да откључате таблет %1$d пута. Након још неуспешних покушаја (%2$d) таблет ће бити ресетован на фабричка подешавања и сви кориснички подаци ће бити изгубљени." "Покушали сте да откључате ТВ нетачно %1$d пута. После још %2$d неуспешна(их) покушаја ТВ ће бити ресетован на подразумевана фабричка подешавања и сви кориснички подаци ће бити изгубљени." "Неисправно сте покушали да откључате телефон %1$d пута. Након још неуспешних покушаја (%2$d) телефон ће бити ресетован на фабричка подешавања и сви кориснички подаци ће бити изгубљени." "Неисправно сте покушали да откључате таблет %d пута. Таблет ће сада бити враћен на подразумевана фабричка подешавања." "Покушали сте да откључате ТВ нетачно %d пута. ТВ ће сада бити ресетован на подразумевана фабричка подешавања." "Неисправно сте покушали да откључате телефон %d пута. Телефон ће сада бити враћен на подразумевана фабричка подешавања." - "Покушајте поново за %d секунде(и)." + "Пробајте поново за %d секунде(и)." "Заборавили сте шаблон?" "Откључавање налога" "Превише покушаја уноса шаблона" @@ -1421,7 +1421,7 @@ "Погрешан шаблон" "Погрешна лозинка" "Погрешан PIN" - "Покушајте поново за %1$d секунде(и)." + "Пробајте поново за %1$d секунде(и)." "Нацртајте шаблон" "Унесите PIN SIM картице" "Унесите PIN" @@ -1443,18 +1443,18 @@ "Неважеће корисничко име или лозинка." "Заборавили сте корисничко име или лозинку?\nПосетите адресу ""google.com/accounts/recovery""." "Провера налога…" - "Унели сте нетачни PIN %1$d пута. \n\nПокушајте поново за %2$d секунде(и)." - "Унели сте нетачну лозинку %1$d пута. \n\nПокушајте поново за %2$d секунде(и)." - "Нацртали сте шаблон за откључавање нетачно %1$d пута. \n\nПокушајте поново за %2$d секунде(и)." + "Унели сте нетачни PIN %1$d пута. \n\nПробајте поново за %2$d секунде(и)." + "Унели сте нетачну лозинку %1$d пута. \n\nПробајте поново за %2$d секунде(и)." + "Нацртали сте шаблон за откључавање нетачно %1$d пута. \n\nПробајте поново за %2$d секунде(и)." "Покушали сте да откључате таблет нетачно %1$d пута. Након још %2$d неуспешна(их) покушаја таблет ће бити ресетован на фабричка подешавања и сви кориснички подаци ће бити изгубљени." "Покушали сте да откључате ТВ нетачно %1$d пута. После још %2$d неуспешна(их) покушаја ТВ ће бити ресетован на подразумевана фабричка подешавања и сви кориснички подаци ће бити изгубљени." "Покушали сте да откључате телефон нетачно %1$d пута. После још %2$d неуспешна(их) покушаја телефон ће бити ресетован на фабричка подешавања и сви кориснички подаци ће бити изгубљени." "Покушали сте да откључате таблет нетачно %d пута. Таблет ће сада бити враћен на подразумевана фабричка подешавања." "Покушали сте да откључате ТВ нетачно %d пута. ТВ ће сада бити ресетован на подразумевана фабричка подешавања." "Покушали сте да откључате телефон нетачно %d пута. Телефон ће сада бити враћен на подразумевана фабричка подешавања." - "Нацртали сте шаблон за откључавање нетачно %1$d пута. После још %2$d неуспешна(их) покушаја, од вас ће бити затражено да откључате таблет помоћу налога е-поште.\n\nПокушајте поново за %3$d секунде(и)." - "Неисправно сте нацртали шаблон за откључавање %1$d пута. После још %2$d неуспешна(их) покушаја, од вас ће бити затражено да откључате ТВ помоћу налога е-поште.\n\n Покушајте поново за %3$d сек." - "Нацртали сте шаблон за откључавање нетачно %1$d пута. После још %2$d неуспешна(их) покушаја, од вас ће бити затражено да откључате телефон помоћу налога е-поште.\n\nПокушајте поново за %3$d секунде(и)." + "Нацртали сте шаблон за откључавање нетачно %1$d пута. После још %2$d неуспешна(их) покушаја, од вас ће бити затражено да откључате таблет помоћу налога е-поште.\n\nПробајте поново за %3$d секунде(и)." + "Неисправно сте нацртали шаблон за откључавање %1$d пута. После још %2$d неуспешна(их) покушаја, од вас ће бити затражено да откључате ТВ помоћу налога е-поште.\n\n Пробајте поново за %3$d сек." + "Нацртали сте шаблон за откључавање нетачно %1$d пута. После још %2$d неуспешна(их) покушаја, од вас ће бити затражено да откључате телефон помоћу налога е-поште.\n\nПробајте поново за %3$d секунде(и)." " – " "Уклони" "Желите да појачате звук изнад препорученог нивоа?\n\nСлушање гласне музике дуже време може да вам оштети слух." @@ -1565,14 +1565,14 @@ "Нови PIN" "Потврдите нови PIN" "Направите PIN за измену ограничења" - "PIN-ови се не подударају. Покушајте поново." + "PIN-ови се не подударају. Пробајте поново." "PIN је прекратак. Мора да садржи најмање 4 цифре." - Покушајте поново за %d секунду - Покушајте поново за %d секунде - Покушајте поново за %d секунди + Пробајте поново за %d секунду + Пробајте поново за %d секунде + Пробајте поново за %d секунди - "Покушајте поново касније" + "Пробајте поново касније" "Приказује се цео екран" "Да бисте изашли, превуците надоле одозго." "Важи" -- GitLab From c8864998c8bc3500ddfdcd806f902af2ecb133a8 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Mon, 10 Oct 2016 21:46:14 -0700 Subject: [PATCH 706/809] Import translations. DO NOT MERGE Change-Id: Iece12c05142abba693f3be0c218d45ceeadceabe Auto-generated-cl: translation import --- packages/SystemUI/res/values-hy-rAM/strings.xml | 2 +- packages/SystemUI/res/values-ro/strings.xml | 2 +- packages/SystemUI/res/values-sv/strings.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/SystemUI/res/values-hy-rAM/strings.xml b/packages/SystemUI/res/values-hy-rAM/strings.xml index 3d392ee59af9..1e633369646c 100644 --- a/packages/SystemUI/res/values-hy-rAM/strings.xml +++ b/packages/SystemUI/res/values-hy-rAM/strings.xml @@ -644,7 +644,7 @@ "Բացել կարգավորումները:" "Բացել արագ կարգավորումները:" "Փակել արագ կարգավորումները:" - "Զարթուցիչը կարգավորված է:" + "Զարթուցիչը դրված է:" "Մուտք է գործել որպես %s" "Ինտերնետ կապ չկա:" "Բացել մանրամասները:" diff --git a/packages/SystemUI/res/values-ro/strings.xml b/packages/SystemUI/res/values-ro/strings.xml index 1fda1f9dd819..20b8a6e574b8 100644 --- a/packages/SystemUI/res/values-ro/strings.xml +++ b/packages/SystemUI/res/values-ro/strings.xml @@ -329,7 +329,7 @@ "Niciun element recent" "Ați șters tot" "Informații despre aplicație" - "fixare pe ecran" + "fixarea ecranului" "căutare" "%s nu a putut porni." "Aplicația %s este dezactivată în modul sigur." diff --git a/packages/SystemUI/res/values-sv/strings.xml b/packages/SystemUI/res/values-sv/strings.xml index 87b50a4a569d..c758f8bffdbd 100644 --- a/packages/SystemUI/res/values-sv/strings.xml +++ b/packages/SystemUI/res/values-sv/strings.xml @@ -331,7 +331,7 @@ "%s är inaktiverad i säkert läge." "Rensa alla" "Appen har inte stöd för delad skärm." - "Dra här om du vill dela upp skärmen" + "Dra hit för att dela upp skärmen" "Dela horisontellt" "Dela vertikalt" "Dela anpassad" -- GitLab From 02920a08e129eb58b6c2e35ccda6183ab6503a98 Mon Sep 17 00:00:00 2001 From: Donghyun Cho Date: Tue, 11 Oct 2016 17:17:34 +0900 Subject: [PATCH 707/809] CEC: Check standby action availability before request for sleep mode When the playback device is asked to go to Standby state with message, it needs to check whether it can accept the request or not. This check should be done before asking the system for sleep mode. Additionally, this change will fix the behavior after screen timeout. After the timeout, playback device may go into sleep mode, but canGoToStandby() check will prevent the device from tracking the right current power status value. So need to set the status properly, and keep HdmiCecLocalDevices enabled for accepting future CEC commands. Bug: 30182748 Test: Check fugu screen after turning off/on Samsung TV and Archer. Also tested the case of screen timeout. Change-Id: Idbcd7abd5d4e22942845760f77f7f7e622b987c0 --- .../java/com/android/server/hdmi/HdmiControlService.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/hdmi/HdmiControlService.java b/services/core/java/com/android/server/hdmi/HdmiControlService.java index 5dc9d02a71c5..72ee218fba2c 100644 --- a/services/core/java/com/android/server/hdmi/HdmiControlService.java +++ b/services/core/java/com/android/server/hdmi/HdmiControlService.java @@ -2011,6 +2011,9 @@ public final class HdmiControlService extends SystemService { @ServiceThreadOnly void standby() { assertRunOnServiceThread(); + if (!canGoToStandby()) { + return; + } mStandbyMessageReceived = true; mPowerManager.goToSleep(SystemClock.uptimeMillis(), PowerManager.GO_TO_SLEEP_REASON_HDMI, 0); // PowerManger will send the broadcast Intent.ACTION_SCREEN_OFF and after this gets @@ -2038,10 +2041,13 @@ public final class HdmiControlService extends SystemService { @ServiceThreadOnly private void onStandby(final int standbyAction) { assertRunOnServiceThread(); - if (!canGoToStandby()) return; mPowerStatus = HdmiControlManager.POWER_STATUS_TRANSIENT_TO_STANDBY; invokeVendorCommandListenersOnControlStateChanged(false, HdmiControlManager.CONTROL_STATE_CHANGED_REASON_STANDBY); + if (!canGoToStandby()) { + mPowerStatus = HdmiControlManager.POWER_STATUS_STANDBY; + return; + } final List devices = getAllLocalDevices(); disableDevices(new PendingActionClearedCallback() { -- GitLab From 4f26cb5a36487b3f5b497804faebe16241c15d54 Mon Sep 17 00:00:00 2001 From: Shunta Sato Date: Tue, 28 Jun 2016 09:29:19 +0900 Subject: [PATCH 708/809] Fix: "adb install -s" adaptation for session based install Internal implementation of "adb install" has been changed to session install. As a result '-s' option doesn't work. Size info is required when using '-s' option in session install. PackageHelper.fitsOnExternal() returns false and moving app to SD is failed when size info is not set. So set size info when '-s' option is used. And change identity on some method because shell doesn't have some permission to access to asec. Bug: 29932779 Author: Ryuki Nakamura Change-Id: I65edcc0f01ceecaaba17792ad329791a9253d603 --- cmds/pm/src/com/android/commands/pm/Pm.java | 22 ++++++++++++++++++- .../server/pm/PackageInstallerSession.java | 15 +++++++++++-- .../server/pm/PackageManagerShellCommand.java | 22 ++++++++++++++++++- 3 files changed, 55 insertions(+), 4 deletions(-) diff --git a/cmds/pm/src/com/android/commands/pm/Pm.java b/cmds/pm/src/com/android/commands/pm/Pm.java index 32a8088e9c4e..5f83d191a731 100644 --- a/cmds/pm/src/com/android/commands/pm/Pm.java +++ b/cmds/pm/src/com/android/commands/pm/Pm.java @@ -41,6 +41,10 @@ import android.content.pm.PackageInstaller; import android.content.pm.PackageInstaller.SessionInfo; import android.content.pm.PackageInstaller.SessionParams; import android.content.pm.PackageManager; +import android.content.pm.PackageParser; +import android.content.pm.PackageParser.ApkLite; +import android.content.pm.PackageParser.PackageLite; +import android.content.pm.PackageParser.PackageParserException; import android.content.pm.UserInfo; import android.net.Uri; import android.os.Binder; @@ -362,11 +366,27 @@ public final class Pm { */ private int runInstall() throws RemoteException { final InstallParams params = makeInstallParams(); + final String inPath = nextArg(); + if (params.sessionParams.sizeBytes < 0 && inPath != null) { + File file = new File(inPath); + if (file.isFile()) { + try { + ApkLite baseApk = PackageParser.parseApkLite(file, 0); + PackageLite pkgLite = new PackageLite(null, baseApk, null, null, null); + params.sessionParams.setSize( + PackageHelper.calculateInstalledSize(pkgLite, false, + params.sessionParams.abiOverride)); + } catch (PackageParserException | IOException e) { + System.err.println("Error: Failed to parse APK file : " + e); + return 1; + } + } + } + final int sessionId = doCreateSession(params.sessionParams, params.installerPackageName, params.userId); try { - final String inPath = nextArg(); if (inPath == null && params.sessionParams.sizeBytes == 0) { System.err.println("Error: must either specify a package size or an APK file"); return 1; diff --git a/services/core/java/com/android/server/pm/PackageInstallerSession.java b/services/core/java/com/android/server/pm/PackageInstallerSession.java index 0b8a34799166..2ece99fde9ea 100644 --- a/services/core/java/com/android/server/pm/PackageInstallerSession.java +++ b/services/core/java/com/android/server/pm/PackageInstallerSession.java @@ -439,7 +439,13 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { if (!FileUtils.isValidExtFilename(name)) { throw new IllegalArgumentException("Invalid name: " + name); } - final File target = new File(resolveStageDir(), name); + final File target; + final long identity = Binder.clearCallingIdentity(); + try { + target = new File(resolveStageDir(), name); + } finally { + Binder.restoreCallingIdentity(identity); + } // TODO: this should delegate to DCS so the system process avoids // holding open FDs into containers. @@ -1084,7 +1090,12 @@ public class PackageInstallerSession extends IPackageInstallerSession.Stub { if (stageDir != null) { prepareStageDir(stageDir); } else if (stageCid != null) { - prepareExternalStageCid(stageCid, params.sizeBytes); + final long identity = Binder.clearCallingIdentity(); + try { + prepareExternalStageCid(stageCid, params.sizeBytes); + } finally { + Binder.restoreCallingIdentity(identity); + } // TODO: deliver more granular progress for ASEC allocation mInternalProgress = 0.25f; diff --git a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java index b6cecc94aecb..e18d4e011d97 100644 --- a/services/core/java/com/android/server/pm/PackageManagerShellCommand.java +++ b/services/core/java/com/android/server/pm/PackageManagerShellCommand.java @@ -30,6 +30,10 @@ import android.content.pm.PackageInfo; import android.content.pm.PackageInstaller; import android.content.pm.PackageItemInfo; import android.content.pm.PackageManager; +import android.content.pm.PackageParser; +import android.content.pm.PackageParser.ApkLite; +import android.content.pm.PackageParser.PackageLite; +import android.content.pm.PackageParser.PackageParserException; import android.content.pm.ParceledListSlice; import android.content.pm.PermissionGroupInfo; import android.content.pm.PermissionInfo; @@ -48,6 +52,7 @@ import android.os.SystemProperties; import android.os.UserHandle; import android.text.TextUtils; import android.util.PrintWriterPrinter; +import com.android.internal.content.PackageHelper; import com.android.internal.util.SizedInputStream; import dalvik.system.DexFile; @@ -137,11 +142,26 @@ class PackageManagerShellCommand extends ShellCommand { private int runInstall() throws RemoteException { final PrintWriter pw = getOutPrintWriter(); final InstallParams params = makeInstallParams(); + final String inPath = getNextArg(); + if (params.sessionParams.sizeBytes < 0 && inPath != null) { + File file = new File(inPath); + if (file.isFile()) { + try { + ApkLite baseApk = PackageParser.parseApkLite(file, 0); + PackageLite pkgLite = new PackageLite(null, baseApk, null, null, null); + params.sessionParams.setSize( + PackageHelper.calculateInstalledSize(pkgLite,false, params.sessionParams.abiOverride)); + } catch (PackageParserException | IOException e) { + pw.println("Error: Failed to parse APK file : " + e); + return 1; + } + } + } + final int sessionId = doCreateSession(params.sessionParams, params.installerPackageName, params.userId); boolean abandonSession = true; try { - final String inPath = getNextArg(); if (inPath == null && params.sessionParams.sizeBytes == 0) { pw.println("Error: must either specify a package size or an APK file"); return 1; -- GitLab From cf71b1fdc01e56dae09b5650b6fff532968cf02f Mon Sep 17 00:00:00 2001 From: George French Date: Tue, 20 Sep 2016 17:09:29 -0700 Subject: [PATCH 709/809] docs: Add Android developer written case studies - updated stories/index.jd, games.jd, apps.jd to use collections bug: 30809628 Change-Id: Iffd7e5913979c6002234d07d495c8c10dca7f9f2 --- docs/html/distribute/stories/apps.jd | 3 +- .../stories/apps/condenast-shopping.jd | 76 +++++++++++++ .../stories/apps/economist-espresso.jd | 70 ++++++++++++ .../stories/apps/expressen-sports.jd | 57 ++++++++++ .../distribute/stories/apps/lifesum-health.jd | 60 ++++++++++ docs/html/distribute/stories/games.jd | 3 +- .../stories/games/animoca-star-girl.jd | 89 +++++++++++++++ .../stories/games/happy-labs-experiment.jd | 105 ++++++++++++++++++ docs/html/distribute/stories/index.jd | 8 +- .../cards/distribute/stories/animoca.jpg | Bin 0 -> 119544 bytes .../distribute/stories/economist-espresso.png | Bin 0 -> 3844 bytes .../distribute/stories/expressen-sport.png | Bin 0 -> 43570 bytes .../cards/distribute/stories/glamour.png | Bin 0 -> 27596 bytes .../distribute/stories/happylabs-logo.png | Bin 0 -> 26083 bytes .../cards/distribute/stories/lifesum.png | Bin 0 -> 10652 bytes .../distribute/stories/animoca-flow.jpg | Bin 0 -> 194187 bytes .../distribute/stories/animoca-graph.jpg | Bin 0 -> 24775 bytes .../distribute/stories/animoca-logo.png | Bin 0 -> 10092 bytes .../stories/economist-espresso-icon.png | Bin 0 -> 3844 bytes .../distribute/stories/expressen-icon.png | Bin 0 -> 23676 bytes .../distribute/stories/glamour-icon.png | Bin 0 -> 27596 bytes .../stories/happylabs-happy_pet_icon.png | Bin 0 -> 229095 bytes .../distribute/stories/happylabs-logo.png | Bin 0 -> 26083 bytes .../distribute/stories/happylabs-variant.png | Bin 0 -> 671310 bytes .../distribute/stories/lifesum-icon.png | Bin 0 -> 10652 bytes docs/html/jd_extras_en.js | 9 +- 26 files changed, 471 insertions(+), 9 deletions(-) create mode 100644 docs/html/distribute/stories/apps/condenast-shopping.jd create mode 100644 docs/html/distribute/stories/apps/economist-espresso.jd create mode 100644 docs/html/distribute/stories/apps/expressen-sports.jd create mode 100644 docs/html/distribute/stories/apps/lifesum-health.jd create mode 100644 docs/html/distribute/stories/games/animoca-star-girl.jd create mode 100644 docs/html/distribute/stories/games/happy-labs-experiment.jd create mode 100644 docs/html/images/cards/distribute/stories/animoca.jpg create mode 100644 docs/html/images/cards/distribute/stories/economist-espresso.png create mode 100644 docs/html/images/cards/distribute/stories/expressen-sport.png create mode 100644 docs/html/images/cards/distribute/stories/glamour.png create mode 100644 docs/html/images/cards/distribute/stories/happylabs-logo.png create mode 100644 docs/html/images/cards/distribute/stories/lifesum.png create mode 100644 docs/html/images/distribute/stories/animoca-flow.jpg create mode 100644 docs/html/images/distribute/stories/animoca-graph.jpg create mode 100644 docs/html/images/distribute/stories/animoca-logo.png create mode 100644 docs/html/images/distribute/stories/economist-espresso-icon.png create mode 100644 docs/html/images/distribute/stories/expressen-icon.png create mode 100644 docs/html/images/distribute/stories/glamour-icon.png create mode 100644 docs/html/images/distribute/stories/happylabs-happy_pet_icon.png create mode 100644 docs/html/images/distribute/stories/happylabs-logo.png create mode 100644 docs/html/images/distribute/stories/happylabs-variant.png create mode 100644 docs/html/images/distribute/stories/lifesum-icon.png diff --git a/docs/html/distribute/stories/apps.jd b/docs/html/distribute/stories/apps.jd index 76e9f5ac368b..47f4f7fc1a6a 100644 --- a/docs/html/distribute/stories/apps.jd +++ b/docs/html/distribute/stories/apps.jd @@ -25,8 +25,7 @@ page.metaDescription=How app developers are making use of localization, tablet f

        Articles

        diff --git a/docs/html/distribute/stories/apps/condenast-shopping.jd b/docs/html/distribute/stories/apps/condenast-shopping.jd new file mode 100644 index 000000000000..37c2b1f359f6 --- /dev/null +++ b/docs/html/distribute/stories/apps/condenast-shopping.jd @@ -0,0 +1,76 @@ +page.title=Glamour.de Connects Offline and Online Shopping Experiences with Google Play Billing +page.metaDescription=Condé Nast improves features on its Glamour app. +page.tags="developerstory", "apps", "googleplay" +page.image=images/cards/distribute/stories/glamour.png +page.timestamp=null + +@jd:body + + +

        Background

        + +
        + +
        + +

        + Glamour is one of the main + + Condé Nast traditional brands. Every year, Glamour hosts a + successful shopping event called + + GLAMOUR Shopping-Week in Germany, Austria, and Switzerland. + This event has always been print-focused, as readers received a shopping + card with the magazine to redeem discounts in selected shops, both offline + and online, for one week. +

        + +

        + In March 2016, Glamour digitized this experience. +

        + +

        What they did

        + +

        + To make the most of GLAMOUR Shopping-Week, Condé Nast relaunched the + + GLAMOUR app with a more appealing design and an improved user experience: +

          +
        • The main features updated for the shopping week included a shop finder, online offers, and + a digital shopping card.
        • +
        • The current e-paper magazine was made available through the app and sold via Google Play + Billing.
        • +
        • They offered readers the in-app purchase of digital shopping cards and activation codes + through Google Play Billing. Readers can activate digital shopping cards via in-app + purchases or with the print shopping card activation code.
        • +
        • The online and offline shopping experience was also supported by online shopping discount + codes in the app or offline through the shop finder.
        • +
        +

        + +

        Results

        + +

        + The offline and online combination resulted in positive engagement both in terms of app + installs and sales: +

          +
        • There were 130,000 new app downloads, and 100,000 users enabled location access to use + the shop finder.
        • +
        • Sessions increased by 140% compared to previous weeks. Session length + doubled and the number of active users grew by five times.
        • +
        • 12,000 in-app purchases were generated, increasing general e-paper sales by six times, + which resulted in an increase in total magazine circulation.
        • +
        • The digital shopping card was shown more than 200,000 times to redeem offers in shops.
        • +
        +

        + +

        Get started

        + +

        + Find out more about + + in-app purchases. +

        \ No newline at end of file diff --git a/docs/html/distribute/stories/apps/economist-espresso.jd b/docs/html/distribute/stories/apps/economist-espresso.jd new file mode 100644 index 000000000000..441393b4c9c8 --- /dev/null +++ b/docs/html/distribute/stories/apps/economist-espresso.jd @@ -0,0 +1,70 @@ +page.title=The Economist Espresso Increases Ratings by Launching Rating Requests +page.metaDescription=The Economist improves ratings through user participation. +page.tags="developerstory", "apps", "googleplay" +page.image=images/cards/distribute/stories/economist-espresso.png +page.timestamp=null + +@jd:body + + +

        Background

        + +
        + +
        + +

        + + The Economist launched the + + Espresso app in November 2014. Espresso offers a morning briefing from the editors of The + Economist, six days a week. Delivered to readers’ mobile phones first thing in the morning, it + provides an overview of the global agenda for the coming day. It informs readers about what to + look out for in business, finance, and politics, and most importantly, what to make of it. +

        + +

        + While the app received a lot of positive feedback from users on traditional customer support + channels, it received less feedback through direct app reviews. The Economist decided to run + tests to increase app reviews, resulting in improved ratings. + +

        What they did

        + +

        + In April 2016, The Economist began testing to determine if asking for reviews would improve + user participation. They introduced rating requests into the app whereby users received a + notification asking them to rate the app while using it. +

        + +

        + They prompted only users who had fully experienced the app, notifying those who had read more + than 25 articles after using it for more than a week. The prompt text was branded: + Are you enjoying the Economist Espresso? Upon clicking yes, the user was + taken to the Google Play store to review and rate the app. + +

        Results

        + +

        + By capturing readers’ feedback in the Play store, The Economist was able to share the goodwill + and positive sentiment, further increasing its star rating and the number of app + installs. +

        + +

        + After just one week following the launch of rating requests, The Espresso app's star rating + increased by 5%, with the average number of ratings received growing 40 times. +

        + +

        Get started

        + +

        + Find out more about + + ratings and reviews. +

        + +

        + Get best practices for news publishers in + + The News Publisher Playbook (for Android development). +

        \ No newline at end of file diff --git a/docs/html/distribute/stories/apps/expressen-sports.jd b/docs/html/distribute/stories/apps/expressen-sports.jd new file mode 100644 index 000000000000..b53cb627f943 --- /dev/null +++ b/docs/html/distribute/stories/apps/expressen-sports.jd @@ -0,0 +1,57 @@ +page.title=Expressen Sport App Improves Content Engagement with New Onboarding and Navigation +page.metaDescription=Expressen enhances their Sport app. +page.tags="developerstory", "apps", "googleplay" +page.image=images/cards/distribute/stories/expressen-sport.png +page.timestamp=null + +@jd:body + + +

        Background

        + +
        + +
        + +

        + In January 2016, + + Expressen launched a new sports app to reach sports enthusiasts directly + and to better optimize the app for sports content. They decided to analyze + users' behavior by looking at user paths in existing sports content, + combined with user research and testing various prototypes with real users. + They found that readers have different needs and preferences. For example, + some people like a specific sport, league, or player that others have no + interest in. Following these results, they integrated two main changes to + increase appeal to different types of readers. +

        + +

        What they did

        + +

        + Expressen introduced a new onboarding flow that allows users to select the + type of push notifications they want to subscribe to. They also implemented + contextual navigation where the top header navigational links change, + showing the most relevant links to the reader at that moment in time. For + example, if you're reading about football, relevant links about that sport + are displayed. +

        + +

        Results

        + +

        + After the new release of the app, results showed a higher opt-in + rate for push notifications in the Sport app (+16.9%) compared to + their main app, and content consumption increased +7% for page views and + +8.3% for video views. +

        + +

        Get started

        + +

        + Learn more about the + + user onboarding flow and find out how to + + implement contextual navigation. +

        \ No newline at end of file diff --git a/docs/html/distribute/stories/apps/lifesum-health.jd b/docs/html/distribute/stories/apps/lifesum-health.jd new file mode 100644 index 000000000000..2d3f20339535 --- /dev/null +++ b/docs/html/distribute/stories/apps/lifesum-health.jd @@ -0,0 +1,60 @@ +page.title=Lifesum Doubles Retention of Google Fit Users Following Integration on Android +page.metaDescription=Lifesum integrates Google Fit into their app. +page.tags="developerstory", "apps", "googleplay" +page.image=images/cards/distribute/stories/lifesum.png +page.timestamp=null + +@jd:body + + +

        Background

        + +
        + +
        + +

        + + Lifesum is a health and fitness app from Sweden that was launched on Android in 2012. + Since then, the app has had more than five million installs on Android, and Lifesum collaborated + with Google for the launch of + Google Fit in 2014. Google Fit soon became a key component of user activity outside the + app and has enabled Lifesum to scale partner integrations, accelerate development cycle, and + increase user satisfaction and engagement. +

        + +

        What they did

        + +

        + Lifesum integrated Google Fit APIs to gather more insightful data, leading to a shift in + focus from simply gathering large amounts of user data to actual analysis of it. Google Fit has + also made direct integrations with partners much easier to scale and sometimes even + unnecessary, and has largely reduced app development time. Lifesum used findings from the + integration to launch their second app, Movesum, a step-counter app that imports steps + and calories and displays the information in a fun way. Thanks to the integration, the app was + developed in just two weeks. +

        + +

        Results

        + +

        + Lifesum’s users now actively request integration with Google Fit, resulting in an improvement + in the app's ratings and reviews on the Google Play store. Engagement is also much higher for + Google Fit-connected users, whose retention rate is twice that of other Android + users. User retention on Android is 5-10% better than on other platforms. +

        + +

        + Joakim Hammer, Android developer at Lifesum, says "Google Fit is our infrastructure for + integrating with other apps. It's great for the user as it increases the trustworthiness of the + data. Personally, it’s been a great experience leading the integration. The implementation was + fast and easy, and it has helped us with everything from product development and user + engagement, to partnerships." +

        + +

        Get started

        + +

        + Find out more about + The Google Fit SDK. +

        \ No newline at end of file diff --git a/docs/html/distribute/stories/games.jd b/docs/html/distribute/stories/games.jd index daaac0d2acc8..cd31aaee7536 100644 --- a/docs/html/distribute/stories/games.jd +++ b/docs/html/distribute/stories/games.jd @@ -25,8 +25,7 @@ page.metaDescription=How game studios are using Google Play game services to del

        Articles

        diff --git a/docs/html/distribute/stories/games/animoca-star-girl.jd b/docs/html/distribute/stories/games/animoca-star-girl.jd new file mode 100644 index 000000000000..a38eed282aa3 --- /dev/null +++ b/docs/html/distribute/stories/games/animoca-star-girl.jd @@ -0,0 +1,89 @@ +page.title=Star Girl Increases In-App Purchases by 3.5X Through More Flexible Minimum Pricing on Google Play +page.metaDescription=Star Girl Increases In-App Purchases by 3.5X. +page.tags="developerstory", "games", "googleplay", "google play" +page.image=images/cards/distribute/stories/animoca.jpg + +@jd:body + + + +

        Background

        + +
        + +
        + +

        + + Star Girl is a series of SIM/role playing games published by + Animoca, a Hong Kong based game developer. The Star Girl series has more than 70 million + downloads and is localized in 18 languages. With a fast-growing user base in markets + including SEA, India, and Latin America, Animoca is exploring ways to effectively increase + monetization with a localized pricing strategy. +

        + +

        What they did

        + +

        + Following the introduction of + + more flexible minimum pricing in November 2015, Animoca took the opportunity to test + sachet pricing models across Thailand, Malaysia, Philippines, Indonesia, Brazil, and Russia: +

        + +

        + +

        + +

        + Animoca created a new sachet SKU, which offered 100 diamonds and 5,000 coins, at the new lower + minimum price available in these markets. The new SKU is approximately 60% cheaper than the + previous minimum-priced product and is accessible only through geo-targeted, in-game + banners in localized languages. +

        + +

        Results

        + +
        + +
        + +

        + The changes to minimum prices across these markets resulted in positive results, with the + number of transactions increasing 3.5X in the three months following launch. +

        + +

        + Also, 90% of these transactions were first-time new buyers, half of which + followed up with purchases of regular packages. This helps to create a more sustainable revenue + impact, as described by Yusuf Goolamabbas, CTO of Animoca: +

        + +

        + “Sachet marketing has made IAPs more affordable to users in emerging markets. We are seeing + significant growth in new buyers as well as returning buyers and a positive impact on revenue in + emerging markets.” +

        + +

        Get started

        + +

        + + Learn more about flexible minimum pricing and + + get the Playbook for Developers app to grow your business and improve + monetization with Google Play. +

        \ No newline at end of file diff --git a/docs/html/distribute/stories/games/happy-labs-experiment.jd b/docs/html/distribute/stories/games/happy-labs-experiment.jd new file mode 100644 index 000000000000..e317e2106027 --- /dev/null +++ b/docs/html/distribute/stories/games/happy-labs-experiment.jd @@ -0,0 +1,105 @@ +page.title=Happy Labs Increases Installs by 32% on Google Play with Store Listing Experiments +page.metaDescription=Happy Labs Increases Installs by 32%. +page.tags="developerstory", "games", "googleplay", "google play" +page.image=images/cards/distribute/stories/happylabs-logo.png + +@jd:body + + + +

        Background

        + +
        + +
        + +

        + + Happy Labs, founded in 2012, is a successful game developer in Southeast Asia with 13 + game titles and over 30 million downloads. Its flagship free-to-play virtual sim game, + Happy Pet Story, + launched in February 2016 and is designed for female gamers of all ages. +

        + +

        + Following the announcement of Store Listing Experiments in May, Happy Labs decided to test + variations of their game icon and screenshots to optimize their store listing. +

        + +

        What they did

        + +

        + Happy Labs used the Store Listing Experiments feature in the Google Play Developer Console to + test three new variations of their new game icon. Encouraged by early results, they then + optimized the game screenshots displayed in their store listing. +

        + +

        Results

        + +

        + The results showed that the new icon, Sweet Bubbles without a frame, outperformed + the initial Mojo icon and two other variants, with a 38.6% increase in installs: +

        + +

        + +

        + +

        + Based on these findings, Happy Labs changed the Happy Pet Story icon to the new image globally + on Google Play. +

        + +

        + Following the positive icon testing results, Happy Labs ran global store listing experiments + with a combination of screenshots from their store listing over a five week period. They then took + their best performing screenshots from the experiments and tested them across three specific + countries: Indonesia, Thailand, and Japan. The results showed an average increase of 19.87% in + installs. +

        + +

        + Migrating from the original images to the variants shown in the following figure increased organic + installs in Thailand by 13.9%: +

        + +

        + +

        + +

        + With the combination of both store listing experiments, Happy Pet Story saw an average increase of + 32% in month-on-month organic daily downloads globally, as described by Jeffrey Chee, CEO of Happy + Labs: +

        + +

        + “Store listing experiments have been an invaluable tool for us in optimizing our Play store + presence. I am really happy that we were able to get an uplift of 32% in organic installs with + minimal investment in terms of resources.” +

        + +

        Get started

        + +

        + Learn how to run + + Store Listing Experiments and read our best practices for + + running successful experiments. For more best practices on growing your business with Google + Play, + get the Playbook for Developers app. +

        \ No newline at end of file diff --git a/docs/html/distribute/stories/index.jd b/docs/html/distribute/stories/index.jd index 17455358aeb1..7d84ce42bb24 100644 --- a/docs/html/distribute/stories/index.jd +++ b/docs/html/distribute/stories/index.jd @@ -21,11 +21,11 @@ page.metaDescription=Android developers, their apps, and their successes with An

        Articles

        +
        @@ -43,9 +43,9 @@ page.metaDescription=Android developers, their apps, and their successes with An

        Articles

        +
        diff --git a/docs/html/images/cards/distribute/stories/animoca.jpg b/docs/html/images/cards/distribute/stories/animoca.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1886bcef0268252f608c4dfd3c678d1ff86509ce GIT binary patch literal 119544 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%0ARJl^+P{x> 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�v`iyBb z5~#|u?jUC+ho%Tqp4?TBh2IUde}q2{v`-A^HgReCMu%q=rKPeq;S5NMs=4Y;G1s28 z&_q?HSoZ$$j^u1)0yzG?dt$$cc$++yYnx9nf^pZ}wv9$V52LbPhs)+z>EkgHuQhM@ z8h^u{A+C5*KZG6=@fDBucCq3}^$#XZGW>s}Po^p{^N{1`F|zUs_ZxCERXh)Qe)C%1 zS>Io2wl@*1sc~&1tA#y3cm6f>N5!v)U+|55Ihsp-QriCF;xF){ngEYrdtC!}Ma-yQsz2wxc z^>=9gXYqf8@Ys1!%(CeFImz<11fvv^x@jbulWpDKUdPz77irkvEoZRTSFj1(c8vkbYP*Ma03pEPanhUUpmF{=HJSguCos_ zVT)X`R+H5K0DB&_?;o(QiC4y2r;9I^;w!H$t?k3c%)o%Gd;Lf0Us2*7d5OsKI+*Mt zTRDqbHi&i&!hdTdB&W1?B4D&jg!6a7kf3-_1}aa2`qjWXcq9t40CG@ z)Glq;db{5LF`^)L?U&a`G{{S6Itg8D)`Py<<_^j@)==DFa zGW=Zdc#2q>NnV?blD3}fO)GY~S|jqu!Jh_72(*T}kG>}@Z^!)cK(iTlYS5*~XtWT9xX~aDQTK3hpT@bl{A1z>rgdEoR#jpF-_%!S8gr86rq-R^j~5Y%b!X1B`J4X$*#dF6 z$X5d+YW%0#tl8SnZD}-c-AMx65YCavS9u*d9M>!0?-1R1kK%Tz4aA?h(pSiV5N%zg z^473dL4OnA;~8b-lZ;hDfcUC@!U_QTt#Uz+g;5Q#{}$!*4{=^ z7D79PI5_W&cdwqbO%vlc!7X1{n@NgIL;H1>OSyz&QCVF9Rh52Wwf4IVZNUKn$x&ZN zAM@`}g;ZrBBmL)5<*yj@vfCgz! z=2Geg08@dun)NG`@?`S)WWYElkJ6vzt-=K=6?y;4Z>0m!0&awxBxIY@5~$X&d)mPJO`s(B|L=ku@4&)PrsIzJXZJNScM z@l2jH@XfD?1Z^GWiK0cQ&1*6QR$a1lwUq%3px};in*An{LmLKO8=yXvzhqm>#g0s} zvhF_r0AF9mzN3Y>vmcPwo+~etgygwfR=u}rT{W*=3xlW3y{r`DeVy$7=8wot1O5p| z@Yep;8;xg5@g?2z%_#G)XT`%s<}*ans;N&mY0HH;B;!0*zryeMCT5S}i!CnSL5Je< z>e5|X&wn1LZDcfSA{4x@Zs{MJCixX(j2*dG-rq8F`ne{PYOcfVw%iu-59 zafLvNFu_1>KMMM|__?1aDO0UGzVdd}YOQUbRi{px8miE=l&MAEYp;dhc={NB3#8S5 z;S91}az7_h*@j$+}g>1tjcD& ziptq-tx>XZwl%_x3@8c!3IGDVA{jEjb$V3Q*_iQ$YmdWyQxjFno$qGb{M#lpX~o_# zN%_*!(Hg zvs8G;LDb=zMAR(qVY4L7wZnO21K9Vk4fwa>EkDMdH?zFa=8h|6iJ_e&w@}Vk8+@WZ zt)E|(xUDO5-L!k$D=CoR<0t$o_OOelXcJsQs(8zC!d(5D~nj-dWE yihM`n2Rn>+**yOMsvqNB)zySkvtBX=nU^H?H5e*C<(z+&bwaFd@TNyPKmXZw0#&#G literal 0 HcmV?d00001 diff --git a/docs/html/images/cards/distribute/stories/lifesum.png b/docs/html/images/cards/distribute/stories/lifesum.png new file mode 100644 index 0000000000000000000000000000000000000000..3975ff260ed4f6eada0a2c95fc02ca8963920569 GIT binary patch literal 10652 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 literal 0 HcmV?d00001 diff --git a/docs/html/images/distribute/stories/animoca-flow.jpg b/docs/html/images/distribute/stories/animoca-flow.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d2aa2f692edf8f1a73ccdd51edcd86407d48b0bb GIT binary patch literal 194187 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 X9-{j7{M^x><`RCcJO4N5zYqQ!R>V05 literal 0 HcmV?d00001 diff --git a/docs/html/images/distribute/stories/animoca-logo.png b/docs/html/images/distribute/stories/animoca-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4b5b6b53c7502bed66a126907f805a202f78b306 GIT binary patch literal 10092 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 literal 0 HcmV?d00001 diff --git a/docs/html/images/distribute/stories/glamour-icon.png b/docs/html/images/distribute/stories/glamour-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..770b03fc7df5fad88f83fda2a42b5b9817e6bd21 GIT binary patch literal 27596 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 IcMR>>yF`QAUn=v+oU*l4d<>PE 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

        y3} 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 SvI_v{OG->m^slhK|NjBz0YLr$ literal 0 HcmV?d00001 diff --git a/docs/html/images/distribute/stories/happylabs-logo.png b/docs/html/images/distribute/stories/happylabs-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ea20e71a6ed6caad9deb6f651b332e1608ddafde GIT binary patch literal 26083 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%0ARJl^+P{x> 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�v`iyBb z5~#|u?jUC+ho%Tqp4?TBh2IUde}q2{v`-A^HgReCMu%q=rKPeq;S5NMs=4Y;G1s28 z&_q?HSoZ$$j^u1)0yzG?dt$$cc$++yYnx9nf^pZ}wv9$V52LbPhs)+z>EkgHuQhM@ z8h^u{A+C5*KZG6=@fDBucCq3}^$#XZGW>s}Po^p{^N{1`F|zUs_ZxCERXh)Qe)C%1 zS>Io2wl@*1sc~&1tA#y3cm6f>N5!v)U+|55Ihsp-QriCF;xF){ngEYrdtC!}Ma-yQsz2wxc z^>=9gXYqf8@Ys1!%(CeFImz<11fvv^x@jbulWpDKUdPz77irkvEoZRTSFj1(c8vkbYP*Ma03pEPanhUUpmF{=HJSguCos_ zVT)X`R+H5K0DB&_?;o(QiC4y2r;9I^;w!H$t?k3c%)o%Gd;Lf0Us2*7d5OsKI+*Mt zTRDqbHi&i&!hdTdB&W1?B4D&jg!6a7kf3-_1}aa2`qjWXcq9t40CG@ z)Glq;db{5LF`^)L?U&a`G{{S6Itg8D)`Py<<_^j@)==DFa zGW=Zdc#2q>NnV?blD3}fO)GY~S|jqu!Jh_72(*T}kG>}@Z^!)cK(iTlYS5*~XtWT9xX~aDQTK3hpT@bl{A1z>rgdEoR#jpF-_%!S8gr86rq-R^j~5Y%b!X1B`J4X$*#dF6 z$X5d+YW%0#tl8SnZD}-c-AMx65YCavS9u*d9M>!0?-1R1kK%Tz4aA?h(pSiV5N%zg z^473dL4OnA;~8b-lZ;hDfcUC@!U_QTt#Uz+g;5Q#{}$!*4{=^ z7D79PI5_W&cdwqbO%vlc!7X1{n@NgIL;H1>OSyz&QCVF9Rh52Wwf4IVZNUKn$x&ZN zAM@`}g;ZrBBmL)5<*yj@vfCgz! z=2Geg08@dun)NG`@?`S)WWYElkJ6vzt-=K=6?y;4Z>0m!0&awxBxIY@5~$X&d)mPJO`s(B|L=ku@4&)PrsIzJXZJNScM z@l2jH@XfD?1Z^GWiK0cQ&1*6QR$a1lwUq%3px};in*An{LmLKO8=yXvzhqm>#g0s} zvhF_r0AF9mzN3Y>vmcPwo+~etgygwfR=u}rT{W*=3xlW3y{r`DeVy$7=8wot1O5p| z@Yep;8;xg5@g?2z%_#G)XT`%s<}*ans;N&mY0HH;B;!0*zryeMCT5S}i!CnSL5Je< z>e5|X&wn1LZDcfSA{4x@Zs{MJCixX(j2*dG-rq8F`ne{PYOcfVw%iu-59 zafLvNFu_1>KMMM|__?1aDO0UGzVdd}YOQUbRi{px8miE=l&MAEYp;dhc={NB3#8S5 z;S91}az7_h*@j$+}g>1tjcD& ziptq-tx>XZwl%_x3@8c!3IGDVA{jEjb$V3Q*_iQ$YmdWyQxjFno$qGb{M#lpX~o_# zN%_*!(Hg zvs8G;LDb=zMAR(qVY4L7wZnO21K9Vk4fwa>EkDMdH?zFa=8h|6iJ_e&w@}Vk8+@WZ zt)E|(xUDO5-L!k$D=CoR<0t$o_OOelXcJsQs(8zC!d(5D~nj-dWE yihM`n2Rn>+**yOMsvqNB)zySkvtBX=nU^H?H5e*C<(z+&bwaFd@TNyPKmXZw0#&#G literal 0 HcmV?d00001 diff --git a/docs/html/images/distribute/stories/happylabs-variant.png b/docs/html/images/distribute/stories/happylabs-variant.png new file mode 100644 index 0000000000000000000000000000000000000000..3ce5342091573cde65caa9299f663edd60887c53 GIT binary patch literal 671310 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ÐO|Fsff2bWpURv)4o{ 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�(}$F!@*idALo$*|swN2BD#eMe38i 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%0AT43drsnRbnZ*ozVVQEd;?+s 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¥#MDhlbvsA<1#I;&0#p!SERsZLUN&u6D#Zdh>ADpM&Pdke3efq^5g> zzQ8Y=bVNcXRSRch_(|W2pxdXzgypV|M$l49Cblr9jqqj5b!ORD2Anm`J9M_8O}5aq zw&9-tb!XE!=Qo2GXU_O5sV1og+tA&Q-f?2H#ntx8l~ymDHEihT!~C=QdUw7m@$!;O z)bGmM*$Bws9{Tn#`Lw=Sy&3v!VD7mw_9EEvdAD%9mW;?0_NX?CGNRx$%^u~(_xYj5}PaftLa6&k5jq8wdS7(V;tx7 zl*nCiBUV2o<<+a}1kNhq!`PZ6Os;Wxw0_;Gn$^>75)R@lUd8D0#XIM}=r!qi^LTJW zKleNZHJ;n;{p5>^C*!&G{t*xG@ZYTpMX+Vh8^%GM4lzZ#zbtP5xL?yI8^+tsr@A*1 zrYdJu`TdSvHScIy6+vDA)&ay6Cy=R!#UDl>8gCuLVoUW%m_*TJm~eypF$zHoTCR;l zHhGj%sW=WTgD6CWn|<6RNj`1mQWtR2(q4b&+LvqGVurdx8umPIrNc}Fr4V<^{>pNA zA}Bva9yY`cjarh1@SS~%EX@crSGn!-wV$Af&a0%C#`M(2ZkL1yyR+c| zMo-w3WeJ~CJrZyZgu8VQt%GZ@*H#}+>8yxJMnlI{aZO%uw0D7YQ_X`OCRD?;E0m%> z%!I1C)ReWCo#2Y>kQ% zP#P!DMC$8gRg3F5e3Cel=V(r?O9T6g#k;13yxNheifhAV#zASu;(+QJG=FAGS~Eb< zXPP-Oasgmt?dGec7~|&S!8D&;jv0A;h2ctYP&(-xx<00QB*Xhfl90XVIJl!RNy&av0-AX=Zt1O*z zb!qOyx1FQ>tp?MGAxL9hVUpKe^Iuog6{x}PCAY&JcyJgyFe>uaf3LX zm5HWl@jgjpSUi-8<`B!`pA8esP-oQ(hss|@9NOrOpp*g-z51EK+jfCyJU0CiAyv~y zR-sC)FR_-+oRaaAV%UT^lHpIVNdjv!!7X$;6xraUtzhAHG=T{zuq|zX<6nefhAcMy zqw(K=aVV$l4iVf3@^Z2G6@yjtX`-B@$X%R|N5`$f)B66cS{AwvIH9!*Q{h=(l;jEWkojeu;EQV9};s9v@yHi#^*GeXNmzStFcPq2vK>R?d0B(N3vW8_w^K zzR(5t2l@_xRP{O5>GW-gi#ApqxjfA`=s6i<@Errcy0RLs8_}+|DgO}%Ft$BnCrdU< zs|96-H3p(e4rmt>C=te?PAr*sL=!Qn&d8MnC%UN*)v`C$&)tuBG*ot3uz4CjY-^bz zDCQQ%#6XcWol+cl&V;0K6U7#1AGN{Zmlx}sD~1;HOtWiCeqKnvsG?hg-l4dMaTcb;mjS$JTBFvn=Ek zCqkx7_X?M^)IGS-(duRjU&Oj0UHWzTi# z>I#bbw0OLia}w;=0armhhd*s- zyEtH1Zl<-;P^jc6HZEBRk9fSNFVwJOcGetBOG5HG=}CRg(n}|AWbo4EY-};D3dIGyG#DhP1T-7<%fZH=8C3=O;SLxKJbZmte!XA3JA9C-4c zC0L|y?%R1ZkTTIcvJN}}J-;z$IQ3LgNc}T12-Gzf$@rE?NfKBw2u=fLX2i9g()#+Z z*^hVTz)7!YXZWTFd|pYaL52BgKhPziv9|OU!{ZhpVX!)nXI#w9V01uU7#sK4;@)Vz z`_mdx7B-54Uyp;{p$HGx)N;ui#gKvzE6*(4D|;G9_m!E*I#L0?`UUSYWaz&K7#w_X zhRlKE_sHS|)0=&rZo;7RVX-2E5-N`mVpBeuDG8 z6!geU3C+FVIH2!jEX*r8!*>VIC{itCw6{%j8Z0*A4Z9}>JDu5|tPnz!g@vCXPq8$x z2F4qn#|v|#_?8rZ_{|{nM-Q^6S&0G*gie_|=V=zjaF1paK6G3;P3a`y1A9of)+Nk>}I4x7oX5-GENxb)c_c0{G#OHf--s> zVf!c9%f0DuJK;0qqCtYI!Aiq0bOMG^d46FpjpLA+5Np(GYX?MsV%#4sdksznSC}pu zS{!#wV<`D6@Tc(=5yC1&QyVCE5-YZ@pP~M$Pc^jo@}tm4I$%PNXrm0U7z15BQTxt5 zVz86tRfJox6~FAzai@wF$5R=*76Ga&AVip@=J@O-5*MW_wWoZ(Sq>}&j@Fb)JGcnq z)+|LFx`)QIymF)HBU8@Le>w=!fRi|8LiAF*qfyurT92=%yNUBh zHp7Slu%$z#Dxb|NP#UI8IAZ^!zwd#m`7h*TL#DJm|3IjCWiVA=06n4HIJ9xXVF`iF zs$%zPd8VJ0NNlU!4)aHy@|uX>nz#@DOiCJ9vBS}GkkBbexckC=-Hf0(ICk9Ar?ktJ zD$Epm-eI0j#qxJTmBNk`k;+a6gtYTpbtyH5!sTl};>wo7HhW#M9s%qZ>YYBaTk zcFJgEqQ6AMsbeS>bs^0*aOocEMA^*Xe3c*K^LYc+62s0d3EN2;*n08%wKpXZ%(=JN zY!i=W#5;|AVmT09wU-$G7LL9PGGN-OWaI|FzEbS%o91_tMONeM?VVirDaaA;|Fvc! zP_Eg&o94sVxZ$BgTn9BLK_%sij3f#fZ2y`3fZZO5%%fm{l;DHK+|&Ftdc=)*(cGD? ztJ0e6L3OL%I3y_8a`pgPuxy012aT&QUkp-{lhXw)K9JV?q?b(Pzg|-(Q$i{t($mGK ziM06=i)+^GfTI&zeRer=Hao*dc&c}sw_pW(T#@Z_kp^Uy5WP4eJZM=_UA3*&E=3^9 zE{TC72t-&jTL#l%qxX=w`v0xApzdBS$QqyiU@NyEC6adrffsB>uc&3F>iqlvrGh(t zLh@l6=Rm!&_C7-12wkPGk8aU{XjW)}rv{$=@57BDo9MMY^+=nDJp;nrj9K9NL19!z z$**q_Cm@$Aj53DQsh16TNE4;Wy@~fDbLPh4AyR7-vMC& z58{W5AfdNWf_~6&j2%i-NiVNCBs1X0I41Py|FW2Vf#q2aWpdjDVa=1_BAtCt@$!7#q(EkN{86VnpEh9TEsOq zds0ovG@NqO?Yv1|8$`6dB>3_gkwB89Q0kQL*Z@J*O-y@mY~*L4E3(wUgk<6&=iGE- z{1wCfrUjZ#9HN%ZXU-=}rr0%Pk67E(7XyXk7AQ33dpr<*BVvv-Ek`<#>4>+XitRI8 zM7#kHdKjQb*bq9f7GsE8&Bt98{4DArow$nzdr`s@(|aDuGWPCVS&imuqhrCErO|N| zR6?4-atp3CV19XUPgr7{5ya6dEp5;$@22F^Vxp1E!egM?D)!#*x0{MxYV;L&q^DeJ zvlX$+7LN8lm@*bXG{Qo(oXS5Y)#5$lmBJ43l7jjh^SKA zuAu3I{0;Wbhh8a>YVdHKy9!?=QZRG`=l-9wM42EQ9y8PSgwlO_EJHi=vQ1y)meo$h z-lKhjQvi0~bxR6oD^nqe_m5gw3U7ecu`(v54=xGAI3AxxL`&1)8Gefs(6<7>#uo2Y z+`z=E&B^JHzHN$Mz^Vw}6;1_*1G$yNnM=KY509*;YVVBYSmRdM_x|PU8OdxjN&j1e z9dvl%()O3wBVCVqa{XWIpeY_G157_sjh{*Ea$ zD2>U6NhxOf>V)TXQqFm}IwrPY3Xh|n0H&A*njX?_bNNzcgHvI_h&-k158R#Dm~eM9W7hxu+1 zlX}&=hk4$92C6;r!n{O{`_vy~_cqW)I7{m%aoZi)1-b3{(mh@TXPxUItbUU=?1C;2 zKOr|Af)DJUh(lfpqs6sx(3F6nmD1SSiX>IlPmQfF#(j(j3??G7U6#wwrY8d|k&Z99 zph7eS45ly)XebREpuTV#ss#0m{ifeTS7I5{v$K8*zxzO#iz$_O2|`2W96!zdi}*cA zp=+vlNS+3gz@jZS=(_)CpPv`$Osw>K|9a{1nCPEmZx)RNdPVwvNGYeK2yZ z{jBxtzZ$>5*;V+{E}#9?x7ndz&7V*V$ygZw?DsSFy4;0tGD!%`_eO6)Q%YalSa_@f zF571p3dMI|Jril+!UwnYt8cmvN5r>-ms2e9&i$KmiOxr3m|S}pU*@++>s3@$1B#1jT-@DFJUr5H#_`ve=-9@|^Dl-h;nT%z=|hkb z+0!tQl$^+T>qxLYe-w^s0Q6Eg4!OJomDCVf%o7fq6Nd6?0C2xBt}U;Vqze}bxgNh_)PRAP1d4r0wn1R0d`wGJ-@q?^aylABRg*iGb+{6d@A7jM z37)_nsfGqz0w2X`f}@}qY|=*RmpDl6!aoxTiXne3lYV=-y&!qh;c-V@ax|cUR6R@W zEG4zI@rOr-FO?L`Lp+rG!x}PTV7Qt#d$kO(K}xIn2ecvYAzWNILA_ZMz`52jwJ+># zBv@U@0=ff?fiJDQ^~5s)goY}$hy~{-0OH>f3@anIWX^(I>yXTg@^Nm0XeMT!R6|;M zUl@Uo0Bi81Hgwfi;bFO~xM!3A*UsWj#xRFq%L;^J2PIoXC-kfXAPC#KpL+%)eI9bO zMqb=i4X{EtdqQ&D4|G2Fa52HgaCx}xrx3&?nYUGQ4f-$i;)L1`zlYqmWxb5zfZV?a z%X2_Bc(Yu_E18f&nytVUBcIi5vjE_D>f*xhT3IuL%N=rsuap1ykB!l#ZMp{U^FcSW zKenWWP^8E1J2F?(6KP1q8AHAVCH7Ggry2ZvQ|fcUR3Is=0ms{t0`r7#gvElc0VuzJ zivK>zp@){85eQTtXz=iHMP8`ZifR*i_ctEH!VqjB1-L*yS@nF#5)J%}?$wSjD7TCV z@sNB+8Mn>*W296~?R0k`X7aRX>DI6Og6u=YKLbb84D=uRwmG( zlr*+lxCa>Ip_yDT=o7cht1srn zgRfsiXY84&I(fvwPQ-#;Mccqj1o0ST*;-9;YA+!IC(yJ`f`2U$zDJ6Xw0=4*o8(&>Wym`74 zsM*BC4$*QTHOI3k{{9LUMGFmSGH-d3mc{kHw`lY$!$Ptvgc*xLxmS6N0+lcxcC)1* z>(k>3@m4|m>0G5aV`2S^4ajgGc&)*Q^T0P`i=44*5IY)8`-4v=B%_$UW!4ON;N#th zD!!T_idb4Rj{;~T)gFDs21>19N|4#q?dYvAAB|^$Y*7zW!pu%BdPw4*okM#wflxkF zspDRzPD3H336*W=v#>Y*DK_EK_ zTOi$_3w17WJS~Wv_n$9Ti~lS8w&y9YI_gKVw2)OtN!N{K#3fP7Xp` zyIGd@%-~gRjVc{mhG4N^E9-cmKX)8xWE>l{b;IEvbq$D1;g2U{4!GCkY*)~tU%KbR zFFoAyyM+r5LTb|^9NCC%{DIV9pGNp9FD31XpP`fSDGU!Zia1RF7TBU z-6)C!zgX>yest|=V(s<1*ffWVz!l%|^tM=3tRK_3LY>000*nwZZ&>xD64%^(eiBD{ z*0=(dqzvWK6#6+DS}i+!K>TN(mrZNh+snJtg7NA%X2XfkL(zj}5&w1>rxBbRfGVJDrE%TLV}_Kc>2z;Wqhu0)7I$G*!IVf=Oc&j)|=;Q{kY)FF0vr zMmFrki0OS?w|5kROf6}GQW19BqE1}Op?M&+i8(*?2Zo2516xKw23elH+>T|h*4qlW7%$`^Ku(b5H%@N0K$yXVn=+M7s z8^MgLNr>%?ESrfB!EAZ>5TBM2(Ligl9SDiMT?+ZWz6*?hyyu>lFlvly)yC$rkaMay z)Cbhi*l*{e-QZ9g5UYDC^M#CA3{JecpiT3W-^Y`U>1niM>OFEMt=QUj4U@86d z#*TTg%*>~O#UJ0}P2&-KfB`Xnl-|Acl1W8qRW+`bjCSDTNrOXo8%njiM*sQnH{I`8 zedR&Cm1x;kOcl_AhL^_}{Kww_w*7+TOX1kG)F^ivz3=BpTHSmgO}Lu6<*|T;I}=os z=jYe=bGnq35bUQwwomFM`yC$veA|@tN4L=jezgOtwucg;!@I)BHI%fOqT^EG2G%XZ z+OYdKqBzw9rNT4WFa5KA$MBcOiUcN1tb}}{KKQ9t;@V5z$q4e2d_b4>@59PUacwXD z9Vn+TQjpmbC?VTe~I{K6=%+nOj-Xwz~Plub`8DI_ynhF z73By=0mNnt%p*~pj;b;{4;adrY2d<5ua@@ipyXGQ(XeN|em0`i*y$KI6pKBR*4ik> zTQ1?lZ?79K?WUKL9yX%1v|NplXJMK+UnS?)#brq_XO&COsk z4u84-Ba=fII^(Oof_(B7{_Vg8DGD-JpK3)pTl!yl;593J?owE$jq;aVy=)g8Y_Sh~ zY-YZUkFhA>G(Kldl`Hb=oTQ}(y*XR_rMg$bN91W(3KR{_!XM)p-Xf2O2$uLu3ItK) zoa6bQ&=N*0_8()CTJO5BtL(9v!Jz!J`xX{27*2OJ3-%Jut@lTSPJ5yJS;@ry&{0!@ zVzdn616DW;JCsrKQpX%JxQHs%3*8Ex8J2L}xJ^@y&x$r}9}5n>&OWn?Y4&j#HaRN;Wk7E4(xz{LI$o5 zfvuTMJEim(yX-ifg! zq=l@hqdzB(%Q&0Rn@WV<-D+7$HyRTE8ie$|V(!T_B6w=Nt>kApnKSmmAXV%26K&Z9FVEo`4#kd<(tmt! z@vq4~XG;RjDt^v|K;JA3O;rO7vwZMn6q$c1RNpIoO=hrz8>I-mKkr}gT-1? z)1P(GZHBrvVoztCf)$k5g_|OmS#KbvC#MaWh|gxgqbIg|&^WO?<)j?p7ttm77s^!y ziz%{O-PVP=n^Mfz|31&>5N$oYIj^hq>eDgLgFB;UU?#I5`0GbYDeA05TkhK2t#HOh zYQdkBL@NhW=Du$Zzr29Rrc937N;ukR%Ec>a#k06%;`k8wkgBHc(6;)q#ryxPa*BR# zo#312wQLI%Aytb$KK(X@iTq@1nA$gOV92$-jsCTe5GnCwSy$9C&=ar@vGl51LSz3R z+?rX9PU`a=M2j13X%VgK!uMJ~bGW$hcUHzx7tq<}2g5g^Wh^cuWg}SduIb01isfjL zZo&D932Q8k$Pfr)ei#(A&=Y=1GE4iD9W1JjkRBoMxJ$9zEt-c{Fw|1FLn1m#nhl?Q zBQHGBHWbIlg?HbgQ8zZyr4>jWPyV<(55Dkc~|QnFb0d3 z<~fvcc*#n$+)8I2hz5R~SR=s>-rJR)XIopRiWAoFXV|&X z3Clb`fBL6BF)8G<$1Bsn}WyI@C%FFJ}2JFfVK_~wb_ie8GS5!;M z?()C4QUtJ=L=qw#eTCsCzr&l)@Hfr}JLySRvT>QPap;Hm9)w6EDapWcp?BVs3kjSF zx(S^ddIu_+tqI#boj5nH@nq)^7^fpDhRQ~(ryHd#k?>Dm<)|dK$Y1ObrzileAId1%hqCqMU>#Vs!}Lut1>=1XFvK~3_HcY;qA^S_O{ z2Yg89=~Y-;NfUYDZ|xnmOgzL;)7x8-NWo}&6(kXw@q&UuqXE9aJNG^l4-A&GX%&d*SVxw>yuX}M z;s27$5!w{y)r}iT8%4%909i~z2%dg=cSD_R|9_Zz$AC)1whec(t(9%tt`(*xPPUtD z+pft?c9U(aY|LaElkL^+d%ySFd;h)vKF^Koyw3Bu`esx0gXeyCBuKk|Ryd+fmWM{l zAvVyaFC>5kSCfbcs<;(fXeoZvBa{k7Gd)y*o3^To5IsS_4_M6_^sHWenbDK$1oly{Zm z!F#7uJif&iUj6L0w=(}*5<74}ChOXOgq+88^+e+$r1%C~?PTgQ`F-77$y?kA^$g+s zn}}W!;D;!n>77N@K*V|NlM16SqyRDBQ`CLnNFVSGh06U*qD_Z7!Q2uvKQYY1GCjcT zOEQ}ws~awV@U$7B5Vg}LCIB*|iccP)k^PT;q{vL|&ck-z75W=Ns{1Jhg9x5~|CUjc zEHS12$}%Q)cn-+8jg&MFtYFFHR}BlH?IKIZ(69ge-U-VhRa%6dWvXaQ>xZ@0T0PiL z&Bzw8!%=mp8%{LU4v+DQfMT$={dz{Io-sLaz45iq^O}Q+0+&fAJjX^;{Onj@zk|Mr zA>)y`WLk?mWm!}@X6EZMiSC#PJD2{pVArQ%*@E?M2^@%enRzQxJhew2jWY8S!uLZ& zQ0svi@p~Hi)m?h*woB*d*@paW=U0;2S=1_6r0TA2#GBNz>fSAEdIO~{pqV6h0dHq% z5AJb}yd1?{ocA8nOxRs~&F%|lv6n8QE9*fiWQOjBvuG#-ieOcm)aeh+Ye=&hrTlh+$Y ztu6jg13J!5A%i3!t1@~wU$Jt}-XJ8_dPmOVK0-sbVfApI2wAG1;aFhVNeSxVE9Vm)y`Ih1Srkn)4uz%$* zaF`}qQhl{V|K}n2Mnie!*#Uz)bMA?FTD$YqA2(^lxsR4-nMYt!3NwzA&k^<7jb0ja z;|SWzIVF>Vx8E80D@<76c*Jlve_+gNj;d5a7y3IzAr-$^{mb0cDZ25*yQba22|oH( z50>$79JLAGEQ-+_tk*)?4)%B78M}!w>QcW@Rl}ovU zC5>4(-qc4E1T;n&*L$AbZH9y*hXf$+jfnNhH^Ha^(d&@o+>z$~)k9ZbOep_u#b)-e zOfqSQMO1p)siF@4M|SWCn^=$l=Gv&ZCU9V%_v#YMeu4-U-QYHd-PlA+s&a&u<9JiQ zcuxoo`1y?^l7*DKW$Papog1|^soD*b;B8CNZK&0ZO_bu`nj`nW2Pk2X%p{K#wM|_f zm)0cLd^n5|vw77Tk>aw?IVywT)v7P2(2YHa{Q%cqzIKq9Ut~S)Af$N0UY7qNwCV*I zy{WlZFz;3+uMj9!hgLO+Dt@`(wT?vJm(!<*&81P7BvMv}yutnLm@(b_q=HL4K$m5h zh9kmwS6dbp(&c7$O+7Go5%X!Ec2^}uRAIrsj>6vA3;$0wDaFhu&2d+ceb(SxO8s4H zYJMjVF>xxsY?~j^3PWw;%N-ohEM)R}%p@_MFl;LgQC;;AakyNmBVAUfd{cX=GO!T-iHjq(XhD zv!=_2pKE%Z%w9gqn8p5D@(OjMcmssxpH$$+Wyrj&+ho_r3Exip zgn4Jq#F)-nlt_gpe7>@*P+Au>esVe{GddxumRC&Y;u*a<%bOt>Kp%gu7l_q~XGCHS ziTD^WED`-cJCW7t$lp?B7@vpBH1a3P8u@D)%g6xdZN2q7Vpop{8Y>I?n&IcuGmic` z&mJ1tE=hiLNpK`9a3yyrajgw|VpGScwh%+W?;>$KAREOs`H9hREt;V+hK`LdTyKMN zbb&vXC`XbssnX~FO80l*c1|5uuCc^fbz(^h3R{BLH{iC-+Xnf=E_C(a|Ix<6_SO9mFFY}8{;VfoJ zAcG-$=oo2G`W5U`)P-2+;b$C2h!%r22lGy8P9+rbEkBb5iX3fOa6~KxE?*BKUCC*3 zX2Z6;5?Igz>)6p|_}#wpUqqfBhIh5!oXu&1Ju$88cxHjj7L4$){W15WRGu0eUb-?@ z6hpxhC+xXI$8kyn@RicdeZ`>ji>r;G30>K7H~FkcQ8)4NaUUPZj51_O@z|zZh8AD) zt2F|_?TyN>w5Wgk$nF8LIcO9NA6%H@(^G-}Yh)l3SAvfZ{S_(jHzpH zmRo!p2Yd8-{E!Zf88>@K9SrG$f@!_^`0+Qp?L+4xy~8uWL1?|ndHf5By#WlKeq2=h zyh=5i%1(6m+NszBJ=OL3+Dg^lz_}mdfXs`KsN__iuk^g!9UUF9n7#|mB6Mg&tJk!Q z^zPym(rl`KB-qvGu6VVO83b8WUrkd`LSlomogdja=o}fz9>)jZPH-E}2 zrA-)J!;7NiwUF-8K|QiQV&9-#JxTbRLV>d&w-oj>CpM6Q4`tP3T}aEmwjP&S|L{ zt9ItwDQ2dFyzr89DgXp{P(}_M?7vZE9r-p3<>at+N1xEFvHY?MbPI)PEYoe(AXl~*y3 z=%VpPx-k)30B3TxWG~vDHsDTBrVzaN)%BEru7Txv(Ya6dyljnAWJt@96c*OU=&%Q> zUfL3T8rOIE%=09=6`!9jxI7|@Gjj`4;z@ls-sKvYJ9x#EWh1*|$E}P3YLct3_LQCl zdGQ7^uEu(PsBB#I(LtKsmVKMHH8KEV3AV-!-oRXE52+XcP@QMm_U5;60ilXiyOKHU z3V}D=PpMSoiK;8UtcrJ*e0{t3`gfX6A5KqZynnJ2TxHC;fWHbq+4AFGY;Uoa*QBGZ z*&{s`LaXQfm~1b>^qI z@FJKJ{wajHn?mm@_{cF8wrcgAb?JW5%FUI>Mk0(L$tG7U*1ag^>T(MV8T3xA#?v{P#9I#Z89p7a#PD79r{x$E?%TrU zPz1-gJ{+{E&Hf7(QP<>Kl|@+$t4QqVja9H!&UlaC3}%@8*_;;nd_ z#n5ieH7vAsYDPxmI%|UYJGNGg*@QhxM_YLy>K)i}Z&3G2zNJhh);G5pXK>}GHb7Zq zI-$ZDx2_5E-EClS{q+6oVU_Z*t*j46z+j2B(7Gsn+eG}6Dzx6$Jm zDQUnnn0$Eee(r!Z$h!=#yuoM40>0pP9#8Pjh5ZvTUu0i$nFYGz86PAnDF~3@P%1^3 z@-3(M5t~w01jWC0YMb>W$S5`Q97ciW_U+g{e;B67+&y#(Zn=>9gxE*7tW}tBjSkC* zz~7JtSWrueWEE*j89*a%*}EdK@pMdwn3FU6bKGwt`9x=zNtx6kZXw9H3ZhFf%9t~D zC)V=#RzLg;5(d+bG4w4ilgW}@6g%iM9Qs;X(iz7Sefwwo+$wU~-TudF?rxt2WftaR zz3a&&2Oz^bnsquv%_;;WFmU- zi0#uOQIRlMcI_A9Sf;uC=rY1H4$x?5O>47o92bW}_0Uiq%#8rONm?OnMw&dPU->oT zOj9jmWThK9IWQvzD{2`ZsqZWAUq*4ReZ;E#OW^lRhAlRpWP~mueO1#F(PMfRQIS`GL3@~R@tT-?xl~{$F93@Ceh;Bo{}y`o198Z&1}h!F3?5f0TjN17-N(m_m$4QirDS&k@}W>NPDpf2tD4vME>~=4+$OYALlrkMis2Q{%DFv?;I-_osQcs0rAh_g z=f>0ReT?2pMHLwHIezfF`doQ_~JrL^c3;~Mxz#==>_q;8Q(h` z!NxUw29KbmKc?lIx`DL;yNFLa!h|ZsrNQBJrVsTC56BM4T)2rUJb`~TqAm&@A0E&- z6Ha8-x`u*3qvdYtO#0CQzJho>1PN@a2O@hJ7Rm>phs-_F$=0_%WLst8f?)Mz99s=^ z>*0h_zVFC*x&>T1r1&rCbGy!@D5$L}mVQvpi%Tk>W~1|^m31*n#iQ>Lp4UV0{=FE3 zIC()X%OtLkJbfh%*fzfUbz4g$2O_(pj!A=0%EYgjfbh)MHR-bn!y>2!+r5ipF%q0O{8w%1eJ?-OvRms$iKbuj&Zki zDC)V{>ox_=nJr4hrkF+3>glv;cJzu8U(?|9=uYp~JE1NFTR~p8 zKxhMzK-HMnayK8yvQt8Iw|gd&S_84W1sC`ZXKd7Tp8g#c(yE%;(EB0Ml?E4Q=UHit zkBmZ;;m-l@;av2yrUvuBt1TVgkqOy?i91-9ocjn?h<|>B<#7 z4nOap^RvNI&WL3=?JPv^PlX^k?Xx8rWQJYstZ}^PRNSCHOJEUX;y^s8vnFmaVxSI8 z;)zE!HS>h`OC780a3Q{VrK^mW1;(^Nbyx*-H2KYun+5~veO!-Uir#Zrv$psO1gUUL zDJ6?t6i#QF;=Qcx93yEGoR8G-h^pfP=S_u9;r=J?vqC6dLKyzlR!+)a+$geMhgE&} z-`@R-up|0?&UMO+YyW)A+;`DFlFiVu6DD~kCJftAJOlFJ&* zWVeFj+yY5iEXwRyn<&1RT``G(OErB-kGRScvn#bQjj?{r#rBld<3?yrz9Lso_;%6O zd{WD4T#~%UJP_ZpC{jy}MzLSZ5*9W@!-&qA|9pbN(Ih@!c*Ww!+JZ{Qc49&7oPWZc z|E)kS#>2Wwi`xCQkO5b*mSf!K)hOHe-D;xn(_BjMUO?OSSR|vQyFt_YY??(rn-;N? z`y=_CJGGfPG?^Iq>tVj541Nuw0F zZX36Ne)gR8X*7uDVk1EhiV~VsAX;S_J^WM5-`S1)CTMvFN1fj%fsk`)tITLAjvqz} z6D7C5qIg`7I^d`c)d`NZcLWTeCIKka2wD9^w>EXrjkRgL7SaC42pnJqWJ93jku<}t zxg-(WX<%Ds^}F%3o|K``k)FxaGTeN zcnXH)XQ@p*zr$|-rnLPTzw-G;P{-ei&6BPHI-GQl3||km9hA0`CXq;d{MH2Ql5#0$ zV?e1bpueKO!F1>c`9Q1}9u06uM;d%dM%6Igy zuaJEA54XByU1`ZqT#_jb^*qc{w@gTirM84>Z@EbWtIAaG~xF8B~5 z{YU$(MQP+%ia0od4uHzAhmRHS66*2a<;#%u{+W=F6jpftn++v;9)(`tKWq_N7t^TH z+C-?^VQShzo>M%a1^Zuin)2_F5yVrnzwi@x^s6KaT5&t;_W%~N9Nb_H13&bUUCIZWD?e4;Jr0!kVQxJq@E;e2xQ#R2e+QRC}+yF!-coJ`a z9%p+f#V~BShJl>h-Tw6QP*O=Wu848huvf8L$gP7zj$gB)B$pvWhqhqKl3zddLY=%b zzK!PN^66mxSzo?6_sO>-kdTo`WE^w1$kMIGozGy9eJ zCc_8z%g1DV%ZGvr%4k1zuI(1KhN09%#u_1*WE2II7-ZwqC~8XiS9p>BM;fHgGuDZ+n_&t zXMrp*j7?h$Vy~QbX2k7Ka6#Oof_Lb|e}Gn~epXJ6Cq4TG(NG&{{=;Rs1~SHz76hlU#9`YUZJkBg3b z;b8>?&^xKZH7yOrzp6li7{X?|Dg$jDtYcGE7)H;O+PTeY&N4Vc&>XN7Z;aO?oFPf!wfGIUY&}8wXfy17{)u$`7o{gs-S+6qS8ZxJHVB#&mAXz=lQg zDOc)Tk~Oip3H_Ag9P!K@ulbdAv)5*gCFLKEsBSI1%ErD)|20&Z#s)qkHwGa8bre86 zid?w*wjP=k@Yz&p#NUqEQ);|$yNTc&;jJGO-(XLS2Vdf&miez9=!j>VTQ z&j(zn8acr2xLB_?pCGfYdJwW$yn;BscI|$WB2Cf<5K8f8vmB#IA}k-KgJ@UT`)5O_ z>1w%91>CO*GmqG+G-;*O9p7gRqKdAQ*9>Z=5!A**sexE+b9T19rrOLIvn22xvuZ_G z%N>#HV^cqk5$z0ZIN(3sGZxBiY+bSERZh&u8O|>(((uYl(x%q1cbANyrS){-px#CN zuD?V2;MX=w^eNjQ z!2Y_yFnan@0%`yhzz1t;ca2_qLFo=n)M@qvn*{t81OKa26B>!DZXG;Irz|1+$Ez*O!5n6F-iC#7lm{EcDIr9Rl;yB5e)=SOcPXj>qCD0c9p$jzFx?e>VQQx*kE*b88X0@Ct99)`0?%(#!p#lzXBr;`!>RlcK|HmZa2&ZxrT9l6WTuC0Q_cXQFv341?fpauwiStZI&BS#(-i!&sx(($WbPhy%A>aH2_Yo#2BgW)2n8L=iMneIJRP&(v zD2Y66_$jr_aa2HtLaEp{B(H`nwZ9p5&IG#38kvZXOE!UvCd;$G8!g6-8wib>imSeGlSOO~4?w|*0eXHER z7IOk+x4E|h=qohQM*5OZRvD7E5mZ83R4%P$dXRZXs#o0;IBt)+m1Us@r}I9XMr=Yd zc+gQFuACY1<54&Ox`qs=*t|k&Z6uY+dKQCH-D#Xg-QMmCE%1xqXZDs(1X=2qQq39v z#kz~nk#K)1*N840O&GN9^`2xScO_~E``;WIsVVeaSlJH1H3erd@ab2TmOovS0<_)! zFpdfAT3_bvxpfbF6d&izpeYONDj|mJ&e!2>&WHyu)YNy%SmEA?q$6H4x{rKtp7rXMmG0JGaCNBep#9U3 zzL@84^j(+YM3v&OLWWh*f39bm;zL$gRO*Z35?)xv-yg-~j+k5(E(ccSFh#^+BjY`! z-3_?L85?K+XiWI$23zt9gx41s%b&rquWv?y|9QI}rRNLN6Dt<5m%BVlhP6}5b17;E zS%mT*Q6qH0<3r;s_N&Q-3VFiR`poP&pCV-2i-b>{(_VGHLgLqshK>dTZg(EWqyUuU zS|MH{NyKl6+D+?x=cc~V!jPZyBiRT4N9R29zz6NyVFIQ4r}Fw0b|E>0sFd@{!z|Yv z>ia)zj`jY$e*gSU`oSekvqoR$Pxj8mt;@3)LuUTUP=POtyq5^EpA8MiqC3F+B2Ons z^(r-Er!JlzH{G9XW*R(=hI9ByyF!mLP0-g<2xZVZ@Ok@*#z9aqk7q)c`Eu!*`Sd1O z2A}l&sP@`FVECjh)&6`?Eal4!<!ZE|D?fuK~5z3u>123#WOi#SE^Uz@Mbqr3vJ3^w3RKXJh2ynq zSbH~}tK4L2^Ncv~9DNX{buaY{R^m%7&NKPDJxWR(55*mp(v+{P@0j+dR3vSCjW30h z4V2oneu(;&e}{GTRR9)EfTyf3r0#kRN$pX8ws8yA?N(8lOA8Huirb8uE_F2aec~f9_19eDSY6`De$q2rjz>9mzl(_9*?*hje$PAr z1vRiV-wDH&N@p;yPaA$8D|x#TY)AUN_RSPhQdLegVgy6+iFx047RE1fHekNDe2%_> zNdopgzS*{?9c9-=RnVjUAsDO!&1j}%PBr<}&Rvz(@@z@$H|G511!!$xBH!PHA3K31 zC^}UKrl)lzFy3 z2i-JbqY5AxN)%`VO*t&He9X%hH^_I}4UoahE|AT{FvV;@+f;oQl}r4{8<#l>9Qid! z`akKIqfe;Uj^XrwfG|(}cwolQn4RHM`t1<>r^gfz-255hWPO`>{#=aRM*7hC&*H)V zECR2>0+<^)Akpdt0C~T&`j5?UBw&8+xK%>XlvO5?uOhUb-gBls2S5qPFn*bEip5Vb zUN=J?2rp6_SlP`HT6#u5Y|Rc`dfP(OJ#=Cj?sX!Zyh)O%mi3=QEvs~M?9oY}BKU@J z61bB2Blq+(#rU59U?XSn>@Z3Bckro7u9(|ulPD&RM0+6|uA3kHB_P=H_DiR*!35YK z<288)EPj=vDea)Bw+JRvcp%{ET6^)a$ixUcPO``fpFmRnk+c`3R0#HvcmI2Y z$UZM&5IsUb_a_1u`&EnKz-Pt3T9p(tuT_cJauj|RAsB=a6*O?V~bun;@6LRdUHhv5e&oXGR5(#VAg zb3;le+x%9{A1%@pDX)AMTG;A}0a@S0X@cMh?#;uQ|80v;PQxRvzM}tS4?KQ=2yI5` zE2|)NzxSK1JjuZfLJQkT=qqkP6Q(S(Vx5wQGi@%4^99)6IR1w@QB*vidQjumH!G#U;! zcf(r|n<<8A$FtYlzSu>>4J*s;I>;SaCvpaoWnKndGy|$W9RSH9*#vN<509<8OX~?; zx#Ih7XrC;#u79%;Z#A*`Ql)UsSU@&8VtjFiC{juedQ|;L&a}{oSxv{D+um7?+z8k7 zZ_cYUQm5VFt;hJqo&StIjnM6>)(`P2+1Iz=UQZ{`$-tVSy*}{(C?`*(j~tv)q25jW zwGVVjj+m}KgTY^;`F(yO&O}EP;n0f*pbxmHm#xBPp+>`{MEq~!~{zz{jSh}InXv=! z-cZAnBg)ltXtzk*Y{F_Vudi;7WEp<0*j17;Q*_zTkNK3AIMIH%lrvuB!vvb9<=?(U zY5bF|I~L2ZU}X3SC;|YDwMd1e35^`v5Xanej;o4p{_@#o1|d$B&k&m^(uy~Nrf*6IWoY^rc4rzNFcj58|4?_cTY`zm=KGVTJrvAfSp@Yjk$PHy=(m( zQ&@C6zY@M#DlcFd7s>lw%z>SBwgEO*35*AP34AKEgZEli7#Ue>`oD%EzPP#ORxDBu z-ZK@voEdI7l~JtKH6|*{hBD)2ppG`-JVQrmX(bl99Z~UPELjxAA~c1n43Y4G@2Hc0 zq--<)F>}ewYzORNnP%{FE!09t(edSl*rS-}joe$u>+9UoQk;9VFTb$5B_kpm8{e0Y zGziCVzEA6ol#(9|aCl@+H6>^`TM8NNp`e`)DXP>(8Mh1jpx{$p5?hK`GC95kW34jA zunTa>LQEmGi3&z{RC)g1JG}C7f$G6rQo-JV>9i3YxSqznYvwWWwZ-O{q^)#dk;u+u zu&s3n-#d3O^1opPoc#!y8VZn!eehrtx%1F6(1P3I6&165-P)nP5jMF$0-fxTYZ<=5 z(x-_Quv_!%$Ras!91i?jr$DUYK&QL)Xu_$H$OfU&A>K+A*D&cgYy5GZz_1~cTfNon zDAg<~3nksV)Ad43M%CCKIGIK}b6C=EirxsQ3JZig4z9s;sAclXDdFnBp+goRk4Fu{3J4&~R+$4^pT4V8!>Os)D5d^} za$5*+KA?CvI)8odiX796wz#~M|T8oS^1&J~(E`glVd zDD_Gfj8J6p;&lju;eh;p@C)eT9S3N#Tu-Rt(ZOdi0=Od|q3VsK#?Hq|S3ldLeOtZE zhz!-jltMbU0}6X%N$ay*wrRbBkZmBcFZ__UmPGSwBl8q)377SrIXiANjGL@cbdAHu zs3=l<3%2GlKz|I2_^n}dK}46A(qF9w#zXK-W7Ga_+~c_()=1?3m1rui7VBta*=3$* z*BY7ur=?l;LJBMyXG7<(lQdOJm!Bon2|ZH&Gf6L+^<$3~I+`2GK)_q2ZK{#Zf6^R% zV3YWI!)RPf0tsGqq~F^)SV}6^ zObaDiX1F6_g47tLCu8NdHDL=Sr0fz$f`=Puu8JNiu041}(J5ag(_5|nO-|0|xJ?k%YONlG$Pp6v}GMM&2teayDd&0QX? z7fkgPXI^cCptR$H_7)!h0{6HekWu!57MZ&?d<@}F{8fqAhz_4_A@==^qC`CdjxzN@4d^XLVx{PW_!Xz{jrcA-s3jxn;w>^`iALl zbVE0t{iCOsK;XsJ@~?XFtAjYM3hEY1IvII|+b7c=XZM*_0;I67y%NE5Lhe31>AjT6 zPpH+!YLh+M`Z_^Wgnr0uO9cAAIy%9ysP~flM`TjQsL`@98K-0CW8}*Qdj?CyUW|#P z$6px7=}KeXY70~r25$9kKbcT3iJxG>bSlGV6fL7D@R$mEN~A%(u| zn0z9|b7+exUC3jLQUgU?3Hla4fh5_9+^y{o4p+YXT07LZ!+tXUo%o<0EIa=OYfAMK*AkaP!T}I|4%Ok)o89J{fib#YD znyH|pEKdGW8c<@M1FfWL@hgVz`I7zHo_Q`3-IJ4e4ZnU_6LY1_tFe1HDOAcvJkCvH zYfKf3gV`hFnk&n&On82MQVkA+pz=PcY=ee$*Nf7bZ(}l&+-NV<%~PTcf8L-c;SUaz zS)zuFL$%q=dc>LpH1gf^$K%Mt{D>Ay7dxz~>Ax)%T?U9u#A8fdx&AY0AiX^WL5XaR zRP8<`fh)A)f8arqTfXX3@Ea4%Zx(npFL`Z0*oN4)k!?>0xHI~vCcbMWt(@oRsg@A> z*DUM#JYYp3+=@Pw&*B}@#JNmV;96@#1kvE3eA)sa!sIoq=lpy< z4Lh#NyM{8C7}GxqzrqPnrp?J6O3qd~Y%_ZkP`W}gWaE-e=#%1iP&slXRA2{D9ajf^ z1PjO^NuBb2vyg6r}Pkdl#F4HKN)iWTsw!; z9Q%GfVSAKc&4HIjOHYxX4ETz}Jn$V&?#DVu)i*Gqe37uqK}X;Qui9^}XA7!Ou9;nI z{ts(RcLqVJyFBb5OVyNs333)~IhcA4W^}K43g(2GO!{ z&IcT2YZCkGA+-}yX&DULw^Pp3wypQPy3TK@QHPHswfTNvT7`H= zMvvfKQFftO$>C?T2ao8qX9PPl`#rAOu>g7@Qm~-8=!o)(Y@y;o`^GyWODh=5ub$D$ zOWs(~?8M_tEZ+pFp-W+os0{!W#W*%Ngkeq>0x`}7o2=1rfTA+==zYc9VVX8@H%K(E z*2F7&J1_{AI9x`IXzV)e|GzzO7DrauO{i_BKYC%NuyZRNMBdpAS5cyEOVfuKpf42O zKw{K%#s6}eJc{l+r%Zxy+G(@mJ^Ssbx6fOoYDOie$c8qWLN7+`!z=`=bXudGS)%EJ zaQ>BbShnlde(uYck2^Ujadn!glN^T~@+TbU$zvUg9bTa)G%gtyOHO@@_wc|HKnYm( zg@G%XrMNSbe8LlToDPw-Nf$ncI6#ut&PB)u2lix@w3GwiNt#5IiPfQiESB+*$qY6Y zp3|)}lH)Y@kihC9->N4t;USJo>Wa zOf;$qPJH-86*dW5Y2Np@7oa8Cy~~~uiCHX>saB9m?iDbk|Wfz2JhQ9e$$f?wQU=wRPSUK zYk@GwruqRfGv-xMh@uuYw+iOH`zZz!^%iKr5u(tYw-Vhah2m8zT2$Li(vnUGQ*51` zf)m-Q3?j>+`mn?vQZ}!;%}}bz9*nD!^UXxem8F@Lu(pri@ueyULr-wVn%=q)=d?`R z#n>KFvi9Mkrh}z0CK)`1o<15{{ex3N*?>4rzv5{(zT<_dW58l+{M=@-oC+$S^u_nh zdqYEZm7qj{}llIUBnZ7P%{w! z$9pZt#mK{r{>Dv7Vc>04socX_Vg^t1iGWszJ@hKPOG z*_Kd3>2tmaoleD6G-&w>9&tcl1@k=YUlUtX>X()gucffh#QT5n7c2PU+Ttv*7s6s6 z12W~RDU!9@l-RmiWbHM${QB=gLq@RJily8<D`X@P|0U|ThT`v$g;b@Mc;n!=&vc3{VDh0m59x4k(4jU|caPT+)gttBWI zy*j!nhq;yG#r|!~H`GIGZg8hd^JtWqiEQpJU1hY}rQBzut z!$^F;P@w`t*|M_IT<=8e<+z!l>h3(aivIW`Q9<#ZS$HudyYzy8{oBRJ_1K4J*WpH2 z!8(PQ@VvD1S3cdJWV_=E1q8|OKcK&7v$!s%7BVnn4)_VvA)k{&5R1v!v9~5Q8bect zgxE@Q{e@T0;en5UYi>d=pM;1-iOXj&4^-9rEk)UPjGp*!KB`9Gx5V9&rciXyxKr%? zmv?5aUSdEMflLS<@z%2rCdfdY3bih-eiBO;hO9uK)Eay&4m2DR} z?;ss&z$n43v;EqF5iV0n_p?GgU!Ic)#%2Z9dactf(gzTd^;M_5_jgFp(SuchZPbGd zE?wt#V76vXxf)5}r}7+C!2lqs2nO%S1JEbcR3@+X`CLRdx9L2xGcD-=&@qvcvuLYO zA^F{G$eVDtkpou>onm`%M%d2izycp5CIDnnaxd8R=gJr`_vmeD`+p6K7M9S`L(j+E zKBRsZrN>h!VwX_ji`YMtO+>x|05_`wv$RdH2S1jSZQT_t|H&AD+0TF$gYs!01 z$R%ix1z+zmIbLPPj9`-_PtBF?G9y!>R5NM6|DjW5KEsy+K~HwUN9(y&wkxr}x zvm|C+xdP=~nNnOT^L17cOKw;I^LPDir3rSCdH#fv>`9|PRn1nJV9LZ1 zv%99c9(SOCbjSC~>p|HhsGq+iLao3Z`KN%GPPD9oeSGqa?w_f<{i_G3<+0IH?@b}a z$|V+wQwX7P^XZsPx(u>T;GLEu5`~TbZi^oA0|NL8h91xlD3s-gvS%e+mf`h6_~VMK zG*2NmitoEb>yFxn@w==GVXdgm_F^kdl5VZ16!z;_zn3#hkNPYqsV)sl)@i zF(aJ&*3_`4K`UsHy*Cr~zwO$L91Jcvn1ahW)3nW3w06G&TG?_2$!|xjmeBm&16J;; zz=iIdau@%2&oI-g9uBxw=XA&ERrEh&>{ngQ$eX;lWSSoWKdM5NJA{!&4HOFNB7(Z` zVLR-EGR@UxvuH;&J!E9FsQ-z?X*(3bo_Bu6K{TUpM$k)iU)p7RWDS{|GI8&h#_xyt zF8MuWTA;956>ECQh0XOZwz<##oVx~I93J+Z=lKhm9a0Cus z;jrr{Pc0FJi02%ljO>cQIj7R3+;IzkN&=q3Jx+3$q)oS9q3^np_Blv4@+bJn3Dtqm z6{&h^WXSPM5z{;7DVw+AucI778+TaOC{+nd*FuK9h&eWvwB%1mw!r}p7JNcc1=iSX zM8vz=|M5Y89xK|ZB%@X*51!0?%BHu=70I4Ni~{lC-*$^7gY?;PxcXBPP3aaMu_WQk+w(cBBSti@9rNl5oBB8Z#e`;8vU$Jc3Eq#kglFB1$j|Pc-zT{s|V${ z!6*49gRE)tM10?@VKVR8k4~cqvcu{`4PFGDc;CoSOc}{iTn4malwkFfzUAW|G_3D* z@oumQa*}uTVifHySk)@^%_S-@C7}~CI*Eo-5P7cGK5(mPev^_L`%fkm6Apu=IA+1Lq19CFBXwM%KZ>dj& z(3zmE+US6{4e!wACM2hC-5w*vY;>cq8O@8VJPqbNRD>#|F5)&B`cYS z|0XABlrBb*(u|a3jw@@;P#TllO16K8Qlzygc~KUxK=zV6%0dxM_x za<-izT~Zn~-hOCKOhV+vD;R8TMSopA0@nSy5d;t>tJgt$mB5VsWiVZ_5$#?S&GR_U zUuG$WqA3FjS%~47RV4mPX3QU=->5ra335yp!B1u$?1bmTPG%43KnU9oGVil2byjT%ie1^d+)^V^AWe-f@ofjkA<@I)mHj=z5% zezsXa+94CPo>Rl%En{?FGr+)YQ*>W7z;L=6RXj0DH7`@cV55r+GvG1RPt zt{XaNI;%#eAcx|;;wV2Tg|tn=NZ%}s(hHLCPQE%r_}}vYapm{mU3eB=g=gShdPW~i^qVabY1g6(nMkAT`9qyFV;*d6PK?Fll& zkd3Ut+eL4MSJZKYmoUM=`}58al=FT#g68w8L%jH61hX@Ov`Q1WW$lI+nLtRvURXzN zg=P2_*e7gauQR8l?QqY0N|EBwdqe2yMY6^@WL6ZQT;l)=6?P(Db_bel)?lc>48u99 zXi9cLOPUJ}t6(VV7%HvSqDXNUsxFV_=NHW#g6^IIrD+EF%--+1bPA z)EPJmtVN2NI>H`3hWoaih9?+khJ5{dAn~kBdD{=9r0Yw$J@NCVvy| zZ^Zmw%USm||ylw5&V(HU0sy=aUjTIZmgdGT*6nny- zBL9%WN%7wgL-%#?ruq<0b>qYO^C`Xcn7_d1yR?}bP9 zKDcG>LV9~G@_WZn&<8SvnYVMYinCB4yA8emJ4p29P!;Ekk@hk)$2cQQNeH8z6{v{u zLT}P*bo%Z@vcy(Y`beT9+Y%i)R_OH-fJtia=VQSJ~4EQ9cgsZEK;vgby0DpPID4TFkz)`^~h^ZN+HbbDqcgo5+2R zGS{PUl|6!-##ZDsv>>Ox8F{T8AHk~*eaNhgz$4}^jC|L#Fb2Rxh&B}YyD^oLu#VgU z^N>wbm6S0AW?6^C?d-Ty$_^O%@}n%@2;+^37;8wNG|U>U$+lB4W-u0Zo@)S}TW1)+ zklKU+5JP$t-51(nJkJv2WnLJs4x1nt<3&zfbI36xvsf}=8e|C5%3?DFs^p9zxL+)X zDf@C9BkYwhKiLSIlYKJ;()MIOERS}>_)r6k_qV~&NE(JwTVNz%i-beA;JkKb8-1JZ z8iFJ0jKO@6PVc2DmOBZ~Bu(RyATwb~Lu)jh~s?O+8yn1ns9{5}GTFHVWLW9o5u zzsvs-A%Y=&zx_YaEvvBNen{|!NOJ;b(Oh9 zHnM!mxLLu8X_>*naXM!QxCZ_KOjb8J%$#Q<-wkk2-ocsx!#ms6(05r&!(WWxbGz9Z zK}@#Z)O9$Cf#-U-#h*h&{sTl63Bo7!4jg0dz?^w%%x43l3m+gN?wM9mQ+U!x0hnLtrV@9!SK1e4b}0UXe~`db+|4D!w(|l=>`Pvn**-z#Q{Oey~^pC&8=IejLd(OAh_zpe< zuR8Q0voZq5klWCAU;9xdoBUv@$v0(045=3XEAJ7;mJEplOm6 zjK@7Dao)~t=$$6o%>Dl<1JK&UM*ZU@Zrt_Ray~&r95+iy(*;L<8Mh3|CZ?A?=CGD) zI)0mAf1+oG_9H5av<$PXc@(q!L0bPbTZVJS8CaEGhF8HExaXcBb2$U+xTEkaI1SJI(^T%E z8AkA){irHWMnhRK^gK6CoF6(*eyd>~yonWh7cz3j>=|>P6n|zKv#cvco$PoTcNr#I zF!JM`ZwB+AjXdiRFTNPT?2I5HRcGpVR<~RYKhv`qP}M-6sv7!K)R1fP1j$a%QAxo{ zi0>n~r`|~S zIQl4JW%!W&b_a^D^P%>}R@6E?Ly74<1U+5@=gV_p_lkdp5e$)l=jv}nq45@6SC+=@ z(2F>eq=F4igSZiT9$s%4lh}gR&@1T6e2N4UDgEary zO!1pWN5plctDi*dD?W@Bi(;(sCDN3(B0+o&I-+i4v_OQV+-g74RrX=DPy{11K1K{v zWS*vW90M7TQSW^YDRSG8Dz}m5y=0GtS#Koo1qzKQ8AI`TJR>Ajy0MZ0E zAa~0mWN%!^vkra8tc^gAF#-~MEyp!5_TyGYW}2QGZ-daJ$a`v>*3+=%M`4Z@33U=W zGMp(3utRs$TN2}KTtT*`6FX@DI`0jDqq-X7x#k!zc4gOP%%dg65?;@Kgy+5ggp1(c z;4JhFJn#P--0uGkDaMy5yGWiegm{WNY%v-mPlm9RYbYuo7y{G&K-(Yo-VEzw%ww_~ znA$#rK_Wk_#C>6!wH~JFTVa;D6-LRMp`Wk`wuRei+7{RqZHHs>E;JukC-FC7g`eB_ ztAL*CMyNg}hqO)4kiYpAMASDx!)*_=z4k)GWj7Sr*S) zVOttzV5aFwZh)%O?y1{7tchfuh6NddOF3m~WE3BZ{V!t}e1OW^2b=iAFp1j&!}yJq z<&c;&1|INU)ETU!x4=GrJ9J$?5eU$^ogCJ2Sp#jSH9YGOFTNPT?2I6}#0VyIewaYZ zlrq{LRaLGDFeuZoyyE+DqD?~yR^eA+>wF#_tN)3&TjoGv?|dlkBla$Y?u9vM^Vv$K za0o+@htT1-9U5nUfavC*pm}&P`k!w{x$Jq?1fnPl@V+`1uJ=}9eMu>-9xeL72%fP< zkZ-hw`kQb-+XyG^)?VV7@96oRRgC>-UbU?F)NEi^82bt}A+ zx4}c>9M8;v5yW)m^(ggFL%PmgG-pMjEiV>5)wyWN3P!1y2C__EBkI{!q-zPH&_)bJ zjjvT__MyT@6O{ov$TGOcW;V^)ktlIhL;R~n z=qOI4Wws&PL>TRb38;^AKtsF}Wl>>M$MQ$O99y39PNa&iMT_56q)BW*z4JNbs_aCq zX`7bQ41swhmG-ANXeW$GxW))0NEQblf3{RqcWGUOXJi`yYYx`k%or~V}15i0f7pTm7GLIcl zv}M>y*~1jRHr;HEfN3md+TUE#cEgo2$w?#V*VY6^>M+z2 zjxJ3F^eHK0KuHzB7LVYebpS<2e@4Nvd2rk_A7+FpVYq7^ba(y?Q!)m_-Sc3+e?E)u zj-OHaWD_cGY)7q=Fh%&c5%`FC1o;O@8^6K2?qP`M6~JD2=?o(n$$d%@^IHrTYyAT1 z7|MQ1Je%lG4u3ARd=6y`B-Ts@!t{ADId6#ei)C6F?DWY#mBod-+>Ch>^SR5>cBwx# zeR6oJ+{t746qCz+E;H8~A(NeM1SQT#VfJ7ZtR$|YvL+QZd4b3eF@>+#C77LL^kpTP z!YZD1=tE{@1i{&l*oH%w^j&ac8ikqu#4UqKY@J4F0$VR{WO`J95Twjxhj& z>F>`SW2Y}p8-wASgNRZ)1T?2il`&r8&NeO&+nk%)-q1TToJm7q`m}H3K09C+vk^80 zTyd0i~;RhyQK~8RRVg)-arelKp6@bRGTTp-T01_{s<9QvRC3KCuJe6lX(Pzf3F7iP~ zZWC0Dwn537Ou>9R)MTfd25$_54v=w>F~oBXPd#)U^eEf0reiip+d{{)83tsC%&-pq z7Utob*z?F>8?%jVtegxAEW$Rk2B78e#Rz88%{n6}rHp_AEa%kS6b(K^zpDEC3_yh- z1DG6VZW%>Tw3~TwF0v2&jEb`hP;+S^icif)?d656F%+Mi$Ii<;JP-Lt=b`B2B6L39 zhAOR_sAIE${p@3;9#?;c`<1zrp?(jaD?h>c(oe9Nc58@}^&I^jRlsoD6yuyGqH)@^ z)@j3k44mG2p40yjM%uw?FXcV&e=|KTW%L_AonZv#54nQhQjvh(_Ixx}$H7D7G?Lvk z$qZH^Q0gkrI`kp4GJ>$8C#={rjfBi?f=ThWiQdL-FrFAU_9gL*qG=Q3%shugZX;tz z$}WsE2EZ`wHqemrqya3)h}Wa{PXSG20e!V0&!u80SZA6c*zkjSYn~GJTZLFbMxhp@!*G~D<6ammf@M{a=f%#$u$Jy72I1o zj8OAH|M)WK9pgs+(@{IPm@Dpt-h+#{kOi1rCQ+twoqa#xLR>c_&q`Un6D%YXWlqYoQgl5&ASN?Iyq;qm&!})Kg)u85EsTP{0HRE~&fN0KhzWGtWB2 zi!VknJ0l29&}NN*ZJP<*0u#Tjh_kqjXp0;0H$M%IiY99UgDUTk_u>NL4$Vc{-Z@BT znTssKcjq@y;`?tf+xQn`()5gdb78*u@3^q`Z_t;20cR5xNIf`EoZbd><;b8bR}#IY=4cD&Lu)ucy7S(mHT4OaVoso^sT|!6 zg%cFbik`+IR-9wJP0&=Cj zHMD1kqu5Lw*-AH2YAKCsFCFCSK1Fj*B+vC`ZjTq-<@#F7fFUwOVw}^09-22m)25*9 zbN7E{`K=Y1Y=$st1jS?o+ES}gTxy2!TxGn9*bj-weNc@&fY4lB_~*#sb?APcb?8H8 zWdz}51V-K@4xa0{Spg&Rghl8k82YTkJ39fWS@5$=nuDJEIw%?PL&tVAoa87|c(o2r zBCFx@WCffbuYl|Ql?V}9fkfdIC{x>uwip%k#44gUP8q#9_UO&F<3hu(-g}|qwh%h* z3t!T;S`n9xD|=N1(`*8^Z~?%Y=RDnzn1qh$^yh;?X?JfxvuZa z%%<`a)X*ENMB7xrz(o52!-&Cz88A4n!?@oLsG6;WFbTeP>;~wNFusdi4=oZ*{nX9S zP23EvX!>m|)=ov~3`QrGvG?pI$60ZnW&(^Mn4VnDE~9&N8AV&ma4xnRXOqWpBYhkS zZ^ZFR!w_d^{7T9g&Lj>|`7<+#=`i0s^6&0u zYXk`e23!-M49qleBVBtNVdQxh4$-$^6MO@f{#T)AcM-Za7olf+2?kD=;hcCE{?9hy z!HJC+?x85Xs|I5fy^nR)ptZgnZ(fQ6J@wpa)9I{2LQDjVbu=+PK#^&G3&scAkr?ic zi~Ros_M$U00!|O5twU{S%h!gti!FSd%#a)xiO3*tw8tGnXB`P#eLgCSG9agK4{1$n z^fnZrvo`Ou869Y1&A`oE8Q}qLD9BDhke5AD;=@ss7d>Oy?)n1QZ`}!lZ+?dL?!9Cr z#WUvfqPxD3j-dt4@5JD4Yk>UhRCqX=!r#>jtp#yB*O?6+HMtm{FoGfay$Vu75a3~p zgs4D71$!YYH4d4vJ|C^uRGK!^2%L^WU3@i8Xl=(4(=E8Junp(6x8kblZYXN(gNDKZ z+&22Wr}t)M1n$!wA7!3hW|-bcs80r=V#1GSS4fbKtw-Li-Ke;;8wIB~eKv(e@dP2q z)rBdxorb)Jy*jZV=Igc zx5NA}_tp*rBd*hL|1jekM;Afo{0f*oJ_yyb%h+*Snx}kV(bRHAWD3gn&%or;Mw+)0 z+J_h5&6C?u7p4pS)cf+7OhNJJd^pJ6hS$5N(7U=0#$+Vyb`CFQO@LuC%dn)fOdst; zjIAVe9`1zVp?OfFvYF-I(eff^=RwhbH5B|-LnC4x-nt9mjWZwKIP&4OBi8`ryjMfS zjLgP=9SnSD1_U4z zn04qu1ZO=!K-xX(--mV3b?8`~#O3XC@%q+D9NT{a?{-FD<~^N-_dHHl z0}kvyi6dJ#LFDQoNC{rRm2C@6x)adivwpaRw)rVC$J-OTYxSR)v2qjIV2iD`_uPAx;m(yy5-l93jf)6DI#MnL8FwU)E{qcu`9O0q9tkbLvkgB%{m>$qQFJ~j+KkwW zo?M2m`XaPfv=U`=J1pI!mW=LgYN?2E1vH*^=6vfrT}YfHt8TZ^C)ycWtqYoU|4iQ6VX z1}EhzfM+Jl$?$0W1DM-Hn!amT;a4N0V1j_@;>5tK4)NmuG$WYoE?vLQH)#lzEm%!V zo^|)zGJ?&p3qJ`HKPDqs4+Edgh%J7ExC$X?Y467Vl|P~+FXO#%Q{+FD1@K_BtpdZX zWfTaPVyL-uK_BM#hwJXTd-HRxt{pe|$8O2W;!3^=Apr^4A zl`lomdg&U<*RDg!f(019B7nZlbMWq)dC(_A(Ej#k=u)3C2;HydqCZxWw)x%+CXJxC zxpYR^jIp(5ctJ_@7B&TkBd8(;{av{zG@TFM=Rcv&Z3{dee}~@aYZ&g%!QRLiNLjpN z4PkmYzi0#vMd+0mg4KqNaND#ME*rPPaor|3tlbEg!$&a8JpMXi1WX%&ocwjREp&DI z2+kD`AWw8PUSw8-KVuA6%Ld?5_FrHG2_;VvlD8MZ1Y-sP*?ZXW(1N{i@YxQr!~94& zv4N+!|0-k}IS1FyFaTbp?-Rhwef+48(qixLqsR_@sRk%>d4&|+Ye>|(f zk92;9wCiHXxbA|iw=uNh(n&N+AmeF>H!iCnL6I}tMnI;(3^Pv?y-{9cQpPjjemnD8)$s}_jtYiXUOcH z&$cD#9$SJ0Pos~@V=z|`gdmm0mb2jpD*H#=rR^sN=&;|P@2!qtzdJur7l#-6tB@S} z29MR2L7D_TIZOgCZI-hJAgHy3j&%)G!`9;=4a>W%LxR6JEcMSIj(($Bg;!IJk_{Tt zaERFq-?UvYArr8V+RC#I@#6Oy!K4`f-+_r;npHPjBS_BFgEjreKF+VO`Qg8QC9whl z8&)E4>l%a|*@c9MS5aiFj;8nk^w;O1zp(&)b-5UzsC%TX{G;+gW}_mfgv0yJV$bq# z5$kKmM)r*r*;sc%gv9?9)^ERp6BMZn@d@C__A^*T(-!O#hM&>_^!psdcp%}w2b_)+ zjD%ldZzoL`%TF1>03Fxy|Lfo2@WWiRuMoiK@pb55y%9M-FTno4e}!Xz{s%71{gLJ2 z-@e85Z@z=|5WcWoRpsdJ_3_ySJ3TQ1@3jJj(;ePEZB2FJf z+_h5}ntVcQ!U!xLu7cg^<#0K-61HbnAmh~r%4C9ok$4Q})AgAn&9e@D$gGTj`RH6k z(LO|w0YsGSgJ1FimGL+QX2j)eXP%T1!2(gec<0hpw2fui4P)&LmfeFWGnfyov$T&}>|-5SA;Iul}@ zgOR~L_J1aGdfF(0ii3}%9Yw{5sXpa2MXp~T7mYoreh){PVd%Z(fk_}RAq){7T z2xp5sxbpS~ytG}3r+Uj#7XA*(=9}?QXD$Tw=i-L)Pq?eL5cky=LDqOP+Ttxx=Bo)K z(KF~(${%|)y+aGHy`X7J%Hrhzux+{ec@bY6I>hE)e2W5t2T zB>u0l;J{1VxN{RdIqDepKZqLJeHh8t!dTz|j0GGd_M^Kre5OzmpE3fbJwWBmN$CIW z2fY6F2ORtBKM?fnC!aX2OteIGI>>iV1zRK^9t zYo!=EF786x1tm5dUvIp19R18oW|M@#<;7-{#Oa|lK@U}F0VsFTN7kxk$Xfjo-1^XT z%t#0lBbDLpCWbqwmcvCx2sx98Ia^+oCHB0n5^R{WnXG#`(TVhb7QEIALjKBKEKMJU zFu6l}3JFD{;16rTPo`P0+WiBJ6u(Ej-pNTq5Rak+OE_gUOd<6RMI|w1UJCnz;cX$wv_v z(?rEC zbEqruA=Tdobwu_>BphYAQ5-QDTl%|N(OQ{{2)}m-_cKFrb_|=hmc%1A&JAtxR)V{mV)IBJ65qAkt}?O8tPs!W@Lj{H!x#96ZC@?14=S5a)DoXaz1l;}T3&zLvR z^Yl3i^;O~TycL1*t0q1?$E^=>!~ffaU|az9A32&i7WF?`W-0{Pxo;6+E`-oPark-4 zV~g<5S5k9<-BB7Vvj6Djwv3b*8h=@{Ih5a~k_yW$J zx(P)pr%2w!R>CfYJy71T1$S4kgPynuEQFWAN|*;u%lY9W!4Zpb_=+w=w)#EvzAs=! zVahO4dlhb7y@PEsvT!p|Lr=6S5F!VV)!*zYi!6hc9MbpONZ3H@aws-mgL+4qv3Oau z)=jm{KQ}bQcpu)!j^g}EJ`ATm!+YQJuzjM2Yb)1bDD?#fvW+p2`V!7J_aVyB5y`qc z&>8;-7uKvqI|&I>2RDzPqb3VClVczs7LHyL19WAhAG?4f6@H9*O49d>ZMd6A@V8g@Ozt6eMdQqeus#%xF#Cml)GL~oB8`f9JD zH})`!R_UX3lOb}2Um;)oH8Le$A!gYVQg$tTc86F%!8y-2{(sLS*mLB_9F73| z@%aF5%Z!Df$N)iphY%2S6r1_JBjP_WMFcji-401nITnl9>n%7`&djbGmh;9MG~EhGV(B3F35_5hqwSo6v(59Q{Kl8A2D+ctPn6B z0-=Kla?^SRs2~0ny=47A-6n%}cR7rPDWShD9StSHFjG5^!H#r{hAW}MMhvx69a_aj;2&nC@i2WF;_aOnug>z9Nq=Ui{7VSWuvL$;D#)kT$Brg*Y{;uqH zYl0Q_h6G?U2}f2#28IhX(Gq!vt?P3_&`QQ$o7Qc#o!^PJb30fu=+wM{AxbMv2;#il zHc1FDKRA*zWof<~zSfr12$GXS$&IeJOjP`iDkI2tE?J z-dGr2*~O+$UYdG_V3_)0BF|))q|pT(ThjBb;o^1-p}LU>aDEK4OE>WTwkOI?SfWr$ z3zd7#P_g?RO63gE8lj2)qSNTlKY_lgs~E`Khrayd=xe-&_hzpspBW zeZ5c?WQ;ODZIt?GPa${)t?||*0O=D#(4H6cNuKG*^L&UP&1LKmMVyWRqCF%K6(o(| zlyx)efDHcM<`Mka%S?qJv&0B~$!l@x#800PwYl(g zhV>d4kAWFFYK-$|C!2>`D$xJF2n8vT>`>LVja%UUP7VF>cQEX~38MiU(UfS2f#ygI zwML^k%?hLb>oFL13?1chW8T2jr+Pjw1i9#JEP?qIMfm94Ku^94`VwEDJLEP7^KCFx z?uEeud-Nx(p*PEf+K54Q;6r42X-|~rI!8dBMl)I5ok8o->ophsp=9WkCE$HBaZ2nv zh=-z=X@L*Vjds0Qx`{k>F!C`GYOnHZhdGv{&_+`` zmFG)Td1(+{qQdnBa*c0t7Xfa#e;nybtGKr{hFB5#uo0llhrDM`C5 zib7!b1EeQM!RELq-tL%Bgqt#jD1T1~#?fAtiGifYX!E#^h&epSpSKWsgycDk5dYI6 zG`t}1CC`EKa({eu`eboSRTgp+++ijviZ}oD6ZHQ!8#;3qBH`UlR7IQOh}j+T5G>gF zv=4DM=m_vJiX?o5PSdF1nD#DiBC@$SJ2)91O4PS*|Weq1{IyyHb&DTS`ox z_T}SHm6X^fC~Vv{rQG(-yYO5^9<~l{SRf*c1@c!>mFADm`g91(pT@HF$HXI1f ze>)r6KhA@}todxHOVDT5zn_bD>WZ-SR)M*v3f`xvAwSw2btMUG`RVm@7XoUhG81)$ zvB*nw!^OHt94Yd|wi0)2Asj0ArMNIC6mzzB6}#eWlqR$cw;?QT8=~`-ep3**^`YsQ zkr1R@KF$*DI3gyk$C7d-JwMH{__>h%?|~7HbgfIM{#m+FxM3vA7=AC00jZB*eO(F2)Ij^)tLW{krMgDgy8F7wYv`&)LtQ!| zuB)*^z@Xx=C8`fvqSPq~oM(JEOMY}7@-}MY!*zEwC#9gZGKY|jlBz=Vw7n+_BnK^Y zBQzIgptH3DwRYiXe&vUzXFh0p;6;Mrf!0Ufl&6`kkCC{x-YyuOUjf&1tB`hgJ?`oX zO4936+ zL6FN~1Z(rbKTHC#TKotPmPBa83Iu8JBFOveXQ;n)nW+%uS6gF?=sfl@(Q$HRtZtTw zNemF<@relh9uP(XLFMYbY+&~20d`P*jQ7BJ6^u7AnaC%DNk_B?F6=wTw$ET(2$(sD z>2Vw!z{!n^ap9gW7OXsg<;%sPdhtANUB7~V|NGBavGWY_?Tj$=S_^$I)KTJRh2lsj zl!rK?B0qx2v*tI2pd!!>Rg0FPjp|HaDv0-@;;1F!ZzeGaoy~*y!po7jObDrm}jg#1eBZ5j0ow{%64J zB@&;UWZTV>|M+B53Ssj8nXM5(zWD|W_-{s*g(SyvCyRX?eeER}NqvRUs$dT3PX@)I zCJ6e<`{{!CO-btu@IsHXJ^BKD(H|X--tNjN^_sa}z||Ma(0G$9dyOE}-*QK}iXHNI z7_fvrzO<2*-}KTCEz~)fM?Y)xld+#Va8YtN#pR>Dz69OPwH#5P^ps#v7(BcK{d+gj zTE!{TQcW(fb<|jmKy`i!9Is2k^VT{fsc(Rn&aNp#Iv-&{UVt-s0i3yk-kMCrIvSy~ zB6VVjh(RZL2(8JEZ2swWlmx#(M$m0|hKnQ0O9FmTk_bqUMy$Co0%E^@Yv@atnF>K- zni00HT{nqX_d{m&Hi(l2@2UBMwfMP_{r?2xLcw?%)gD%eHr6I0eS*GVM+}pf!Aw9i z?XQ^R5ip*{xDZUkEK1!dW>D9VULX;utMvZ7GxZa(pT3JbNDQ?~14 zyfD~ZJ4Fb_pZH->o5zBAf{6KMPiK7rx|)j7P3t{m<#&^(z~&jxKMl+aZG9aTD1C7U zqpCNN$HR}TS#yxPU>?$DEkOTK0Sv8QLSFtXydmN@B*JH)!;=4eRs{42jK`q$*I&^X zqKP8%#NU@DBR0zq=W2uSxH<%BWl?xvk%*KO56Dj<_)R$uSe5O9jm19LK}P77d?%Ld zx8ym|wmXYWIrf}5O50ZCimin%*pTG_)5MdA%2h&S&Q64;Y==+kKCXReI{vT_#2k=C z+{3Y<8tu!USn`z~YAj(_d8iX;eNx(=foiHd{;@LKeyptU6z^mlQ3Ta>0;sPuLRE!6 zva+5bDMb%G9c5&>SE0A95U32CLh_@P0T@ULM}KZOYA#&Dhlh_*cl8=t-E=sAKchUu zttsede%#R%hrSQl98u}4L`Q2O>_TK=AF&w$8Cwvgdz1ADYOlGnLQtk`jraFF(4!fE zzWzaU1rnJTWl@KvPF$Ubvb1QH;G4>`(D9)fjis4TUdn^g%y{b1Wo#aX{FyxMWVJBg zO<}x-;lY07m&PLZxfa}gcOW255nf4~5s|k8?lE#`ihVam-WKS{4`(g@$z$kb-yQDmZ=p z=-d}CGZlj1AZ=`y-#LX`*R529uz)Q3LYyYZyV}7B>87ty>-G+h_wB+p#m(?~dJCgm zhK(j;ge?5goG`9wUjkM%qTLaos|g9N9>G5H2o}QQ`5|~~o`A=T1L%BTj6nTM$cuA9 zsm6WuFkewse~I2APmFdKqR-O`-I}k^Y@~6-rqWb43^BfeDC=iP^D#t% zvnKqs&mz*|A%YBVAn>g!>hhx5e34d(QE4u!@%i=fgF3YEGLoUadsV^1kAHH71MbpSSwS@s(vMKKA@=rRM9K(%A_NTV*9gMZXY(iS zQY7;$$fyl)^_NGO|4vj#t5WBGhfz}7QStyrs>w@WM1n9<>Wh(L@(RklFp_75u9)Wt z);hSqH5nH?q zEv&P%q=t;Jd+<+HfK!Alt=~sr`W7UV z(J?cabo|`<5I1}kf|&_HfZrPuf~n)~%p;@wm|>bow+TXS^|8UaU+1B~Rv(CRXOTw2 zuyOt(WKlSoyhj-UNv1wt5Q)+J2o4f`r{Ss|NXpI7Eb@(3_LC1@!Kh|LcVSK%Zyo0)$6n1EZ+tAQtw3B6@c$Yk4$``tq z7gdq2s7>}q(&OXk_~i2u95m8Bp!ofFFeMBBH4%8)+y(f+D};7IQM8c=lq}>y{G54E z`1U(k-q?$#h&L$neSw}-19T<5MUvGm$b9p^p!nT)tS~(NaW=<8_+R!G*doTy2QJ?jrXog#L$+X$w`V%WI$-?>h5wnb!YlLSQSl3=x<2Ob9{pi!-S9 z9`gps^6zi0XUUCO9G^VJHR0vx@97zf0a`KwJ|Xnaq0;RcDx4p&A-D8IA~n`4xVVcQ zs+ukY5fpdtk|Yw#KR!;ykhXvDRv`W%Mw$76v5DZ(xVxxJ^+ID4=S8i)LT@%?maL+7 zw4|7``G(?&2uTEN0%WETA2&oZe-Mk4MZsm02_dLDhWyjX%biUA(~&}6^5n7+Zm9P#M~u#MbOkxE6VQ{>CqVH#H!870F#R!B#Z}U% zE#O%3%x4=a3zLwQ8O0)lke(8Zgg6hxMmr)p(jMt=)i6K;(5d|f#W^8d=LkCL3Q^2_ zHhK)DIg#k1I3}&TE+5%h(a6lAHVEV4WMpJUqP-@EeS^3nKNOd~`A?Y4T7Wk{&Lv^^ z9-9eU|MK6ci+GLhEPJ@?YhcfU`6%&viuQP24&t;i&{m1wnj~~286e;N3FQ9cudE=v zy1XByiEb?UGvs`_E(j-T0-#(I2$lK}Y|eJTMk4a%_D^ug&lsPit?TMW;FM7&N7#F-E)$U194$nhy;k}cTsr)q<6hCG2QBm)05k0AK;A=r!a z!gsIigb<`@p63h!O(N&|5MzvvjEqs}$E7tpShn*4bZEr+#Fu868|;+&4!c(UfUOdL#b(iOFj^E%Wy08b2ZM9UxW08WTK#Ovi1J3Z zg*FtH@ZjmeJ-8^pVagUstMn?zifAg?@lGj}b<}=jMwy&Y{!(7Pz$6wGKrOlFkgx(e0TDcyY+cyyLYkd@fF|@_LLAvE_ z%Ci=C)~-WGqCUJ{C}YRp{)RK|7EsP~!^!$koFI~BNc&i&KWoj)X4xXPAdU>aTxi`p zj(zK9p`*44%@sLZ5$$71ec&5Z=EUMdSr!`0vav4Hh8<#J>Qt@`#PQk?oUISz+J~lN zMnVvO;VA4Scwx7EDNDQz0Vk0~UhS>+Z&lF)P_y3>tq;6eFpER5A`!nF0@Am@JwXnBX$oxJ z-ZuN;9kFFf{l5jqL%6tU=>*xI-LnH1E?k7lg-f_}=_1Z<-8hlP;GE22gi)D1}WH#WgttcJ@iJ`VA9@p$lvD(cK(zXtew6=w`og<`d?Xk+<1*;uhvBJg< zEA5>iA8#G6AM4%(_Eiz3M@I+xH zE{KaETK6J`hWaoxJj}t!DEg~n@K}ZquTPvpgw`H1R_~xc-3UtG{Q%j^CsB|W&pwXY z)l!0|*=|tnPs8=mOdPBaMqWx1`jWHJpPYk%jQk1Gx6!?i4a>ekVRG;kG3cr)LU%?s zx-zp-SDFR+d?#EPOvh33Fl5PVu}C<9=sYE^eP}vnBm}8rlf^DleB>D{L+IJ<>==Ey z%b0~eL(~xQrO-dmWL=fIZSp<6Hb$iGg>)d`c#q6!QjmR9{Nl%6gywZbEc z@1DdKSa~XplQh>o<&4&9*eRa#NYpIA*!$6ylHzk<&X>ECzzbCGV{{62J+w2;<7r$2 z|5K`omB}%V8J_<3L;v{ffEsZ3XmZVc$(Ox>vl}*koyhnA!ks@t*$KbVqO>;%sS$lX ze=C*$wAGLbNPr7e(bA7T?lsB$!iduHgJT17WKnZ0ohnlvAeYW%OubeU7wGZ$Y1NM= zV$`wMUZ({*AjJp4G7#H;DBoBPZQd-y98&=v+AKbRNlyMPHX7h%?A&fFc5dr5`O+o` zt{HR1mcJfQy%L~eKR2C-cB50HH!?yF<~28(`l)7oBESkVGX6sM9_GS6bskrwnJWwm zk{Oc^gnJg*s}Ia<%CPLQ`W*Y;w}dA|NXFWL3SNe=G=7HG@CdEes)WJZ~sj za*xeqKmefGbD~$FPDK?g0K)*lZV_+BoDuYJm{ z4DaV{>f2Zm>Z{4_n`we$EF5X*KcC8jF2voAphd6DlrixM8;g)|5bT-evwCp1O#}IJ zexnjak5IYhDCW7m={LdYMA5ht((A#szPbf0_hQ#uEOx z(rS9Bc!Tx6Z(huI5l-i>-Dk$e(;K+pJ=>hQ-(%fzwGAmatt1JmwQ^*N_?c7oy;uz; z<*E+dfE(J1_^wT~bQb=+^GEA@@Ug|4sSE1slCX25zZf5{(%fkn!*Q zmXzxV{^xyw^1-xUuZxYWVoeK-&#SQrWtFGxoawrrO^ zncV{}b&(lCgNy$?0ir_L4(O>7qAaQ%#<_2$>gXw||G}VF8U*I8VMqp|C8~&^C2s#- z;4>y8(Uv!5AtbDuTGJ8La-k=>tEpUP5FnY|78zgoqZe~&V`uZYE3$ccPuJ*kN79B+8O@Zk!ruF_jM#;E@&UiA*|X?GI3c2L3F--KfuEoFN0 zXH!Cx|JKYw(ue~mY_1Pwds_Rm|80a`ecX*mjMnmL<&ccbXBGkz2(~g&v?=9}znR}c z{0m9K=y%%HyDKmh2cv??3l2$j9W>UIGMDIp7JSn`m5<_XNIEnLJ*p-Ome0_%VRK^C z7Fhk@Jc!3;#g8+7V<>mK-Fa%k{07y&7RYqF!)d!lQdHU?w$A|GnL~sI2e1IK;N7Yq zWhh&IBo0Wk8Aa@1Ws{%)rUcVt5q_jcSQdT4IAepLjUd}01C&|}#8-x&$2RiCTN`*L ze=b5;<}&Q2l>3f6Jb@!UVSS;aj7l@hbYBM5g1}QraTu7=T#~MU#Kj_Lee#fIqKt28J@TxlI z|4@EQ$!eUrDnNGggSwo$pDFy1uv%vXQJz%T3``h15NQ3s4*(~KY~_;7-G(^%$W;MQ z(#!8v+0)XHBI34E)0b?`h8URs)CT1Dksi*UsgcuVy{ zHMM2agb&d6cWyfs2E}7DQv_^mf#0z@CUf|n3Xu=q-*5OLKXZm>;}yIK9FUhBChh&p zJ)l!O>_d$fIRF!y00Oq7%O%&i9LZ-?98P9qA~(z)xfRSGRsDp?iDxeVQ&0NJ1VH-N z=CBvci}ic$Ju;ZjV2nacpR9Ir@WjhuCA#y&;_~7!TU2q7@PEWvzc21yLi%d*;ADs4 zhpxe*uKgnm|6C<5{T%ifNXl5^2^&S1wNA%%A#3V+vYu{uo5a5H$6a}qd&foe&X8H>sasq^bBc3?%^aPoPAO|H$b%@ zTApyD+z^xtCowXGg^M zGB9LI%m(y|-pVj~uJnVfSQ}vMoQ7Yl4R7>|0fsZebgK*S{#%@%hlu=Z)`G_LiFrUJ zc1fJ4DWdM#PCHG?pnbRd zk2zJ8!PY_*EZ~O3pmZW?v8CJGxjNR+d0-SXd0$L*oIva_^xmu=ppCh4RJ5m$GERNl`%rRtKU$Gl%;F2X)14fgy^LAXJ|8Hn)>rnruG z6_Q$hKEa*&eNa9L9K_ z8eFJGj?~O2s^pV2y1{M+Q?wNtI2w%EO5I)Q#tBOXBK7>>uwGlXeD|-tKM3-TM`9O1 zI@KYzDFm@R@|$zUI9-9vlZBiv{R!vpX2UfuyhRljv%hCc`Y2_-mkTeKPP7WG!lIgWOMPA=A`>0tXZ zuO@qSCzfn_WBxx0#WOo3HA26+pcROhe&>Ix>_^5IgDm58t8BKN6OEo|7~)xwvhVB_ z`rXY*qth3#duHZ~HC9p-GM$#grIp-P!u}=xLoj=6T1osHGMMWJLbcxz3W`S*{!V!9LzI?6$i*CQLz7yyJ3XR=;^#uW zrI2O$lH5wl=#(8H<;kanL(}fLvfDJ?uRem`^O-z)$8IIEsCUxTyGm~GJsDLnuQ5L> z-{q;A@r_7I#t*Uj`+stmf&6_tR!nfx_wr=xg!+ELozs_bN(#s}a(6*ssAC33NasI!%0uaKieD*za(@ zW~yIu=w*04qaUUop%{PM=wInPz!~A^!>tzKzJkP*&--ZkHv5X%p@i{WhsKb7MEM>r zAL=zw>V*y7Lz%H+p39mQn7Tq#c2)l{n7x#)cFnj6)X3aS0_@0=s>c0|0z;Fas^Gao#=0E#>G=HwwF5rUzJZP%ozL&>9??vyK z_srjPeggrNI1nOjzf9|UROz|`T4*tt{oLF81LP;!-VPY$Bd-e)!`0Z70cr3W7Go67 zul$nL4BWuAWp~L!V)ONYG)Lk$j^i}2@T~%FAa)QHsGndYPf9QF#Z{Fh2a{+%JPhIq zihsirregjlGbKoRn;}gNO96Z~r++@Jcr;7heJ@jPZqn=4^lDshgDDuHw*Iy2bvBICHKlG^}36hOr0u4w~|p1-{X)XPVaglSFF)a zfgZq=XPnb1M`1J>LPIKgA-`6vrxf#NtXX*f6p#lDEw>PUZkw-mg1rbP(jCadW#~DL zM_d7%;jd64rr?OBwi*)Jy=TsWcj0!LKqN zCBXc~dEr|BIv05*@M+eWK3OmA`l6MfM#Z-!^)__2k~Dn4z17p7PWMzXwI8sltM1V_ zUUR9?S>`-uCqA%bTc@BT{Pl$yB&41l(E8@cJwXvFaT|rn7T8zO8ENOSxNY1xxMDuv zKuNvW$`zEn9iK5Jx#TuSql+k(68sNYKa}y)mg)7xXXxYO236gMPRAL0gE|B_k{on= zha-vAb4}o@;Csfg97%cP_o9zQW?LpM^%Xe6DZY5Kn}Dh$_`~#7Kv3vy&tDb;FXm2Z z`|_ei-C)g3mVwDb!~-rI`)&C2SB%Mmmz4=9-W$vg|7Iac&ZUg-x|9IS_kvPCa{0Or z@z&bUCV7uN@pNv%T2j?ogmq}@VTC;RmQpKkyf``}AxEfW0+8ug?9nl5laaTAnt3B+ zVV?ay2Ywolbbkuw?K4KRpmS6En*-;x=3K6|SrmYiWWcx`mPV89rQ?6LBt`d&tak*z z1ahtce|Y*E)7=3+qrpz}h1o-LN3~hT@9`$s!Tv~MmYot(9i;&+t^$Di87Ne~tyXVZ z4BxMDswN3y_WSdBz<%APnus(&0XZ*@<`39neDPL>(?^>dF1_OVr=k-OFe6(3n3F>R zW+p{cx%`4&RHa3}|LC|+g7dqA+3ds)FK~oFSnuOjpCaPK&Oa1C)#Uwaf-?Tk5!5Vb z6dyG?*TRt|WKPA8S*h05_)Y(EOwo?|dB503;0Rpz0AbY^a49y4T%WQ3rPWS`-J^wD zragNq2$?~Y=cE8nG~%$VaLL=h;7?YrUDf$cI*YFQjoOK4E5Anp=ALgszx-nl)wv4;F8q7^OttxsW|jYwn=}N&kjyoo}6RWseX?a2t@Vh4|oJGTg zOk=u9H%PlUGn9LgTgSe!p_Eyjhv1%u;q|+~f7|XUh6C?D%|o>l@K*EJyP0><1h*PC zj>|(}Q7AQZ2=X!msAliS8u2QM+ItDx5cHA! zK}24!Le|sbS^r%YFOYO)&HXb1>4iqNt*O;Rm>OJTyI(O&Z{#|~uU`KNL<>LKTTAQeLq9WE}Z+gox2Q`KcaPS509lk^3P6T~OfOJK{gJ|h{SL-`q1&A2eJ z<;oGofu{swSD)O5WJZ2MMkAZ%Slb}omDzX$52E-78K4a9CQxnE&VKw2_f7D>r}#di z>fU1GU4T&lc5X4g+PufHs{54fGR*%N3tR8TKo_xL$opU34ZL^b9RYgJ0Qis5@IS@{ z>)?AD|3606KvZydUL(r#5B;fM$H8BvXboZlKEGLP;X+z%VWK6vMeTTygECcea6=yh zR7;gdpF{$Dd@!IgP*u{CNUqQ(HqA`Nd1xO?|!5XH`MQBgsiR%yM7&N(K?5 zTqW>_Slx#)La7P9-g!Flq%J;{=fY-?z6jd|RY!B}>78 zqm;Eg3w2Ojc)L&kl~OM{P=`zcCt=S=i+JSo7UFCnk$RR2mk}gxN%UcbEUi89X~+Fx z_-K1&OxOo&vOjttw&dmOTFpISE9*%9ixK%%&UyQzHbD4MU~BDXPfOmOX;$KhB8v#0 z@8hl6v%&K9N!tAOT^@%1S=m%lPQ-3L>f9~b%U2RZ*xh!jnTEFxb9>8FYd;ejLIwTWI_gdszD^ zq|sD!Dx{P~)uFQ)dmm4t_=TdMh(%Pnh|LPieOf0DdVl)?H6|*zA|FOV-`28_sH*Fq zP%F_d_D@fXYRRGbnA%a-&g9v$DRO0DD54(atX`l?IFh(+^O)>n{`!Ta?z;&H`1?Jn z9L*KTt{R4&{|fYz4?iGwuiL1v$+Cip%9t0etYf|Bb@2`U2<{DG@~Dk{W<6+z&Tf(9 zt!pFq84Zj1W56^hmEn2aUg*t^%E0L&`*y)`k|*rX3)1kJZxPW0QPLnH#Xt{mobOpQ zk*@sqIdCoDHJr$k#;7u0--qW?pye*)e}dY7BKV$ox9tI#FaYi^Mh@qE_P_Q)mnwry zd&1w}_8_Iae~gLc|0rCgJ&maE$jGx1}1Kq0ROopr%V9Pdo z3_u~Qtkvevq}if@X@tviY{EFj>ggPRC?ow#ET+Hc2Tr_-HLmmLB!-TLD3&h*to6hs zlqlNIh=aF(y4aAAg;AwpBnMmSNyeoke_@EoWxhcBB;g)+(hOWuid5NY!f6~_s5KAz z!`drnPPtmekjFbmq8LP3&W0M_v;B6D<9$jZp?u}VwOiEtbZXpexD=kx<|b*mF4{bg zRv&At9T@RM) z*WA2s@(XwJDQ}eGY$Q>10PY*_U(WwdriPe9^`!+FM)KoTz;F$73hiSoP*v5B>BwrE zt`F;&x0eF#(+y;=|KC_nM!j1OKC0Fkt4F^ZX{+OAxV1Vl@`kokzN4`#yx zIZsHrm*L!=Y-==Qzj5!GM8&G%GTiDt_}a-b1NNfrK=M25%HrEDCl*OFHK<+q1B~%q z#=-nDl}{8{K}&S8TOpx`tZWHSc*0G?y6&ujCT~Sk`ZqlFact=G5xL#gAHt;O1XqFmNLowM142Zb5cOHxS*`-n^Pl zydGNqD<7s+RKg$Wn!*OqPQZ|eCpzC8ex2# zF^($U&|T!bEhn)>3ny65Tf8uRG<$6bWd40V?|Nfgsa!y79Xt@`T6@ITvbmo3j{J@4 z>zYGCXGrTH6+em9oRu@M=JsG9Kb62JdUxFCF8#rd zdUyrgF)6rG5)WN)%%dPlZ==rlT|lw0`_yafD-EcB*hi-lm|;dcL@2&kkdDG35WP+y z>nL(ze9HGZc+F5AY$Kj-6)C8zN&o0gYnZ_r@bt7+Q}$#&+9e76-2)5+#Siv>z?r9L zVDmi2y#hO9xBjA_X=F?!j<>7Bq$GeX9Lb2^wur=|_+*Acar(zb>)Y(LAG{;L*u@gQ z{BAaUq6p=v8hF+?N&RCzM0I(B76SAsLcVhY4f}-a@`>F5XK=arI zjSGQ#by}ifipfE9;lS)HNm|>IuB_NfN#T7pi_>DF>W>NdOP$>IE%n%xX|QzEWkWB^ zr0yJpa!wQ*tf`?JCHr~aXRiz3*=t*8z-__P6RiONo2p2CU#Hf;T z`@x}YV)b3V{*U;#hthLzVj%G6();r~`qi^l;e4lzv_56vsP$$dAv7QcuQ~gf6;+)~ zewxxzi#&e#WsP6z)mUbJ83)^aeY=bXmNAlM?L>${Fs-d^Cw5S;(C{Ccc~igDee^SV9-u0{2cd$xHaEo?L~oaphQSQh2*PW75~zY^K^ z&6zw6-3uZ6S(#J1j*>rbLC@so6S`*R%fN}xUlx}7Ge_HlHKcXQ4{kubTIgA5tZ~M7 zwzHEGVsbm+`t~Ny=&`dr^OiAg*YV_qqr)mG4`6k+B!kWXrWEc{r;Gh^*~1V+#vIDu zKri&qvNP$S2ps(p$9SqxKB%Y$+}mB~SEZlg`4CwjGBuxAxq}7;i8uaP^8=UHuNiCTMnfjM-uQ zGBBXnuat)m%5(Ixxpew=e??Se@HFIkDRp4M6dZQI4YB?@zJ2BG(0{%Z&pdUi5?Nde z39^2SCuM>mvP(9pP`?U@^o}RR%#Gp`pqMeIDOT)d5iCdr=OlGXljs<23P!Xd{Nk1L<9K4B5 zK3TPA&-c7TtA0nCGU0UmQu-B|W^J_97B|OTcQo<8{+pVHnUuUVV=ELmJsoT4nKf*p zwK8sSG${4Zocu4uNlqHm=^3M4;p+Fwh$rCVopE7RMiwRK$}I-PY;3g%OEme%ONvGx z6l@CluX1eKK?5;%7fKgrrE-x}N3Ud(t~*&ddWxG(Y-`ur%YTiL--z%8x}*wE_1WHT z99yd4V`N^Xf5)?>M{xX{=u+|WlZcu&y?h>?TDf6na-9}>dgMPwf93JGaaw96L4V<) zs6XpHx;550dq?y%`pM)zxt*;WcZ9-y)px@saINRf*7To^?^1tSPsk&HCP#Sd*u1$> z>~$%2TTL1o%M5b!#RNRe`^h+Y2+w4q8n;~8Rg2v71h==wxO2KJ&iaB!{el9r(XopB zETX6V@$rqkY|z>#Uf{G4sg2!CsEJE$2RUo|;kM2@MfV(NF)k*>c}WVkS1!7yRCRmN zMHD+R2-xl@oG=i)_a#&($@xR27xOsYCqNHO`_B3O%$f>~gHkZ5^pbN6a!^BzPy3|& z(lK`i5~=+jnSRY>Lui;0Rba}KXQe&=*@d|ON>kMDb%HJBXM83pkoFlZ# zKTj{~Ot^Ns*81uW4b13Y@!%}7idq9O=ov851C#T6V)eL0pw0Mdv|pkqRy>9{vZI|Z zaj@2(gTXgsn|>!}=N)b^!YOZ`awG39IRt)NwjZn;%V^c`QNqsg*`mu&OFal=YI65% zAF`w}G6xKN_tiPU&zqoAI$#{i(u?%1jmxBqU5NgB?&Y5J9a;zUb3#*n#3*$NsWaRd zw)YCv^OL!5Y%+2##WzRFv;4`@XQ};x?VL1A5pCbfKB z+V^4$KDL#R_o4UXPoJ9o8!-_eR*w;#ALRLg^E7>iFRcGo%=NPUJElD~{&dMt{6BD_ z_D*m8n4(&DY#u02I?9DJrXZ`?{KasFuX-2yig$nmqPU`Ws*FGYk{`xuB{R=|6XUNm z0Qx06<0F=U;QNoVPASr#iV2qmP^OpkCt9{e+TO8zMgV1bYkS67^dpJ;YT?uzao=+4 zq2No2neXh$>0{!W7JPxfo`)_o8F)22`fR$4NyUvG3F=<+qq@JliB&WcyXili4@nT; ztpXg@B>)&gS{v;}*YsO#Gm441pt1BbqXYtqx_{Y=#5In-@j&D=xA=4 zTvV5WP!u#S64xBYICujG>|9M7YB-YjNs4XFy-Pfh@C%5!+)tV*z~-XVEn(B!YY zkcFVzvPgAANNrJ0)*I*g1%7|JV1ZW+#w49V^d+0S!927{DqL39Fgi(tw7(yvher=! z@EWN~+5mq$A+o9X4gMN=%W{1g^UtG4Z0rm5S3`ESb;J#&L-_InYdY-yL4z(Az!J=R zCGwT@&;bLai666?Ox(DdLj$noZ`~Iz2>h<^;%wMF^h%ZgQpX?zi6e0Wa5hJm`_xnzTJ^u3LwU+6_LIQ5JF0?=yZEL$tkXrBQn&N`-rP4@k(*rU z6@`0HQVvVD=cZR_$*$<^I?9)?tVWM2=#@OX!IzI%DKN1mmF)M{Pto;E{d`xuzcy z?CB)*uc9#6lC+P}g0np;BEVCNzyPmFG;!5uqQ;fH%?qgLOvV#u9}B8cng$91^@$d2IyKA(zxX@<8elA9+eRO?S=hLXX))lba8Y=T3vpo<5 zwTNO%K&hjt7ZY&^6*^ruLjIl;ZapGNX)CGaepXs zABzGpKJh@F32U&nq-PZa-x?AkS;dz25B?Wmo-}W|(oK`C0&n<(0tP8ZS@7RoL@ymT_DQ7OO=6QtU^o!Y>=0>wJQf z5kWEz-0hK^#;RHaj*$p|DpaS@DlR=Gr7kJ?KY_m;Yz+|=MO-c&{x(_WkpNDqUpjvdOcHhMfMe0Lw&d&kR!5pN*YY{V>~ z#ykeWom)Yf0(*~0vkjd&zLCstB}if^zZsp&^hED|*6j;>kqR;F#qZgKUSm|~g&T3y zwjoRxdl8!Nap(Wu9XATppUU7`BA2XTR}JEb#t=~QEu*W+Hb1^)>bmAo0|v?+;$;y*6a)?+3yU5QGz<7*`%2U zYSjFMLnWPe#dI=6^TH8uou}1+v}cx6*%rvmeX5 zmuIgwlwZ()zHbVC;wGj6N&+{336rt3${IbrP%mD26SxW+MCiwQR9{VdXI^@a&%2GN z!^vbBiVq(`aF|Jr;|~bN7WhI3iW!)Eo4t_UT#g7)Id`{xd&S$w^#Z3N%o;V0vr}V_#_+?Dc#h%iN0t21Sow4O6K*Jv8+`Z!Bw|?YhjmFF z^Gf36cFy(~!>&;sQVE#@ib+M(P^$7-ZHazy#EOmU;icrr_YG;n;JFGO-w<^{ALqB4 zNi6|w*G8*oY|`+2CB8FI8KV(^KkBj2i~TMeG? zHsuc<>}Eb`I&a}H)JYNOk=IIy34MC?MTc`n2dmlL=|Z{JhrbD0qVb{9I(*}mtCSp> zouxu}CL4{PY8FoV8v4+zANl`tRV>c6?kRiF8X?Qqz7)G;Q3-1#1txsRn3WJ|D#KP` z37&lU;CrQhNr*~3wJ#xHN*$SOe0Sr*28bOD4BSP5*zl6|R_%%FII#p9jKfb>`uIcsZ1zD$BIFpE!8TOKHqofwenH%W+t~&gsV`+~&v+G7H>5mI*fwo$Y zZx;RxWfsv`zt|F+Ll#ts>zy`r%Kc8;`x+hlqAU{zUhA(gYMRXX?4Oc!+b<8Eq*LUP z#(HGW=RI}yiNHK=^bwcrOqJNR!{3blE#3<&sBIXC&x+Tlqm9`kyjAU_59LWmSrjbZ zjl9_3^ltz78QCwkVTu;ivGW>+E3=zPR`inW*Ob`d+xx}Yr&wQv2B(ngmT;y48v?E@?UFdA*TReEfm=i$3&i&9D2UTaU_` zA#eGVqZXrF^7IJXzR3fjOh&-SMG8}F5-)em6^Z|uFZmqCw1Y$I2$1)}&ee9=n<@ia z?2W~?Nl9%1`4BzOYagE^?LT)&AI9fN+)1%DG&?P|Q|Tky=}FQeOJxx814o@lA05%UZ+ZX;$Y` zTyAO_?O%M^Ij-VeyNK+wO#}|+?>T1XNF6J2^><1rkC=OhEo`~NnSP7HbQj(UebA&| z?9!r%9E^$z5;Ws-^S;FV@PD%e%=ki-STLx)K6%i7_`|iNO|R&SepF#asO`Rk&J$7} z+clj=hl2ggzmKQ)>82Ss24ShJfu(;;!aUD6-s!yLF9^~v4ub}vXs?06ch+adBFuMu5T zN>y_Ax-ETRL9)bv0WkwQ7OyQUG|S3crMVHPMM|+Ri`V0%%>L2mX6IAwn4=GIb#x!*q#r81i zp`;-uj)hq6^M`gFiWFY!@@^D`T6ZGw9$i3h;*^@Lx~Zt+me(d;={~XAQj1G|h4?*G z(HV3AsmuJNBY&HMY2>%f1F1~99t1w6JV*R$kXLb1Lb^G0%gdoh%eu#98;SFecyc0k zRq2C-;`8oRqCLqfw!1C@yfB0lOl7zd2YsYvQ~4E<@r7}Ngf(iGG}eADS~9Bt4zmIB{GC*C98Y}i8oU9VP)uHVy zNL@Q@A3;)fBXP%spo%B8e;+?AZ=p=#o(E`9C`SFS#n02aIQEvvmfa?{oN}KJE2Hko z?JyYF_*m1dVnzdM&u48s7gzF{^VT|c^<aR#CSPexXUo`%?b^-gEy5y*J2+kjiD;nc*@^3i@Jf;KG;~YMe)rSiW{#cI5J8&GVolK#}u|QtQk^nR^ z3IrDCS^(JZ%;UV3(}xU6JN^ZL?^Ocx8XbeP^+S7h)s|VLosvl&DRDMDw172DTKV}u zG0hv6f{DG!KUN7dz?ZbCmEMwX4r#rpvnLfGnVN ze3W5N@FL(|0K{#-C08D>Ikw8(w;}Qwn z!*^1hyG!m}OT#{!in9BEu3Zq^3rnF=CmKh;U_;t&XuN6&q{7^K0{B%jo+ZEbzCY^kJ{QpQqz*~5c=`NS>@6lMr$yu@+VFem@? zMDw^ElRu;aSaQ?ul|Qt&ugD2qD=SmIwa5Q;!qO|P3Di7Q56R`ZA&y|4&$C1=!n0O2 zs>d>)H+9%OngUnbeIkI~3#hZ2P@Rp?UZ}ItpSgNXm9ZcAi zacLlH5MLr&#(%raIU#h+3l_BG65=5a#)HJfpcjF8deXkbMAn+yF~)MCif|VkVp0Q&2X6r5 zXIHhIjCQ+-p=M~xP|#*^5$0`zi{FYkFti@teoZnpOVC$3yBC|4-t{HE4RG7BH7Ld` z#y#naW^nA?AH;l@(j9zj>)EmWzAw8f;Aa=6ueT3&q%*5Y3lilb~Vt=U+a!zixFe7R{NjOZBfdepE*$Q3h##Xao_3WoTiAhAVy>^q1VI zX#(0@Y4=eW!0PIOJdL{tf`Q zfE<5Avs0>c<~lp!&yotNV|W2arG57Dd`PkN>gN-@aCcPZydEbqkKc?ntcT+USYu)|gDmn#^j||C1(CZrVXIra zc{G7x*H)`dl#{ZAKbO@Ok9@#`;uxk*mH6Cyh#S2XH*{?A(%Atx(kPV@FLTnU3xD!@ z*FF?X*ECmZ?qNVDnyy~FcMOE>NpzY7to&dIlT$mxOTxqOx)ZD)yBsO&c$jCm8Lw7Sa5m!Fe#N7YI>sMouY z3#b6e3jk1^G13f1B*jA}U~592{3eRm(G^H8Zv&~N!q1b1ru<(|w&zyu`!EczKd-|} zc#T*uOuKEjk19~&SYd@#A76admfgAIe&a_ozVz^+&hayj$?F##(%fjxi{G-0J|Fh> znb|Jz-wJ&ZTJ1dYYP`_7ZYM$-2{9OP6#h#4jxOD{{CH3UdjNZ+tO*QG)8TG7oxXX| zE3CRNI`uNY?HL`ie%J#`Nm3bz>D=oFf6fUynzgM)TMFx#sGoH9j&hIMbBpHdX%Jz5 zj~$YZ!S5Fo>^B-oE5dZLyjLuJLc+u?t_>^?*h;yQjZ$XB^?xGdw^6_mE_0Q_PEzyY zEpYe>^mS2UKb%i$Q!MKDcd43iI*Lm9d~sVLewK2{qIq`Le7>ztCP9qxkQX`Oc9r#L zjs<2iB&!5WHZxZ9Q-qc<{KbP>gurqC-Omm?L{2l(msO@of-r3>cjpiYEbiCh<~lb@ z=ZT->Om@sRK3e&-rVJ0!1)N$0KOpn>aU=myDzd_krD)htd^$((aHd50QlM`rM%t?- zbBv6HC+6X{o(jkeiq(W4*4Bon3DJ^W;0rrslP_#vg%(G_)Z@|Q2~NQx#m-Y|TTrVR z4CPI|LaYi%;vWy$IId&2eSYCzj#U-V%z!-Ro8oO9;rS4}K2L8n=J)|#4)8$^mckLy z+>}ZoWRN-4ZB`(8)c3HS@=@#uFoaEbFlY-Cu72kca(?09ZtyqUJtzbGT|puyl2Cji zlJeyexzZ<$s1x};8}II>&SZSx)Nzx>9(7yqyA-;s*)2qvr|UA4fWJijo@I#K20q+Y zwKl@8BtvGy5V=DTgSCjuEf-N=z!JJ9z8C+%`G( zsH^KB=u-{&@`T@aF^)Ia-zlXV&%7LYJf&t7Fm^0cO^eaDXc&bH|DBDdhYf9u_{e#` zUGF!DVAuOB2Svhf;=u^8kOY{ZP#~O-FDuTLUls|~A!w$tfm&Rm-xr?J6zC$oetU{H zd?D1%5spr zfD$d*bdw$oUTOMdx%P4VOo=H=r}6@!!XxX-#(s|>HLfh`S@?9X#97+EG8&)gL}u|4 zyF{W7DNS|@eOhDv5K?_iC&zVo`JzFvWo7U5lr5>b69Rxi`W4(e) zSUoPf#esJ&_d1r#4!}iz6KZ*B1xrD0uEH~#z-?>afpAQEMC(G zKrI|Qm2envtASYmJ2m&?@yCew58r)5>X`XGfAx&?U&}zgv)WK@w>oZ3e2Ec0L`ISo z*@fuCDo>%4;@;-LI~hxQCxqa9yOJNnLkX)I-Eb7ELwiICP)sJN@#t8=#(nf{D1Su5ghVhStDztbE zQD~eP2B*VCsz{R5SiOmx4NscK*M-mAGD}WRJjkxM;E+v}Oa3?@&{#5%yeFyUz8!-u z6utB3mg+L-;eBXl{Z9GjHm)6${^ds#y9UMHn7cZ`mKfkPcO4L zujMy6)LZU+eld%5OklSqEh}>1`1E3GNPPsAWRX|Tze9BQwPl&W?pQ%L=Ks3cn*vaa zu}s2fMKSEm4-gI)>j$T7uktCT--sJs?iu#sCWE}@fhriM%HQt@4ai{7mmd9OFL^Ap zzZ6yn7{8~89KoR6^i;(pRViJQ6{P@V>URq7MurRs-jY3tDV+}Yw7?^TN>1Xr; zSqemMR+LbEJ|wojOZ23z#`}(h97dbK&BPTVnM&I4ZGdeMuyFC=zT&&_Npv3-!m>`5 z6?z&4VmYI0ezU|zT?^WWyOOwEu5cJ;EgX#*w5h+Ah^W6|m@nw=ctjN%xlK@5db5^| zmx=6FAg)63MNF9{JQP$%;9tu&aqr>HHUJ8q;GwnS!7UgkILG}0yJzSpI+b9E$;yV| z;OzwJ6F^jzx2Ov%IRU(S$mTXjsC=ZtTMw4G)M_*so%(2&CZEVw?homq5=G|TJOU+q z5e~0SZZ`g-u+hp19I!GM#9Kj%Y#5n}=l6$s7UaS&;`&jeW{<9zHhdn#WvK@F2&?hQ3{O14lF5NEE>WDa~ zR4Lb*N0s=GTm9=!?+_?Y?DWP;dSh7V0&%fD;5Ihg^4H^r^VvwvLWXXWtP^2%-6b3tklWt>`7xHSwgM2vrjZ zp#7pmsICjfxpnCDdFbFg_wVLifWD5i>C~N&fO%vsGvu+;ys;2KWeF)9$)6#2kF7)w zP6;8=n;6r=s&5ppv+ZQ;3WIZTR)U&9jfaa77tT+^|AcoNKz91By)$13c!-;Nx(#ug zf-pAI8ekXx7r(hHUL6Aveca~+#vzh7-a+uU-hd8R0pmxvTU(Aug5)!uZLV;VJlW=> zN{BgIXf|J1V0=hG!Cyy}$eFb9Fj$#`Mi@GgJ{ZY%P5Mzv(-Sfjc1^Y>b227PwryjwHPuYURFikM?VTrMvQE#r@8_If_8+ic z-;dUMuj`ULCluKOj_!#Ro3LOsXfsRf2JNMo%W-<6ukp~C{yu;c;x(i+2;2PC$8O|GETbM-MAtxe zeb2(aMoV(@`m3I!154KRxqh4lqp_3GDd16CSCPzWV5ec4cDYIr$v2D3iJaYiRX$%v z{?@fLZFA>;N-=T(zm%zl#5hiNjO37-5}`lt3Qo!*0M~+0c8_&LlA8^74*@9u9RE5b zAsC%QVW+LBM5+_KlAmpu)HBR_M5BdGW=QK*n=poGAe-u!sOE1?eA;3TE5?_fZ`obc zDU}R4i-+V1iIj?p>no8`;CIHu zS1^o-dHRdA3uCjx>1E-^FGq=msc*oq{A6G9Mc_Jneo#&3pmEf3MdGYhN|OFSL;nvU zqIy99L{UpCe?rMP8k3Zd6aR9GLoI_y_3sMUwBU009vC9>sig{Y`pZge^!8cS>9^35_cvg+#)rc?7z~w2|rx)m6`~hYbN4Goqmrot>vFB$ZK{> zJ8|Wx|NT5IB?>L}r_%Zf04Y}FO|QIR9!a;YuXth28$sPA3=z+^m?w7ezLkp*ifHih z0%G0gw^_RVjO1GemNppK(g5%Vmm=h}1qGv$XY+=3h_n6)%2AcBZU)_q>|YA7z|gb|B_+&97H&{2^DI-9UvpC4;FL9y zrFElORA&$4WJOW~IWuHcVEE$5r=stvOB7;|1xfXk_2?QMQmbUOM8 zg#~k8B6>v`fy~39X&zt3ue6s9{3Dw;wCmhiB9R?xSuke#Y3joc;I}wCAur=%-EK#kYr&S zGkOHoq_H{T&LzSA8SjBUT0Fb}Y1AK8ZRZ~{O#&hI-w6wbQ=jK$536IXfBk0?o-d?L zheSn<>A)5tZv3H=_*uH8DU$}wI207gf6SReD>K$ia$o0G<>>`;VrFJkqgMBRN|-on zL8*-e_N!_z=<6ixne~&d#{Bt7l{7{q?dMM!meSRwdiUc4{=WS?{DKZngv3wZ5qz0O z$asV8tR{!b_d|R4Z?t3;xIyb15ni?Mt31IQ%Tj$%)#$OOy0z;@P*D&I2uWM&cc08r z9u74|5ETppog5sD03|!IE7mKE{E?%w35V)8=_{g3uo8l-&Rfjo3z~*p29eoyOG(ug zZaU&ggQTFXBU9f=2PkEN6e$`s_I^lT zN7C)KzrmX$B`U!uu$2+TbR$&5E{}=omfYHh=-Qi?zNRy_qJzb5E%^`faP^;rQP=B= zW$GYQ`AH2&=D%FJN|a8jaPk?{5N8EY_0{C1!XLnee*5;%Hni~kPe(taLY@WWsg1q_ zqhdud6I_!IjwLRn(F>6|!^EntKZGTC60LdIfmx};w!*=`u-Wy>Kl3A%+|rrWpMhjF zSWVr+67mw@OGYl|_~SMi1;2W)M-;5GR;=0e+uZZCp4P)seI`X9&!1>ToSOUWuZbV} zn>dp`U&8d2=>PUhg<)XX7(mZ*4U{HFoy1@PI!r?sbdLQ)Q@dt@7)n=;Wi^#jL$Kam zo{|>GzV<0>S`_}f74iD4fXT5-Q$1o7JKc4&+VWc58BCz8v7$iaHb6PQOIJYV4eOay zENI=R$iAh{Zwi(^&kvwA@;kE;g1na?B0&cvlZMk=q6v zsq^Zq1O66cbcY`!)DbIy_|_O4LkhPDdole>1SwJduw)EV>u(di&5?XF#I|qp!s}rs zFyTnUqO=&W931?LRbjDvp!8a?qPa5$36qjG)RPS}cDgd`F|*ae1BY;^R}@uxP`K(K z{VY)mdBMii@BgH^Z^D8Ko?23xC?_vbz&rbr^LsSg&3la3aEpBtV%W5IHM(_o<8=F8 zxHUU;;xwmv^l`$9QqIcico@8nV$EPn)D-eKbNVRE!k&~@v8>lHD5s<-a9lYEZ5i-< zBB9zol{me11?X+yqpUu~LDpLbZh!#p89MYzZE-)K!>5-y@i!)ltR2x0F*h)OLpsS8 zq`I6B6Z_`=Lf6=K_pA=pUQIxJi7APr%Gq&MECL2=#_%!Eym8tBo}!A{9#I`k{!|jq z->@VbyTZ;$4S!zSZ_ZeT6!f|a0WdRR$KV@HxZe>$EYAcrQg3J@lf%ybutORR6`u9t zjvZv*uyWP%A(6y^RAJw8LpMxqq--i@g-Mhxq)e)ZVb8p`BomJXTEB5nT0E*MOK5m0 zA_?&50F&FJZ$Doj*HFEl+29b6S*neTdGg6fY6W$HBybR4>z$T_VnCI#PTsBX)f6qN z`qmgsB~0J12TZsjq~B0eRc)LzrPFA_4-nN-?y<7=6aRaQy-02JI;26!;WpGAB9@f{ z+w^N2^_V&eGD^RbI8_MTz1Sl%vE`xcx0h_G*k(*{l$NjNIT%JHT`f>MG4rxGD4PbkL zK>(DuhAx?QcKN3bCtWP{+C4$vOXR}(Oy#Ud!%$m4Bv7gN6;-u-|{?bd-N0!9?;{lb*qiw@zN|MV6p z9J1U96&>{B7t|!vRR&J1Kw|h@oK|-i1_&<5@!uK>z+3~X>tbdEtkb3=kN%xO=^dJD0vef5|9a5wFV|X<6P;oT}3!y(U7D=S<{X{0#sg<-C1ol z;#4DmMV3Wtvkq}R5#IO6S7d^HD`2vunHZ_O%)pnXyOrHHWZ=3HD{9&g7=8tb0C_!_ z3~j7Z8fSS0)C_8=vhAHFdjzZWSd(YwfORZfOQ5MYE-u+TP^XSae&E-Civ8jdbHM&@ zS74E68iVTsu<#MJH&mk>6uQ|^`YUrY(`jgZGcV8+U2!{a-)7j$4ebr<>as? zpid=kR6Wy05}qY1`7{Y#<9<7G7Ks96S8IMqIQ^Or_)U;Fc_wM<0 zVH2i*Dj%b<@1)M^PNkKVDh$$O1(Nd#DdKi-lHQDLn5JCM;UOCQfK^5~i6D#5(cOCf zwlvdn0;N(?O|K=#e{hXWM$}1%t8gM-{pCSMc+eOa7gK~- zPe&^sYp7{yzt40G53VXh;(5T(+T6*5X*FtZZR$)cZ|e19E0>orscnNcVzk|MHzzVP zA{D=Gl&o;~4kkRruW0g#`&NGVzr*PCaBB``ox?JA?-so1EP63#jfW5b1{rBpS{^3s z2u~z?;BU^`=gI;=PlM90Os0CGc5kVoCOJ47+7mVV+8|nd_lhzawKK4Ed8wVdvYhWW_)=oG)*}l16+7LR%m`n@mn!|EmB|ckcl-j%FIU zr?cQ*?U|HPgNUAQZj!MtEYHL-rjB9Agl9i_*=VfN9+)_w1L>EMODi6A;;01TI$$ko z=}N(CuM=J8FF%>oshD;GLruh}xUdJlk!%WIehFepX{;AKt&xyAf&0OnK6LJCtxpt@^h;)ZuW^95MNL*^+hLqW_Z`l)Dj*kRvjMdy?y& z6-SLJRo{hSC(xHiwY$5B$QkD3|L8%cv16c0!xypAM6WfKjE?E-=8jvguX_V@a6KT` zJ_74MLQQ6G<$)97-lkMdIL(@y;Zi-3aMat_&fC&y?KCGG?3=xEYus!_jd&;2OFQQr z-s@h)unUdtKzWCAu^{3I*yzjGOb%saSpGfHogqJa=ebPKa8YBAc?kW`mHvm(A+{q; zXX^#6HnFBp?#UHItkshP>()2@B(@`o*Y}t0>iiU4NGBC+-Tdk62j-u|+!el?22NW5 zsS2u)i>UMLOKUPteEFztvh_WH#rfcfF@_RFD8dkfvn_&-?{3>dTS!K*aasb#g@>0g zZ_k>q=w6QOd`1_W}z_}rXQ2h zONG5=o}?N&z>)~DNW%IV7Z$bkHVbk47;Vo&3jSG!?(uTXgwARZLZ#^C6eRKIi)iDC zERuqsS!TNe0m@P?T=&kc3S5v1gfIYe6SmyfR?UGKt*mOH%X$%YOrl zS{B>GFC*dc!GLR=>_^EU*QU-x0oL@)vY)wF`dBz zUIq4{Psl3A=imyYW+~q|9waHOY{lG)JliTB(&QF``fvp~Cei2!53bbGEHKv-M^m)a zg^)g)(tV|uR|JNq$9PEo5>KY}X)kum_trxfguzKhuMJp<@_7|E5BS8$p0e zaa5yM@VcAmLk&dIbeKrjcr~V%Uvi$W+gv!<3k%9pmoX$kkTH-62_m1`xg=(o#vr8C zzwM%qQ>$X%m*4rEOaK9J(^ByE!+SW8PG2KMhB{&zJ<5Q`Lsy+zhQthszcs$pJ8n^Q z`1oMd(1k(#Byf<*WK}ncV~gA9p^rlWTYFMHwTqZ+o$vBD?T8L5q(v?W5Rm77+8|j~=rM7z8(a)bA_>VS(&+Hvu+0|F zD3oq#zg zZ~%`YZE`NHkqT=%N1uO7xaOgy#3m{?P3Z0-h5M>)Rs_F5xoc7%^~GFRc^NE6cOB?< z7_=j_3As+s;2@Ie^PEmv_bqk+Gd0u1x&K7o*~8&k40st6L>C`ZFW=Yxb zr)vR16p4a}i^bFjXrnpY%jOoOIu@%5W(R<8HKv6(!W%hgN5}D!rK=vT^sy-*Ig=(1 zf|C6=IVA4juj+JCFOgs(p^%~EtOo&W96=4)9(*oTV>UW0luyR-(NWXw=q(z1z+7Bu zR~yQia+pZXLB_pP>O% zz|IRj=aRUwBqR)k>Q6tw#DliF^vd5B04-CJU^-tQmtXY`M)pN@FD+&jg@Qd}0NEiA zMb)Ar^;o*?3zU>lXUe%?ebG)t5}$GeKm#9dBz=nloOrT(M_}cA!h-iAL6pB`6j^2T zT{$!hJOk5wRm5!<&7PQi9w=nZ=Fl zFtG6h%%4ysW>QT;%TC4O(g~Anr$R{!eps_2XI5M^l8PIOtcIM<7<`XkP5DY)u_3Vt zQSu7(gZo|5N(g#sGkKek@P2A#J8b zvKKJF{~%&@q6xHou!gK^WU@4)Al2$L?uoKO?er*`#8Zv zrK1G~zO%=rJqo)$GnyoBSFvT&nUMbc%-jYoxFqRxtrJmsA>V{A_#GN2xY>;EpVV?O z-zd7Wjy5!p-qEimNk=6>MBi{B%1UTDSOKnMGn{mE?)zTMftz9>9dTbZ1$~Qu0${fq zz_Sqn1?$aS`itV{9$?MEZIid5-?)eEFC4L1GX>Qv-llZ5bU+kiO`bqP-{_%fsW0N% zwND*gH__-FZ>z>?Q2(6|>JV{H(gowcMR=+<3IboQZ*^?t@%=@(Fwxbm8L8px^Gg6l z^}#8cQp`p{Cy3eiD)b??X`F}(iYjEL zjQ?FESIqwBls}Ub)gz_nbjuxv4m~e4=K42-8Q2H-AvJ{jHP4`6E9nQ4{bccKcA=>X z%b@srNb6y+4qgvaDyT3HATszopPWV*`Nw7H(&M6yngxLSS>9aTfD)_ z;p-o)caRs~&mDbmr>a0<5aHTH)erp~i%`hjS5z9K$FSC$cs{Drte5!*v1{b9Dt6s( zGAHJ)&|G5QD}~UbUgIu>&SBUShSyn6>ynypd@`R-gQTa$m)GdQTW)NAsHvCdk3f*9 zFzOgeFX(I-Y*Gq}h{fT^Z9|u2u;tjMjVj`YPu=$hKdexA9gzifFW6AGZb+IPyO#cP zlnQAU$`$4Xa~<=~j;R2Fj?|Q!;r~*6Tdg_(tLc@_hK_g+f2SnB&Y~CycA>O;UIZUf z(PTRAhkra-=fnS+)4T9RRC?CiW0cnp1!b^DU}>8rMe(b<;|gH_sP1r_M-pg`E)r#J zvZ!hpW58?=j4q1fsxuYwVfBBYEd!`KUyvJ+Ns@JrgQMbzh8dhgx0Gz|gaNgRC&9;< zrP7}ytD9i@Y+BfJDaLGa1RO9ZP^Il;6(zA`Dq$`uCek{Pfc(jraIN`b)-i-;4P@jL zYXFWcJ^G(~+yCjZ%#L1&CpeNmyG`?h9oEKmpNZ-XtYLSQ+}H_^$6+8fVx>fFAxGqA zaWj7%6B+qX=!Y)`n&l-pNaF76w0%&PxMk=Q&PDrtaK@h&0h=oMrL<-xy|D%Q;f3VhX}c) zJr-#>Q!$21Co|B;c?CdIvv1>yjZ=y=bSPDH{Z#q)@v=)j2;V;2vXs0S@}8yzO=eFa z1!iN!#(xY9-6F8mf3i-Pr52JfXRxY>CJImlfQo)H#D!Y~lacDc^$AX(C7u?D4``uf zob(pz?Zq7u_|z%;#H3~_dU;A?c7a{KzFzDwLhb%9IuksyW3!#y9d;3Rza5ma(?5+7 z>M*4QqP`|OmZLinNfX*aBCJ{bf7TXET zWK9@Vl=*++!**UzsTz0BWD`hiT}ISAh(#-}v0_fhN*dHqw8-34XZ{hUkr@^JUc;A+ zqaVsQ8L;Zn&#WopK8qFbY2RT;r2UosTWz5PGxRvHppuu+~c%JKc7F1)}vj zt7mb|q`IgSD2_9xB>K4W_}I{nQ`y9z;E+^+f=dd!)vNR+lfeLAU{<(e;FqZP2M1QT zW`pqSTdPYiKX^39->NugF)~uVNz;Llo1j}K)9DfJ2&o(0QCR^fXvet726DKr>t_}`-4p!eSviG{5P+O zcX)Kyfban}*Dn<8AnY){M*QB-*@$|91+XOrcy$s*x36}oUlAMKl^x7KR3B{kX%+}O z23OiE>Ad zGegegm__8ij-zf6TawvUkNZSLpt^Hgc1UUP0$nD}ad_AJR4Y!U)ah4iPzz7HJ@g@NT!x!`g%6XYGp9ufl3LH(|~x0cg$JtAo!5P%oyL1H@e zoQ9EWGMCllOkr|BI(RRy=Z8(y;;_HS@Z4sR2G@Wcf=RR!eycmt%Zu#U@17*&fc`VThB*bkOVnX4gS8 zyOc!@7;Jh?U(Djm&f<@pu)P$~#<-=4wx(B-@X&@*zX_dD&5O%lRG-JE>tS8MMV30( zM=`7um;xd;#sgKINZYUNqfbe6p&#gBlyO#7>>SxV%!|aXmNfFo8LjAc6g;TPRHF?O zCpSj^(_Hw-V)pyweB`?ce_sq%1(@4#uU7X3y=NqT{Dbp?Bc_K9Wc9K4f=3(eA!mwR zG@<7=k}`e4$gS<>91g_#sCj&p(*ZQ7OF?Pf&&4bJlrD?A;-fTj{e^FsQJoD~U7mvPWk29q0yJxY2HZmL7cpBWcnpkKa~ zB8l*Le_dWYF4%}&F4Yxd6r8|?GN~$kIo~k*wT*v9xMH+I%{yVeQ z_y!5Z;fiV_f*8k*fz*|O(9h|dk`D@7??E}DFQYy%?>dFQ6)$Bz*mmh^hSMug&uP7DELQ#m64=*v@FHvLenE(N08u_l89NWU1QrVmuU5^Xyx z;`NDNPYaBo(15@2Q(mE<$G*pf;^eOg;VW;>o(`S1CgV{-r3A2n9dB?t7FFt05AjMb z@&{v1BFQf=`KA1}Ox&{t7A@AqMz4VnWMo6DOp)Y20#VFN9qT!-NVLl{AzF(9HMfE2 z6putnT@DDG!uS1#8eb`A&%t|(;Ytd1AK;-b(#6!=gU z^%%d3Fy<;n5o@j3v+Vb2z?l_WaZE zbK__75&E~*6BlDp=gSd_7{^JIb@r04c6xCz3ZJiB-6{iLsyyOLke&o9yG#;-S3df&GMqycouJ?*6osTb*YJVemqyUcI_{j)d@e6}xp_j7|@hB3`w4@j`HqAmZb?Ccyzx}HDh^JBqOU`v(8CFd zlyN-rB+J4{;FZAuX_Q(!!-FmJ+AUeK8H@Tm%l5q=N(gIh(1n27L#{r$F)r{Sf4@i8 zLSP^od>Fz%pz%at>Q#Vex!cK5E1HI+o)%K`#vwO!M8)|$X5@mxxEU35`*P|T2}*VN zDni%-^&>JXar=sD@(AnMCbO#zPIEvP{I?Xa!zxc6d;L|B#j^WTcB2at6DrWk%ZeI- z!kcq=ei`;VkD$o}=DTB$3lAdii89#!#)98LJGi;`Q^g1}<>}K0J@gCG9FHt!%_US3 zL+&F0;e+n8uCD#ESFgs=(B<1@q8oJu*l{oT&{BG(AB{|yMi&q@NQkgZ1=YWltc%L$ z#JS+RV$n@HCC@I76ic5_zDLwVNGwV?*0M?QRdXGgbxG;v#b1B8(meel2^|&ZTRSDE z6cYd+cMU0LkB|FKW=ncGvN)nQLZ0Rl|6rv5r%ikfJ<_%whDc9*IgiL zK|gYa{nVwQYbi-OLI%x!Xme@0(WRjROIUhi}jn=pW1iHUL&e4v3cd8kVNX( zh72hHOU9Se^z|6o;r!#ky}!b~>Z>a6srn8|T`SzuNUm<&@)mT%aOj67CAbT3l7u_p zn4iIv&i%rNe}T@nk12u_yc%Kbto)=y{QU*qQ|CRzs-gQcpnvUE(aG<&Hi~{3sy&Wm z`+gy$>BhV@7gI__5yYM{o;6H@ID7P_i@dd9yG=!b#HQvvKcuHL(&txK%{zfAqKT-I z#F`#{OtEv{A0#KJ@s;9v8Y-&-377a8W%suCLmC=fXE0{Bg0(T0{C$tQ0AsBJAr+^<+K zIgKldPW4wq&gW-H@chkJdSfV;8mK=y)~{GH*JOpX+XBRQ#$jC*oN?N@VLwwj$8{L{ z-233eDh;IRkx=IbKj=K4zU=`&V~50ZDu4hG<T$-z*bqiAP=Y zjpBNIufNBib~jjQ6J2$TyC3wu54;e*ck^uP%X6D{9v>f1AmQRdVX3ntpk8aRlTR0K zV79ch95MU&u^haZ_}xtHxUwdnt4w!jP{|!oV!gmP{p%v9(VD4{N1Lo9H19}mI?x72 zN~c-yog{SgtH0)xZI9|H)DBCH*;?QWJo2w=%-GvJc9@C9ufy{Z61l}59?@2=4K#YA z4bxi2F(~Z^#r!Huj$vsLK?|p6*)**HXLn?H_qHMcsXsiy9kMLb~)B&O&VTxC57P z{Wu^CJW9#2ex-=+%+`3*$2&oVjrBi&=EP-v7$%^gy* zEbu&4SF?g)ahOKWD%Xp^hUKRrncKu09u|u0;M2a{`U9xEmMuQh_o2OQotnOsxiG=% ziCZEiJ1ec)>Do{hiqXfgD9Gxecj~kKWM@s1kU!e`wJebZ+LZrW4Td+L?M z|5Jd-*=tqinmjZN#+`&M+V)}zU|MoJA~)9Ypq&*Pz}Qw8wxUS* zXtqjW$CG)hQ8tHj*3oc>iqqAI<#@*OWLBjU6bgf+*4B#v>G>P_6CJ+f#RKJ0fi4_u z$h}QAvBIm}k9^b(#lf=(7$%y`D{ssA0UFw-cpwv)REM5C zi4QrVMq@kCZ!K&`R{3!Ne$K*qdDSek`AtOOz}RZninZ#w1U}si5YpNRk@a~tC9H{B zOU!^2&sp{l*@zpv*fvv6Ra(QV=(xv;C0B zHXRe&G0386oCNsDrZD_s!Fsjz-lgBY+vM6h4}be;T9Qeq9y?|NOSRTRWQXxy>a0KE zFOjv7?XblW2>bQG8|rQcBHbEkUv70~?6$b_)gzK5lh$Tf++*|_(nY^j*5wRN65c=3 z6phe2!HL%B$EK?4G~HyhHptC4K3M(wg7fBjdGRk%IASEeutk|&L`9c zBCTx`uG07AXHoN@P*eZW_H0U46qj0N)RQ2#+l(}-$D*0FHGqnWYC1VRVj}bzR0g5o zEUuxJWGs=TErd1C@>eZy>g1EhSaF_wF$~U6S8vj!xdD85G!f{&h19Y35kAVxA1RLS z{Ts4!3BIUeDLgaF=tNEelECqKGc;))6tc;yCV4>&z#1X|7zD?zd|PIcYEm7@J_V;2vH<1b1umIjoq6` zKof5ttfxy@8h`Q1%|Llhot?b)C1${UjwPn|k$Z5J9k!@}#825RLnV8yQDts*ZLUj2s470w)g&nCq z2_Ad*1gzo_rEsbpwfqh=@#l&9T#~brZ()4THSD3D&mMXQVnMxYRsscgmtb@5>~e4mNm+`Oi#0q- zt#IcMC4J$+KbGaApi<3f?o40WS~EiaO`Ist=Swg&n>U@E8Jy62H72%#&7C+SH5d84 zAvrBIij0ePi~S%83`ct=?pCxd&8229hx2hNd&nf+>xP?F4LLU(U68#BXNtyXGCjtqc15{LhAekIuhCTMYTim+cC>Kk@2F`)$| zECVDg46H{?XeF;dUPT&UQc%hzpLdKZNH&m>kh7`jUERA}vCe*yYA)i&t9j6)FNCvk ztdjRuc_27cw$NLJpym+ok}dJ+ zZ!M`{m)+}0pgz^~d~T@A^C32EPc#PR3qLAXhz^KF5sT$Rcwz)1oF^+1SHhP38B96W zkz9otm(bZWX!JRU&+&#D*5q`xj-dG)5j*!?UM{$bV{j-iqKH|biB`V&^%q~~PkEDK$K?uL-%M@fi4lD#7u6Yq6`z#~anJ2D`b{{`!gQplC9*w}kcSCa^9 zAQjk=2kcKh>0|Wd8RydJrM8D3*U;X1X`XWW3Z_eiSC-AXML>P9?{k8(fa=YN0Ps3= zn^UaoREH0JgFa`{?z6a3=pU|@Y97>UbubQ*`=jObr47NMa;2~IT|`AzrW?J^*(5%=emi>JuIM0fBE(yTH?|u(Ifnrq98Q-37_$;Ym(!# zp1S<7B>%=rA!HTpS0sW&onqm?NUJWn)9HsHcYEc-UJY1ybXL&u)N$UyM=H1d!(!aE zCFIi5{hy?;b==SwOfyU%wost}LBBMi7?Kr9{v^?m73zP+bm-=Wi+~Q6GzjK#u*F|0 zeuH_$&>a|Nd7=ofFQSB$zcF*#3Mj9XT4{JPjMIU?Yn(&47K?v!Aivt*%1x8XGpzX(%i?LIQYncKlp!cNA(*3Qz`CEvug!Rfds}>&B*N)k2OZ7yx zAwMh`_+{~ut8Pq9$wvIabZo382A;UDc_mP`af!0YhfN~(kP^&3BeUC$(`*+#X4W)j zB({`=a`fY7v0wb< zR5`^F+1&Q~NDJW2gEnnWJiQNrdqyPomkOvWFac%SC_j9T2fUoU8|D8apI`lN?5jmS z{}yIQ=)MuZA$}M(&)c%$UQBfs4ApX~W&E>JeFcMG@N~VRcrE2Gv}m(Yz~&^tjOo@i zubXhuyV6v@2_fUoKUlL9_ay`TKvNQApW1X#*hq^@#v-CzTpe@~*g7hzd=Ke`Z56U* zkiKX7Q>V{tg#7yFM!?7Q0GvH2Y}1B4VKs*e=<`NtrEr?l?ShF7#PmC~UYxAt|FZ|X zUif+YfRU5zeT23LRBY3r-xc)dRy~>Wfwp(H1Y`qM~$RY4M@Q>_CL&2QvTG}#*0~V3x6Vyg>EUQQG>XnVpU_zes_}d&$ z?GN*0FZ-%QcN30&MZRPgi21~^hWI(`yp>3+`nEkBdN;tG zdwLcds$)er_|DL=#-k(2ulqltWV~wujf$?uxl`A5VAt-H`j1bGFYlHNEk- zb5~CHW^m=7jZ`r0zXL5?2E)`wU6#w=0G*iwx!a#DI^^0>)&!ZRlS~wo1BlPR1EcI; zP?W3QRF2%3br2W>(=DXD9N$t@Wc{=oUn!~%2PiHr!d z**it0d^5U*Qf2N_d#b@ z2AL3IT2`g{XIwmve9UG?ERWQE_A2r zxnJQ^5P_3~m?WF5q(R!Jq52tan@V#bo6%G6}8 z8WJk`fA2|F*sW4N&@}xfdWeVYZUJLO!+V?AD1M*25@+3V#M$A$?>IspEIV*y$L6)_ zqKu(mmwyf!O+z)tm)^Q7ibl1ARz zNb9}7|H^)o&u#h3i1zCh%fxg30m(dnSR}$2gt#rNHy^8c`fSWGg4zF&g+S$>E_ z6C$O;1LY*9;1*($7@{-1UtCzL0;VM$4zxR{IZX?-{*qDg zT;jy|-gx#o-=`aH8{Wd$6AYCbhfDwdWgA%J4}Tq=J#p8gs|usAFQ>C-%Q;Y>JWrBY zQNL@8{#5NEA0%&`MNdS_dU%@!+>IDySJ0ch@8f*lZ>}@-$mM>)->Dhvh_*NH6*d~A zwt;V=Oc$GTqg<%A5et=@gHOKRRKz((hYjELKPbhK z7oC!SW%G+u#&S(A7Dh)3Gz>shm<#cWP|YKVjOd_t0PuWqrdI|?JDY)yU9joWP50@k zq1(QxrjaF@Ai`FR<$?c9++6Nm`H?<0#(nkEFZR~-!QA|b0wESA0?Jzfb6f}*e)4gs z=0u&3I!RF%$nGuE#0QEZLeh9Mh=SNj85-s4?v)vdvbxDOF_wC*M(n(>&!>2M%*TYh z-e2{tKU~r`us4wB#J}t!?U=_1Ohs3IG;X!b!4ds_xkZ4_TK)_|W&scK&Uo-l7kKp~ ziE-LHU6WW9qQ>a%ulv+@OqbJ9gaI%0nc(Q5f`ZNf=Rd(52}-Qnb2nY-|k8D*nXa)yRtg*{vX=DGAfR(YZIq&m&T#d;7)LDTmyszcXxMp3+^5y!QI{6 z-AQnFhvB~8omun#o;81Zb=9g>Rp-<`XWR4a?Qmyse$v@xwM+59oZauM%OfU%k=2ZV ze_ED3gc*`9>&~U5iyqogBZu7|s+W5?{|v#bPko_!iTR#Sh4rjUVVC`@_R%=$YcO|+ zc1Nz%!2h8Q;-W$9){a#3tp>E0C{(B8}~M??iZxvdN(8Gg9#Kv=P)Hevy^l zPe%A8rwO0dQ^XDpd&Fxz>%Q>9oSlmo#VX5%;t!)3tAsy2*b%KW7}6RIiyA4yEs1Df zLAwD8j)bf;cidgSVQXem&?b6~IvMe2+k>uC%m z0Q;EsL%Nbpd&WnWa4RqXOywE!o%^h$`{t_}#9XSCW!?8mpy@^<3WeG1=?0cRUR$kx zl3U0PB;a+yAb8N;nr*vrZ_Cv~> z6H3#7Y9bYmij2C*4TVknc-wh-p8IsL^*sOa#Qk5_+;U?TWI zO)dKHiHlZUx5lM(^l1I%yOw%B61Xcg3R@E^(M=r|#9U=U1JQp<)tHYTf>Il`F-;e| z#%#4V$<90{d!aiYr$883R;!3+_NS#j_0gIpKskaGtBj?wGGYg-0EAohy4=wY%i<3pQTL z@iI$m-;qs8T?c)rT6-YZeDXyBQN)_E;x$B0(w(vtQ68nA!>UW{o#cnretqlWe=F!xWgee3b@)`lw zqA0xxq0IkCZ>mAWW;z`xbqCFK1n{5p$^RU6La`a9KPb3-0kiazj%$cnEn;#yM$o;z z)`eb!A7Wgc7-n>ZxW33;w%S>g0TEm3+VVL+jyzcw{uc4(F_o8{2uTo^(iJ_pvMikF zxNxuvFm~eqb9wyNIl%>(&BqvGq_{z|k2|&l*c>eUT*b#SKi(vq0%-$%b2}zR?BRIO zID*cHIl`qHOlvUk@%eqC4!8MM!+ELyc@En=p!lH|INR&mfaNS#l)7_o^czFrGL*e2 z^xTT(C{>QN|9n^#l=(3%Ike4Xg*n!=kJ~3SS_E;Qm24gSnq{f0!u|Z-NKM9%_~{6Z zMxM`8+G^&3d3%w8z5jeLm87FKtHki?(+*or!T@Joc6WEL=S1tXuSNo+Mc!Tr@?+f?k_dl$ zxNrjwl&aUiE>$deGtBB+ghpjz{gdK`u~0ocdWAY z2#Z=FW0*1_pSP%#9JT} zPt{?MbM@urfS{oE5@6uVpUXG5G;VDIgV(R2#SgFe|4PILjAcO?N^ERwqv68a@+0jC zU;sl#q6Wqz9rmW+Ozs|(IPtx}Ag2{BI zIIG8sZd@K3P%jU;Wju0qrX#I^#2Vt)XhzOk>gH%SmQR=Y-Y{1Z>t32ENb}>ziWa>i zs*qONJ=YsfQPlI7GC;2LdFP9FVBqU}&|}(rVaXlkm?luf*1y*mp~bO$`kMZ*5*a$A zHJpjS$3L5BdN=5>i0w70yUUD})vtR+19_gtpoA6HTf(MI&bA|K$QnnwL*QxDi)BR{ zWd&XDCz=@Ja^<4PpFrnJFTtmbX$P;714hDn$yNUu=y*K8UI_##V^4ibWC*WJJ}xDydPSqX$M|J7qUIPi}(yq z5d#c^8e>kpx>< zi1iBZ!Mg)|WVDN3#I=UbGuyJO_0{3AZi+C-R)i5220H^^mkZ54Ne!^G#WhoIX^Vj_ zl$KBiWlQ4@i(;jSC2nr-DQZn&=6~r+ad`Uie8J(#)D6jA!DPBC^J(z4A})LT{ig5K z$Z0?F1g_$}EsoZ-Ltd^X#=7n^VURcb``%kv?Y!2N7RMY@(v@GO!r-MW`d$e&c0Ji| zbuKq{B?Dq(;btL4qM(1Qv1Nl%K9x>wWDEEW0jmn9C84&Zcr81ks+^{)`8Dm_NX8pm zC*zJ6k@hyZ_hJizv+l5pk3CWxpZ2<$?Uxo^5*CT6YUpqMl1lhH(;_V0{DKN1)&W-x zV>=|VISm=_zq*?f+$Wk;#Jw^35Kf%x-PbENO=G5lA=q?G_h75GC_i4#ZikPWA`V()u68?5@CWNPIv1E^g2a0IUh<Ri5fG!ma1$5O1R}3n5#Bf45nT{z(%U zN+=|XPZ;Wp6RQn&+%h+)D0$6|q&TPRLl$NdcG4&e>@pW*T=4PTzn0Fk{Gx5DHBN{k zmnZB~x8uWrXLP9&`RtRvV;nsrO)U2Q`B8@22GH5@dW4I2y?#qs()m*P4XouT7TD#U zoM_vup%Gs0hZ3CM`6! zB7l2f8+7E;UuPM*m$aSDnTlsc8sOUylUTZU%PS1a)Y;-S#-^A0IZvC<{qt1+*!ZK* z-yet_1`eeYAr#Q-vMrf% z@kvx9ud!Jij#1052DVDTqeyV-sQ5Y!68lhQr>lGq^1jx|CpZCs)7#oh8n*u{SK({lohSaTtn0vi8dj3iRi>)!t-91yUjs!sr zn$hN%_cslCT}%N*0K6J->6cXZb_X(wt`9%cHmh|Q`rZXr$azEeVrS7X1PuOyUrIf@j^1B`vk`xZ*Xhf#oBx_Y(e-rZtOunKP2C<}vtDUmiP z2_ZnwtACj^Q^*PzFHoFPNghAmGG2ZfY*^oGc=&5xCP>gw>`iiV7&M>v&I~5RgNRCo zEs08v!Ar-a9hb^~P26*8Z0s>Q*Qzs_09y`N9oW1OwnXlCUH0U#EG-6SrsB~mdO_~X zzQe02Z{`U;dOm2qLYzK2>Uq8peiGa3kNu^mTb9&M-4L#vN)%W{qf*893JF{bHTtoc z*V!6KT6+2FhUMZ)<<_3R$0}Z*!_E4y0Tm|t6GMrTHxAq zB1M7RTMopxncSO|^eCmPwuTPz7$Oe=jL1kh1@?kU&d(%V#0Yz&yoek|E+_@@zKYJ+ zt#M-a!uMB zA#R_JKQ+QriOgcWJs=&Fy|Rm%X;-LZVA%d1xu+9-{^Vst0`~pFDFYHf2m8mJ?Nurf z^9AOR8k1vt9eSg_w-#>~dl6~Nt4*z5q;ImZejB_WphfHkcQPr*yVO?{0I>p0Q7 z*$=vSBn)(bO?eMm9ayURAI<3h#~V{$&77xn_?42&wNG3DZ{Q=Y^G!Zkd;u-1T;A;W zr`=b6Om4+;O*;x!d+N5jB&B$g*op=drl{M($1ppVtyK(*TV%CIU}k0s83j70#B#~V zsBmHet8VE2tmaT5FJC&L(wEf0js|ewv2T>dy5b`w$!0RPuW23kLS9GP59a3{Q6%}K zLa*;?I=m4e{vYPgoL~anTz`sWw_abegFMR0g7#k|jGReQC=R=~u=u}bUH<0QR}c)V zGOsR3NrF~lc~tR?$VWFJPhsaYoI1sA54DVze4sg){a7Vv17E$(ewB*qt56arV7k$g zNQmvo)frEMH7AH*K6S=g>B@fe6*n}?B~{qp+y`U+dQ|*yZ;%7kuHCg820Qy{v$kwv zE65kd14s*!S7bW0?Mc*MmQwbAc73yg-K1%Vx=*@iomy8gq3XW>Q*5Uc_fzmSR(#Cx zzjtvpLo5_5bNHcgdz9Y=Q{)N)kPBcxaETBIlcgckvs&`Xx4yX`TU3Gsll)2p60N@X zfb=o5)RPz8wszDnxwF#N>qi&wXd;xE+QE((WlzBH=fMNI40z_Qwh0Hs(Zs zd55v@XvW)!W`);vX-Bg5ZXrHwGmrt{HoU!RNEyc=8fo!5} zQ}asFG2X~7#cznuv+qa~nDokVL=g>77MSH+O*$Lm$~|C8J~Q&!-Y~S*VQVp4Pb@aE z_NFQc6%SL#6Yq!8?BLgCU=_~=w+88RDk*=1ki_sbts)?3eRy))$)23xqh;H=D)itr zlAiC8<6qe2>zV<+H<-=icfYfzdvt3jq{qC9iyxZ`#)5@4>_3d|u|d6oURg}>$Fw8a zA#Hk+P8{=j?G4z1GNGTzW0|i*bPuGJy?W&S^7tZgF!~)<2$6RmkrPe$$WDjwWVr?a zx*umYF`S;+`898arj);ih_4O;+I%6&V}Bm@J^vWnW``;D3Mrw{CA*py!VoFabAC7n zEGBP{nm%guXxq>eO~@DgsYeBp416?+-5%ItYK0Y3yLL0#p?-vX;?vak{i=2IE+0k* zdN}3%#~T%LjrG$Gd01ctqYE?`$4`02Pr-luD(8d?83V?!r5>7rQ*C(!Tqn#d5d=c% z`*bYm>J0-adyj}k33NUH?+?LK-qcy0dTE?_ zlEQAxPJLlXndnB-t4o-uG{JnE_uW|z=v{u_x)soTCP8#>{#+&Wj3Ia57K=E-)>h#o z6LLuoKHi^oX$!T9xZtZbDOj`RU858XS%~N~_-O+PT)?YZdl&o-q8%j@n_0iXNRKzo zXG)$h_a*!}D4tu-k5g_OZZ?b}k+UjL_f0l$e1~FXY@%TLh5tJva~@B`O<_NF!*1LZ zW4XADKMDUVu~OF0peO)$A3R^zbT|G4b?jD!BVh~yV%1Dy&@C|?e?5OlS8>D(ztCYy z5EbiuWj#{JKiZ*^3yKdD$+GYoDv^2SW)zF!!V%mxW?0fmm>k+63N3+oLb@5po^ikG zXqph_El0sKRO!8%^@4^xB}5{R^eB{|y&36s#d;NZs+>d+9&us*f*HAf2&@v|L@H2~ zlz&0SH0QpF1E!w83LT7PjE~mEe~DFrrbT-sLB&&7xmlMDpcVb395>#CmSz3HVl#a18qK3KMdKQ z5ONfzscDuc4Fb!{1W(^}7KBgCQj8>z`@Hb|5Wq8mmtKl}#R;UV-D0T6(03IS zM=RevUa*gfLGC@?!$78*3>i(k*Yj~>{UNri=ne5|tqbAw28hzbzoU7>%h{*B1u-a; z4VVoOEoD7GH1FwNTcavJ!Jp8M;ul(*fVUjZ#57LcVe({h^m!5*-1|N2UWodHUWlmf zHYrZ-gjhsZdZG$9a_+hv31srU^=@y-M=;lwb9Q5&kcFH+Z-Og(Q53?%DYAJ;0!?ov zmR7>AWt$orsb~rD0z;EIUQn1oGwQh0+0=GZszJ+v^mdo_;y#j$W5)#g$%Rm>2eni4 zLeUU8kuSbXSczf%aY+GpWSMlB|M&r&Gk_(|3t7Xd7^Tg#iBZ}snrJ^cvW0ah>AUY{ zEdEu)M{481bR zlf}HH2#mb$kEPXqLuN{3R0~18ODUXVFrfFn6xf__iLf(}I|prTnBOS3pUnJtJye{Y zT>z}=+L^}!{b!*+`v8Xz{kPb1UIn=1^-%vidh)Rw*?=pY!ngCgU~(dPVz1h#lMKV5 z_BCl8Rm6hJaXsjzQrWDh6VAtL{X`a^=>u<6YS_} z?BS>Ur8oM&X+F_!bKfq$J|x0qMCr|XmR#jpExpJl_C0jn_Po29!x#9mYw2LvFlW1kitCr86FK;_v7U)ubqk zwGey2KH(eOY5{3a$b_29?5e6H{9{}U6o~ATcl}hED?#+6Vt%&*=IyR zjTZzwr}V>tPDoA%@>A(~Zt)3MX3m*u(`7x0aE#=|-j%CBK0l+M4!QGVfIcl8flM+$+spC3FUc-?*uTD_r<=o1qD z`XU!q}!)W*l0wexMjCf*=A44|A-x&r%;kh3p66a0t+ANS#P=0 zM%)G8iaZT|q5NTd#~HpaDMg+)S8Nts?i!}@`Bd#4%btLg;^{4PYWc#oPx<%Y$Rezq z*k4EY2YM9`spF%90m3VBbv>BGC;u7ckJ`^YPkj`sl%W^C0o{A=e@7SK6~q$X)L_;g z00ndC@MZ%3M+Qt~07Uv47j6i$gff4W^cs?(7S|%T51hEY5 z1wLJN2BYKwK?v0c@w}k;7eP$1IjLEz&e{thW*Ntne6&MqkoS*;{sw>RoYza=uGb@s zbS`*-IgMMc*Jz5AN!pnw!tb<6#DxwMDYz7J&xpF&#N4e3y1BK@Hu1kY!+*(&b!vYk zMZ$LWqx9^Ja9rF6F7IerAaHMMWd*tu?N>oxHQ~(p6eyC1HhnSaS`|TYCC%Uhypgkk3G_Z)13c}Rb{|r* z2aq=LaDP$XCclHMk&}Wp@{jn!r;Xn)G1M0CX#@<=L6b(OW;D2ZPB_GupO7>d- z;hLGi-^^zPAf=Q*u~q4iUL40LvROcG$GgVt9W)V^R&xCs!wvH+d#vYcFJRHW^kCK2 zbO|Ywzozf{;N78Bvmo??)F=}1>j;I}+TMfHQZ@zo&!M~pR|4O}nLQSXk9vu-7xWuu zUUbBaRgWQ(5WRCO6L3&+G(+8;*t!(rLouZsIJzLB+4HiEU=V#F&4_h& z-jQCj7!NGU#IF)!Ay>c|y`())7m^2g1LF#bHoOQkT29*@$qN#Llp2?nw1}?$D8Q1^ z8;^&L&j^dMiSkozP?5~~Exy!G2_}~VtMc5NagRO;#(+6=PAlT4tq}I-K`lvtgZ=X2J_D_8pl~ug;Hp`W7@zb@@@*J4O&N` zqV%X)5X0&tDaT<4RGEG~Aj*u@__NAkEl9+~K;?f{)XWa_=@S{%Bo z^}DsVxQ}=~&{|gPb#!aU_+#5&{QQY@Z~tp*GQaUYcDYcJn56`HS&WzB7^O)xD{*xH zH#5dqVJcW-bxD&hX)CHp@ujNQV4NY8D*xp(#RrtVmW(6tQNjVYO2J6KcuJEwFU(wxN%0?&X68t}-!NiGtHZZSsz9B*{(1I!NBgY1DZS8#uJ_RmrRkl5V-vY(m zcD*@M-@fwd!!$?={#6d`Ug*>hi_-HG7ua}#T$^~yI(K9wW{zCg>j;_l6?;{5hO zYMME<4C2R>B$nXl<;XU@4XM~6g2|9j08n5qJ6v0UJU9M)D(c- z=W8Dc?|ip$fKD@N8_Q38*ZkVY-PmqKQ#SwVjE*@{8-Pe!+gK37U#xK>h%uOf!w$+= z9eY@X+C&Q66f`|Gd$eS{dxLMv-0Hjada@=|s8qYc44+V43qV^_OTm6CaBTobVXz9s zry7tla6h0Z)6PjE2&5y20ll4f5ETyI_##&K^C^!L6uy!RdeTIk){c)L$uHms21bYD z+Ze_+B^&%KO>9_)1!YO#pO)tNkat1~%3On=Em&8+Fy&UF_R8Cr$kd8@I-(%#0C?G6 ze_-lI)E%M!t%oP)?Z(Vv#F4sj4SEfXq?Mn8dzv+WG~-At%u8*c5#mJEkD)d@vyk+8 z2fU2VDX-x~*G1rk+3^H(?em$@MTuJ?5zi{nvnBG}sEg+w_p>AamDCG6ibcB7vAo!Iqg`iB(AxPhXu@<3TYR`IR{bvIR*6w9>OK0R6c}zT|MITuJcPfj52dl zxP@ZR3pse}w|%f~My%TNk4T?__j`UB?#D}JGvrhzmH^q~@aUH!x%$OM+8C6d01v%* zj6`vFrItG!;K=<;i_Tp8q?`NmAJQvTRnK|dDKK@Hjgqs3ij1`AlhwGd0=`Jl1~CWr zPqM`mS*Ei26EMzgE%KXxNShms&MQ**J&_MIUBZld@)2rWRcADY9lKO!e{frf$}~ek z<(6AO_&u4B{;Sb@LIzr^)BKeI!4(t(ELeDT8psNrCqvqE)VGrY)+E=;TAy*URI7~BFJ%m&ap3cA<0iZy39V{7RHUcul zox6Kmc2@##eG4BM{*Dja1O?(p&R_BI^B8&q#@HI+r4F;cTQMJ0f4v8;vgJ{4`AZ0_JS>A3xKbn|7;*7fF+cK2^jyMe95icneCPKXMRI{+28TW)!lFi|Qflr<6QVwuUF>C$2=U{=a1au>IGlV}{HI7Gb5pbZROFmQGQ5AcQh z`r#?!YKs2$2~!R}e*Amo8PVv;s>3jILpu8&?{;JdVKLFF2Wr4=Jpa^laYWuUYSUxq z4Ow%f`7r7mpr`<-M-%-|u#yex&I!<}&%gi?mBS82^Shw300?>IyGQZuTsH31-kg$i#I!a94T7OYZp_d&?0WV1{>j!?m?|p#O+nW$nRq)Q~sn?|-;dQc(-tDD)x-b8~aUuBt z8jv0w8D<33{^KrLZd1tHxi-{gC0?5(Srg=mB(NLBDJV1!f>e^6J)l;~SM?@hAXHu1MC=(Z&}U%})p+ADEXF;zjEXqpCw1Xze_@dF2Q*d%KUFb*0jH%r#BF?N@2{u_!7B?TvjE~ zo@U|DfuBn%mmfG{Sjt!tE8a z#%S^GpFWoAQP|nocZ2qxBeiSkJ}fvCz?dJkW)SPrD(S=;h7!7gmu0ZP=-6ESr3JdQKEPaRvtZ`fbBWZP(r$uBM3KDEJ}MHq_; z6fp0D3cRF=`LFbB0I(a8_t&644c~dK{fEqZn3AKSFlhEbi;`2M?k>* z+Jk1=+!sec$Kqm2O~R;*$bzV-yG zius4Avo^1VWsR~r* z0QVxx0KN~$LVie$DF?mD2;v@LG;5@~p_Ll~M&O5hS~|oxI150%cTB{ZDkUsWujW3g zgJD1%DQO4{sV7gok^~R_l|8s58r3&qSVEiRSNB;7<4B>k{hsZgryo*yltCb&xLh9{ zFWRdeom^TfxZq*s0Pc`Ow<>S_*E+mxT6sm`Z|ay((VTHx#*q#LCV#547cS=1!RBD7 zk=iflM)||AiHyfjO8yI2Aw?sYKjE6E-%75EfB!~e`_0lT*t@UMM)1*PILwLH0p~r0Vo4{D=lIG%BEY9N-;RvE~T7nG56yv9YNZxeaubGn1 zSOH^px;h=%BURkd?K$hz1#gd|z8~aS4Qf5-V}5(w1#ZRbj*`1;>i>he3|g#L^jdd# zfyu#Fuo)nV#h!D%HK;4b41AgSK`619cQ7#`tmr~r45C2R4!1YEzQYc?S{mOW8G#y* zXw}p~pb9LQ`gJ^z6oEQ~FGEP{lW7DT?`3x?QhP#<2Hl%t>ei%(Nw35c8u9bsB045dnx9?J&PY=L=7 zP=vwz8je+ zwY=8SYgV?i4wNHulr+epMM%sv5tmUx-tQ(aX)bqWrFKO<+4iKQKI|ua(pJE3!)mLX zr9w23tShV(!G}>tD?S=VKA?-7M$Tz*u0ppHp)uPyJo9KYX`sDfs<7Fbh+4#AZ&9^J zGi0p9=@KMXj zrs-86v2;8l9cq+wZOQ z;}Wv1dyGYioqnT07nnq$*2X;oiP_yn2FR$vpJCktxV%!rPKbn+-&ueV?2rLt`I$6QI+ww-84{R{jhG1;%&Q=A8<)lc_!M zevDacS&0bj->ARkgk_JW%mnc;}p=2jg6#Xe2Cz)c5gP5SB6j6QV1P z-YRy}1U=Aw1T^FWqQr07?0wQOesm**-(|QFf*wBm472L>jMQMe2CSRmshRWu#3!&= zY+!`OR|)-T|4VC91VriGY6RVXDy2o#+QA&{v}K=(3#~xstK(bA8=u7yX#Qq~hO0$z z6o$B82MeD|!<>;Jma-O&&|T441a(>@c(C9iTwDY_31HlzyG)%bITQAnB#WS>zqr2$ zRyQQgRO8T_p9yWsgmTkvhpn`f3A;xSPN=^YZ%5V#m0)oNw9`yy>;`uuy66TrOnybG ze@5-1AV-?~%@>E49s)Tkc~Gy^8Aoh_f^mClyhQGMzSYi`m4t zA=gOU%y&!-dZYC?!I66CpR%FyN42EeVQaCXTh-_Gv99b{kqi&gAwVOp+={za#ARCr=GqA?d29}{|K6uFM!aVzY$h+^)7@V7x5;I@2|O1) z?!iPa&MLE0XKcMu|~w@Y+n_1sfQ92`t1tR2I8bXWzcJ z5<+@9&VwH@&ufS7zH(;!H*agefaixOTR^+GrBw{&oqA7ABm35GC{mvI14$vFc-T<`dfOc%yPYw})nHdRZXX2-z zGc1;m&^S$#h`=!5E>qYyj=ocRY$K$ioj$q+8h-1GM)(L`^}#iD<}2$~PLNL{0J-mP z{=g0fa^yUS`n)2zx7c6u=irpR>c(6|VK$orxeDGY#0?Swtmkfg{>s zxC1X`HK0D&0-cusBu@f>kdZgy)zlTZt^5Yf_&0mCgS4Uk{_4oCM*2;3Q54q9$ZCB0 zxqT$B&0Ghvwc@(*uuqub$n?mRnt5$)9y>LPuo5qV^4b9N<6uienoL68ZSjFE;Uz4W zdh4o5TEEtE`ZjEvp5JvOd(*>J@jrqesm$AGfAw6aE7T#adzuNk0tHmq){u`Bv_yO9 z?ENu5v=rPH(wl!PFKMFH`T#rB-T12@jQ}$Ij0@gM{^%Pn!nFW0@3LMOJ^EwpuAbEK zC>L+^#*>th5n^`sak#P=8Um}QXz^-H_)|UWG_KcvaZ31eP*-Of;;Ss}!sk$tyC$0M zY(#>b!KnPzgH6A%2WY1A*hELO6tLx2mD*;~?r$m$-oN@u zaxCN|q@8UW<~Y_qxx0L-$aDfCD5+qm@iQ?nTND`rCfXOINPK&b(XAx?-xihk1# ze#oeT9<42ok^@E_SjBF(?Ni-9RFwZ&bmAXr(Bh{*=I3-DqLMr?ts{tuj<`8K+@RJ8m0d#xU6a@JD_bEjK4*OGIJ*vIASh8Hmg|WDoSe96)wxF+uI2LSuc*j-aYZx?n?n&iq2`DQ**(lMs9O@nh`P zv2%>MSb@)~PA5bmgo7RN-**D@%Qcm1ZG|i%B3QS~BjfC7!YWq*sx4$Q>Nvk9IammG z0$s2^<7>A>sdxf!=3zkG%sJ=pdj3crbZmIIw>beqPoM7|Oob3U%V!x6f(X0m29YFi z@|H6GM%9MLD50?n(@7kce-C|J?Is#w*s-F_GZ0Z0YNfywWSk0HW~KH+TT}HhI*JSiF*?faM_x5Cr6K7<`;a(xcQ3Ve@~)|0Ec`4d;lwNNCu! zLnNOO8c{`m;nhV+SzG5 zHV*&Y%ulxQL}N~sf%ypfs}w!e^{x~kx4$r^YikXnTPuI4v$TLQ;&|1>m|yLl^H23h z==E<0<@VxINaKcZ%CmlXaTv6rg$DBCba?MsX{SpfFH--+U)qu|C|mi(C4ZBDH>g*} zGKDGC#2X|58GqEz!wzWVgj#4+;T^1;TrI6Jzp_(G=<>excKg{O$zc(-E`*jePswjn zE>X236SSrkj92O4O~t`!rcL0f`-jyu$1haKzsQd!=(4vqAeN}4I5ya9#2^;9Rqa@@?aK%=7^{ZNbVxLo02YUG)9(DGac`at~!7DA^ z=~r`BoZUu8XDKSK81aXPO zgrvv_v!W$w2vI&T#hpC!Oef%M+Ii}89l^439KMCafL#XnB!e72XY>InFhoHMcOeMJ z5HI}wtjy&k?~UXr@_&S^Phd@PI*{b)qYv)O36Dj-(}OJrAn5PnhvEh|lf|X7kQ?^O zsd{DW^okMUyd36XzExEEcM=NpJP#;dbo|2I;GU(<-u8ARZnN!nd*e;+>22Y0)+LIQ z>=2tN{4AA_E;%OAa>Fm4lj>gu+T5C4fP3f?#Uq_^Xj2?*7nk(=tVz?oFxk-im+lh( ze750r{eXPK^9{n+BNt%WPM8qAwUCN2RsB@>kuGwF?RCedE1c|A+9p9x((YCIMHDg` z8;`*t+>ygT%!fdZ;VTPD<=OiK7SuUA{fJf$jNBy&SoaG`kB@aF7yXxPe)xywluw#r zmv21Bhksos=&;(5m(^}(03Ju-yvTF7dCc^oP)L~XWejxx`X{O_{b=Cg7xD%6nRpa2nK9XhYC0 zUC9}iW3!!Pqiz-o zDvIEK6($)4MSrYpR-eEJs*~MH5dM@-!(dClU3% z6B?c{&w?VMvnU^Y(Zak^CC(H{CgSHeFGWmOS>&Iq6#3;JNo30xk^n?w)RnW3*0A+y zrpVjBa7rA9MJ$~VM27&PX6c_hk>_AQ?3zQvqdUuwr!0V*U>!9qpfl5VdT)OR%c$h< zxvg`kj8sfRpU@=VFUW}4BCGZ!1n*4h^@V_4{#KCxGJNEx6=`|v_oEW|$S1!e+MuOP zWlWrv2tQJ z)rTA}j0UJa(YvUV;!M|EFP)ik%IP-I+Xi@j8k;#rFjkvoHd%i}#|ljHUcC}9sw5?3 zd(I76oEbxE_6%uVKa3^y51WZeIArVQ0@D|Gy31zkY90n;S;f6O5%O)+&tF?Lg(+ix zcyG6Y{x5)Bca)wcn9#Jt-ja^ z+0^8t85?SJ{YFViji~NdID(8oWsOUSyu(2l1BL)kpTwW_`POy z?$N+hV+>@bu&tM+Ev&}csxjq;U^7#a;CEdROgJ9-HN=v8Pcw_AQcg^_tSy2|a?PZS(Jiv7eoNSo=hLVXktM|bJxv%|tSmCb~1`9*S9 z(S@~W$wTi6S!-I^vskN6PTz;zd#n5sP9iU9Yy;ye_w!=xlvm;{y6U%Okh3}C@0Z#C z#nn6aRUWt9-&5_(oo(ASnY)_oCL5D&+jbLnoNU{ZrY75%Y~${{e%Bw@dGE)tUi!2m67E&Mh$p?WGucH`}Pf?y!>IyDl?!&fCtH3SW5567SmfFlo*cmX@(=6 zRV5zMXD^Fw75{K&PfPky2|q@KVL4EcgED3GKX<*Vn0!GQ_kK7Ko%%Ri55T_4TA=<_ zGj>Zo1IUVT#Ne`ng#GoCc4hSuUq$?GS|toa@D9Cnv`qo)+i7nf@r1&sRI3sgbw@Lwp~#vn&n?=u#S%3orvr z0C4Y)6r@4+`a)sXh_vGqg9+iNS@h`28V3Oj3zWBRYT!C*2)6Gu+j!1!O;ix9_1z(` zFeCXER1hZoUvoI7!i$R-V+OGdWt87csC<`dOG5@tjby?uAFn>EWZf{w_-GtXmgzFA zzL5!w;9Y&z%b`)BI&aRl-n^1B=H-g^B(d}DVNR1NLXf-+ao+#38G~zo%LPyR3m?0< z_wG&G9GzvupP0NTIVh6MqcSOje*mgTnzxo>dbW;u`~$o8V30H(|N5blQuUzu;d%BN zvUu5IJqiZ-!AhDwuH;Y8!a=zq95r+ViRyg4T^=o*yu#l@SIPgW7VaxEg#j{D#bx~s z2RbgC(IkpX`fK<~Y6=-c5^2i9RhGD{Tfk^G^LH|%!4Ubd18+Q^=n;}-MY~`dJjD^l zKb+)o?ufj=)x=6hK`YNBE-MGGZ7e%|l#Ti^L2n0eE4Hm&SO}{Q!F0h?AfM4g2{ihX zudEA55A(v^9~3VwhZ%OAbg;GQZAd|L;liP4sD`(G<#3FM+48Up57=CR1CyK%ixeP- z{kp>B9W5l&CYVBH9*~p|lTgqIXlFdVi0UHrhnjk&zG2~k1PQZAgt6-Gy*32YN5=U` z@jfpZ{|v)3U*jIi@jl@EDHwH+Zq6#sc_vH6k+aw$Vh4r-SuGoBKP0e{FR-ChNO|x} z;z4i(dMeuO^7C-WHOvlZmMC7%H@s+peQ~@=HiL3X$T{b*3?+i>Bu7T#o`EggyT49l zaK|r1=ep!0l-EOERKg2<^^p49QAOg%%6=IHQZjX%)S+V^uMKcg$otql!hO{G#IX>? zUZ#da9|*S%EPj*&V+Q1&_8&h7&5i$f9ion&QT(7T)!mAkj8hfykK4UiKMi}M0Nx3t za@rMUki81M8GsH`$<&aQ8$z7f&eDH7IxLFPr9~sZrUS3)ZrPHYql_L|LIKQ$ZX655 zu!wr)gf$)3*{WOquJw%}U*HdhBaoVxv<-H|6cwBna+7&3S%yytYRDFjVwC%$=^W!B zI1o{aa)mT--i%wktzmDbB`gruZOt=N=n+iNr^NIEFMmJqY=>)yBvqKm{*8rLB<0x; zKzk8#*ktR_*$HugqtW{~$Bs*^2j~jEF?2B{1CtQPcb zKP)8(GDSX%6Yzr(l}$k-8*GT?u~ka0&Al9W@N4al6bkE`;i|_k4%br(M?;VOVFxET z`~8hzo1KGt3ss6J?-%9ujmUYSU%XlKQOTY}82>wlaE1wqk56Eu#L%u&DJVi1P)Av%isvsQV^l4x&BABfwEx6n z;NEznhvd! z3J(E8@tA4H@5Ceng`*nQlrrq%OO7q)G$qLRH_(4YYS6-8i};(uge4)eZV^U_=JDQk zK%4Z^p$)X9;?`bEK5^bRM45qgQ@()5j;-8K##|JR35iRG z`nmPYKZSA9ZN>lVWB0cY$G#h&P2$ygMVPg#R;!|)=^)I5$bj0%R}dN6LoV*$gHDPbYu)!)JamasPp_;63OJ zL0B}}-BSU4`-yyXQATq-Ee_L5OmwCwFJ-WWc)Q9E-W&@AyC`A;j!Bu{$ndRil+}r% z=O76l2c`S|ypg5ko`yx;iwf{y1tY`f)unP)p4E`fec%Q8HYMQNMIf<9$MDLUepaJ3 zDjuc^&fDX}h?Y9IWaH&;a-qL1_~F(f4kk1S!|XbW5RBh=&z3Tv8RnT8-A=x8VNV_lord20g!yOJ(r5PVJ zCW-Eu{BC9WFWY#z{AUK61$1|I9cBTr zpo}>>pn8bx=w%~FN0~mzngOVk09`mOQfbhF`-jQ3z~hjUS$Wt+#T7MfZJi9wf4<9O zrwj(~%$fJ$5>27(ba+4sX9>I15yS9;q*h89(Yt+SSvcVC+>tkVJw_Iqs5M1V$>2Y( zvZ|Qg{RKAwT>|O)W*p#-$RnQxmY~X6i{LzRUq4N2&p4!b16ymaD1IpSK+F7t@I}Ec z@NYNNblWZ9!0DbfjXQKDlA*QD9}7%;wrxO$MMWtZKSe(O$m)26lW69gEA;>+sW45& zW|sISYs51Yqx1ZzA&QtcW(j6rKpRp{nUTOF=NZE_(3>4PolFx+$O@=N1Cen)X4g(Z_G4 z)qJ;h2dHE3h9>iwdX*dsGZ1?idMtYVghd^0cq0G?mkrs$ zr-d%_-6k-sc9?3p2X%Hm)lBzGus7S>{A1XsHDDIOFB+LavLbvTdKwIWv%(XU78R+d zdrLXkkG-Fqe5W+2BYgw!t;&cp;@+=#5=UN4@^X&kuE-KmM+C-Tuo>4wcEED)YGyi` z3^2}jXt^0t{~FS_$E{?yj2n>MnTqlcO94{jFL2FX2#8c{5ohaP{5h~(Ql3PPXW(-@ z9ljhdv?M0w1z?!MO~B=Twcd%U1|VMyBSGduZ3ceMeU+nv_9IO6+bbVm1aDX_R3ICGqhR$P}E zHextXlVIbKBlWnO?)Cf|sYsrQP4zdL!I)s5t_+oQt}tY*>WPtu50FujIpDqEYb|dZ znmLZf?#go45-D@|A5$*2U6{$;8JzXj(lC<-$I%>EB z_o|tL3WL!n8222sjf7BSm?Vqxn3+c}Mj-0W5;WJpEeFGxo-+<5#8bfdp0T2D#cbOU zyqj(-r9tzZrOud_2Pim8B6(*ThOlpl+G}RHLEm{fS#ql5M0jCEUk^yXLP>wx3KE4S zUtecbxO>9nLXbo*2@op`*FKi)@3NxC4D!|L7!xJ)ng?`vK*RH$!6Tjro|X zaPja+VP;krqt^OOJq}brtgNHs;7|S&GfQm#!X>)h+a(^K+z^eQcmC=`H&!4#QA(zHhgKlhYO~0IKJg!4yS}k!V#cG+ zx*kusu6+oRU&!sw$TE))JLOYGMMWD$HikSrK_>2gA(<~!F^#LeOLyc7Ypc<_?hoK; z9SBdM#e@rIXi1^#vbgzu;iNkXGo$o+d@`M-uYv!M-yu5on@d`-i#W1$QN^DKJ+3;4 zxNXkKK!?$Zdoaq-oAIu0Fw|sq%aul7`gK#T){BfdS7ngn-`ndA)~WJvIuFZod~QUa zj4>3UqG~YVfM`U3PRCQz)8}L1a!NL*JhToF!pDMV*u!LenVOTQW z5}EO8H}L7n;RwXV__WkM=}A#>O^B@`{+GJ@Vz%JmKPpZY%ljlh0M#Z?Z?=?fg1CgI z2j-uN&UkDNiaCQ+(L%65)+iEwq+9sN(WJ336kc%PGbejsoD7oNoyejC2|JE`SpA~L z8uB`1=vGw%@&*i5k9aG%4gzH1F1m6+>atcutNjLqG6l%(Ne%pTaO*=CNa+Tsbr?3r zlxXty$w>mK4ir5y3rH0k6WLgU%RKy$V-xW$qy9=b=U}fS-OXegMKRxRcdA+6rnMFJ z1R)un{+)3UrwuD#W*x^|8aW2=L~H)zGi+V}wL89i$R21UnQEJC%FSV%<2l;b?9 zr-9@$CB6`RE}8BNsr5qA#N{ucUM#dcmT##v3wTea@GwNL~Xx6F4S9Frs&QPayyi34MZ|xldO^yk~#sOg> z`AZ7|aa?*5k*(YdeU6~~x7n-LVLP8)^DxQA)5Ck1H6?5qekBdV@kygAD9N>gyBK?@ zU3CgWU+U+c1-OhlXrbgo7*e^q!lKdt>r@;}1`>{2!lo%bS0JI*UD; zlo8eR;XTgXkZOtnltah8lrTloOYWaKA&y`{r3wj9;PM1@r*UIGW{b`qBb~QJ z>`F!NdpP+a-==D8OEt`UoHoHHwG-6+F=ry@wh?>k>NvV<9>~vw0{Jp285Rcq&9}fU zt|Xn+|6EB7NscF&e*>XOn*(>k-Bw>L*)&8l@AWt}hw^_3K+2nKThhae)(d9_J>tdC zkC7j)#Y;D7ikLKF;|)`AO8ijyAj<-i6o!H?tI7SlFBs%IYx{*#P~9JeD1sS!r_s!K zp=@#KT!t-QZ9U2eOS%z2=<@-Cuy6}}q1>CuZpkj)f`O+B=2q^3I`5h4}&7~hK_rj-k z@w$7X{%EciS&vgMTW!PVTGa%v%4DZwJj4dNm=jee!_&rH{m}7B{iM_liZdj5g|P>5 zqyUvZhJLwzvMC9obz|!Urm;_u)C`@6{&5wcw&sN^Rf+8Z<_cKBz~A>+a7vRu)xykR zc<$}PD`4QM%^>7#v>Ja*l50lZISBDHFCcnS8;X+qOT6PBtZ|4t;J(}jVPtVsCLY{G zkiU4cQWf}j`oq{=HJDVI(8+0>PIrih= zIs$dP!obbQMe8FXf#}h~9|!SWBq7Iqq~7tUO&jx1yDc}{Stfm)^v}WB@e!H@;ka7h zB}rm|kazm-B7R`c{RwsNl{)6K-^Sqo5-!OR%mFmgkD*@`2xFLnHFUXg0{hamT|fZv z?^oxbC}IW?pFej%y!~*pChrxSrd=Zlxo%{^Zf<$mk2tjExU!`CT1^KfCsMz3yOL3~;21 zPPuvcHbndtDV{s5XLNyF=GX<6^e7_}aDW=ChgcJM@_7w}Rl-|?HM(@ERz zg{5CvZdhX78r*?vcJjJ>*BU~onE|FqRCFdq4M?`GO}LXD(l8E*tzR0=$mUj13ac_L zqdMaM$@27`^r6pTCga6*l?IrP9cZHmmU!SUF>K!kzb(}?V(G0DjcT?=MZvZNYy$<{ zl!m^3VjK#czL=x0Cc4|fBGeFr5?4GiPh^Z*xsxtlCbuL;&F4gZHDZi?0F+ce+YWoa}_x$p2}OE*u@qh?Wq>Bi510|T+%PU!0lRZEW5Ep52tgK>JL^#YN-PSxX0{TUOw2w zgGHr03r=-=`U9V~e@?uV1Lhn|Oa1BlB zwO47J%sI=^9j43+?)nBi;&YS6&4S4-cj^y4=X0QMdBa+9AT7s5 z$sBUgKrUby#?jkQu;la$0`XG>;-MiQ@LAS#iA6_4uXIjK=h?^fsZbzc;ur9w4z5h1 zS5=1~4g?KXO@m-A`MAqC)5W@{+%WNoL<)u+Q`&zQjL8zY)@@iKHj9;}BCN#hvnAON zuplC*tE7qeDs&4!``XN$U4(F3FmdAPivAYIQ}fQw?`lCO@=Yyci5;?IP`BaI95hRB zSd#3c4qJ9l9-E#q7$0X_X?097GOP`rC`8rKE3BQ=xrAOwyr;dz6eM%35wUlt0^KY% zKVo#_mPd*P=P_he<{B4qBl$+^yAYC>*?jdXWSTzog6%plFT43WOlk(}bn?N&XEXYR zSO&c1|Ji=9C_8gl6hU@KzFSN>Uh5Z?uEHO`s>k|I&k)YClP*wJCX8)Awsd0^&8CTLEnSxtbtl2OH-MN=cC>{~ zvS<24u&5Mme2?Qy-5*ujl%RGbl58Jg%P^Z_L5xic$LI?YZ0|ZRTpYk8+DJRPZjj0z zLRPDd2?&ZR39@895B((sr@DgpLExQ#qXb#E06U%TgS*~F+2|W;87&n1T%H2YVTcre zTiD)))!~y|$ItrHdfd{U`5A$7n!qk%V};XY1aFobfc9=0FoQdFIcV64s&pQ1dcrWu zk&Yt(lnB#MIP@|LBdAXnpo^{zxW4ZJ_uUacNB1ic=102pjL?q4g}2{2PH1-$>yQUr zy4c5na`$6G@}x>Pj2ea4gST;lykR1`14w6~T1y=PQ7X}i_;!IgHZ*JgF7PeP#KV(_ z;f^{7ymEpUD&}b6iNltILyv`JMQCyH_TZvMB*{?8vU1vf5jHc2HV`fox0FE~Fbq*{ zI_I1DY;S!5P^)xLjI0>);Wr#{imP}m+I((^Cj-UNRY!;j`xj8`BpcG;#?Y6JrzCKs z;b%m@eVp8ZY{oYuep}Ry#M^0caXtLY`WJzva+p;42kEU$h)%(Wma^^hgOh|}q@AOw zCWjuP-=X>*1RD|wUSzqEfupEirxmDa3&oQci-ecTBkd&c$RSNLF6gXUuIQV8+lZiWI>L*OZw-xLKTb z;86BZ4Ra*9=`NX=E;yrLG-wW>Mx136m&C5^_eN;#!o4fUy^1r*g|0JcRsHCq6IrFR zd}+vi2(_;T!-Fuv|5zfV)d=`aNGH*W;)cuE)ual$1&;6bK5Hes9;jDff3%kIaGLiW zEg5J0)I)}ijJ-@)MdANF>Cn-g%l;fYE!==m02)jAsuqhU3f(i4t)m_d#ZvD;%L!}i z`*vhqBbwQU>;K*}a!#LhYRZOQ5fa9Uemdn8wW7|(IUWC=;azr>Bz1R_Y-y+nGo%Hs zBhUS?^c8ib#y?R}PC5viD#2`=qs}kkMaS~&8;xonSy3mrJlbLAUB)Nf{3p=M44t^e zF?<0eeMiS9A2d1@JG|P*^RTIj==6|9njaBae4{>(APTQ3z}IcOApN_Jmgx6vNqsXh z8Y%AR2tPK)VCd+C`2W<_>TCFwkV=y@qdwrri3u*f;}(+Yn1$;DCghwGb);>I(eI4g zo>QMDADLdd`prsul{J4N)cj^~ zrZa&VB;KABOV5wGa_MTB9+fF|y9X4!4K#_vW1TRQ*){-{o*~K!MPGX>!uQ=fv0b^n z&_l$}b=m!csWQPmplzzA-TDMzcPN|S^$mm)kpk z=F+~=$LifzK~MBEx80JbM|Q1%b`^iXD%TV;Zd83vY-*lnG|4+e?jP(CoJ*f!w_wzK zQ5(ditQdE^(#0_;YtZ|TIhDCHUr#7-<0nq63)p<9(ffS*EhA40GFmm-$lr*nUaX3y z9>N?@SU3>zo1y=zOe`mYUc|@*@#8VKV$Ck)#6To^S<<@Je69*#PFD`S#)6){1}`CLqBM!5^Eg*0)moj#P*!@VvKd|CpU!#5V1hPGt@ z|JCqI9)C!FCghCr3Q@&d77!vCVb1AmX^FXvt*0wlXB#rc zf@;mde%k}`V1J%vAt!}I1>c(#jU3;&K)phSBR$0B6MhDsYnT8~Z%7aIE!*?o+v)7e z(9cd<40BQ&z^QoP>A%XWKT`3E{+~0~-AEQ21{%}rXJO<2b7u4g9+Btvt%&L%jF(cdbhS|9hd}cak(4#h;K6WJvhUP0%=Z)4thDX9a zF)nKh7*qlhHD_V26BG`tkO(S}r3gN%Ql7_S>j)z~j}&eSVltsTn|?`egU76pEu{GR zg^0yw`rtBwJ^qlkr3>~m@%=dp#lnqI8tZaxJNwgVH@MEM<)HHavz2b9p2Zs{%>aHW zbcmJh%Y0PHiDUwK0JCA{vXn2$+fs$sXN_p!`Q_D%_SGrayCAIew=G@VL_K~`oYLJG z<`vtKd!5x3q%Wsp4Fyl#a8GDgW6`yQnEKC;;xtmPv|MsPEa88evwVy za`O3Li!0k;nNJ!FY*IHn--s%^em1G24;;v6Cr~~>cNSy!owZ>njl$`=HeE_zQQJi) z+hzUeUzH~63XHQ6S24zXN9@ZX2 zey*Q3BJW72+d&GGscNC5tP&M9Y_3&|lK{LW4Ur4@pHM^^$iWQBGoofWgwP)u2}ehH z%pJuperUTi>#L0Ea&bZTlpk(%wusqoO%LF-8BpUk5KIB*N!}{ML`uS! zPW%a4_}bpWSNDZG=_C=)BygBe%H?WP#VzQnFZ1;m**!7j;h>n7>gGG9cfD0#NZCrl zQ9Vh3k=Ud}4stx==_)=1hMxvaMKsemlBiPL+i(CbeK3h5##YfuA%!kwECqa7@7V#xxY_v5s2fc8))!7i{=+-p{C9 zobIDYDt*dOd+V+=S6zCTcp&q$2&$q8-AAOtEbDL>b0zH#p>5}d7@1#)Ca zw)YU0O;=KR?wp{%(X41WA;%W?w2Q1#lg?6{Sqz06A`q_a2$qPf!y>MXFtT7)w6i!H z4zteId#E+q0ao?|k+>mSq{eyU{3fKj!AC}IGqB^x-S9YN7v4pSTheC_K zCGlqV5tWNW!<46B zm2HMc#R-hbBFy|3E_05NcmrxYJf;(VJ`n7VUo6)v-~CWBcS&Z#{xgsFOc!U41SN-!W%kjky(!}?0 zOyfv`($K{PlS1ARchpVXJwPyv*2})r89El#zEH5{i{5_fk+rS3g&j6u1IM(cX86W6 zyUXEVA=z}eoR}d>CXJuOOxFpfNGq6T9wN4nn6}dwT9SToIu|os6uqT-3}2t8Lrsmv z6(RTum2E{ce0bymjl~c7D-UtusgN0rTc9P|od}N^tbCXqW~OS2k0Ppk_2LYAd0bzh z57K;b{-19IzS!DF4KtG0$rZJ268&^Nczt6!z)~mtCzKV;EnYGaCn`u8B?89Ln54JS z(|)>DrQO5EkXV|**&hzv^dt((LFp%Jdk_7f$d&qb1YOQ*F!L>bluB@7`p@W`O2R$U zqC$EW6fR+MR9X&%$XL+J-vo9WQIX;uATvurvOJQ4m(XEhc4G^R}eN30aa-DX7KDDj$~vT1Get%)^0Rc2>I*IX&XfXuRmlI4)e}$ zc`9~t*CSft-T_!s!ZaGkDQAlMY=LPWR=Ar-q!3Owipt`2ivOg@K9$&}n?=!}V%Lu} zsCg#gx#WAhr?b0}==|F5-TOwUCFAuW%M;{}cwVh3Y92w#=h0-6UNsyWu+H1v{MI3p z9v)(Jf%W+vA9vs)`;KP=@-E>bw||eI-50Fcei!++w_6B)1U8&OpxeCwdQl3R^A$Tei!{aK9$m_K zRH23ff-jd0E(rR0A{YEe#SqZ-?xOFx+bI#s!z2QA&t_*q# zmB+noDl{AAt;{v5h>8Lft@}>c4#j;g05o7nH-q*IxYA3!R9|OjzxLySA9x8EcDfbyFt%rc(df z{@#$yBOOB0D{)4~1DVV;n^^yk!^8F!V6ADtLz1UcZ_Lqbvl;*0S<`qnjHJN%g*k?# z*7`ZCF^4+l+}a`LSDa%o?nuD#LU*wo$QdL4w@vPb8n(oHN?}H6oGr)j6mS|WK@$gfuaX>zAcr4h)p^Tt`{kge zr$NGwysX_FD0zv`N=Yk#T~9EOSB3LW4~7KLcgy)(oe9?rv3PAaD`yp#3UaLIH(DoE ziNsh+?KNidp@_E(Av1uQW@<73|MU;pw{$&oFDn4!IIWW=Cf=2^PfbC;&Mg(ie-Voe zL0d9AEHNgY7>vd$9@%y>oZ|knLSY?0Sl4C)5~m=M7GDzBaE(Z%Fnnj|kFHw-x!=Yu zyII0YDoUm26t73SMGuhhYh=M!3ufpZj+`nmN-UB$n1j=#o`lHhib(}IqS09)Tba+T z-njG}gAUg0F#Hu|Z%^P{x%{Y*?)NMtl4|vYgMn02G}k$ML)tO0hCX^#r2ZNlOwcLx z@|R4}rYnUJy*^2XuqPr zb`onVp$-M7Tk;@MAA7?b18cyphfqoKbt>bQ`ie1$a=AaMElbJ_upn-O5cYPj4NSHS zERJJ`OVo-xsyI=;pntRha6p4si-znBqoIkZw z+Zu*naZ+|O52|XRU%3{SDH?yez(!5_8sj$Wpo0Lyhh)_?i!MOdL&CO9k`c(axh8&A zRh!Ps59)sG$axRp$CcJ7@GQrjm>o2X6biG}`-L(l@=W`3R3)Ve0vxAewq9x`_i_}} z6!;Ova$pz^Pdn(LaA_9tRwD5rfV()+Dar;#a&VsI^5EE^qOQGv#!PS9MS?UD)f(~w znz%#)Q<<+PNhr=D0oS>7H%^tW0X>MD4^<%M1Tu=H3-qWQmq4JF&;l6lnJm6{lJ>e8 zef7(4650yVD{hV1{IYkU_-0py%CNv&WqpN|$9le7^|?nb->}>cfGN3Ijb^uzWsvjuwY5iPXK*f^CEb28%;69S0ab-izo)-(G;ljj%u-cd~12 zGg!`vOSMwVmt4xzk?Kv33^q8wRnKdxO#dOcr5C85k$mJs1{n)S;Yad+OK#Vp--`W? zSgx>cW#49Y#I3Gx#3MTD;B9kvE*DZl1#ML;e+5Yg;*`vtvD5oX2+L6Z*YMg8+7b+t z_2lT6Eq{z(X!*V-nf*lMqV)^>C;9z>xIG0zK&qk(Mtiw4hV*vMJinA0>MXMW_n6Yz zP}pvBwYTtjW`mDC7Jo{~9qZ2esd4)pKa1t@X?%O?n~SMOA=_UAHmD7;% z9jZE4aG++AK}Mf?yBqSZV)05>2Hwm4LIM55(d9xYgK`UlcD40KbP<`ovp=<`H|~()-2`$?5xgw!o2k=l(rXSOW@-7IVy zwdfKo1w^y6v9VW}lr z&TaIBm1k2zQsOtY$Z%HcNh~MpSYEb>SW9w-^pnFeVEnEM5kWhI5KSQRg0z_?IEmYE z@rRQ&nO;;4&>y3*tT{;U+!TUqk%o)=%PFWnC$(i{`$r}__OFprsb#L@HRzh$i93nF z=Gtgha}9_T#I#6`bD8#~_D#SiE*d1|IOxaFXd5TKazdl)x)#&CBYnF-HSkA)z)KNJ zIz-~7c~%K_rG8o)69TI#JHbsaj;8q}Q8^!aHfTNp@frBnPI$*`OL3``ljyMVV7v02 zv5b;AEM`++%}w{qVG1ZRcUHU`vT)2F9_nDU+I_`^*i&3{UjWz-GEt^{F2@W~NcsDG{Y`)3wea{2```MDlAzdz9 zC^`{NVw0psouo7;A*Muw4Z%&-s@~GaS4ybi_-k}@T*}y(+}OkTEYti8Aq(!IhChcG+y6FsV$mV6Tz^%k%SUKfRCDyg^R_K7fmgEf|( zvA1$bTs?A|1u=Y$gAu2jBUqQJf`^8f`lEb88T{igyv)rv;9CoS*|jOy5tYl268}AA z@d5(hN1AudYU5of5{7B9BUalC9j{oYjLjnqUq^lJISb6TfE5d$YZ>7NYU<+tA)l&T zc!h+uCk6<8qJ$G8bdT@1MGs=AE*PB{-6|~W_j#p4Z#!50YT4<9V0BhOiE!;_D{)81Y=e$>p`dIYmk_#?@q8#)|dl#xDA z*%*7xdL{fgvgnzU@PZ0pQ-l`%zKIE$NRcp<++>>Qryg_u))) zyG`ylbT5tjf4{2MIUJbkZhj@$^nHT{wjX8p*&uzuCHa#`^@jPNgXKuBW<=~k?>{3= z^O8Bk{Sg1UB$U;nPFCZ9(7GubTlIo=-=S+)1z|(u4ioI%?=OOio;mObeIEO$Wz5Lo z<=_PVl@O!Eub?mkkZp-9Eo~)j>`+d{gA4v0Kw3FtVn0`X#}pL?o`v9{zamer9$g%Z ze3xgMdZOO4)5gkumU0H3V%?H6F$ZD@Q#gW-Z1nFE8TC8c!*5W$9pb=Nu@jO?u^&M9 zpEwi@gZQa?0bt+80wWK+tYi0Wn`$H%b1>}!#y5IRhu>~wz*mJwbAuqaa~0_h#(tvk zP>(%Ph`d+E(G|OZm_>vPQ`>Oc4K~Zr%|O30!XOMHCH2I(#%tCTu9Cv4LSo;3Vx%qG zK;k2kd@wdR`yG|Y_N=U?Lfp}ajD7UqU`RMc?x z$Qco8t8mvTU31zj+W*dBa0C7J4;IE@DpvPy_T` zR8hleBz+J5g&rLNdmBj!IJ)#$M`qz~)@<1FSpUq!IIo|vjsHQsIhA8u9D{3+cVV6E z2PDVdvPxb-Qw#Wqu>EzvI$O7X)YV4V)awZOoz7x7Q)Rt$D}hhLIY(+D?)v)=LAOk# zH2tWQj2_cUL>Xm?A3Ct$3)IglH1<;E1W=$XE+2*N%(-op290ZDf{06-D(h}}r1^S> z`-ln)czdCg8MBx=B%ndjnuZ*lNO{u{n)$h`;Y>+ z+7TxUh?o7QB#@A%4jQ)1MNlPTRAwlzU{mF6g4lXqk|nI15bF|5FCE#LS*^hS62rYT z8gO+J(t5wf?X6oui=v3d?fuIA za8cqPi_SPy{J>LIq?|9^_Fy67W&fa!W8#f-mYv$YuCM5nIl6BTmslaccK1((f^HFb z?7C9Oo7uW%MS9Sz8GPficCerS#w!agJ2BD+2#Om3^na(v2U!pnG^+kg?v%!*{EQ3M z9?&hw6}3xZRmX!JEmq^C3_!MR-;)yp~W@d-)<4w2u6Ooh#+ z=56~qQwf|`hcU?C{b3$B{e^M0k7H2y$5}Y8Iy)*$Lj0ZB19R1QQx)qfdS^osPFH{3 z=OnOh+cFlrOB>ApJvnZFfiyB7!B?8*U^_R*Mt{fip5xWY!%aG`?1!m`NS|Z>+);wwF+%CKWZ32_HHez$UA4Vn32qnMh4U^U| zV!U6!Y_4?$vQ!)Nr)y4`yf#H^c^rmGbE>71n*BhMch_u{kR+#;+T;9@l|8*M551i& zuLcE$YdEP|6?;@sBVlia0{D7$B#$W0l4zfuy=0{&Al1Ou2Iqt+$EbCq){>0B8QKv~ z$0#1(M|Q>DucD_sNt{Mu!7xt*yWJ=VOGnV0a1 z#JE20Pt-|_sc-k;bXO~E>G^s8>ek47dM3%EC#B=efq!zWtgjJu+Q>Nw9Y#L7fOp<* zUaLMIcr}|ot*H{01}1NeSZXrp3L;MIj7&nP7BLpwW(E}B*{1%b%^ zOc7BLzn8_yN>IRSTU*ibG0;Ck1q7{V!$lt9JsqVEyk$Wd>Z1z7LFr3>@whqacd=`_zX`EB(Hqs}y`17_%H@z+jv7|KsW{xS{~J zHc(=K8FJ{Zp}V`8p`=4W=}H zljN}zwHhrQp|$%FCsyYUE~vKz=j}L2yk03-&MlOk)TsNUH&W^<6@<5cw|AUgw+1ak zbY{~cl)&vRCsLVBXI+ta)7lxH@_}u?SPA7voPvntI>OaeF82^BoiX z=>FtlP9D}gkk7S1p;W7OQ=jN5{d&vdq&aN$R;Z?@#TTxn`uXOP;44W%lANDgq6op4 zcxYfRK(N`EF=-j-`0vu@sv){c;$yz}JqHnjdVQbDQ%x!AOi?eMp8(-cSNar-&PN+i zrK0myS)LCREV4A+z4m$m*^(e6W19pv{l=2JF=!3`tce`eCy9rVHR%gyKp(IAqeIzF zF<@C2hWvrt)-pVvz1WV`;?J-(+4ClSTVo)h>0(2qCU;KP_xj3>f!-wpmuFmD4#{3F zOVpBEuWmkZg0-)^1Es7i$@a25_ztvUG4+-o|KJkDxAjo~Ibh=$|HSP&m|O%})&mqg z%#q$18cu2?iBPKiRT_iotZQ2QW+uxAXCG3Ruq1PFaVx$gs1R6M;vei_cq%CwP*Qfw zLQykdn`JI8T5Ud9cKVLcoj!ju89(&${g;-g4UiGh^s2o@Je{u+?41Oi!Z3<=^fv1? zwt~G0cZSW%;U+-5Yh#l5D?H}}PS1brXtN3?`I0ZfPTuv6lb|bW)=CDu>yOLD>)AGw znK>jm>@9n{j-V=1roTeGk?NtOXu$6M|8HRoMd?s5`^POQ-qPmPo-Ra)xkRP z8;uG;FH5gt#<@k8Z3ieNHUB&thwEG%3RyRFYErb43^Aq6JcKB7Iyk0H_4|J_MK{A}n??2kM*IDfk$lo{%#6tK!!`Z3qzT|Ib;?OMjA|=_A^r0vyr7)H0fl6pY5* zAyC0%IlMK|pz2Oj>5_E8keMepk1E{Ndb*YFrV1sK@t*70J+nYaE@CdE{AN=w@ZCBv zn#;{mSeMo4o(kT{Bt1~#W<`CzbQ^RB9sb8zQV^Eva z>H-ji+3(buclJUX9yUy!-KN}(OhiEE$BRA1{dmqs3LxAeos-`)aypSL(fkD3dipW* z85Crh?Qq?jccNiG6jcTybY8APSO zZH)C*Y)fu?Cwl-iGc!OpXE}Ji2ti0lB0hQ4103+VxVRwW%8-;Kl=+xdaKEvju>l)} z;78}!P4MEYC!t@`1o`nZBsKSn1+(Hr{$KvWR)xTTK3TF9OgUM>JG;nftVjPB)p}Oq=EhdA_2|bzlD`^KL3>k%z}AaHWGMD|1euFWcT(B z0kSrWOXICMz%(cPP38L%x2#w4PGQQAorWbBN%9rzaxEE8VkR1oL_@Caawpkgk%3KU z&YHpu7eg*L2ifSA_Jm9`|ML^GI(!P&R7dkGD_Krc>a3imZVOYait-6MC;)zTud$4u z!{^M4^e?~CRW@FUjhGd-Y%azo@e(5#l(1ymdTU=C{N;_f!KPgtPTwnDMxA;Y>Fm9G zw}I?ukZLv;p8$9G)#W>bZNfpv+S#z{^KMpk7bWiu5en6U$$yC;nck_Y=2n#Gv;L}n z`7m1R;A>@Miyg*tXB;t}8O!<~;zO_NWyc@zx$66=hK@Y~ggG_Gf^T=dd8LF%nft9b zPRq|l^G<>1v4T#eK1a~AF#_K5@v*ACl1Ec`s`d7^;bxcjeM{cN&M^rs_%jSSze9)2DAL$p zeano=lTwhnk>q0I6Z7n3QUVTVKHG=y?f3yH!AGPGosz>>3`q zcYHpF>ywV;!OIsAf>?Iox$UbRzK8S!Pe=KT0lo>b%fA1#I1mtBTtFm+P)Tfi0-x3B zd0T&xT&1PbpB%lCT>KRqn3~)e+)CU#$EOvHgSuq|6c$Qt(FOYDSa-b^kKI-nm0(U& zKXG~yF#O6m);F%~BkggQW;W4bw6$#YU*mlDKUicLyrffHUnY`auTPXhd7T;d z$t-IPL$STJgWokq&iKPz^CW7sLT72PZaBT+t6Frkh8F=g^Fp z+dsnQNNK6yqox0<#3V4@kdk(9_h3slv>-RJkamO*EFX!Y$@Uj_9o%plWM!bn>~rK< zRsud23Bamd^PILZMnD(jkW+=Dy2L~Cr6qvt ze7zL)l-iws8xASKkq#`xWzhgv1y4Uu%@>b9r=pALi;3)bs(%s(rodvnSADsiFP zE%2^>ji<4U?pcW}TLD4#Xr9U3hAHy) zvN44#SlY3kv=5xMk|GCV2>SQhaX?MyF89r4`tvSuwVki@P>m~=gaK+`M60; z$B+HlDwkV4D17Dk) zCND_NGgxB2;PV9WBPK;mo04@F`aHy>VEIYV$i1=~F@X7vZB#yrOAO`u(um4#=_k%d z%qC3>Cjw#F37p4@+KaftYX(|>Mpcyb0S zS)TpANb>@J1=9sFvrYB4(K`y~ZrRLLET));Q1`qr%;JbC%X z1)mHTSguTj33g!YJr_59Mn3Nf{+ME5S~6zR{&s(Lf&87onZsPHRVzHmEWd zvCw;aLifk>duca0K_%huhD5RKOsq;(tW|~mmP$_8=3!A)V>9v;X0=W3nlck9BjS)5 z-vAq0?~T|e%xkYAkuO&U5}Ye0Z`s(`!Rf?_LnZ)js=EcI3uy98A1^+T3xwM$aM#&qs2@9B6YPkH z;4HI$KzfB)$qEIr0C{pph>mme;@c7B=fS%}ual`)%J?)77Xphky~-o^zGl7)UyOR1 z=#kCh*Vpb$ZxZ!XZoi6(E@H7DdvT#3xTf)Vv^+kVqhHNv&!`buI+0VqeFKQ0rw0>> zojG8`C8WQ3BQtc(%CyM30kD_N* zp|rTOWKc`t3m>I4#k9nW`!%-q6Ncl)Wb5L_Y@077he~})fl&MQez0JRLH2fGL+`eR zNihyS9EJ7rQYn2fjn=$wF!Y*L^XE>G3cg%hytEonc|#&Tq+!{(h(RHAcI;)Ije-TH zL5(PN6~S3>S~2+1slrr)re?(V80 zBkxIHTrW8}I9sBDl8zN&e!A2q1e-CxPqKiyT$WXbpCX|8EYneHqvG$(CzeC3YmAm= zvELB=(^QS^r$C28%r^Rb&|H$y;r&9TKBU%0rpj{y zw(brrL)9?ePY3}JNXbnYCsjU3IFGU-^i?WA`s{I8U6y&)cgK9E-~D6d zuL^@fL53*rj0+VbgR5$EHZjXS!iML(wfQ|naqC&P$&_aB|9cu60v{Y6V@Z9}P9nO( zfvG(mZ=^7ITF%XsrY6G^=2tHJTHg=j@9)L$g~%^HI*V~u&j07#b>yHXE_hS$w;y$u zx9Xd_cOyTYRhsfhvFBLJIh>cz%2&BwIN}>n5#bL9r}gWAXVCyb$5c0EnBoUY{ zBOcM@#IV^YwZRj!udD?vY8SNgyUOczWXb>u<+SH5?%+m+%!4VqwzLtqC|~5}OR&Cd zEV%cS7cgkN#U_Te&4oikH|G3~+4_d7%pG>L_Al=8tLYPY^tNzLV8HkhcjxP>=^{XEdMXYWrYOJX~Vp?DU zYVp*wL`Qp=n}zA zaUGU_RjVYWNELp?Bc7=tyg+93p9vn_YX_1ekvRSGJW8A=E?rrXW+T@go$7_wz?Qni zl;+9&U9YEouab6pq)@YA(?qf=$%@i}oio41I-g)P>7TsZBU^wHdl|wEVSyXJKojD- z-y9RBT5(SVkfHfm06S<&s1|l}hhU*cOgX_^HN-87H1pr81Zn>{O6(R4|0R3b(cUsL1y&*gf%(r-pg}p94IK9 zH_S)TRes9d~UQaPRFq=AqF z@fkrzoJaE&mH@&7hO4(f`B|~G6xFkq6TyOv6v;oN@XR;uF5s<-wNnJZE`5t_SF{H~ zYySClt_iaDA=on1RMUbzOi;oSv2+OMbjUSvRdGR=EY2_RqHJ`lBn2c+o75bBhV(jw zstG!q*XIpdX{XB?s;L$fX5nrOGzOi_<4`Sl6G7L^~cdQkfBSBwg)Bzu0^x<&2_|=JJ?B<^y z1i@4Y1$(&M9d){=+p4!eh$uS6+|!G5bL>aQCz8&7rLMzu`MDJX=)pUVq!T5JZ(238 zMcr9|-P9i_AC%x04hFp2ec=`!iL?*j0=6exF9-i6{uA`jd-;Y_HEnkoxoML0cP!!~ zP&WtctG-$Afy%aj-}qS@35$p5PVA-xabFu;7{H^&10qrm=vb4F64YLB8*v|#^a9gi z^478|vI&b(C?kr;QwbZ*jFPOjcUmfC%L2OD>~zE3-;%gx9T|I9rhb}inUKPo^Gw`>j$w{q?xoue!;ycYw!p+L;| zpa*kB8K`2ld$W1oVYOWUlOCijYoFHx!zQw&n*U}vMU%ja#tu$J1U5us!3 zWv4l;VSj?M5&ds`Oawe{`4Iyc8X#}3jyaJOWkc#Nx%|jLVX3A~QWi@CdCD;g@tRjZ z`O`2S)&bk&OlkyS|2*!?#&ONN-jsX_G*yF^uV6v~CZEvO${Tqv(7F0Y$aSlH{`nEz zmljSK;^-KXG7R3al|kJaRmr#k*kN@dT8HOkUp!{b+5-NRROTqp&f)Y!vDQ4zd#hNI zO$$3usrdEkTK}4^R@+NfS0+2S;_P z`zOs&80NBh0gENmKRTtadILZ=zdN zN%v8De79!!tLqEs)c@|Q;)W5H^af!&C@0ex{6v$)QPosM^iK2Y3||RKJ?=0AY?j1W z)+dqmm=aySV2HX|fiI?l690*&{25=*}mK zl|gh(6|xYV`hmzcqp-4wxGOESB`{BaISUH~n!w!%UxVlvMhHvkdx;Qrd`~jM!*8~B z#ahgiSX=s|ieSO+D0fHN+RGWhdIh!eVN0GWr*n&^aDI`$6XZaAeLsse$fdu5FOP7# z?b;QnDj+Wvqa*abD5cGFh%0ID)Rz5&crjH3l*cQVX?CBAfPxQ#e+Q<32OJhr3o{G) zyDW{CoC0q(Prx#XSJ(6yeLHTaX1%ZGcgFqf00Dn7?OIh!#$JuwF=%CC`r zJTViyNT=5!ZRO-OStEHzHsN%dOZemX=`zw`siLluH}3Rrc(TISbic1JI8PtUG`cGa0a% z{;-Wyk*$5bY{qZkjylBT&pWbWNBChVEnT23@wTtndR80fvEWaRNN|!AL!f-a5i$13 zm<2OBHtYd@R7?e=Jkz?@L6*8bjpXJCDZ3COTQN>(?9O@LQ2q?gN!#weeDI^$;z$Xl zV)PyLpHfV0A37RzYH9&sN-(eY&VU-)k9=Deg@a?1Z!Wz>VFmrkS<9Xi)$e+DB3R@q zkx*D5tDdlRR7Qe>=CN!Vb424f&4?N-A&adkmm*())#F>F-b~))1lg0=cW|OR=F{8$ zwakF@?S!aA^!)F?H`=!L=Zy5QGf9}OlO;5s5Q4HPt|C;^wud~y$sm3lp7wx5P|ik24$p ziv1m>R7TneJ5D7dI=25|?I|AZt5^BU82m!1ygJ&sZ)>$-`}~z7G0~IJ<;3Y&MYIJ9 z#J(PbxwfD^=>1#|S{LBF#)4U*D%^9Go~R2cg*xP100<;&c%d(uPr0_T$GuXb)d?MuVIA5};w~?Q7UD>-WlNTpVn6oEEYFI%XhR?G? zfFfKYxYsM}#!}jCb!bIIN$nl8dX9tJV0PX!{zu192nzP>Vkc{S=!sgj(BoBDtn))`EBbp!BX+t3&8Yp##}k1-^XUbg zFbh(fUi&`vC5494cCwcYhV`O;3WINlp<9h;US9rKfh7mAYq|#6>G4_XL>KiWE+NNb zQN6M(j}8Tqjf$v`#Mcw1K2(pr3!nvM@GCZ=%3wb=ZjIY-8^5Y0IV-vPsWg?iQO*a* zMTZ+=FnG?ljygOID7dRpo(Q$C@Ctb5jGK5XFni+`lD_DdM zd-#Q-B`c|fni=Dv#UVTWz(4z*;H#TGd8mexmmjaefaNw+TA-^-=zqKGckwy=QtgKE zF$TUmc_by7k*fByFu36A{4Vj%`-`aEGdZ^oJ#?RZt^aLmL1_hH6#Y}=i3jYh2?;Ik zjLu{jtT`ILGJyv7D!$-;SU)cgGrH(r<^jHwi8s+C5}x>~<2O{~_9H!GR1l7w<27~- zvq6{15hV2v&DkRNa2HR`m3<;9!Q-0Gi9T85O>PwbLXnf?H5(jcJ-Lt^uCV-MAb0yE z8PedSXYI9~@_Zw+THxe5fW}K-=CQK{lBQRkm0Se~%4uSb{CtuDMa3L_<8m3NbnLCf3Fu4Ijo#QvE2vG}IWuZgN zYx%fbY|KMPh_N%Nq~^2eg%&w#Cf=8KIF8W`m_i;2bpBCv`K&@>faBjX*ipfIS(V`G zz>J>%72FhpkYkW=veQnQc)s+|pb#o7s}8u&Q)S{BZvCwqmPUe>r3{65r0X}W#y)Tw z>19N?V!F~FH&LXr-RGON64ZU)wn+FxJ%V%AYyLZpXmh0F?T)e}a1^GlP9qkAdGUGB zlI|lqdbM>-q697Ktt$P%ipqZZ#KgN0OOstusJxTvIB;fX$D%mmCdx7cebH!S;WpQv zCW4Zqt?!(RFwfaax*9^YYoe*pl0q@UT^TZT^(*q1chug2*7UYwLE;R@r(9WiUXrH! z@6kQ0Tl4`-m`%Ue_5u^e@iY$)e}He=k8J!&$tH0lCBiT$6e|6_1QK|^0~By8ClDT( zDA&3OT(N|il9-cGQRIzp5fdt2uOLq0J*z}UWfJDcYY``9;BR*-a%5@u_hCU}q0}<) ztJ8r$cx;!{i1KnpM|XUmp($kQ`RcFbm4RX?>rMg`CvU)mI~^w#=-=K{Y%lzFv&P4t8auB{kYIPA3%sE51RQt= zi-dLT&AsTwBKgqX=_cvq1ckwl)UfL?(9YiDvT-BaGU0a3jV12)pzJYIU9x1XlnR?1 z#~l|Dc!+?lG2Ive|Y2nEQ_l6dHFFV{zgm!UkJG=%LX$%X-wbZWu~0xtu=uX zMgm|~hp1U!GUHOJT}3ro(^0poxEhLokrnHcbRag3M$WFg4$@fcIs3z|g$Dmu!7(YGTT1|k9S6RhqgRtv^_QRk$lhMh ztIgZAf*;C)g1Q48Ihe)nT|JU+$#aU*yh^L&_Fe~RETk1kaYTlUY2lqbJlG^`I>0fp zP*QK|21oTyhp!SYi&pd_WLG`Bhvn_1Ag<*$hI=|-$R0%vlU0FGInoa_CL3;MYx!Y` zg@uX9$#4S`|5D5e0lSl7=hc3Fn?1#!K+bVNO|)AYG$h)Lg!1PcW6 ze?8O{q}V;pxb$1diN{@hS4GxGdJ!If`$Ap2#YvzDizC$Oc_k!ikrQU*{|#fKTJTp^ zYW9r>Am99xA)5!$SJnTO51AAs81yc=HUa_Ex?93z%$}b7)62hwJ4AOi04J_y3*~=F zvQjzB2Fjgmv{KRY-zx*AwMg0H&|Hhn)<4^(OWU(wSdo}N-+|JF{Q27+94NAAMF8;TZX@RozDc-=&0tZv8hkH;dJY@U|u~h<@}xl zQJt;&Zkt1^C%0c=!9?5A(=gptc{czz^Pj+GhQ^sS&dmhQ{waT~e0LwVippm|ny*Z^ zp%1YiZDn}n2!+?5mhSA_{|g(w2C|}9Z6NONea+t_c1PHa#l~!eoP@T5)HFxnfB)T1 z#4I8YU!YFJ-xBlq&#skju#1vpb#a9j@iu6PhUqEssb(tlvGi-hhr{5M zX4k z+KR`^I3ofuIyLaSITnC{ruP8=;pn9umo`K)V zD1*f&{rvA%iw+T^sA^i1#DNgJhLYwlEYeE7kwetsDbyP>inkO@&dvv~|FIH<|AbmS zIlzc{5Att~fy4hGzoc>ceL-?5Q_eTb?~wb4W#o4Xu7L75`nZZ;4psF2Whn;lGC*!u z5Kub&fvZ46fWc5~R8KGQIa4%JcO1?z_#^w%B4ZHBb4YcRti-*!-m2(mFj+%zv>YcoYzna z-Pg1c&V?T{tL+xDsNmR*dK{NZdhPrJLnT3#AN>TDCGgh(g@ zGk`Iq{So1bZES!LL1Xx^gCc5@@8@ZB7xY~7sb1goi#f8kZO>(bAUQ@`T3EwI6m+%VJsPl9Hk8}#em&&^$=^LGINE8JwC&JOa<;RoKvhJd-h9ZiLm ze#akI3C^zT4v{tX3c=aV?E@5p?2NcV7yT;P#nkbtp-BMlckA`yD6WdBbJihtsHqY? zewK9EV-bF(FZNM=V90)L(TQIRsC1iDi`-IvQ*%-h|H%eXY$G#rgFk((7WDYN%))WU64>Xq0N zCAOi(7?oy+hnHPL3_C8*J2#l%I=3S+r#=^mnsuXu?1b zo^e2>SNtuXksVj+kXm^h1UH;!{soMM|G&a=eExm!sYF@@zw7!Ru%L#**&T11S6r3( zf3`WNgUm&9iZkPpTV0n?{pX3_j;-82l8zHAtS-^FxJ`$TJ@Lnna;ww09A? z=CyUf58?Y-q^jbaPH&XqDZLC}Xegn%yB~inu6oE&&LD3~HHEirz<|b;qNO)Gg);X1 z$7;}9qNVQ)y|aLXS^v>6S@V5BIyF^7urz%Os=Jo4F58EM*-{}PysirKab#W?ae?WS zvrQyoLQ7kn)Jtku@kKlgGGzA4`Otl@B0Or{ts3sENCHt4NLwx78{uGy7v=0msvVcFBFf--!vkJLhfRQ^%nzu9d*|B=PA z?>_tGf6?>&^r2$SY~wux;ipyd>wOth;9@0DM0XMGnwvK{=NNa$mi?pvk~EKtwz+E# zmRukl9d6EUg#AElVED8E7^%?LSFOA;WfB9Sp-9d(g3Wr}F@ zKX5pjSiqk?og*)rwoz${96~!(wWp>W88AGBqf9tiK#KR)`K7E#Hmcp(2(9JQ=8gqg z?IO@zl?7We6*1dh-L~cPK0};h9^Vj|`&xL3W=)^YiY(`MdyLGqv+`v67XXzMU)CRl1-z=E@ObX3)#WAH+Oy)&A26h3D_WiB?+_89|L(Hv?2zfDS>cc+y=9Y-!IB z!NW;-D*rStdo<_f1{hWJMSPMJ6QzFth9%$KK?whG->>k$l==TBUx#al(YfPr`jg~0 zaZ~S(#z9vY%^dHo@QiVAmyBdBcoQH`@2~m{KIVtz9>h8u-P2DWJ9LjEB8_03(9i=^ zmnu|%+mI>4i1v5#TDfq{eV;pJB&N?L5M>KC9etwyN{->-DY+%gYc@LtPwg} zVVxTLz3WsUFSd;YgS>Q@YqV7xS(I$A(Rv$|UP)8o>tUMFYILH%3wi2Fo9LoFV?l(i zIZ_l3ZLpNj%;J&-6Km8lKDNYyQZr2WRU0<-r`}5mCp2b*JbE~7Du&Ou@~b}XVxPDl zkajoHJgY9}a*LdweG5rpA#RyiHIz z0stLQB>(m3_RX9xYLH(^>1NpgD^0bWPkZq}fQln^Oi4#xl36_ip56X4G^n7wQ*dG- zcxfS^6AmI=-P^`Bgxsm<7Pr(UIHxdouRgI&A{f6GDvOAR`28j<`LIGn(jM%_T1Kn5 zK03B@vVP+7B59Y?AE3JUz$52K;j3sarl;`}>`sI?%meyA_Qpu~>LEV88n6O2^(Bpf zLV?;oor@&o^36LZNipgV--|7aDhUHm7a+e3%?drIM~jlIII!vsKb{meb8VyD#)Ct8 zYesgvP*}?(yQfO1+_swY2M%#9E;Uw}@T+%gU$dU4%KzNJ0qiXkDLlG+!)l1^GsW{( zVvDymAamYk9U|EB`p5L16B_RG2YnxIjI)E^xPXt|>AY~^$h&eRC1X*tu_?^c9-1NZ z@ugZU{dvv-5J7IWkh7mEMgST|D%5fY-H9cggwGdd(~00JyfJLe>|hme>g!hK(K7Li zkCBVAxn2CsRA_rb` zPL{EIpsHcJQQy?O&h810LVo-y?nC^Vlr~SL6TB6{oxit8Ehr5%vOZ^n*)mq9ztDjZeM~=KQys=Vn+m<^V1nFB{)`R#a6Lg6b4gD^EbTH0S$zywN_OJ{x0`j6TN^4@Ta!>nU5BcYTQOh!i=QpXWJJ}cDE*%P zrhGI|oNQ5lBj~te4O?DJ4_Wv{^e+*-xLk+)Hy^zuMo=*j@4hCR_43+-UTX(G!*Uc{ zaSujSSMf8HbH#jfi;B_(+OHx^|80pY=Yq^aJ%qYBqR*=f2wP57!NvL}A5R71GZyiy*3 zuXJU#D+JU@)S`7yVfSW5uJ=r$W#XQKpR|1~yBAxbjfao!K-NJHrL3%scjC`W_m5j- zo7&74et$dSZ|2tolNI2_R%#v#FV5o~4Wg+s>StydqOv4Zb{79%f}*gsugrMIA#u#w z6|02}IhH8xb2Vx_9&E+pG$1F2`Ta-1VZ>=Dj>#1xCmu(i)8 zR%Q0CL$WI`I%$J-UPO^^TjDHK1-}_Wx%sGu{ZO2^liB$jQE2|wTjz1B(UOn7D#4m1 z%mq1JuJUs}U*Y)yIaMzi!6R&W(ljbX&IT|CizIy{yFm-Q>AQ)hW&^>%Iv7fz-z}H| z!lt8KvvqF~71en%t&=mlr2M`_npxEefc@KgR8~J6KdG6oN!KKwL0++ouzP2Mf;H~w zldGHc*8-7Qs%X+W=NG=ZR&^i$qc_eerlIz?dfKhx2<`XoD7AIpZF0Yh+1a%HIcxYo zfGmXG>z>(qeU-SLob4Yj0zrri>Ks3M!+M>lsBaI!Y_&=}zA^)x869bZPf>aubPRSK zZo`39m2v;N*Y*-lv?Y5@DJK=-daFK^&hruG-hLFMAx7URokT?pr#Ywff}|xp@lWxZ zLgeV_u)&c(2G~UN%WHx5wPL_lX&eXA9oc{dScwBI-u-WZ+j}^AE@yzk*hcRmUjx%M z$YCfjgz_vfYC<*-~is!*=^#2AFhd}?&>3_zm1qHP>~cn zJV3yTH6mZ(O>RLT#54MVJip$SSKCS6_%l8Q74~EW^ru{CK>!m6ji|5ze&q``@VO@o zb}sOXL#qxfhBA|{4p`CLp{d#8>+)QJF8*qcY;>hIe$V8j9HV5QO_246Fz5q*E`=DC ztWzH@=yHRW6Oiwb0OGGSzmGft*G03aU=w+-p|wXVW^Z_NBdKAd4^Z>cn?>rK?tIIp zz4I_!HhblDhrPT|m(Vj~f3jGG-}vUux>2RBr7cDvnf;ASc&Fx1pa~xJnzMfHOn>|3 z5qe9p(t=Lw7NxCJo)0B`=pGidGr>%?%n|18e+4u`FP6bhPyYumN*kGX%5Nm?(p}g!-<+p}lFImkxs6r?q#h*>JNbancmwlHMiF1% zN;31KNxHKJL#Kv9J^&L^NhWyu8aH1S52TraTnFl2(y4{HZrFPv)p zA2T^`6ZjxpbDgB;8^y`^k8w9bP^S?d#-@R>Y}@{0JuI)o_?0A6!(y*ADQerOUtM;? zt&Oz3qvyVL!{9-etRYz3k|nQagX#|_cgN9%TNO`~!Y)ljXOb<#o@*;UNC;z#m96t| zj96MmR>O==Fg2z9KD(T^$qOhiqJ6HV1f_xe)qvVwGd{7ubO;b?*#+Vh38&@Ngf1e1 zg2&>$SsR?F!_toOBG}DxdB$V zHlXsUkbgmcVgrOQp1AYte0@rMWv}asWrmKY9(~oxmyS+L0`2+@h0t$1q0IO=U$&|m z*ZNjIt+J%ynMxDzW8AR_nLEY#t7w0gfl1^1z$Chjk%-Lv!iw|_>Bo>BDUMt*>_HJy z70^azIsNBxC}8%Uyr7#IxJ3Vz5$Vk)`pBgDevI&r%|#Ds{uCE(HiFIz5p-}Dqg1v(BOuH=bPBojUa0Jb})6T2PQYNA1ag$%m zDu7b`$Wz*+cBD(?@qzuObTS{FU1v!Z^P zAV?0~6Zwn#pur2Q5A?@XxH_O6eJPUMzO3z$2|zi zsiL{-`4G;zLECP+u=!!LMff1YK&Cs9FG6zjz7lJSK4Ow(d1GKYd2RSyus7Xed9gmb z*VB@PZthIF5!v;^$_8riDMI?r^w<8uxCqm%WoWPt#sxNEkQ}dmo`)@$Bh8+sG14Jr zCjG!f5S=Ps21}rP4&aRTCC=f0wuNOTK)~PvnBY2k7VGNJOmVY6+g%&sLEA`l+n>DJ z|J4MR`sn^`-U#YY#XY2(m9+T)_!?hdO0ygs5I`c%hUuS9#Nh&91dv?MbnhO0C}Z)R zOcTeTR&n(fNLfjVo0t;-4Z+r5N%S+wbR|omC$aXRA#E6M4@Y*9*nL!sT<4KQ-}Z@#aPLgo!=}jL8X9N(A(` z2+%jMMFLe{VVtFzj}G zpsc}65I>f+ph_uWlth6-1TYZxEX$qaV2pPip;9tX3cq-=Pn7XSZ?eA3Z+ixPdY_92 zlIw`UP6D3?}WuETGX!ka+?}$~YLj0b! zwPf`LlgJMS8d>b^Lt9%=_BKo8BfpE)J9G!G1UQE$m5LTS&y};dtUk`+c|?3q29AUc zmwG$NNac2K^%ymnq!defYe`-KY6tbSdv=yG9p!qCdDq|hr~v1emwn`3cGRh>%U^Yb<}R zF0`LLe!8pFUcl+oxz!UyY-X9(!kLmOpb|zssl9D8oDh;1#resV_;tLSVDG}I|M@j$ z(p-gUqnk2PpL#m1owV@tmBd4aVqTA}jY(qnz>3v3aH3aefbIbo@ifd5?qUh9hvdBlzHW!&_vbjqIne}c>WM8k^5j7vZ1d}No=4`TN9d{@>U=YM=Bn53o546(fN(2Xx%3PcxDNe7< z{#%X?_M1^!MUr!&8Xpc%7yj~{etrIp=u->!*vB^=PyIzsM)g#D*VlO?PmuM$*PYhS zAKVU7HOZ!QuV^Ow&y|+HH6FcvtbG8U>yfMp)2>H%(J-A*C^P?de5N08qsVnG)%&*j`%p=J~x%<#e;qSS)CgSi}KO}wD)Rg4plG_V>5Er85Hc)`uPG*d_D|mU9WBdW3YAH9|36zj*1_G__N#L&y$W1$9K`x z^qd7l`pO#la};)IvoUbG_w;VZhfF*Di@5@^-|!0ip0F`5uW&8}ssbWj#aQ~~NR=@E zuWz`k8BWJ*FJTnQbLwmHBbVdKCtYXr35i_#)r0$l{a@PwJQjXNWV7~vQ=N_UL`+kD zruv{i_KqD|jvQmsU&B+*RDX3$MadXloy>R)*k{7SJ2FeI+vD##D3ygJ0lT#;1&LBA z>wZ{h-1S;1NAWX5*iQgw&3BS_)GZAFz0aHZP1WhSv$AUZKF~q@-}q3Ww}QG;VuWgH;<)SyRgfFt2EC zR!nB*hpF4vP;f7T%>`C8t{uJ3f}f;`uW;T5o6}xMq`e^!Ti$%vV=;km569^XpR=_M zAqzxps|Y_Z^M<2S=#Fab*Af$(S0ga9BjWRzF7QmFna62u0{D(2iNBf1nSSMP{7@eC zSI)k{hW5w5fQ#{?Ai8ZJbs&F}KQKUGGUcbJ+d+nt|1{Gc)Zn0_KFy5_d-0aYK-K7) zS!?Z;eAQYlcyT2r*k!Vf;geOOqx`q$K14ox|L@8jrs@B&b9$wL0pA@XpdHQurk}9R z!n2yuF_((8h%DuhWhw611#W*M9b8TZXpTA4n}Ol?h0Sb~Up@3s*Z+<;FbQB}@G}B7 zfh5fa@*a<#T61C`g|VGP8#iD+yF{Y3XEc^vcr`HirrDWD2pyuS}UA7b9j3cpocX30_W{Ffzbs*DugctQc%8 zf4d26N=~6Kf#@r+Eth?Ejh{U?vQqZVyQ@aYu&SA~a*Tfi#hAv(EC|ce43+S`PKsPa zxu%g#is5*v5vnP?yt46dgVi+&g9w(|qdiI*N+Y>ftlUy0@U2J+M;Q}$0tGHvh~-a) zDC8XpNP-d6_M<<9s!ra;4M+}NLjNn~_XHdx>-o}2$fE7c{*k$^dj#Tp5wd9z+f-8D zdfhbZWGHP-*wD`;71nx!rajamM%Tm`;2kC*WTG^=F}@OkNOqD;IoFvlR?Yv1tg~=v z>)XD3ad&qTC|0ysaSITvXp1{7F2yPCS|GSfa7uA^0xigMA;b60o0<21bN_(o zx#zC4_u8K&<+esL)y5%{dBErzPrvn0PKXhGkMYh_o@!HsgyYZDl+2gggKg~T{QJEq zp;uDuLVj`f7!b*xZl6nlv>ci+5}^Bbep<a?m6X=J-FbXQ z*n>8IZa?EHWHMD~~xC#>1h6<9s3o7Ojc%Ig%z{E)oD!v0oX zp^?fas&~EaS-zPwEhvxfbGOT}Co)%h;2ufc*?Ax59K~_)@{iZt67P}+`~@Pr+4l(k zey_#dq)E(c_644>e-5eYaHPa;QTqdJ$7Y8s>m;@bwu{rG0EpJo`Lc~Y?4(79NI1sq zwj$llja@TP^EQewCKQm#73s=kN=-r$P@LN_XUOB3-!@>#Hie;0RISSF@|s_E6}pwX zvj}|(+B=Xs^-l^>YY=4=`T$ISH)Jf1_Wafw?93$>-HDaqP?}eghv_Q~_`0}1z(Y|0 zfML5q>~vZHt>0yHCoFP*TPVzpOWv^kFvrW^*ULK&3y%3oo?KbiqpsozKszv1QE zi|?JdmhsQ@e0NyQr#2n(%uaajdT$)1sr!M+4siz8dvpx^FKad)8KNmf?EYLuo%V-} zMH?<@6ZJaRI)F=cUTej*FGq^p;1_WkK!+dC+98=m)kaR{3z{BV+ig8dD}s7hsG}Qh z-FuUUqsW zPb!TZJvGrL!q2WJ+@%8*eZc_?Y7uiNV*P(vuv!8a@(xO`+hf>Duu9K55q9HQtFLli zg^!(8<7K}R;jzQ0%88TDDH2#p`4h4TD+71Sz>JIdv&x~{kU2%d zV-ig*EEu)?=COJW``7%oFl{P3Kobqj;1)o%MMm+mU+l5S{^^o0LOvNS{nantEiq47 z#QdlsX1!C17Q7EPZff`K}ucf{(e#<(U z#7L@r+ww8B4`KH~o_wUKc`HL$SA8h__coyWkEL-9AenX&!dznp&fiipG8~l7=kY$< zfTh?IN!X9Yy{JF3gKuc~z#`D&79?ba7V?4b4C|yCujZlxTLqqd`Xp=i9{TL=BvS`! zEOwB4d0fS&L;ck!$J)9FY8ggJol9mVZ=jrz%LAiZK~pZ8D6HRHYYR~#+^qw`39q*b zB68)QdW#dzdF1mt{87jdQRN;TqXLmy0tA1)_*3l2!E^u~PZd~KXcUVIU#Pf@61PwY zpq4Bjc*>;sgj)bOzk0)LGf3l#!X;JopzBNunw!zA(N>|%4`*JFN+GV@E~X#(BGyWz zI`%9taKOh{is-fgx~FjU7bFW8Ga%&AC>fcigIqFsGN(GAlxs>Y@k*3!91v^>JYnvH)t_>NXFC|Ql*yUdj~ z)u-ou7B>JQpPw{AJ)g~|PiyCP{7E^nf#=^(@;A9r8>NWOTp!5$wzK8*A%au~fqN=SQ7Xc6gUOuPGc@eMY`KZ0|OI zzZIe_^@;3{GVWP6A&B`l$k7}VD$5sw`>sjN*|Nbkhzle?#y5#0N0OxLcT=DrAYgbBB4rh8{#g>CXzCAn z-+DANl24H49c0R?^1Q!+oNuQa#-M+rIje|WTl@26GnX2ntc0UVfP?2Zm%=}xv&=FWZ@ZSe65AB z0aDSMCWIvS7|a=F{#{-|*hkChla*Vnjy`?7;LeNfA(}T87>x^I|#YI0L5L7+(+3KN- ztkgC5KKYxBbROKK%d`0h7ToxImR>04WN#_A#1I|Z_eOD6#9{4;xBqiBuM3HoZnx2P zz#JIKMAye#Z~)5oL_;T{d0=hI4|udtJw3{7Q~mJ`=U1}YjtmcnpZe%Tu;sg~fk0+6 zOYST3IFUD@uaUPd$J47NHjX4zCj~DNok7;sdn7Y`rlnRj|UhX2hp>8wDJ2jtAKz3xGak7Tgm~kl90!S@;z{KbWW6sYwB&@n{5s!4k%xE0UwBgBA0IM-5-MV%W|6os;1Pd#QQ`Tpk^6_QxTDc)>={Nd+F zw_vG%#ABBf`kvXm+HXSdOOnO>u0GtBKt<2yhrC-Vl!CSZsZ*X-kz^utkEE7TQ_bH zqBo0>kxX+x=hoLF$@CLWty>z&$P>WUtwzXZ9jaIv-T=zpxSti>&+EO|Mb%>yfmQ|V zcd*^a;&GR;%-0-jlhVRWG;LjD*b6K7I>*P~impfIsP=HA*6g(U>3%7mNd9SZ`}LOV z8l_&+;K~#p=fRJG6P0=EFTV?``abtjv}o1mmVGgtDDLqniL+<@O!>JpKPRHaDLEUV zMRUu*IVRuVpDSuO_RNELdLerUacs>ewjc6&!>ZmTx^TRD zIW86<|6vL`+nPL(ozL z_l(uV>Xb}4GfiqS2Br7E)_N&(gwDQBn)C_W<p4%S$+27W}&%?n(EcHCWklonDT5A^TmHTxXb1!+kG8A;RgxEYaPylQ3Brq_9g5SxZ=`-PrEE#H-y7+SL0_(#LHC`^lA;k zFVzMHd*&oCEAV;g6Qgl^WUWZm7|=ezofT$oPHYS;dBK`xVz7&Bfo!jOmulXEpfnUh1G-`0;fNCM5~+QLe62Sjd`aQZC!MKeVuK=8}*}U#^`7M1;nVezNB(y{ZQ$)VQcZW^+x#E78c!4%@lwZB01{IVU@|&dvwW)&G zqMU$l38Q@xzszN3fpU2KDZipKGWv#YFc;kk;dOPtksVKt6Hcs(_BGo|BjMx0^SBTH=VoFz{aYmeNhr=Lps znODJ$pA+WXTxZIfv+s|>P<6)55F~g-i|4yr!wn=e*^l|z;cL%Foh;jykCZX;9r_&mmhI$w-sujOg|S}*;zlhhVZgb*t6|Bp zjAg$%$k>NPc=Y?*rF86U-d;CnHe>;kb&P~caj6YAiarC+?yBX9D_AL4mU;X?fZ3Pd zo}EjV+_-Lw&JzN@CG5`mHQ8p5!;eBTknpy(rTG-gOB>TgvF~bl_KU-y7bk5>Mr?f* z^)qd}CG$)IeY%v6$qR8$C%H*A{C;HC>~zOzV!W^WYRgAdr173ZnidBK!zRt)C`MKQ zSI6R0bZAOrn)y-4fx8BI=^5%*eXno_RofT)3-{%u*ENJ5n?L|kZ#5523LWUt+(eFg zoElI08=L~OO8V@T_m&H{h@z)-6hlhhfxf(eW4-(frflFSy@lE7FTWMEC&t6#xR(N_ zFO#tJ4(>Mxv&o#jJD@sxPVncO4ya#%sW0LcuBAHs%kAE3(mz=Ems0(l6~V)ro0Sc# ztk(}NcAqYJ@IEcEb{cTzmZCk2-PFRFX*Vw7zBxe8GDTF0mYVME zbwA^Z^7i&81N8T!BEgd`Bi+)!Q?8i_>2~D_)LNTqqsaUM?|SBartocPDT$GAG873B zQD-%)Lc721I96q%5|if%YTEWSbYjRYp;-KsKGg1k-JvJZaKXl&-vudu1PrTEe41b1 zvmcOm^ySn*WL4y83!1S|iF`;vHm&4g-^L@v?a{u$#Pt2JUf_$H;*5q~pS70nMf;PH zkYMNL*0F%ud+a5hX5!h8D=Nqc2(}jHv=-~;Kw_O|c-W`2Z@GyKL#aC_7FG6NLH9B73gOusvJrPE9M4I3>n3X=e z8|v|X3N$C~F`5THd94wr!~l%vMFv*CVcjx3S=Dyc99+R{p~d?beNiZQl4 z^DV3v6L?U*%Hl&FTLB^xh0?-}E!hS;4f;VZuY3&Y#1g-GX;*-Xz1$bn_x#dgcBkKx-H)9yT6PK$(VX#doHu#Kcc;9sW3B!K_Y zhN<`<2!1oj0c7+AUvI(1L^5PJLsuunVgDyMO+}VK5Q)J>0W^}KPY$UoU3%@wFRVv2 zZhV4gTE;o18QF)eYqj7zI;c0AzSLK3e|PPQ-Dor+?9M)OSg^}3jK(C{8|Ns!E9~iq z{gua5s;WkCKE_oCT0DqRGDogRnjkDm3K+qJYoH83yAogRs z&!7<+^hjycVcQc?%%2?I`OWrZNlml?=Z(Q3NMj-`XvHN>u%lakhzb4#Z9>49JF6gC zfv+>`mKg{r!zs5!-4_c{tPI0K+uqGyW<(9uD}J1Cwfp$(9wzj^Hz-cP-Y`$dWlo2q z7<0F9u&g+qgD>v1*uL6) z5oYqTjRF0fR{9HFn0H~6!I^;8vvHdz$5DMtMfp%?Mb&)G*%`u8&Wugi{x@(QXh~0s zgzBOvV1T?5vM~LFFw=Sk?s6P|hxECUr}GNFgd#vpk%xEC z26MK(6JJQWBWBpS=TEJE@`$G#uGw8dv6H(YU1N`Q)=wp_Vnn8!UF4kkT`=Z-a_K|| zz)SeTTVpC%C$84?XUWwwOE4>YH&V;b_=E?HTE(ul|pOqH@KFg>{KOoGO!Ea%D=|-1v#=c&82+XC%U% zmJC@#<-3-8pZIU++x}8a;aNHJs4bQtB>UPJyqr_tZ2oi?5?x|cIhX>}ov{j^4OoHU{<`J)fYKtEh=SF+{195EkdJxG^m}elFk*K?W#K zsnXML>;m!Mp$!|=saXpm742L^T)y`I@!#_}FD!@Ax#5WSn48-;MD@w$jy zNONhhJ3I49k6T50C1I_or32#)Bl3#4c%2CC#GbRSF?+(0J|bvB|^*fLr4_ z;*>ANvjvH~Gn(2;kdA0nN*&pQJC{GNh!QG7zNr0jf0p}ra?9ZqeUF0MlWB6)M9bvx zJ>RwovAkG9(#V4#r*yctSG(?uv4g;IhfYBFxx{+p1`~@7T~Htjq`3_!4YY$~P(;;6 zQS%9W$p6s+8To&2IC$0)gn=(Wy)~a8&>Fh;`jVZv-rmTLmzB!2tYJG7S;+c`r1>s(8cmiM zBRZZtyPSM+XWxOhZQrmr-%0zgH9y9~lMbmxCDHJk`I9xTh_S4SZ%*GRvQE=qX^H%i zjGX5qrc{;9C&bb$}ol?}0L}=`VvGqK2eV3!j zUtXG6DG8$V6Ir##*Ps#!DK-?FmZBM!vTJEK8RCqE+VOc!+1&}n5Z1g`nX=0X7}-TD zE3|w~QyNJ*(G^QpeXqR$EHF$?Bb#cc_`ujflJ*HvWrF9AqCPd09yy#pe=uKs(RatC zW%(0Yu^>$@T(whB!k9daz7;K}TO;TeM&MOD>rx&25nlM?Gzv~qsh(*{*AA(4p@}in zmRU@}=#OKhj#hXFW;YsP7*C6P;7XCy^CQV&bqtR>#vs>U4lf8N4Eo!iIDx39lO+vP zAFfg{GphpZAISSR1%wo!WN#;1{T`AxH^8((Vo>9m8_h2b|I@Ds?Tpa}_5+-0RmbsZ zqf=%mb?$yZZSTomEba^VpAYf{HHm`w_|Y|z#}lD_B^`fl@N0`v^*nqx^+XLA7$A?~ zn?Fgt-d~nKOnGU>?*QzH)5y+NdqdaO7y7q=$FPrzsCYA?d8>Hqo<7a!e*!N;3rLg$`orxA({W>8Z4?9yux_afZL0}=vXYYAo?zfC$sztE z%uLc5)3Im_J_yydu$|{AGYA!O_3@*14ERyt)A5(m=OM>J_Dtx79z5<pVprd z6P8PqNtR1QQz97rbfR_F5>Y8jfqTw8w)H0JB^u1~)E1lbAX2}(%X}%Z9^YR4;Ds>d zj`CmAF)zyzxzK^ZtW$MqVi+TpN@il&ic6?7-lI2J47~Zo~ZBSx7N1&ytV`-_(&k}4RCT3>f7b7R&d4GC7 z8~$w)E2`2_>ca`6QRy*kGnMLe?WgmSZ)+O5FYU2trVPOyb=03-DLFUs99s_9n_#*; zn?~vd0g2x3FC@y#v#=o#n!{j$ZXq9{r2;`BYsXLt*{4A3#dqm-maL4)zgMHdVULEu zGx~LWp;(&JlJn2zH)4ARS-k>10wzd*#AadLFQZlLsWO9BtVUKGTeFN$HsXa_Wb64b zXHoS95VSEaICnjgoAnReebY;iRc%6%-;L>2bKDM(cYiAFThrKBZFs)41}m-mVvJDZ!v=`GtSSM zBJM5|A!&5lhzmRc{y|4^v~Y8mTQD6HI;XY+p0DdKZB8^r=G^=@&p%)I(2PTXUt5UB z4jCvd#wF|9Dc12T?{I_#{k9Lna^c<#>N%3Y9;u6j^T+Q!m47{QG#zUZw^Z48je%60 zuTG>@YhSvgb)<=sf8Z?0{+9n_Zk_5&cMpt7tn)F)-0y(u-M0$#)s$fLcWx)_S2s5@ zEQg_zW8X&J3%}QV9rgPyB!?t6LWlVldB1n$18o?oV1BuORD=&REo;Tk4ohOl?>|3r z($kyIEGQi$vcn$EdCzpLIdg2-LxP?OOVikci>ER7L@GltWM@c;O&3ud0*D~RRLtkb z>#6O@@|*1n%-+n*E^^HTj~p35vpCK|uQ0*N8~Dl`zp|)1fYFxOvC_=^sbip}MfM4^ zKmJ?wwLTh=hq_C0289bv^eM=Vv(RV+w!F*x<>XEjJjl_jxjn2lA+8+s6)E<(3ZMLQ z>{N{87RgWPej74G`MZy2^#2ZG*&E<{`I`#KH>X1%##+oI$NZTq=oVl*5HUMC5&C{s zydrTDY7)N>Ea&Xozkd`R<@xG5_PNUmYOQm56Z_TnufZ>op~}%1p=QJ~#(JpP={tm@ zT!NA~WwcSH(bG)KCTu*TT{skW_3@A`H#lRxWg1N7h((wv4$83Z0o;Dqiltg00_S@Y zkNLHh>iFNYkuOSNW@q_VbljrnWlCg0Qv_k8~WaACt+ zXjD;H>cc9#eZk81ViDnr2q50ss5uuUNI&2RtmR?2$j!6tBK%cpYqH)EE8qD(AGD(m z+WFE2ONE*p%SFVHuh;C5%I!fwK_^if5*z$FLOknh!ygzUDyY*X?`w9-n>n1mEn%Y( z;=cLfl3e+OX{E=-yjv3kH}?CDqwo*&%}Dx`fbMKG;Qvt0)|)~CAPVFJ3MTg-J^NpB zh}qP6?jZ8pUvY_(+tjr5x14Z^>;sjvPys zk3RPzeINhndc?iFI^6yL4pf0&P%X&vQtJnI13qCiX4v|0Z|>%d-;=0!5plQL8|JScBm71F9sYIx z@_nlM`W0{g-#c$Hh;JB2#wDLJJRki#EOAiYr>~2U?#;UV<09aH=h-C2-A4Go7XJu~ zyKR#Bcf=jt83A0eUHkRave8?_V(%e*mkxxlB8qFi#i$rfnR#{g7CCqbvb8kiV+ZnG z4iXv3C_Y24%q2Hx%_0|LUL{k!Y4Vqw|7%BJ{{5DmFFEPNkb6}-wmDNJqJ5^@Kit?l z?`02YSDlUdI`SWT`C!{=ZS&D8E=mx!l;2#fKO^eR=#JRFH~ti3fSm4w{@pWyNxue% zy*$-&?J!BGRT;aquM}$QJ!+ojbDUVQfjX6$-dFY4donor?In0&Bs7E<&tfLCeb0i= z)Aoc1W0|*^q1{fFtQyA+d5^Mah@4YUjY=XCzENZ;OPx-5NiadlPO+I4T(K+ilF#2u zrPz)lQ*gyFEKA;=93ShIOo17m&*;oEQwuKvj#j07^Lrw*KN;&^yHNEqU+?-ljx2c?**h*?2>Z!R(8 zO^O2Pr@bFvd%>;NO=q`O$G%k-3wsV`$(9c7a<5$EMoiqH&REVs^OSBq=o0NEn(yn@q3Q zfi#ncIzpnfv)wOTE$o|=p1b$_74K8w&%SEnjoC-Zid)F;d1V!3)4CmCXDcal1+H^x zVFKufxP?dYq`sT(0}cNBpRp$Re*msFnE5TTwG3lSCHPQvyz4K8I=n)lJu&I(A)KUN z5Bcmh2ZAVDP2HgKvI@MwD$d^HKQ{xH4WPmvqT9jjd_`l7-DwP3J38zZ`5%PE>OmR&lgki6`@eDDlhDhE)O7?)~ z#xhYG%Lg8&Gjm1x8alUym|f^J0??o_XMpclJ4Q#gG*ASgRX?=4&0tVr`9_w8c~ber{oU#hQrShj zE)hl6prerLHmZ)oz7{E(J)%o!RTJ6S$Kfu8SUcY&Qw9P<66eV3R(-0m7Z<8}5?aP@ z7yM64EMMBzO?HQ47nc=hQ;0)MruD0Z?)VS6IAzMC#Vg``qhEzy>{;6eZ9^iRy1K9q zGpU}0fe3p{=X7>Vlw&8UEXWItQC9A88lC3KpQnRyTd*yA`zHhe&&Zymv6FkMi)Kpl$_lEiInZwkYwfGDy}2 zSxX_r2tU1Mhg#s1CnsvAHgPmD!`GDXVP20OKVFy?v-Ia--dIo}#mWr0fhK(DC0x8F zC*t_riv=S)EG$UbDy5;PIOE*)8ql16oLK7~GT!o&psRV>jiJl?)sHP|v%Q-On82~Y z{zD)tVq2KIUcWfe%LsOyUaMoJq!*b)4NJK*T< zTeWZt=2^=A9v!)4;kr`&)*saUonD{S*}XfFkbvY*YGPl?ZsBmI=fBcx&d?}96r8B; zJO&fZ87&xCZf;UJ>W0Li$``Z$x9yl3Bgi`&KNNC&>e);uuBw{fNly`~ZaB7LpiGj7 z^Vb0tB%J#KX?w>G@_rBc@W-`K=bLQxg37JvGcrm3 zBxF;Zg6VPpu_h zA5*Pd9uMQ&Y_LQ@BAX#}5ZSdlN=kaobses>F^dyU^#SZ=EAvT?i%kPLg4-%&yz}jx zLFpQ2VOa%TP0BF$oC1twDRRL8Q2y2%a->S|zT=gBMT%yv=s6Cu>kE!IiRgac8$>Z6 z&9W!$ZBHS*Z!23FI8xG<%;s#33h`q|pw@4}vZ>;b(su(Sv&xF!JQI~>hwmg&fZfL= zbF4+A2T6pf0bl4I>9B+UBQo@y6WqGKicEyov@o(t8Vn3?YU`TSm_zGq8E? z`6scZV>(&&ZsN=75j3#Q5UixEe zw+O#EyOfqNAc)x>NZ>gWXclx<`Ic7Kz3C$ZXdTN4{bT>H3;&phj-vs0>NrkdcO_KF z$Jeiv$ODh2(C%Y+m!$QnE4t#2wC_*2wEnSO+A%z6fB=2kAs}2ChuL=%spu5)ogv5} z;HiPFPhYU$T`}4RigDt*_dz00F1oUcd=zom50Naf*G$fb3_%A{t(GEW3Pw9z8d37k; zW%+wV?!bvsf(}dMxI>mJrFQ4S`}@BJ?@!hx8p@9dT3Q6-9v0D8O8L#Zpcy&eg&Tth&u#BO) z>r^}K2=3UtG9L^+s#?3)BLeM-%R0(qRg}fb9r(yR7$6^A!9!iczf=o7p|y^BuYEm1 zkCG`a$Uc^OGL{IwF2=B8=tS4J4G9{=_LR7LqldW*758PL=7a}111;;>1I`oR(jsSa z3a5Nq8u;3TROm;>pAqe`AV{RLSYX<9E0TGQM|h4ugj0>;4*LD?%QrM=Twhx`I}?a_J}CFxh}CI`y={Gef|4 z29HTqg3AvSLB@Wnf^bBTRZQUG565OF)FJ;UR}YtCaUF3c@@)TL{OV$k88rI8{^Hc| zgknHRL2`TIyW@{U8yL$iPoR&8_wso3(d-myA{nH~(|je;uDMekYb!L`~& zn;e1LHL`mLuk{szEE+x7vqt<8PP|uP^7|sqtM}AT^|42@Ccpg|K6+EXwPPY^@k5Zf zb8)5p!M$?k51928#cq0L7D}bGxEBFxY%2Br^_Q7Zhg_f04P2$Y>OET3d@T_XX2HZ% zm*4c4YR^7BMv)C|`jfwuAq=}*Ys=#OQviD_&(}9QrU7h960*3%6m=%8mh6sEHiJ2# zr1v!W=dUAGgkwCOLw6%5spKu-tZd+luWxoW7%$QM{2XQ_c9YYyUDRKF=q^Ti^zUXf zL&L}zTw!Iw%EDZnG(LaQ$t~P`&~ceKDezerjswSwuS=_`?xr0(gir?ya3ZU3sGIj5 zp#Fc427fHaNGVf>q=?7wO0Y3af>_)jMP>4s1T&MIoFFK<@z%q8Iqi7^OxkO;>X(^; zWJfh3iQvTA`TW-dP8kCS3Dac_Tk)3paRa;{FZPX?{$7hwt@k6=*Drq4D-IxE|Jjk< zOGKI&@gB&=?!6%ND}`KtwMK(Us|zAClV&!=l%usOW)92 z37+FX(k3o1OJ|A}xDCfat2L%@PlRlWrb9y)EPnweO%WZ>$8_#iOX(M<)8*BJmu62B#0KAF|0?f- zj(KBNy{p=R3sNfRuoZl!A2kPJ7WhP5c5Nf;?g@sneMJmP_s++hR%BdO?6)a;tPwUJ z)5=gWyJR-X*Wp#dlchP#P1_a6z||Iz0nb`0B!@y8C$Bib&H^%IEf|1p9QBSU9mDd0 zdgET2)fWj^!jk90#+*OomX1B@4OOgce5`6uFBLKuz;0BP#-b7V#+JbRq0niYXRpN8 z3Y?+98ObJs@d<5eXTI4?B#L7{tlGQDI5xdj(XidIxV@r;;`KxST)D z$am$jZ0pZurM=4CB?E(hoo>I^>M?Zm`NkR5J?EuIofBjyVLSCxdAA>Dx*hLebM=&} znCYvqacaSIXgqH=_u>NXg}vi{OM1rT)2>hpXHAkOz9i0)*!M6fE}0EH_SXo;@$jl%js^KU3`mFjFyt03H88t z^z2Fq!>}KnA&Hk^L3fcsSgu2Ig)d~ygAi=r7!AJ;Vj^3UF`Ld1j!yJ#{Rz69Jj2TB z2aIUZZa*gyl*u^&Tu3o`jK`#AC%{2zN0xYPSefIhi@R;yXd9}#&lFvpndZjh9q(xE ziK~lrzA^I@929Lb?fWb3uD_p^#tphQuk{8lpmdzPMy_y_oq+2QKC?=jRCgrE_VDw0%u^GF+$ z7_=qSFvKx+aTaCP*+JenvphxD0^5`~Z7UTnzGr-UPw0Dz*C=*Ia`Xn_lN9J2)VTlV zc}Rgh3rc|SL=+Q2KFIbZvV?wrkSU4YfPx1!cGya73XsVM5tDF znx2#_ZiVyetZ?IsgGso6iotBc1Qjbgs`$3~${}L0H)zC=X}ef)IAWKP24vD6<2fQnPepW6Y^++*_{4HRxB;^uZB_lJb z-ge=1FZ;M!P{xio!#q%<*7BOtH~M-(!=Yy0F}%+Ir=&3%-wbi0{sA*W9##Cv@24F& zeGg0UiTRNHai8mG>K5%U=r==N`(1z=zWc6!*u_;*|@;;U?%6fckTEBma}<@ASjRLiz@TO^(Zq3HM^*p$Q)nHQ+TfCx5^?L zDBq;~UEx||mPG(O3Cv%;7D8+tjU=Kh>&!fQz)L$Wewt|QW?ogte@DB}rMAorcv-vA zEKlK9%(QzYS3^qA(gb&Mg%ldE6r}T{d^A#sgHqzlBsrJm`w*VA!rv^HK*J-J_ovtj zslLg-fq05#m#n1x9a~UFphnS0a;1@LV=5>rM^=y8@>6*AhE?(^MJQ@VjgVB&7;Is@ zqa0|lptyah-SEkLZsOi0|2bwVVD~L7M)qSa5YA6qx~_H{@d4 z{zPP?3$y47$m^iUNgX6mLwFa@aO(R7bsN<9r1gT?(`22{363Z+R{NBRvzRy;86)`R z>bM9T@Kl#(R=e7RCn4jl!b2Sk&utHC&VeItM@kKpSQX?>&EEHkZlQ`4y!K@Ky7_tH znm500-9-x$M79`@ul7km{FbPk7pg9stOHJlg|Wr2&zyMnY3}f0OwUJh=dB**5|!|U zv7tN_?6vda^aFbPF;$fR{%vQEt)gc;k?-~$SIKWW^M_WIP*I>-B(ior???c8jL2xT z)aSlB&KICJKUfA-*2FAD%p;Vu$SW}JQR{rdV#*)HYm}|wkY&5fl%)bt-o)ptLa^;~ zp**-5wydpArX-dESq?|i8R4u8V35ufVF`E~f0>bg%V$pL{!Lc+PjU5hviLN;#Nq1> zS%^5z>fg&;1$5#3h8pthZ@x~#y_KmWXZQY2J*TbLLaUXb4hcD)tz~5z{cJITyH}2D zPW!g56D>7xthQpi8*!a6xS@ux$$y6Vtb|VO;1=@L(>K(RSaW0(VyqcPe6Nr+FN-)$ zr`lt8?v@*A-`nO$S(9&-0p{mQaV>x7`+H+WH}LW`F6Hx zuX2f?5@66tRv7XoIJR5H+iW;f6 z3K5w@>NVUVz65s*_#*&NU@>DZZ4ag%f64qhyizvfElOk&!LuC?Z=6*($K>zG2l2=d zI%?fLXWW71kz(Xb`v3nW`{=W&8 z=8^^87sK-N=#rv4`p)2k+G_q8w)0078j&5Fs?gsk!X$j+`cxCq0Hq3vU8dkiBDjAm zT7J`cXYA9_lQQ}OMH1TgEp^t|R+^*@cg;Q-S0efLlJdVWzI~2qoM@TwavyI&Zf|8IL==`_(mNE@rKnMK^tjWu_^O|m%*OdL z1dLb=1m9C_sp&RAY`GzhhfE+i$}2BF)lkI3@I79WPq%=YlnCfNP5ld zuF7?C7!->^lq&&oQUS^T!FDE&Ht{%Dst;F@={T|Q6km!nIC*~Qzv3w-3~d=kuno$$ z*3kep%?J!XhRp4=F$(fceuF=t13Sx6i$bd&&@!;v$37@@y#d~x{DPWjC4Yup{PNG| zu@ZK?9(&lXVkt2Rp8g`&niWuXOz(orj;j)SMqBPuUy-}d7(Me)%86Ar@==YuxNf~` zT+Sgs@fahR!x*+Phqmt9BH^7LkDiWtC>So+@I;H-`!d|k20%e zkjp)oKV${u#JW#yTlToFx^5&6_Nl6X-T1?wid39B+EU|mFg@bsKYRuTP3O>0s3CM1 zGPYKxfNyGL-{)ar!hF>z>7s_}$kF!+To z-VuDvPl)kLCiI2B&I+MVe1(u7+@0fZayJL2Z`;RxmKgHc?5XY|f%{*tAc|HpE>0Ys z414ol6t6BVHnlmDxj}w!zvUhHLm$n~`*JPTa?Gc2M5q7jnkVH|Iyj2>lcb@c_u=?B zL&T#zuA{RTQkDogSQP<|48phRPn+jt$^I8r-~5(Yz;zw&Y};<)oo&0O$+m6VZn9ky zCu6d0O>VO5&iZ=3@4de3eSSKBz&U5{wf0_XZAz$knvY2&#*u$gz`V~W+-TZNIG)@$ zbgx5&+U?GaYY;B1fAD}6ke_$OeH$k=T;U%Y6Wai;?2WO$-&d?n zv0{}x>-e_H3)jzVikM@@$B)opSd>Li1ak1dApwV6X3v#5QcCl##F@tq`7!Ik-&1*& z|A`)P02G5JDw$z+-FXH zrZ*H>G`a=lH#QM-!GzRxS`J%^0f#co)*$jo>gaX9y!@cocQM-f7qn&o{X*{kuD{Q> zTZUnZI8qFUQd!~iu}bU<8OeCXY_8aZqfmBil2(A zix`lv6rT`M(bw+=c~V{XIxpFu(gxDr@9XdxS1;ipB8G=IX{%RELG+22W6`#)^`Of% zV#~4A0`?%pz855ZVq%Hj>|bvVvQBeS^@otMR(4O`Wp!A_lj?H|Tk%z~wCnZ}Z!8+F z>`T2zlIerqq{$^OcdT&l*Iaxu9n>b3htqaVxjYeRVp1ya|5&r84TQgI^Ut75;s;Td zayF56u@J-^Bpp}BikozE@%}1;?o-Y;j5*|18q~7sKkV)4JKP~btth ze?b^u?kTf$=SRe(8IU?b3|_Jy@O)IwAkl`Iz<{sk=|pnJ@fbLGVD-N%U0IO3R_`8; zYmV!;Uw+OJ&txOm8zZKgyX}rW&4(i~od5BeC-q=kVX3B$rY)FS{AU-^n-}WnA!RID z>3q26BS^oAOPxZXKPujaGQCDJfT)l00B<%kA!r%kN+n%PV?hF~Eov!1xVc6!r}KgN zey@03*DUHWFAEA)64lt?1ex-Sm~21-Dkdcpw^%*#b;Ezgpdpfr7UU+O+y~?H(^(EK zh>9%E$m>>CWY+Z*n9aGDJ*DZlZ3_fLjF6z+J=9gm!ynDC7<2uN;*CwL|t*g#M(GSWiLq{rn~?Fj741 zfIjcmbCBD*rIbK+`iz4a6oByMbWl#igb#?uCC~FmevN^DldOD6c3r*v4A}90NvIc~ znTn{vbNCQocznyuHkPSomVh?s^?X%2wyh58OM}B)Q+93ip_YG`44J6OeRG0mRU||61Vb<3i@k*WWVF3td;(~e&cUm0O2DfQzK_7!Lb_gp zWoN#$NC$bTIT-91pQ^#!9CekVOaIGl8q2hGopCIqjs^`8Toph*ZtN*`R!O( z)r25=Ns;uU3<4d5Od+I+kh?TjG2<>3&6K&E_l!FlCGOyW;_cHhJ5)vSepbxWXyoo; z4^x@@U6Rjb{q@Nug1*u}UA01ImM745J#Bp%p>f=Okll?UdGM0d++%M2d+S|iqyqi= zQ|`z)8qyC}LLc7&0-z)kZ@j=qkN}_5&%sNw0${@HICx zf_8BBRmA($8&^zSpW>u6VCn3E9jfN&=a>B+W;G=j3v&`5l(UEpX6R5s zx?^l}3V7Z)P`O0@YRX5vcqiT%$3Coh=3F?Uk0;0#S%3QPW?A@^7=xYlbL*ob1fWfh zjodm+U;Y4kt3aCm9RFY!Lb%qpy-`j5P1D)Xr-gnK5m@o#FDY5^3J zey~-k7Bn$nvtm2U>KnwBjf-NAKov!k?|f|Or&0onYgveDI3O*nkHuWn$)@hcGJKw< zj4#}lT(^9*NdlMX++pnb7(EJG8)M|LN0F?taKEXqhR+MyXKiFua;`wR7S=`4^Hi3{ zgTO80uOuc1yaCpW1q=-s5_3eb%T-}phv*+0g_!B)p(jgycPBpnVuYQqT=G50BKXbM z8Z|+mzwk3in2u0tT-vnZlu93cC;#-dpljyWiT8mMrCxZ(r6HJC2vmiHBa~I}6h$On zuzu-nz(3VE-lk3M+R=gL=syP#wX<6qfKVs{7#nm`Y0dwl3x6pi3*52IB51-W%y7(t z^btaOcerhxcqT~*Z$k5DYwuU@JLGEA-PUQA|-5MGwFU;Nq$!Z1sdByyfB`*TVY}>rB znhof}y8;pKmZr1m50;DYlxG$B_38b60SMFp!Jh^{^=p3r;I6n7)2K!4kexv*kqkVc zpuf+H4Ma_!%dgAumq2w@WtSeVFNMQ~7n_2t9^n3`#by0F2qm-k6%ly92%buVSU_2Z zvWbcHmn1t*`;(5=Ehq9&d3mv)*PYI1Gy^WeBtVh`&$&Yt13fmYK#AHkpaMO}!`jHb zfbi5N#z^dNns}~PApudv1v0bPl??G;ieZNU8t*)wvW_}L+&x5yNkXEsfzIHNd@7R5 zQX1R zf)>jj>#(#K^9sJogbp?6CM5(dzKa4X{Jhr~b?A43^a6`^{Fke=0Zk)l*P3PF8Dk_w zVus-O73kxR>f%@n&P7oA{(UY6fMaY19v>Z2ueTu3+J-9aPOgOB+_QLTQo(?y4tl)u*%J*jcm?~a;8h%Ld8NEJ zTV6=rgZz{Z{R)n9pUN#cp#C_g@>@J&3c0@w_1aJ1Pw~LSrYjOM=y2C@&Z4rr$N4ew zs~Vcf-!PwJw9Q$O(o6X}zIRd(8JLUPdV$fMkow{@dlKe6sd$8|EczYDh4;DFu1gXP z2!DEam^)}40PYxGGz zy=BtN8ym~<&zwHELH%!^D&KCy%9v~4q$sn_{C<-ql&TJn;}#tRa%xX!7M#{oYrJAj z^c|3g9UXI5N9@F5gFgIEY&7~T?^rWzbCEHIGF^$v=WpdRZ1c!a842dzHizk0$_~nZ z(d@kS*WEbYTah6~8x?56Q4DGG_T+t+n&6l%x5NGf^wshHUo^KLS}!BbF64*pWiBaQ zYeqDjjAW$T>}JU$fHQOzPrAJW=u(^tJ(`}W@1iA``G>Qk7f3|t;fM5TBd2WS2M3jI zI`<+CUYQG-Jn;&JF5X+CY&4v%5n*99q>OwWmK6o>n)=ZHHthQ(_>9IQiJ@{v&+>dJ z9MljkACS5#c=L{kj#=uV8n`B-C8~ib63B7JqB)qNIV^lQmgU3EKa9>79z~=SL@$*8 zQ^L$W96`T0grGb0kyTXBHWjmS$OnF$E=ETA6HT#|rtg~5?95?WWM~YrFw^Qf=2{~D zro`yTzdkoK)k3In&J2j2FHiWuy9utg`{c-)EVwAsbx8hBPkJ4l7W8Yz-;=U-&sk0r zIVShuOW_9VV}_%7`K{1a#4(^xnw6VU3v@eKZ~>`I{5PUZRRlx9WeKe6cZbpMI@{3p zxU_g@R0Kp3uF8#KNX>lPMYn;_^e9#ZDZmi#acKMpn?kQ1&UKWNBJCR< zUCd&spIq9do^B)hQg$HK-5urybX7wxz>`p8`FCz zP5SuFXTGw3okmPjM-KS(UrVq5)d4VZutLYv$46Ob_mnL=T=9~g@ucl+e_BF|oeIDD z;bHQx1_5Ibu6sIg?R|QNSeaeUE9{0{p4&BNw@~6Z&7N*8@HfJ znjfTT)qblItS5rHiB-JT9ARAt2>wX1w6$U@a&?Pk+yXE)6N3t|W2ZxZZkG@+7 zAvNF}kv`0iU~!2i$0t=x46FoL@f<*>;>CgkoT7jc#KD^|M`O~$ zbWMGD3W`KT$mKpu`UST3VAkp+NnNz~J%J05ds zQlEriX)bdP+(_?|3lW3MMA*0Qka=>bPC5zGuiS>9)_Mb68zLxhr-pJ{S>DHV`Y|dj zKR*<-sm#|Vjd{pfHiK+e`70z#`j-R4`Yem4LeCUt?z065STqC(f z6n`LPZ0aNY`n7;s1Pn3+!r2K1A7@xiN`IOZxvYBWndWge;tcrQI7i)T_dYNZH2cZV z@dV#VUcIimJ3S{>mox5P#eLcZ3~Y}~6L{%a=Nt}%3mbMi()HKY615nB1(yPXp&MpQ zn*6a)0spEAQUeZo0rUJU>C25PNTU55hBWe9e?rEBs#VI2I-BwT)b&W!4R?`M&X9C7 z&3`NUmuH$m&*{WwW=`xsk(lk%!zb}EY<$QpljcIprx^vFU?#2M1#zK}91uBVsY3@( zi~=Ka8L~?n*?If;4k&*Ok#~IzEi8XU^XAJd5V(T#=1rZ|3qV_Hy>i^QIOQ%%5Y57| z|GsyI1+SFI`w0KGfJ|ETkGp6hf&44yFDEW`*VZ<=piKu>u?xp{H+cEuhS#o9rFD>I{jN;0XXbdf$60O>OG{ z-D~W^Sj}#L2n{7ay^OMh!OYn3zdQHs1V2oV>&tYhgYetyVt!9$bt!^bPz$Y47vSIr z4%(+RAK}9X*x!MahB8Rc4Om;7^IpAYueJ?n1{>(*gR%ja6^(0dPQ2%E8kH(PLUou! zGA=$ixT`bNyi7!9X0}yp{qVIZ3CH$V$UP3~qIrLKiQ3@E)^9rtQF;iu{XVYg*|&!ix48OGh$Rn|+kLo&lZ zh+G~CJP127Bb^`IQ0iobqimeJN7ug(nfH#M>^9>W7>PX9c=qb3WFGF)`uCsM+b*)B z3Kkks{k^b_?Po;yit#E~lHVTRb8b0S)FkVJgV!1zQ+`tSBAOv00+w5k2DoO?ScfDq zVc98aoLmK-)P;NH^T%k^SxD%PdKFj@v>;Lns90b#VD94n)URrz#F%)oY-=N|5Varw zFo;yV#}fKg>mi5cwV0Ki@La|uzG;N2Nk0l0MC?gW{k`R}FjveQ2L?p)3vbc`z@^{? zPxhMd$hs+t%839GCq2?A&h!@wZeDYqdXK6DdhZ=MnmFH+=Qv2x`_jlk4`IcfeE0%- zN^^QHNP2L8=kPjlE?$w^ZrFZ0ct?c`Wcl(Kyukhbu_-=0PEfzH8Zx?v5y|kNqiyI4A(flIM}eers82R{g9bxcDss0W<(5x`=8s2`b(w?w zvq>T4ixF8;iVB+!LQqkmAmzVSX(N=Nf$ek3ldM>(>MLW;!6(87)+a$1)(1@HYOCYso6nQ&bHMJOdxK|I z_s*V>D=Iol%kz-?rDv8NAe8;%Fq!%lO_QgBXaH=cDyl>y=EQ6q0v`yRO-+x; z8l(g@H5H_%%548E+t4+&vb=3yc?+X$YLRrYCtly~k=j@y7%(`aaMo_ZbU6NVGLtFv zCV=5sO$TO@nOM@}!r=CzAg*-GJ`SKR_~r@vxa=JRY~`aqoJy_gzapEjSPaY^hwpqq z>{@*O3hJe@#|pk(xib?Q2MmhrA;l~Wstj&q!LPH z%Hk)4zy-=&k_XKFZ|w?Y->5evr8aF8>${JTek2rSrcYcm=Y(D7&w6oG02X1e)TJWe z-$jJd7BRPlebDsFV%xbDPc1w{OCK3q&&>%3Ro0PyH_*P z`qZnCIVg_|0hVxwVR(CxKc0=3MjP|$xDoDTOG{-~?iJJ)z$>g3N zr>GCnldTcZbWOujhqK5~o7{_UFT5~+ol7*FXod2pNz7)_=>}PpkzX&GrsB#|7AJ`) zwGr}K<&_ITa&`s?@0^Uma&y4xk5KpDedziYT-nDBi*^OHqAppJGotH!P#KSW0!!(p z!uo=DhhN->&qYw{sqvD0HR{Ab?Fg3N7{f+DJfq8VA!j(-g?aKltlzSWUWqK_Xa2pu z|EQ5tb4TX2u}QKpj&^2tSfrvUPCW!C_{z1m9u`q1AW1NWp+UyKSxKgp@>Z$>K!`b^ zq5{qzW`wcyxMTvhM>uZ1qw3_aUu`pFw;4hkKd4^Lp%gs7ph`}~trgFtlyV*{z-BkE z17F0Lr9NK2?^~JIDzK{lmmvXjMUy;J5W?JDD&9j=zWQThWh7sr)b~~lQwVzic*95F zW%_v=8Y=1vf)nnn7b1BH@15Rka{AjZ?Q;vN&t+;-i!j*KF+qvH;Ee1S3;!-Y7-8II z#n1luDb4*1Ak@40JGW3Xc%+91GppxA^v5$AIh(6uttxtaYJ61B1E%zMLSh#Pey@b7 zz;#p1(#jV93+y}}T!hIz{9syv@Zz>`5S1Qg8w}?axxYu!RrL>Qv_56=_JIofiln4f zl#q~t&tcYx1Nt#VzfHAj3>d%qXpTOJT~+eR2g6+hydsW&UMnUNymd*yj~C0c`dRAz z7ef7)_#3|^>Kl)%-HFdoF!Ms<5Qs=;xW^(*MHK+q(6axaUlOKGp?d`3e7l$UXbT0* zuN8l2EIp1Eh`J0VIHtQ1zrNc){^la3vC8QhF;05>;G0@iD={~*RNuh~Y4li5@iHf0 zOI!LJ>BUR(v&?4pyu%LB?!el4Q`Dtws)<3l5n)OXQzko9756*am%@MuWPvyXzXd14 zqPq2pLcTdkNcRF=Us$pA`2?q##7d)DLgM{SZEHRw_U|30B0egN@j{7%MZBm3I_F1C z(8}eXNN*581c!OR=>!PK?Fnqts5269K@MipO@8vGI1t_=MfItZC(bUNJ!kr8o%{VQ zh5S8^GV9K4j$_xwJr}T|aLch7j@?=lsgf0OOydG0gh9P>hOv9(!11*9Nl&WGTC_N# z5FK!`mcB{h#j$96cso8)u=BGW8@VY?eKG0x^*VA2+gwFQGX_zW+}y_tMUfv-)r4|@ z0rAaBTsRP1#Z~E41%u7Ew9@pYakjV>ZFAjb?ml&yM;;cNevgH;ooU~!`R|ypL3a@1 z+m+2N+L*fy{t>VKI~vi}mO=g3?*n4!P#t|z^C;|mqV(>_E8z3OvF=wY zAbWuIwrr;{K@r?&j|dIJX-6+*DvT~jZreo%={p2@jQ1H0lc>9*2R*}t+hGI=>v{`* zV`ZwqoB#2Vh%`B}oTG2q)!xSjfDYl7;~cjE0KT{lej7fglPQCIgPhU7hP;8?F>>3J zf;F}VTj8d2`Fm3C&wSFSMVWaHJh`H)RJBw3d3^5V99p?XB`v5|Q`LUO5{@`eb3X)$ z$W$U0TJa6-;QC)NbBB${dQLcVs>$*3rwpl2ne+TG7fbDy3Ec72bsUaD93;D3X{7Cc z@=x_x`x_h4lF(z4Q(O$4+_7bI59U(bPe^L%XZBe#I2|%7@l!PK5V#EJ;L!0JOYHhD z?47d>TMcinFGy03eQ$0B$s@w#cwi|xka*~7#T|yRq5_V#t3G05SZKIMv^PXFe?a%M zEud!R20cYr8TmndRSnl1?49Nl+dMSDQC$R)#HY7@Oa(bIUboxic%PXQ?JA`zeP?M9 zmsFS1qok4<`^)x-aRGH6LP__jW)oIK5yKclU->)B4jCcQ;QC9L`PQ$oNdwrR@{~D} zdvwS(Y}`>GRc6xU+?iwSg92Lb4plBqF!-5}BU*34oHGuh8Q7mGAt6&Y1}g_9sWog4 z*R6Vy5e}QaKVVW#$_#fozajjZu2x1~|Im8|?6UISk-!Nj{wAn81b#80Ub*+US+54D z2am_T*J0KS-M~a@YWbE@uylz{zb2kCB48PK&ERms?Kmay9Bi zHbRK-zTdMqn_xrI%%kh!Mgj78=H?Kce*1~Jgrg#f1i5f*?Yk6Rv9-_WV1T4jyK~ts zL?f)`9I;*oSG*0iWkh@-uFn$nkO}?oDD3BlH!o!W#fyx$zdhtOM(e=oq0m`&G6trd z`En0A>~C|lo)e5(o{0S*NL*W&3Mb{9FaLw$G;^R_)&j9l=lMRd6gCR z5Y4X2>nHU-NAw$Q4&{(^w-27(OsjxwDZ?~)D|;d_KoXy`6}#|U15CtW*sNkYH;xO# ze1~yCiOtH3TK|(BvW|MHw^RLY_wGBmppw77e!{`-jWqTpis|l)Fm&ys*{*W{h3=(Y z=pAgsMeXAWE^j>1%=Dc%C3AzWlUIr@bKSrh9f+7_I*|U4#e@Hn^cSf46`LK80*(og zebV{-abIo_I<#aJiRdor?S?d8Wu5rZjf~ffH1J(@o3;TtZjnY^)FfZR(~gsX_fj>) z54`%sV)oo>Em=OKPE7(!*f`G74@>@gtdSQPw4ZtsZbiJLO&Wo#T8{Tq88+aXKE=6(D&N-r>k98bi;@c<1%WCr8=$YrSCF|mlNfjm8r3@`Y~hMglt z9Q%F3n4lI~)P;S0l>neI=iQNpgdGQsq$YP zspLpx&S}T^*oU#?YA;yCs*_Q|@&PZ@G&fjb72A^c6QGcOBK?vmsY2el77Gk+(Z|fp z6K?J^c9kTOFfl^+KE0j$s~kBR@jADyt*9kJO|KR_hu4CzmgSQ8D2wez*Il7-C$)Vh zK)c$CXvT?S|2sUzAFO$i0>g zk~ojfjOc&(F#YGvmzx2KWTmi@nsHoEl?O)=gG)@Y%5_KEqgU z^pTyvq`xf;9*e_SC{+R@2#^v?$K~)-WQKx1s1SY~3*o>ZnpC*KF7&K!9%xxQA6g{T zicum+ykSDk+Z{9RcZkW>F3cu@TT0kE}Gbc5IkYB!> zg46Z_=P8_b(n7(8sH%>Zv%QQa|8^5wGAFomioAtR`ur#ka@w(es7DxPw?UQN@EN7C zE^71+8Ws%XF|t=6Dc`RJO@@LY2UkU7YT6a{q-+DY0RR&-KZr-vor|zcA_w;ZMB%2* zXrQQGLKqv!(3d9_$)fKk`BIXb1;hW}mPh%`ghLvFg9Lu`e|u&T{jJo;e1UsT zkF6d&DWR&5j)(h*2?j$9{$$G4i+Kl+6tf+4=LxWNOJQNlhn}4iUDm z+7=KF{A+WUSkoEmFf*@5ZAnk&BHqUVoQ(1GGZ)ZKW`cNL3EcQKF#c99X+yeCE?+kl zdI@qUxVs7nf5`s;969s^pLrNKw>$ZTl^n@_x#^|f?MP9_dp*z)eX;u)T*nL#nxgc` zSm4KD#nEE&$}thUpeD*NbEAc4b?}3yML$LE57*HFfI07;FkAp=5D30Zi1`sqY8V`Z zPC`!;p3b4Gf;-xP(c60%h>Iw>;X8aO?rsndfAP!Lva-SWy#Oyh^oypJ_@Sdo9bNZLr1u z=F9PuATcu|LTax5w$j223ZxOxRESovXUmT4Z(1SP*VLMNg?0G5!9sHi>eh{#+55lT zRg>4IcHgnfi+?jfO{b6V9DBk@R@E8$4j^H}Pt_}Ga#}u2J~0*p@+(c&@o`_6i8n?} z=?R$Rd_vpF&YKj7(3kFNFK;e!1V2AJ=; z8A6bgk^AUAxO33s`xu`w&ne>jc=uT5nHY&|@vRwW#HG}!BSelOY}qkKimCY!Nq`}< zMDlJ2TMQ-o29dK!`?Ie0c(RKL1(SRH5caj9V{4TIBErM^mrZb)yrxej0v^kvtS3Z2 zu*!{`tdL!2m?>dr1sTU58teLQsFvoq9By6~k$1!x6{}N&Cx$jXn|0Ep=JtlURQ)nF z=pcGHZFPid9?g&5dWF#86p^_r;_#KBZMMp=$X}j#<}u zH6`mhaACz+t~KL}JXVa#W+~7hbem>0)e$7E9LmGqtH@@vc(GNIu9KB(LQjS@K#Bj4}2+$jssF1SZB7WXk;lUs9 z)628#erqgte#=c8$gPg*FzTs$2u^ec)29u7ZGFQB08|Qy$aLecVLm-ez(^Bgy~2-w z6F;2bi%EM+E;@%WoOy3wL*r*n8 zYGMR!urVV8{u7V!zXmRI9Lug*30&rPDxar#>)-XA-T0M*BWBPrPdB8}`iNG=NkUz2 zWdKKcVHPhk+(LR$qZA8CH=bBo8yZCvm(*Jp;sw++Ilv%s2w_@l7n50HKQyGvUprpz zg6PbQ!bkU5v|W{v@V{bU1L$GW{q_yL?Xv)=w9c>qA%oBPe9DKss`3gG?-Kk z3Mq#ZQdss{`$1t}h@GPZK@y>iy!Fsg9~iXHC+<8#orG>QXeM+U&S<|bFjf?tVvbX8 zuH&-$VrgHxgw+T+TG*~>q;8={-g(!A!s!4KZ#Jz3B)j4j1^;%`6Kl|)nf7pTtYwtn zutYLP+`5`teqAPyHZIW1?txIT4Yqfb5)qADa`$Lav8T|6)REAXU-J&vO#NJC^SSby|2 z08=7ZMi7nV&eww2BzuS|$IpOL@VZ(39jHYrWbne#ko<*r`)5={_95ZkFF((!g2hDQ z?I`Nu-i&PWMMNoopGY^su(meK13%JT&O!aC9`YT7YK!oXs9&=UGhkD%&B|p3lT!iL zibmS@TjfFjN;OovKhW~DY6G=O-U{f>US#&;_VH=8st2>vV{ZBld7A2GB7mhcvWMRa ziaH6Io6|+INy+RF%aWYymA2rEGZfUS7tQ{G# z^!tOlaCg=~uSyUD+-LdKghNv+kHL<@idugx@Cp=FUrMqyk2b~d6aOVBX;eZ25&O^4 zEe7)n0hLQADQh61V08u6tk0bGhD)S6nVtNqTG-E>z37rjJbB$sG1e3e>=Ps-F7h4x z-UWT^}>v>5M?qxGYSA5=&wcuSlr9)aBa?E$v@kJ&`4k&#jR`RJVhsrt?QB zH`Z81Gm27sxnYsKY`F#ob54kWm!tCjn+|sETgX{;v^eUl#}&#V`eFR|a%}ROV_(d( zcYM+vyguKq<}AK*xzAza>3X-MCRprq!nqD!#>;CMsNTW4-2Fr%B?2u>{ zZh!wXgynbvy&E~A4>1_rhj2(WH0SYvg@rE}9Gw=8~SC}(>E4_qM%qEybzPim4FI0m9`{V|c7@_0e_^j$7`FgtXGYKSGwVV>Zg^P!@K!r}yDcEOQKMzpU7CbY=rG;s%a0@PDN{+|Di$%ff98u;RiOn;E@y>Ha^!q59 zQA=jeIlP(C{VybMirl$HS6oO0+u!z37Uu@Qys`MUlAOof*~tBcOnlD|z~UFoIHO z9Qg;u#gwtBwRF$a%`O;MSaB~j}718yL2K)Ari9GxD+*08|=4fKzC;HZk+)yzM5d!hK) zj|9bM9C<#Moocx->E&On@RT=`1F_*0xO|5xZk@cvZs`p}S3?dYl8?x6FXDdb97Dxl zlpx^*@~KwryEzT4u#afRrh}(~zaHse5Y=}-OeagoVCBUU#;`?Pl(k5?+&NE2_lGgL z^PlQg?QIgQlH4*dSK?$?iB{2)!4}TM$5TG1*#KMTgNBI~Gi)J!&UlERAwxr8iUssL zvD{9F5J|X$Ya6Szg!D}rsS4tQd(CcgutoK7evDxB+Sg)}ZI8Q`k{`R4V~Y@FWYr~bP*_;rS) zn=Jg_GMJU22e#uzo?j%@d0&YIBq_5f0gWjoHo&yiS$)A0E#ow3`iYsaxi&jx4y?aO8x zYU_Ark;*NZ)QnuQoeOox)jJ|xtdGF*iSCfCu}WIJIjs#;C%j5)wxkDpPKo74v`1%Z z(fmo#Q=PsR_GYco)>ZkWD=2?{0)>U2-brF2P5S>l;G2^yB7T0WtxZLc_UR-(IW?Vi zNF&p;!>eH~KK7+jHDDGA4@dknZ7paqlFCO*F6P1kKV>?L?Gt@CPy0Jj;`CQ(h3i^8 z;=SAVVe6oZ9Oq7j3ioZ9Gr7cDYaVA1XThXD+fON#ju&|EngeNds#U8R;aWj(5XmP0 z;0syB zeKl(#A)>5~R^SC8YaR{^5g^~*f-B7?z7mru#xjc$612vUhgbh-Lf8X)Zul#s#1-wQ zvr^&j^w^g@e&XGjNj(L3borslJVpY$JjD_Dh{LU=S>Af$b$J*rVY3JI4%uQ`fTCk`a>rdQF<;8%60^E4aC_f}S~LZpM)3AuA01B}AeP z#AcLdZG z$}_xyj4h=pIM{Q>q`Q)6KY#*k8^DYRY!Bp7sxL&=-0RKyF|fe{blV+9ejF0Hmg}P~ z3@KqdP?I$%nx*l;iob^b9U7WJyCBiUzAUy28HqaVH_;Lbdg?fC79Y8_v)$f#MgPo} zly#jfmvv+cU_NgS+shr&Fc;SOkPh7h}rSrbaiF`zR~EG+K1Cue^}BRwW$WtC}Lzfn=Ol_Vf2y(rQT zzoU5>)*gGJnSugG{DH(6WE619HW^!u2k0#c6|@~k7ZxsgwhA21{pr}r3tpjs+8;Px zFj*ut6`0N(h%|vXD2dS^rGtUUE08vj8oN#DN5?gCMC{`9*P7aXZF&&t7hap00Ho}t z%XK`WT1?RqK^j|u*v_o19>k2mt1{VZ>Hw+Lt{HC4x-iLVs>p!FeDP?2DX5N$*L;Dp zjSF!{6wk3zw_u{lcX>YHcZ8L)k0iC-a9}-pmIuyG9DI!qtRagkGlQ1eBJbACq$FuW zH#8Oj1T473k`)pR_+J``JgqdtX&@w3E03pS!2Vxlpm(zNECf8@@U~1i?ZS$8X218y zjm#5{oe+TfL<1{m_a8AedS_wm{a?+9YLO#^rNU!_cO+g4ySZxmV+uQO+TRLpjjcu%#$kD)J$ zS;@q>A1tDGaZu2f7(6JmDegjNHyg1WBS2WEn>2gJcul$t?qz?w@N6!$Z{>^)H6&=t z7dgbc=fG3kd^C2B-T^B9&l_BNT-k2NkSlUXwmbmP;+rdcO)niCvRgI8p2Nojm1bk+ z=rLx>U(Bwvah6J2^#lDx~l%sphI;Gpb>D(MZgFSb{Ym+ z4l;(DLqHN`@|*En`y&9>Nc>usRZ=-v+hWWj)|n7IKj(DL0)ltcsAX168LYS`BTUBe zGa~AQ2{Qk{0(4~uUSY=2$n?w! zwV9YD=L)fCTiZh!a>cHB*)SA+M*8l1xvTQGd%a&*95-K)NH{3-(7q2^g8jMgCwa%N zsH2KG9B6$nUizy~<@72f`kqS?c)4C^w>R)N6il7Fk^%6?GPKn-Qp z?d|C23G04zP{=HVg><0xpAnd!DitQ4AdJZEY+}DiX>E9XHfB%bVxl4G`g9OkX!y6> zzxzyG8p5_26;F2|9otOUrV!`)L9%_YgJcnOwzgGg}igd}&> z*(d{fv>S+=g{!)n6OL(`>X$ZiVhk#-<6oeE>>oOEjdw}_8XP$^!ZIPG^2k(?xX?{j5m2^YrNs=Bs6g*={ch7Tzpvm}_ z1A?-9B^;&+e?NFH6lZW z3ACwK6SbC8OCkJ_24$)W%FXEO7R7Kl;I<%o?>UO7r}g%D@+o(l@ls1nB&%A% zm!iA}L>#?%FNL(>_y681t80YrUtHAxp+yN{`&Qs&OKgjzNJg_}U`&Kx*#ieK2bJP5 zq6n&r(k{C{uiH-7AE7jqk##35p8wGW1CNjhDVrF6h?&fAJN#WnkcWiX1`7;2)$|M} z33587Ulo@g2$>vVu!Wi~c^aU-#RO5f8waSePfJzoX+6m>M9l>KXycFVU+EjPfQlVB z_7k@o_*NcuT#Ja-OFEO(BWbXz<|>fM4qD&yAn9Z{U{RjW9tJ0!m)NXqQz-jfHRFWo zt!zzk9CF3CS9W*YbcY5ZOLJONs{!59kZ>KyG$ZY}*7=d}`^(7grcxYd`A|j((T%#z z@FRvV7GN3};aJpj*w4F?yrs;3C2ftvA9{bUeOP){UN%6cI{T^oTMG_r99#1nu3}|;y9;QWegSqB-ZS?L|+1q-R#*!n~1|ILe&<>535sKS`j-h zeDshDm7h2vmJVv-UbtjJV<>A4`c3xX%P3wH(8&2mc2M_m z#yI!IE@_)M@xS`y+Gf65DEq;I*(K%Mq@nkEB3inpUKs;CPcwYkYB7rYG1B^YJ-Wz; zFi8hF1OEq7UUw6;5U}iDe^pNDeTNg(CuJ==WpDOfM1MG%m_hTwg5N}p(#?njM8|_c zXr-b>l6%fai2Cq1zhZ~Y>C7hAlSmrb7^1gC3%*^9#;rLJ6shR9mJ)=0_wEPh41=SaJp$O6u#%7qVK8l z@Zz=Fn(xHt){}$^mlL<*TF=FJrnzK;jb!!X0#@JR5-fXnR4){*PD2bVq>QI)P&V-&5uLaSx*8$FG8mdaR)Jqn%18_#b2uhEIl6 z47E(5Q|;}Je_4pr%ie@Mo%V6z7mBXCDKWfFpAf;MN-PRb{Lp3}h#?gYa4l;Ayl1<% zWkE41p9skFtmT;4yQy#F=cQ%~2LWLxCswq?KhYM8TUn8VhNG{WmP8X~cnD$(CIa7ji`c(OmG{vr_;5;B7_L}x(yRLboHjxQ- z@?XCN1_~I)OHiD*LJ#(Uiss0xA(Ld5a?AkLNG^B|)T$g=39Y9HyPh_J)pau=n_(yQ z0$fNf7Ug~SgRY@D`QacNHI)M|0)^d~S^V12WlFK8GHt|DzhLUTwYZSz0YF8EJXMH+ z9A3Y5^utQ;PsD9$%NOch8^a5luyt53%QnTJ@D<(A=Q?q}4SN89xa>DW#JB=y*-Ft$ zjAxK}%*8Rb8P#5oS+4`PP84;z8FwKMULE9-7^7}<6Dl+0@l_dYR�Ny#^VAVTZ|R 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

          -ptZ&xONsnguUN3#h%cqyFbNz!VWxNRR0tQ_I7+ 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
          !s#$Lv7p$`rD(ZRc4Uh@ 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

          l^b59YtyZvHUP_GeOF`k#KaKl7>mmPOfq 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

          YnpaX(7Y-i0 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∨Z8N%+1a3K!)=Jve4ALFCRgOs8a! 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

          F~!=K#Qi_Q8D2Lgrf<)H^= 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

          }SoKs8@X z`88Q9H|I=c%^%?*1ROad1|QKEoXd0p`l7td2&h`!`Xzt+dNuU@J9 zig1&(R=JzX^PaFL=+4-D<~FgD@Wo~aCtf9(hV-q7IGKJ68Q#3zOVs-8oeUXb#HFjBlJLSu!++bb+nh~jT|5hlpLAsJ@o*;NR;_PI2D^x+6s3?cly;|b` zRe-*2UNyq5?QGZSC@u>6V{xtOVgR zYPK)l)ylYoJx3hIuB=niGOE+xTv5=|5Do&F#=-lZhrM2HxEP_g3jK9(kAIXO#h86I z`xa}9i41Xr@;PEr_fBR0t`d|J^k*hSWaEGMPHT_z7L12L{!AXuGx;m80sXeG1x4L< zlDv0jAe!T~TSG`Mokj?n%ybyGS0O?O(f_Sx{~cb4K(#N8@^bVhW&NKA$u~04o6P<2 zzsUOy{m=Ua;{TyfdjA)RiXzIOh)#!TQvas{`u`v*s{eehk2(22?BoBUiX`m+th$-5 z^q-cyeSZF5yMc?1h+k#YgJO7ai)chCCzoEAUu>&vuqq$xDFZ%cY z^V@;^GKB@Yu@qmZwCI38!#ob#Z%&^1!Xe{U#4u<|?%a4ybda{h>U)Y!nR?bALy#j@ zcjzPZ)tK%gYRmIffoN6rpY|X4dHu{1b|I=V5eFc2LR$NSI32b?S)JC(6M1T8A}CGw zx?)NyDc#2$D}0&E^gbzaJWcOGTB~k{=V#7$1+!7T<*|OI19KgwAR{xHRu6q6E_@PnerL z{h2k5S|?gRoE5{&n61D3yH< zRW3&+3cd^{AJh{lY9j+O%Ni?^naGd8B=<$Qh)vFr+B`WNSsYOun<+7)6auJF>;x_7z6 z$7-p*^`oT$O{Mm4{ckapVW}iq%!rv!3ZyO>Q3oe}quB0B3UUO^qnpYK>%A1Spw+U* z5=GlLm$jJfYH|?K5}>k~7`FQpTvaKDS@gdfxB*GV*-WDCgIx-Xg4u*qhF}YAXDwQT ze&QLMbLexmC}3%!_@zx|R|hqE(PPH^%Y8{vu0foWib9)0fMykmBRRQtE_E`YkSBvM zc`+>yWg?b$B?s3qMk5c|iw1~{BJ%5lKO(_-x12Q$ik~e7{|jXvjDl#$U!3vp<>3Ml zNg);be1KIi)da_x-P(6E|3TbPB=mx0ES$MM^dVz*KRJ{^qS{j5h?yL+RsAi+h#ron z2{`AxYx6qQyw}J{4vhV#hiCDWa;(XWI-u$ZR$CmXC?#G;)U5hlK#*IR*2-A?Ip0FA zs*RjnWTDvmUNDtigK#RPS0`+<-s8P8ZMR-#23jH!BTyw#A-VtoPn|7te?2F1-iny_jHh)L!v{Njj^bjY)va`PK^BBQ8M!%$uUaLh-jP0E>^ z)nz692i3L>C-MQGjF2fZHp?g2LWI3*i7CQW@sy9i-HBIt_{#k9v9Bh~8RGWs#gmP^ z71vK^7aH&qQZVJ|@6NWY3mC|~N%ER3YcszxbvwoA99e3&i-s!91*99Sgxkt~GULN{ z`lg_nD45C2wY;>jG;sYOBW!Vp?cE+HJ%k$8VTwfh<20O`K%bv~9>UOjqi+5@v*`uv zMjrapQ?Hov(l##2fV&008hIgT{@5OZifr_RM^E!ZOocra+2xEuOWp2h-&4X&X-DU_di#s(An#bTY?4UJjVxIpS6wM9ktSl3jpf_Rq8Dk3NE)~=P7YM$RtyWFh2WW^Z1vvbc zhk76KU?c?~w)~t8SXmaj$zHQD8NY2z?2+q=INh_+SG9QA5DX0Dvas>JCxh8h_^v$A zPg2}$6CV>)#p38?0gP@1-9wAG*UoW38;7yQzv+O54~$whT#ikIR`mz3eb>W0si&sN zrm7Wzg?sHIq0gV{19V#Nzw&G7fZdv@Jp(~p0}K8dr3B9;ODy?EJ}V$q$kcgCzSAS- z2A4{8Yp}|50F92X$Z=bk-h&0X%Xwfm%~QeJr?Up(4gci%?wfp=Th}FK*r@{r^RR&G z`&yg1LyHmy4q}b$)_&U+FH+ZUO#O>2XMSG90)yVNY!n-Vbu}9_6qKK)wl^>QdGKMk zzhAtCc5|kU<;fT24VaZda1rhv|v)Np2U2ut5 zSff{-#o-cYic*1Sy-FK&lR@uzgOC9OZCqV0SF#AH6HAQrDSuZB68>uKC_WZdBH7yS zmz9wiIz9>4&f45W+y-`YtgpULA=W$S4oreDd&fZe+AMkH>BcH?qpn{tR9uk>Obp78 zS{U(kx?E&)(|M?&N8$E!l9giy^5!X&RJTeQ?jbu5V%9+bH7ZdrN>MUzdDm5{B{B)r=Ep@<+*rW2rZbh=p zSakpI?REfgZIgXhmbuDlWa-E*<2}T|Q1+H+PBQ;#GjP-uP^<}Ez-@b|VJcntnX*-@ zL}ym*o-Qb;>%q%M>u`wLHac=njYdw zo6mU^vs(FXW?;l+Nlzcu_u{Sg@y{g+6o4?eazM8>f~_!?TFDZC6o+06?247&r1)T7 z0%W1YE7#n7-lPPm<%8`gz+HR%DGdNP0~3QtJshVhX&QjuD>eL2y_CNWi4XtKwfMF5 zbK-#*SikdM;L1DyZv81D;$G&(`uj*sKYs?Ns*>>&H`U(3CA{}9mJ!W<+(l_oUo{L~ z-$AaZ_pg|Ij+BA~8oV4nmowY1WUOGE`|h1}J{;EVncdT@SBv=n4dDgqxKFDFnm!EO zfeK0>$;xFffd;>RW->ezwSY_5q!$V+CG^>56Yih!w$*W!rKL5W{U?#CHe6` z9sNK@#tGJdj=Hpg!uB1{$ir)y@<&SsBP{$x;0w+{@1A9;FjnNtgX^YSFyFuGajn$s z*nvnlz1=tezm^YIN%Qjy#YN4y*JZYBPEPXl#z88Q|Kcs;7O$2c{O4yR-keTx@?3!x zkB(I-`b!LhNJ3RzKU@{Dq~0&RpR+k<<)PgD61(*!u0ym`d(B4fR&=i0@5&VG-t3kY zh4DL&Z8H5J-|iPQphm2$MkPv>`KRLO*|z#3w4V!^l^nmyoo0Yw3>jm8%74nJ4HSR8 z^(rzKb)OeP9jjg`fJuo&L-v(GJgd(PD;q|-Xf=#Mn{Fo*^CXx`XlP-$*OF(3$BDKv zVIXzy_nt6r(w936H*FEM_DAwE26#5dswlBsgCV_aLPmvRR%R?LJ)DdM-8|LnSjmMb zo!N`z2m?eB`jgZWg>O zs25a_ei90yzYlVNV{Os}YmF3&$IoV6B+P|UjI_bxL=bx;OtXy$=V{ZQelQ9-URV^0 zav@yn?PY2CKj70$L#q{m3kOKvi90yENKx64fl9V1Ijpj^>JDUW=%p6FPj*0pTr54| zEMH)E(t2_ni3&jNNjxU?GAm|`NqgC?XGwc`i9i^qJtj`5mOioPG@;AVxX=U9ieZc6 zK_=j%tLh#%U5_6sgs`1mPS62&F=Nbv_fAy2H=N9Pa`nKLKcjpYxcH8Cww_`LU4 z$o23-vlD1#ZK(#bz${9;>2{wF|3sQ{y4q&nL(SA-nd;z5N2au8pfU%+A141l5~l^> z2a6$vyg|T!VAJ88+n7!dP0;#&ENVn>r7EM2ff^SrStyA)f->$Xz1XTriurAtXcz7F zTkLUHS731*!_{*O`{9bWW~^|16}~iI_|^Q#k@ZJrGgnc#(c*74q?!bD9rAHrd@bFp zG}gQiwkamqb&g1AA7>38SxFXbcUV1VwN;{;!t(bPE0zuYZ0G6ESn2d|=h8Ar`4@Sj zkkQjiMt|Qb7W!-2-jCBwDjge+~gcIygNcu1O;M+DtRU?;aIOIc1@*Q*(8jx=6f2@q&aD&k*pAYSbf$K=&3|J5RP^m%zd_cH%G(dvMHO*y2G zwv<;wNd%cG=gE0ijl1u)trR5Z6wUk^&XimyLmY-*SpyKE6ZGDtT@J^CVl;P?PS>>SYutb|6xEo+nHhwrDm-c2n^hhI>q{>`fW^ zL~Gm?mq9Q}Z-wVHL*m2y3YV9Ofa_cmFRN;|O?A2HRYY(hyQ7sWj96#Aqay4RvA7jN zd(ckw)veiQ$fZxCm#{&eRRt4`MHKH7$oomId;l$_%`crqwT5uGooJ_AJiOEK*_ zORbU7pb^!Rn3}JKoV%iU@#iZRtPYrdMs8aSl8nMEu18&`a!Bo<*9W%D+l|K!3RCm; z-68Q_a;x2+vWU%w>meNfhrE#kI-A#dU_YDURRUfDrQEg9yW^ zeF{s&PnNR@ljVpdA3jgB4?4an69q0T$rTx@cNoP_^CE|5*SXgg$v87jeN}+bE7SgOO@Jc3TE`P+cvu^;vF*^w}Pg zfcPIx?AcEu?E-p3k7w#E+s-{JxlVAd6}l^_@5GLhe8T_S^rC&6lsN6$Rd^V%KlEz6 zw1E8U%hucQ2|MjR-3;#LWA_PxOH`1kbompx)hyfv(1Btx|BD};qB%sYGco&4eTQu> z)Y&K39xogmd~72AMd%%MD|VmT1pEGvyWD{lwDs1`fm16XP?cBMWRb>>1v9DhH#zTI zf)C_}mR-*H3kL<-zk4HxYD1)*`}f>*MWh8oh_8eKllqv0SWLUWyZlo-xDoJL@?pe( z;P6@sd2e-qTrIbuEwPB^Pcbb08sk1~{=)IgH$=tZQK0KoOZe0$>afg}#cb^O9s%r{ zi`RYo<+{#F-4BXo`Q>G5$JJG}B&08Xz$s`SL%ZT$vM2P{JG(e2Ci<;mz1X@+Y4YL6 zDrTV&I{%&pVw~bPT|oXbeza7ehWD0G{qNp)%hfxTwU5!O{}5Xz-fT#Hh@c;+_7Q8! zHm3P(&H$rC*XrtSoV9X@=Ov=}WRl68TEe~2kOK`jx{#}-7v?J=O*w4${PKSuh?N#4 zcWlzW*FyD-ts*X%Q#RcK7TO=i2cG|0>7`aWl(q?^xS`H;V%22I9ek-9d^~@0w8LZi z2C?op0yHai3;%wROtS|R!Q%0knq;5LOp7<(sJkrkO+<*Ny&7EiN z^@^Ke#~e@XJ7cq!}=B&4p-*wNoQ z`s_XJa$HW;0(b-CD+{ah={?Ljhb=$Qn4r}Vzz4wheI zFy)zzj_%XU&w3$lm!RL277D>HBxHYTQI`(k_AV__;hrg;^37%VQcn~;RsuHydCLp> zEq=0*mASZy-!e+@p<5~Xo`VF}9?!%8bwRjJZt&+>{^L61HSV^pXH_6+bADuO1Zg{WekEu&q0e6V0dSQ9svaLTm!}pTC!g#^t1#TT!+I$gpqN zhKr@<|6Uiy)uLFdJ;oQwt24ZeH$U7_v-1YUP)PE+Ih>(dwYOk;e_ST6yOJ zWTSQ96dZ-FNm{Euj{`Cv`tddr%wW=3bbP0m55B+(l9>Vg5;wvw8R_9k;oZtQJxOe_Wb%Jv5AX~bNzVb!sOWh1G@>?zuh~WT zj(y0nT1)@UwWAwj=n7ZdkOPLqBhLKZS;|!E zSxNmWqeNwYr~BEME{9UO%e zrd)i9Di$hZyKPk3za2_%H#@Vu$ky|{&Pw1e46H2%^_-EhuV#0NQI1$;7h@Mtg)2&|2~l?*%B~Q5%yx5<)RjMmt@mBBlDsR+e%vaw)G^66ik*l6y0Gau z)Np?g_mxdaig8Xv0xik@kK-i0>@a%(0tETjo{x|W?_u@0b_yX}Qy$-DQ0q6~6H<|f zGNbjV{CzwAcTJt=4-+VKCuFIkj(~=%i{YH>uo(kD!&LOn4elUbzjJvwiK_svxvzix z`4Qc6&=~kSdWw}yR1=Et?oyO39F6(snZ;t@Ma@^n{#pLeTL?x&pfz{=R$wftE}mHU z3>BwCZrk+4aL?MK1>{_y&KfYCpVgEeCM4+5laaMLZS=hixXkEKS$$U+*yhtq(B}1_m>ga$KZV^UjdivAq{I!)!A~!G96QVKYZ{zyjpLD2TE{f&CoK*Y~?X zDW%lWf9T!U8)@Kw0K~Tow}p0*#Mf(q6U`TNIKn+e>P}54apWA|VaEVy#cRLzK=t-k z_Wz>l8@%g`yJlnK#MTL$#ng~`@Mg|v!4B% z*)w}aUu|sRL?pt~41nuu) zbExn{l|!t>FY?%~M0aY2eEZ9@w-gkBXC8}Ozvr~2z);NR zSBE@IuT~JC9+e3pF?1sRV$;o+R-tK9w8qQ5Zi{kCrZAmI5~%pBMlyx?K;wrvT%Ty8 zk1nWnjL3;34fkZE1k=KziuNQCDIf9L6#v(@&>J|?RrgoRNZ|ov*_`buaUjgEw~b?k|Z*E^v$~CJZ+24r7+Frw4DSBOEwLNron2 zM(n=p*D-sw_gdL`4pRHJ67( zTv!^a2n*e{tk~<9Z2NsVv&?e|opP7B0JxlEo8z3m^D=(hx}_)z z|9#+&HeA;A7_Wx+8TFOS559V3E!3Y-z6~5H~JqKpomdC%GQz_3U-cQ6FTt_9Fo|@P_ij6B@ZcnCgM0GqQwyhuZ zsO<*eG7}-rB0O@HKp}d`UHJTul9>jZ@9RsHz2OogDgCKqJ+cD0TLZ9&Txsid zW6(DYl`8vA8tM%vw0|#)2=%39n7pn-2}ROM3;Pn3yX&(W86gGA&jCPj@?PZgEy7!T zkENsK=(xpun49**MbYqtjJRP9TR?w{HoFYZNMIBmX#W+-EZ+jsV1o3crNeFPJx{5<2+#s=4G42*45cTf- zYp&sI6sI$+_^f;`yXB0hZq0tlgy}8!+ZO*8L%l(9z>AZ9YGMTpIxSm;)g0!EWDPN~ zR34O`N^vY)Dih&OT#|9bhp9I(5_j*%rV{23-9HA)crM^=EQ}&{xHAPmyzQ8m zc8LmN*!unK-_Vf+V$^2pMxb0*DqG>N&?ujGG+am$mLzPlwWuO^B(-nVb0 zL|+TAo=8#-jvq`*uBxAgV3uo(c*3$xO;G)w0fV#vvWq%zG358I$-}j9Zx~W=6`}ni zPd_c^!%_BJLJsN0o%aB{EeVb^!Q1}b+zbyck~kXXTj{=^f5#X4SnDx7r3XwlO|J?e z@%)NbeEIK9-jG40_kate_6+MavVULU$-ge4uE$k_+WdnFxtcO_lFw-}+7gXH0Sl2` zR3XoxY!p#ggE+Qh9g8yhy-Lim7&6R7yZ0ftsU&H?@h&0$L92hH+ z7O^6Yv(m#m>YUW)IdiM>2vAWOt!!;+IP#jhAon!(Mi>=D-BkDp>Bl$AodElK?_v9e zc^)R*0K-)8{3$b*%n0*x=2t>bD$MwDnLG03CLBSG{1TLUL1chK``7s52svO$Yiw}5 z_<+(6KUyos7bIQ@eB@H0a)iYG6Kq%s0ct(I+9U};T7n|2_tWu{@nIzeu)~Xv<0ooR z@3Z~D8zUG=Cf`fN+u~b!fo1RIFu3O5yw2miglqX?BdG_E_zY;2nv>sX-UAk70rV>eDWi}({Bc^RpM2V%T*KuN0!8oea=_cNR!bObpKD~($^^vMjX8*>j@3DR(v{>1>29?YkRa~9ovsr`|Ki` zZyS-AyE~&Z;?*sm#TRT{&Tb71@A*06!Gu_B9{CZol_TGm&WXZ_am_*{>R`W(ciFLy z6{D`)3^2Lxo|nI6gApdL61|g#ZvCNPGX3G#K;G$P^RjdGTgicc13HE^@tgjn`|#fc zBXaNw07)90L%g=3gOcG|^pbv`L-N*k#)Jn&qZivVK&dsZpw zv4p40lhSv?dSytbjscVPaVaFc7x+U+M9L|Pk2JWG1wN9;dEHOx!3eI zl#e22bzflncGmEj*H-BV`MRl6kR3uF>4O+*k>Zz5{@CGe03`>#JQ4 zIOvL=@u$o^gonXXY&J>IqDv=}EdoxRA4rc*d3OQj-^OQ)5e*^^{nDvavL*VVkFdM~ zdxovfCDMsXn>kwve#&S zC<^<_UC{P~=f20gw_JaA={2p2s2#^ly#~eg2#tzKM=SDq0!1T@xZ$3%V+l*LYEgdo zGrNS~Eba+`HmM=1u$;|=e5^Mift;NV`+FCb7}>1|s|J@(C3tmDz@6`&lL5U_#8818 zGxP7I{&(i=uNTt!E9{YKFwsp4qH{?L4TUde^WKSov}k-A)N=e`G2dRiDcx7phMzvr zS$jrmu=muj^VRvS#i~948dlXaqH2GfSJw6~;M>Cu$25@M|58w!5uuK74X4R1X`jDY zWL6ul2s9Xc9Fm=+&I{55Fj zE-%UI%=C>U0iwG<{idOiDJYoH$Wqkg@UuW>6Mws; z!!5Tqzxcj~4RfRLeDJYN+~?}iWkasKI%-Gu*sah%2igAXEG=NHmuua0W}c_ozmu6r=Bzk2NG|P+oU^W zU6RxZhuW2XBlWa(#N06RqSsat$#@dHO7&#NW#=M5MA#I=7Wu0^p2ZpVQ_Z4k;^hy! znty9JxGU|zlo?2gDVqqh!{1M2Jehi^J6Xsk?bTT6%kOIG(uo1G7Ea2pcCG=$;L1rr zX+cmTp6t{b4|wJknW~;YIa`0YCF>OKrqUo@@%z|hvWKc~W8lEhuF_?Tm?>rEF@+Pq zO7&-9tDm%3#aDeLS1eb`jhxaAyw4@$mX9OWyx9gt=vwiMO@!@>{#mFhF4`y(_F`AE zX4aS34S@eK<8|l_?W_+u6y3SdqK<+eEPSNBFI^F$;Eqp6I{-R!D3mF98bA|Awf0Vz z_lnfEf*kkFFVGvSOJst5+t3kdH}&^O5)>vbXY#~rw#L(FIy^Hwa;&Rge8M_w4dDsZ%Zq*j0lC7j0p-h$13Wu7eSaU z-z*XU2vQOuIBaGL31s%*ZEX1DqV`;Y1O(kpHV&9SB0qY3lBEr$T!vD3x!=tq^f#%LmzzxA|iFG+FmtyLr};pNptCFBWuDQg+VsK|b_haLc? zR#lSH3?2x&nLjIhv^X3*4{`!#1;NbT*v9{M^G9Br&${xMaCZ=#RaAXEe3nRPm%r7tvm9OUoFBErMPAW1UL@Gp=kX@7!L9*ea5-`FMm>T~))LGEvH_K+*wZqxtQ{zme#Bw0^g%Lj z#dvoKJ!q@V9;12|y_)XStD=hr(m3{c5pa{je|1V2BO>X?g&1^%(5Z|=85+DMJ9mT{ zOeWQHvM!rucdmS%P`i7s>E+*oGkCYFb*uD7ZaKM0knO?8eTLD@(+quWML{}uk>y7l?lcKT^;gZXfflHVPD=4V5A=R@05r3D&hSt{ zO3Zy=eD_n-g`Qtl+^hQ+=ZB&G!YXnK&t^m*FYYFHPj@scW4X0V97N#(Sh`{ zRP4Rm?mzA<%a4Xr`p+amE>*p@ivk{o?}RuKZc&2fBbNTCZ!u;nl5P=rfgG!BIFpl( z;(%6BgpPUW<0$wZj}xBq`gbLXYBG%WUOI==Jibcg&rP2_59tZL?rhYmxpC*qMU7x1 z8mdN-Lq`+3WyU+1sN6Um0~2j`$mn@dX+cf5on1)AwU8C_6Uq_pn`DJQo_EvS?@+vmd{9HpFN5u4N~^y&>!KKIP>)%!5sB|RDfNH;KarG^A`5= zZt&(iNl~(phEKKxxJBtZ%{?}$kmW<;Pd~Vvk^>breGx}JiMzLNz(0+iVSGiHuH!VWrjJltGJ5Tlg( z4652mVqJi>O)#)m6g7gK7+f#i*ie;$Rm)_@P-}Pnd99`hj_FDx?gUgGNd50q%>$J0 z88AZ|W#?zieTfG$cl%*VE&T7ohiiw?rfqSv!Jfe{PZxAQKG0DX{6ZB@0zW^%y!1%a z5J%;nASfAshHrdo61~v|eTFY?9A0=>a7TbDVr}cF&$Ha2vxAWJE4H%AM2v%Q^N@&v zGb7LtwwFT^PpFl&)V9>N^LnLOIE!3{zCui07B)X}95(-mr|mZ(>z+XL=1yejVWM2f z?jDeXGcvjM!dpD_HRATAfTkY`RfYeO?}$7d3q6nN2+jIB2z1wnRaE9S62m???xI{M z!6WK^f}on#3A1H6_{RXOAA#laGBf^=Baz)L2I-!P;b`u9A~}|>!RQaJZamdvMHV~k zTo3ZO7SzFo&i!};d~WZcvozik4n&SKWo)r zu%g9#BEV-O@Its4u>H#rv~gPzJCZC;{R;IYd=hIs25kAS_xeQpd=_>S1|KHq&Uqt> zRk7d^Mx3w`K`=w22rCi!5Hk(otu$k3PI%{G)w3qPI8CKOq)yi2bR!(FEoPTXyupb* z!qzhFA^5)S>eAnf@HnbXm6`$rEAgbEH z1h(J-N8Z7bKk$M%OZ(M@X6FW$fJleJu4S)CNR@PgwmWxh)0>q_#(nSGND~nqf;$(+ z2|bc?2a|@v*I|m8Q?zUbf*6;ZE~~sK+=MZ(H^JOS6E2nPuptyFN%ws7PbC>&Y{ zZC{13)UvPQDe$Pz?LNo`zCVa%YBFPL2-5xe2-w@wxNLDwj?Q7ojB^)D)lS* zLLl1KJf&_xQQTriIiTiFv)Gt>tbz9DenR^4%nnmjp(%YjLrOJmd ziOk@r<*UY&FCe!p+R`bm#4`o+sYy!78n9ebW}(%4Yr#p3WV5NG9~>~F`*|rZW|Fw& z)q!605!kVhVBk(IdM*|5EYk@c{U2}7r#%-Dj2@ru2Ok>BH8Qav@|nPCZ8NLOI5E6d z4h~rAEXOI_qrrN;_3^pzC&W5!Gb=A(*l(Q}5-2%JGo2?>%R%jH_{O&MquPRi)<)pC}~h0XXt@46X^O5{0>4|4kTN+ z3F$HgEUd~?NuV0-DMSvMtOVq5YNdS*V$zsWs;@j96(5+`UNa@oG*ht2NB=?@qEGbh zoD)#BrGXK}^D7&+{9X!qa$a8v=p%1bq?Oe>{z!z3nmyW-0+KPLz9*6qF`QqiY2|y+ z_gCZmh=b)w2AEu_E6nODM8>fTkA&g%Kl4gowU{k)AR(`?x;EhJZ zbMJpU*BRi)k4k`FWim|9iWJGxqe4>xODaA+Lv9Toq069kmcJQ@I5TYcK5$; zqp9QVZCU8EtW}8Fonwl3)dgioNlMQ8kbL?xgKxl3X&F^sULDRqAO7Q{_o4T$u))r}ZW1|ydgeuaZVDLk zz--TG^_@x5SsaZphOb93qULtEL1J$J8;dYHX`4rB*nVbq*uZ51gt5O;4)5|II9+1q zj=um%-6b*+G_07;2=aV*toX7-gVK=VESHO zOA2%*XKXn<+LzK`fVL^*kLxoI)9GpI{+f|LK@-}|@7YPv)a2_W>shQ|8c%D;<$60w zTm+(Yj+EqeS_gpceaPHXngCBfD4b~9%)U<=6e*$rCk4)#7wrIZcy4`3y#CT7Z`q~- zq;W456x$gR<{&c+FnGttq~<#tO7};Gl};HNIphv=6a%o#Yy6{I#>Xy(0oZwr+=U@- zVaSIn!He-2{q4=9?G723*D3qQMXW(rxsdPy14%d=@wX*2-(v893OcZE4a2FLDCh$7 z+$DGxJPD3aB8Ps2DX(wuODN%PUm~#k))hK_RK4YNO~ga`M(7sa9ds6`RI|K@sOjAm zvUkp$*L~kTGMO!rCNDw3z0OPash=_9|9FIgJLwJ>>iY;dJ0erb{G|}K0uM(ttn%0u zaDLo9+eHR7YPG0!g9P)}BPAU|E2Ut{fKuMhC3s>i(EL_8ujw~7qoQJdKFf+A(Z2V= z)^eU?4R5V(=FW0TB9!8mOuvs7fNAOYPsa~J_yl`Y0%zVRqTF;qeJbJjKY@fN{)erc_KW_eR#V zT+^^VH}dyh#n573fEG@t#8H&G$`uy}H$@x@8nZSH^@V=zuqJmwIz1jPrr+3xY?w#_ zxeTpIal2*Br5-+WU4Lvi~U#xCpMB3I>)l4-y4dg9`xapS5Ths=9Hn3#y+5&B6h*SpkauR725 zqB~Pq%d=HN{0^$!MUkXf&vNzmp+F)Yk7?$$4#Kn<&RM8YUxDt-_r+_!2wxvAMmZ=dxIzA7=a zyCoVbf|$p;@k(5r;io?!m)AOI$Ul2z6xgf8wzkmg{*J8I{pF;%wC*QHYf3qGu}x=g z9rAVshK(f`bJv&WiJq_Ea`w>YoPPHK#)gC$Cq>c3dRcAdw$l`+XG)Vbu07sQ$ARW} zBVz8kYy0n5o3NUAg!=IR%BK}q1d&y8I&dzbhqV@YBqm1k*Q!iS{OM<}Tb@Lso+`L) zmHj^C3R(Si;Cq?;L1yI1me_#ihec)0fsX;98%=G8UocL)c#W3^`biLQY4;$~Su<3l zX3{ZGaz+$?peoqxpOD91W{CUxmzHAU@L^;=+z;vlj=6`;p$SEg{APe08d8h7U>XYm zJ-E7;{x7~ERR9U*qzJ8H%1on3Na)R6=FCJ@sZv0k=UEV@m-2waP7xc+$}>*gDO{h| zqJRJMfYe+Bx*w5b`b~azY;t%e`s;+1O8N?D>Fh9b{_A^M7u1krIzo&=RP>)Dk0(_e z9p(ujmmOkC_o$5AGsdr9->!fsKsGiea>hGs{rn3t&Od6AEON6wK?en_^LuM-BNq1QM5*FXDZQfu z%m+MZ{jAk%AY?5`Ia$++iq*o)S-{&7Om78koJxDl+}e3(>2fPkN=6g;$v=x-qppy0 zgLaiJd*Q^!c>n+_a&wjV^HTdr&?*P!l_q%+*w%n)@&tRSs4QVCN1njqKes0flHcuS zm`5xcMJx3txQqn>g2;sd)F#CvZS@2=6fVk&uwu~~d5xxY3S53@!<0t7yPvr=-x`6h z^HqJ)_12!zq5kA02P6Kx~=aq%!}ZAiakS;YNBg58KT!ntn`GO<`kMW;az&K8>NyTIs4m zG`TVM(K4_*YO}Jf5aQ{oH-E5;<%_BUt?n~WrJ+k5w?l*)N7b;huDAhoJ#A;uXl3%v z|LJabu-349pZ(0fbgvGR7}2>EE0Mm zpXQj*5bp)bwM;|}%}^^ek9Py+&cqpXvVt5VOEjfg8oZcdD8l&VnBIt^n@vP~TYqj? zxj?!qx9FBYR}Nut-|7pSnA*K0hlGM?@CF3OGn!cE0mNMRZxORs9F8FaDc?V^$)TCj znaf@RS}GwYXF8Xl6{Kd`m91PygncP`mb!(Ystit!*N#gL0i?Jc)x7k~aQN@l1L=6F zvttA0U@ZjwPZv4Q4idp_g+6Oy@9v4#40R`jPwYpxa143Q0RhHi224AYg_C$&ZdQX+d|Q#&ma05sfVV0pl$rPz77onCNY4iR z?oWFK7AQuk#k$COu1k=>MqVWO{&sLV`YaAJpho+?~21sx$%x@qhIi2(vk` zX3hjlEfbO|;rzxa~6`ChsiJ;6LN*_iI?$6dPnti1a zCJJ@@iL`Xs1ZPqmr04tgR9XDQ+4q%DPxf|YVS$@G$eq1jUjb`Ekf51OK9Be$PJX@F zae9x1>E8rJA1`6*+0a(>vK8>%%wgG$f$3lLAa#agi-I@F1Fy$s3%1P#+F+X=o3?iW z`n?Wu{~Z81vu-WiY_ds=ag&tz`o>sQ8{G_85H~6%r$zD3XpG^&!hjTcOgsJ2tHhAk z<`$at#Yug@V4M*|nM)dnX z{wZZ&crPK|2t)MP{DWZ1!@I-J6dB$CLuItQhaK@lmv3K-)7A$II)>a&AG$v|n+~c6 zzzrs@tjqh9HcC1WITx1|@1KfUE*3w=Kh^fs!tmjQ9S31!hVz%WQ0oyM0VE>y`Kc=p01I5RZ^@Qr2lUhU_t#mM z{pT3(f+X1nE_Ds^{tbeJ0gaa7qI3@_NAVl}ddo7<<3-`YmWmvVUC99wMM;(w`oR>* zB~m*4M~_NG1b$#{yb6ma7qJ#uY(Vx60}o7P!SfGPh1JyU^m{7&LnX=dd25N|zoBKn zP+ZQwiSln!p>!_J3OeUrG!j}P+T}~X8oeR3gz|u_J)vHWynx*_c+{>>ptx@Eyd67h zO31xLIHZ`5@my|wuwsOeq z_aNxEn_*CZPmZS1M@Uev++HyN8mj$1*ZM>$ko!QJ?sO?MpZyyE^Ds2N4@&e?xy=sJ z9Z1%o3ypJMWrgO}BFhX}H%MK$?FYYugtE7ZEBwb8HwDlsNMB9W%coLt+s(PJTxt zGsJJ%LTD?Lnhp|*7QqEtpaujMh@J?4qwN$btLXv zyPfsmeo$u@DPc*m_{$PLJ_#ArNj>yt*&N&i__!b}U&w+QvE8}!Ye!(4Rx{!QNb9x+r#$4PR5?xT0loO;=+_|yjMq8p zV>kAX$!6fb;AN}K`%f`a)K`_X9O6)U+`Gxou9#qzJr4XqF18U)f(Y%#_sdpZ2sAtk zV>c&+Tc!9VenArD>fe3AFYu0f7c}a&iVkZl;q+zN`XvpjNyzt~_cCOgCw1KNL+k?&coPRsS>I?C51#5(x)uKi&b$WMaYz4Zf z(G#BE06&(ro& z$^Ob_T+#aqpLTSIm+yJtx1t0$emE>WPOrP;|L(xqB5Z--eNwXezNNd{Y;SQl2twiy zrWi6Zjoc%TZaxHqn>tzlN@~s=kC1N*8+t?R#<~nfzjT`Hun{x9pFmzn26PIfE9`E$ zDU!y;#SSpNso-04-(w!hTHie_{#eDwHkwCR)6Yf;`G)wr zhj($D=l45Ftkv!Cm$!r#W8RdA50*^IZU3KFwkY>D=)-?H-)anH(eO@(wgtceYL*4L zwj%d~CRD%m!wXnI7)2NbSDU|}n!ckAqjhdAnQ=h1qe`2GPq3VlW4O(%1RPi8FiAbz zI7Ib%b5l`Aa$3LPEFjOQm9l zeK8Rj;7G&cXiZq49`d_ruhb>Ps$uBA{Ax+aX6|#Qtw(uai@Zu6_4R^OXB#WCtLQ1P z9c}SGpWb{)tB~0S!4{q39!d)aayvrXEAx7Ij`S?Lvxo(SQE<3W_4P?nP?^J=SH$$> zWngWRwZoz^yBAQK30nKos1Rg^Sp#4G$_nQTm$YwvhOv`VKr-{hVLNju?0phW~;j->t z{Y$c+g~oic1TG+mKf9N&ZNwb0(LH`ytm@~w<2k-I1Pv+4{Uk!d@sG+rvwD{$STM}4 zt}+m|((~tQrA_L1^)Kp!eEDKW#N{#w2%C0DcG=2E1-*-5f4d5#L{p^ z{0|=p=2B3}c_uhWu>e$6hbs#Yk_BtwX4TDq<-NMHOM z(?iB&g|VFvdMu%&cFGfqW(9pnJ-pX+B#@k304DG%^SyoCto#KKUGy>T`b@dCtPP~7 zpE~9EwA}pV5}&fAkHW=-_59bLTgDVVFQH@(4nb*-?`266#Xl#H%Hx7&owWc0<@;20 z^@7rZWCn1CfLj_grpRn6x>~XWhiloU-**V!rl!=R=Cl$#2up*KCiiz>FdmYI%p4|6 z8JJdLd#Qo1tH?cq5a=4ELbbs5bO90#6)ceGKsR4<9}z2YwJfMHM6vJYEpPRCt8CN~czs&1fq~ z?hCfKQwyHRKRV~6dt0?{dV-RRFB=8T$6UAG9nf#{?no%04QdQX>-MRW1*O}rW@ujx z_kxqZlxby+5O}ZNTe^=B`iLX}6(-QRxPpLm*5F(vZ^m+QhNN(lj1>kKKQBn%`PlrG znBc<-KmCXxQbK7KaW%xqvEiww8B!l_KRh>lK?)U((BGEiom-qf^n_cwLtm#B6Jk)8_pFTxXp54ae z^&`N;tr393A)lxjlYSM*_sqLqSf zpzeocsj^_?P>@+7TUvA6*rs{I!Tr5P#)P-y5G$jj%f6h!%*Z9(V4q!Kb z3GLWE8)nR}`fwy0jKQIN{U(J>agFM5dpdxIpQ5<1;-x4`E`*TXV)n_4DJoA=OMxz{rvfXq3SE<;6D)Wl)`y zoUso+MN2E+YFwr;OFPK+&3A;AFJPqIX3NbM%9i^s{OmcKWsM7lUaw^HSRc03o(#Hw zUNEoomY?T5UVL+2a%5^bRDUOUMBOm%_F@#_j1UY|qaMJ)LG=H3^YI`hcCy}9L)cvA z@L{tZpk-?bm{w*Eb{hLiH+&$*%ZDS^n*h4L465s-wj)>_4u*%ny1mAovbYk#86@>iEu;n} z#1KcH?&g+lz$?$Siz`-;&2hYlh*vO^{v+$vP!_jkX^nIp(yIA)$cFY$Z~$6ZK5e*V zJN`gLp^g~*t7!)ufRYf8P75TvuQS!|b9ok?b|5!ba_Jvh>5Mn|f~-AOFzCUe3-d&d z-`wYbV0aQE(zM{9@5ceyAQ}w|0de||QSCyOQo6C1)Sh&UqzhlmUyaJ+oU|6+x2 zm?To#OpF3;=4lHwsm+n-wR^+R_VOd=S|yA8k=|dUVF3A+>0u~;b_25w&^0s^Ug5wu zh3u{0P&+S&xPqXUV=zqmO_BJ{wXgNk;q<{}h^As#`?~{1)a``n?|lqRD1H`@Gwrj$ zQfM}}d!!i!(q|i>w-ap_ZzFsbGjWd=9{N^*v%fyld3aRso8zxb9w%~+5ORE&ze|BF zI8^ANwD8l?H#}bJ{6SS(Xt^iz_tSf0e$gH7DB~zqW);Dt_boc6)fI?bdaFHBN#jt$ zX$HeI&N!Jd(VtH)2`i(wE+W%_r3j}rGYaNVFP#P3XMAp`yk;beTozP8p)8A1R`l9~ zdCg0&@u{!aRAT5%*}KE>Ju1|*I|c&r5>7AM8bF|hNDSUp+T+5m_!F;+EN@?3}mHlVP!4dCtq`U@nBtnV-5%oDM0e6i7#-gs4QZ{TY4q9@mCkR40 zjj7BI(wI^CX>0*hMZ2A;5ixQHSO$Z|?aRMc+MV*aV}y|`ZbWDX^w7Fq!NxLuvr9^( zy6SK_)(!-x$gYfhnioilB?S?Glqp%)BhrVw%u{g5+dBYvw>i=YX(cDd)gOGPmj+L<)pQmXDMc?bo632I@&MJ`tOB%@g`L0hq2@;LQveK zsC`~YD^}+OHTi6hrOaV#7mNf_5__N~MS|CLkMI98G_PO-u~*#lBQN)b(JBAcqkr+z zMHrD2H&D>9JJq1 z&kYQtWC_69WiR-PxQU`j_q}fimNowb@PFF0_3nrJIq>t5)|L~6(v2)E2R8)YB((d% zlru4jX+~h>pBOe1{fvV=`pu{b%X#5aaFs0_wtclJa4YfUh`MUfd|OwBBRQviGb}~u z{HRpq?%YqHwe6Eue-r(9l+n&i3>@F{L!jBoD&z$4(wN)+fGe1h71KP)k(Z%ww)+U# z{UE$#|19itbxIu+W5n3xQx3xG&Da#*{66Yor366{FEXSW5GrZ)wGUynpS&1g1~~c| z8H*0vP6^vSeqL{MS~BNz{5hPM9ht${QcGci{d*X54uElL;iw> z=B`F?}f<;GOsuu#vgbcXd0$gnU>(0!Op@v0VPc;d_YpGJEE2CT5?KS`=y7BGWpTxI{ z7P+!Gop33lUpQRBJM@LkNabJ&4nK`etlidAI#?^f=`Yyt5l*apgoqo7Y$o)x1<@}y}#|3LVhe7 zy|_CCJl5plW^k)w!Vo12yLlvnkc1dJj$^iTXw%*;CqiI|`QD{F2bTK;z|uqVr3~)N zyt(6u2ZEAn+i~?VWV5H>m94M+(#*Pr8291nNfZ{GxI^+e?}Q*y!@;+>qa^a&kKv<_ z_mVoEeChWa{{qpaZ#>90C=(`)kYL^5@edfSn%-ObdmY0bx2Ufka$#$vSvx>#TrvR5r~>(k#K8U zVgb#dR_{td!s;><&6C(5qLkhz^=kCu0~~cPq(0&3@pVDWy?m4|M*qaRCFBeR%|@GW zKSVM`z<@+3@MhX~cMT+!SjCsfL7JBsBEkrUl6vYDkKkqx@V6!wyFniKBl2yQSF!14PHgLch`e$qXxx!xh%4<&H`g&#o{yBN z)g69<9B$@aBP=!FU_2MaARy3;jb_sw%n62nIs1(8W)MlgN26e>JGYlQF8)Hd&Vhns z{gRND^aX?REc6T-Kq(YkC8aJ)4MdUyBqjw1BuhL>!S?m7;WjJGIZB@aNsaW7W9r$B z9Td>pai%o}k%iA%@dG#A4R>mKZ_;}wEtvE zK!v*CY=GN-U-R>LZRxhkGskrLFdsZ#B>5C=-H2G4($SYL#Sh zk(JSURw>_VALm5=2ns;dqoeg?ievsM{&=~62>d8`r>jel4B8S&OAuUfDi*d(0BB1| z_`~j~emyFA^TEWHpFqjo3DouyEx!8@ah$BH7p#5WpX1uHfyQKGXj%a98p!4wU;d>G ziteU3N=4sZajqQ5ffcDhcuc$;Jc2&_yeB~pnUD*=x~nvMJin)SeVC_w+&?vZo%C$; zJ0r(<@7%=&qXOUkg}dN$$W|%5pxO*6yQ_#r9*Dw6&IBK~d)yR!UE~^yKdg#hV_9s` ziT-{ewR{2B#0?;d^U6jEZbeiP-|gXJK2Vq^%W{ajwp7ri;<*mhGaM@IAW$}wt|vr;>^L-F771Otp)5h zdTXcCv{FREzt&dgBrmpn2Q81R?LV2-gEQ`)ic_KJDlGB|P$Y4QLcy9lwpO{9FkdRRGk6&GtAYEkT zb*jYLWGaI*%r{h-hd=5Y0dxAojQ;QFblsjA1zPqXddsHA*DsOE3m})epZ$1~NC^7& z)&w5E(>M0tU;ULhl?_$gcL?2maW5UxArFdI9HzCRz30S~o|KCm)P!eBz9;TZrE`Sa zBa+N#--)9vEop_Hy*0qX+%B!_WiWDyMTskD3*{4?NNLynh-S=A`Xl3JB^e0}1iwYK ztLzDB{$OnBuxI+Vh_cg%AWq6$zjgc$D9`Ci5O_;lPS`UIIZj{TPJbI#AG!Lvr{;7{ z9Bw^6DwHf|-2s2)Hy*Jh6gidR7Q(w2VL;|D0=geG$tXzkEQ-b2~ z!^i8lT=bf~#l3J+T~6^^8I5}Mfk9v(ouG4~0>dar^Yfq_HwSh9Ql^6BzW-X2f6Dqr z|DQTX|G$IZm1x!ocQRgaR$e3OB#xY-6ViWj*v_hspZOAWG0%2$Q~8vmA1G82xOV>? zP`TX}!Ly^rcQj5%Re^$>E{=(0X(%+V&C(Bl7H;c=g2CGh!*8Du3n14&M|>!KAwlr_ zcuRWovmvJ|bD$P53@+th#JqNqrJthYkPW}%Z>yVM!Tw10ldweZqpd>!>XuROnJUC7 z+u!n&CB2YbyaP+|a%}_tAo}W$;_{zl3GR6-WlV7%CTsT2S7|WD#p>fN$XAXI6FM&- zAlr1VdHlAjsoZ37jS4^>R=Cro>GIP<7Ygdx`(HlRl+qcL`Q`?sFRQWFG!z!tfJFu{ z=q5E>Lh`T9PsBrdC<>8ma}k%3l~I@UjOF1XD7(4vVhwGFj`5FK%n^Upo>xgYsFI9z~!@Bt1Zc}Qi}jO*(CS6(rU@a|w9**CWf=ASpu+a+cMry0X7Bx3 zb{CRZVJO%gQ#V%OI_|H)e`U%CIL=)_xs3T~zTcRY5sMbiS)Aw1&zmpCeiarxp=ag`;UScCorCQ8lIuz za0nkSxGmj(5s((`w~*QrOV=FK{7L;)v2sDrVqu?vi=0Tq=Cpwe88F#v9Kw*%Xiw7~ ztTlt3L$0}|g{W#ZjTX;^i%>KFkA0lY{`fueF zHu+&gBTkl^EJ>n;9Le0BzY+XOg)7J?z_8LEF>5-Nuk_@rD`@)`^@7~Bh7$ViU*5^| z|Do!f0yB%YB-}AOw#|<1q+{E*ojJ@04jy{f)lr3NAWMH<~3 zxV`NxHHo!w>2-SYm;uzcw@`h^I!RKpth1PPxvq1VwLUtBy<`xaQ~s_D5{jyLw+ofx zP~g_ypFNS#Ztpx{2FUCk@^WNvcMM#oLSSpA(f^ma>>e*?GihU$(>EVdd&gVp{%hcd z@1TP~Rt28kNbQXQjn^;eWygTh-pOcPXO~n@Ty|d6YYP%pv0bjS4Zj2gOB06nI&1vQ z+*u3Tc9i&JF4L+scYj+kdaJd-d5nTvNBnxvijncJIP8u<7nZ=$CPzTnCkjg&jNQ*lk4iPejHw+htZCJDPYD7$f@g3U~8>44^PUVeQW?VtI$4kj*YuTk%>Id`pVWaWp zv-s|K5r>cJ%$Vpsjc-Dk8<-O%IeJWRvUBfrNlo?S@*>%7`Zfk5W5t^z={`_V7HQ+J z8u?&~Ww~g}NLq76mN4w9vgEz*GIxtKDq~FwHk;XS{gW~~Z zWkqbeeYD|+s9|ebQQI7e~y>QkPq@@pyw1lMWtk-xu{nC?C7uR-MUUguOWJEcu=5U%i_>%7qNS`H9bN>E*-cI!`Zt5&Z8k`SRcAx==rG0TTEM1 z57!J_>I1WSLc$!D)pkYDhO_4IAV83*3Fe&=YlpgwTKjXo!NJyY8zm<2Uf8ZT-lhKP zP1~Rrr%8=`c#}vNS^J1aNF3{Q2u4Z>P~`GRF;)VDyx&}YZ0;TpW5^v6A@CDSc(KmH z(|1F3UM>Tlat4*nDfN5a)FPK+)mMLmnLcMO+PE4^i9!J;T6-FwnF5eZECXZxJ zn_V6RimfIiZ>vR>?ub<)lTU;Vh4*@4*t=vUujazj2A+-Bt|k@G$y5GpX=;$8472caRscq z396>>IoQe}VhWz^>Fp47M5XS^%{(t+-;W97T!Jtq8F4YYZ4=B2IHPmxl=(>(0-mi6 zWo|(~zchEzSK)m8ejSB%F;0^yof)7nCpFOqPr5Yhss(`1+0Y$L6)|*oJ!y(zRxN_unZp7M4nA1eet-aQv>LQCAq~_n?KCZYK2`1<~ED*WWBYx9rJc=O^#Bs7S?BuO|%+8##f%soyF~Alr zm-oYIB6_P$>MO&m^QH!v0#kOTPQ+o4{}Kd){ca}@mZ;z#cuU~kW{mWR2G7je2$2K^ zN+Cv{-8~rXV|gwNw^xPryl-VK44oftCNVtiiDTdWA#~gIAp+d`5L)m0kU8%9kb4d4 z4u&?7ymiot;ob9zVL$4QVZHB+Vm%l_^j@f-{wtNd1cl<%c(kr zkPZ3~f7H5np%y4@k74!JAOj6=gJXWRe>=ynmy{IK7R|v>WSHlBO4OC|PEMjh-`{uh zzCa^&JZbRhMab6e5nsDUu3UWx;;lWAj;#Y*M)Zg0GkwlNQ$&gZSXkqu^z2H zcsHvm_p>WKUfx;YWwMBDcM)uoRB!LUy>xiog$8u+btGM#hAg5zTyIY=)$ua9%eoPB zw+9mLSuPgeB**^cXK%L>y0wqT4NZ_t*Vq!u75)1cYoO*lIqe-1drc{NW*;!um|5Z7KT`IyS;=&5PHYIKptg@ASj8_SyG5dFh@$@fm zAkq0Gw~=z3yTEwEBK-H5p1;=`+Py$Rs2QPhabye^y*u1D%0_?LUqckt(MAz;^ueyN zvEDV7=F>q>y=!%*LWCfr2Q-n{H4xFLP3}0O6~FF!5@4=uI%&Zd zGO@TrY4GY6;IBRw>iPjOJZ34foRJRaANn?ZLOktDM|0TLJGmuPcIqevh<-Fu!p{zo z%7I`rJg(nq&qg3T#21GN8lZ3LXom(JMBREc*6h_*DrR zHV1X>!HlZYPZhAJ=zr)JQnFB^C_i1%TtwF!WMSs5PU8hB6zd6au9+5uW?} zeIH{K5waza?k}n7@wvLFGL3<%94#`vW$j+)iCM;rFuQ6Cd={X#6KgOW*ju*ZSoWhi z!d;VJL;Pu@`^MB`v*t59TgFY0|BUbX(Y@P~BTFKnJE= zcqB^0e!ZQz9Ud<7>H$F8iUS%-9P|)8*`z&fLk~!M)z>6s+cjfK~vhct6ga@>A zcGO2MK4?3+xzbXK&^jqG|4M%WqqV8kPnN;hyR`=vpVn^}RaV_B!(%AZ046DG^BdF%(&* z3BJO)e?*JuPIh?nb3KXo2&69d3Hez7nOrPZA6~cYD|_RY1(+y6Jh>(i0VqWRN)#Y0 zi{RWr&E}cpL2!+4y^T!$Kz@si`glcK{b&&ET1Qjb@|6dS?-~+4Q9LXeYuAEr6@5q3 zy^@3YXC5?!(O!H5K|e#GfF8LR>UM+mxos(dU9u$tU`mk=RO~1T2D82(WuMt9&fVik3UCG|1ngPUF=v`t3oEM-`f zOJWo3$JC}!|7Jn|Bf&hezMxYGwGUPigKV8dyVy(o6{vap5tM( z_LR^k9(|~_hDcg6XOVWD+4bZ8b>29>$7(1omHj$=Zibch#M=ubMR9%GG~&BmeU znH_y$e(7o=`44f4s4P{p)q%i3*f6`n`NZI44m6zn-mZfPSxXGgk&H2EnRSPQ{Bh0E zv3;(pE}qzWiQwNd1UWh1-ElvVOvGl$N9pRi7al^&43p68nuaDTxgk5Hb{7?0ZSUw)**EDf%1J83N| z==bNFVmeFkhgSkj+t+L-x5J80;0KdDQU1)W_=$YTnSlAPF6?i7r05$!HfYE3b_L z>{Yk~v43sJQU+3&?qdg1?}IVJwAFmicVB0ie7@Uv0hrj!S>`|*Qt}!gBw3pnG}+-$ z?g^xCl+62Agg|J1r7a_{Zp8G3o${du47`2XnBB?&aUD;oMV-Q8QeBpjc&bFknhaXD zL$^KDiz#x=H1V|>1jn&(w$zcXv?k_;t+WN6kC^S+2{)OAo<=(jM3MH9j00rjI`c-C zzkdBZiVF!S`7uCYW8^d@&)H+wMxIKxP-wyqyx&5kV15oc0?~A#%}@K3`TC~1_Y^fk zsR_)SGE`35P8Ap6F1A2&MAX5fAl%x<+e(XOMnt|YtgkiR=@i>+nA|7;d~b8uXwelUwc_0Vz@Ao${6=p}xa@JX9b&BSBss83dbnT)N zYa&s(E{AHvBDTg-k7(dRlO?9FpxqI;0hWH;m;ZjTFkKtu5)U1jfH?G-@!?IEy z%lO|y<|8!}h`2T{#s?XJ?ajHJUNH5Sn)REK0Z#^}EhiXtoZ>0QdFdpdIehY!gIBkt zA;O}GEpXi}2L%cULj`pJR;gEqF{S7l(<*Lt8z)xL?j1HkbT2!^^mPZpJq(VO+hu zQEFsilP{*Ussd^rt~gX#vS{)YAkZypjS^V13EKz7@HXMq7|GlqzmP@fDeNf*_DdKk zojbIcBIuJYE|7|Z=E@q++! zchHmNQwKX#H9wn+I*E}Z5cr@kVEjlYY8~9PM8vjZ8bJ1uy@FZHjg;^-dtar+-pjI< zzV?Q-4Jxl8Xm4i~mg6zn%F1-%&H+OZLeM~tUlmi4>}1;IEtM)vz~3S$mp4+RBIt6+ z_VS-OZcbkC1w#QCK)nmZfWQuqS~?&T2mpe4qm;d z0D!_Lg#1KdJ;w##^A`s0$im0nhA1TSNGULdCG&}I?4;2PPy^|J3&ZSh;_H&W5@Kr-l4!9*UMoRjzCfYD0zUPke zp9f!`0ECrVWik$nvO?7ig{QwE%ddIfI=3VK`w9(*46z zP!E@FV?;wq;jkjq&K?8e$!cJpTs1BGJ7A@;h&Y*?Q=-K*x0>x?{m~4!K;g7D5)dw= zZ45HgXC?zfWA1S&AL0&42N}pWqxh(6a8MO@)-9oQtJ8!pcKQ ziN_+h&u3aw-3=8j%KH^gny~2?3mv+tn{4J0JKFn=bSPbSuSYXr>J0pR z_aG{)y%Gue5}PaGvQVxbDS*^Rq5Do=+PLyiHL>(xFhy?QT%l1Uk+Tmr66oJ}P_slE zmoW$47t)J*_Y@AtA;mV~7jkYx_BzY}NU_V2VSW#^HVsCL>dciktau+U?oZ~WYmtA# z2HGfKt)gJL4>cRjl@yMQ%n~E+4CD?0QoU&4pQ(xEE=rft@#&&@*KQ zUN6{DfawT^YW zKkBKoLvb`0q#bbIN}LuZ?{`&S0i<^10G8EN6F5BCKo-Oct$`S}pr6rrmFH zfmEju6A=dD>gZX=KjQD>-o?`$Yk8&^c4isWQ>@=W_SEGsbkot@3E{6c^qBq$%#wBh zZ$Ufl;f3|mwfJ;g_=qp$??q=2`Qu%zy)^Ri&Cb`OU|)>(3b{zZpW9eXVV9d|>}Xsm zamHAvFV??%y*ZxUchN39mEGY3y+nIxz2!MQ_-vZv>)0=$INq-!ucRp>;DsABV#!C#lRBp&D`rCc0FT2x64Y_xhA>QEPmJZ4mp}p=3p*qq zjM!H~B_pZlGAG6=yPA`}@Yj)pa6PRpsfamD3J)65|?Z7u)X1}yq?otq1je7Kl_Q9+2}nI8vx zPhA`LxNf!wML!gi5+%hA)YP7)dyjZSdtiqBkdOY%v2zXujcj|@4W)C zfRYQqV@n3EMyG{500z77w6IzWP@-(sXkb{3GcyPwxaqJOJD43!M1G(r}9jYh`1%Rk&-{91%u-zKIxoaHM46Na<5I9=Hk3$@Ug6DxR3=5-#dSDPi`>as;u z`PvI+ZH{o(&QrxvAAdA1QzvrR==R|+&Fu(oPl~ z^%OdAfkYE=GBPa8@>Nz+RHu4-|HiVB3E5ZRh;0uk{0pK0cY&BtFwy*Ey-NKHqemCp zRM!x#=3=t4D4qRk&UkJe?$XW{Coq$WUtKO&HqI&|uB@tiX+pLvpbvNLXdav#C`Y=w zeNt;Pjzy;3%6`RQyZrez*c>4#pY&LlfVUGwKksWa`YxHfWE7A=t3OZvme@|IFYZa@ zfy8D=v2kuBhMV|x`sWRcr)2pQI<)b(MM%=6OW41u!^U>Cpy%rY(MG$jhq5eR<$$X6EOo{@3ByPWLV_NLjrIu~zS1m~7W*9m+#7QrV3ZyX;=Fg?R7O&JXNEBou){%v??6ZEIqY z$9>>##J0?b=$1~Q9g%Xv+iA0JflVo^a(}e>d(pP>Fuu3@d88$P#AfmG(CWlN_wZrI*ThA7@kps@ z+*b!!&XiRj2zaNzR)%0HCsXU!!y~WWeR7bj=1O;TSFtU3;X-KYj|?^D)O!DcMCh#6 z91V!)XvI3MYsf;g!ELm^C>@}Masen6N?nXP;A$Cf3(J#RJ3A-WM!;S3M22cECR9#= zjIBSu$QM%>9{idYHphOCYu9P4#;43b1bB(-RFvY2Bau~IEtIl&iG5;H+Ha5ekc@hj%GF4k@TXh9b1p@S{WbTr|O*1du1{ zPti6Ja>R;>r8dSW$nZ5zU<}BuzkjShQx1`k^v4R%lP~P3U~%@~+D+Sx*lh%|$i`Z_ zA@0&;_4QrkWhYImXV=Q{epqL65>#EPl|`9at*XNM5x;J)l%Y3Pt_*tzYETA-rzVP2 z$1)&cG%}9`n&^jJI-)L!N;@x`Nd29aR$D|(%m&E&d6$9Ro(+vw%BWLHP5XZHI7?%n4LD{ z#Qidz?Q6NS9LDu5S?CjeOTT-uxS;{x@!+g-p^LrBm^V{^DFO3ra^uyd*uh7@czq}i zN^O@OP#vdHo4R>A-+JQUL>!w+%W?E580bfK zSGkx^PoA=XcO2TefB${=eKO&{$rK0e>Ox9UdG}jHAig=i8yNm(#{va`gn;mPn{Vzo z;nNF;RfZZc%QXdlf&vo!0T7ZrpBw?mG2D^?pGthyC%qSWGS89~SQ_FcwwEjlV3$R( zj-y9s7-g-35f8og)C73&l?6yY$;Qp+)3aUYR8GkK-9rJcpMo4`Nl7q^)(xiIE*qY* zuno@}^^Xh>!?8#m>U+mLjJQ8HMN+0mnJJuhC37AWgdS%Sk4WvmQ`)RV{N*Y!_4RSS z5zO02#O)@%wd9xylQt|&4paS+@$ji9n~k46`E^jX$)`z3V3(}wB2(e+b@L}?CRw4= z8;5-U)9vH69vW(<8vi8wPmcy5)-nXdRfj(O#I4KxcJZXw(@^H>a-?eW*R_(dV+muz z2Fr(=9eXevt)VOPLLd`da;8gGZ&B&n;+qtaMH=Ovqz@26XqY?Y-a|MCH}#L!j4+*1 zRz7~jL%soRO~$;1Gd{jJLqd&ZhHlB})SYl=?5+BfXEy7Z_|nTlcp`w#;`l*9{NxpQ zdzo&(%IZbqxu)=|!~3tow}jijIy2*v#5{#$i8OBt$D+=PCm`=(2qU&kxwE(EVD z-(So8cE_C%M@hrys>(4**l`WIDXA#Zz=9q1_VykokKf66;JUkdpQroIr}qeXMornf659if;`l35Md%>uixKO0txYXXJTsFNQ%+ol6;pMkrEV`9^hiB9z3 zwi^&d4h25Ko)>z{t1*zd^VUx`WLbzL!l$fVt>l|V2NE4g4v()WEy)>WRD}hlqJyj* z8D-tPXO^)#_DY&(M}xhUFEE&H2kqN0FkNV^ zN$9H?yPLVsj@~}}Wg26HT>}4l0O`)~t8w}+oenj@hSs9=llFI7@vBMds5>!3$$ky* zSdT+gYq-5jf?S$QiX0Hg(Uf5LGmBb9FyFnC3-^809VN5!$$+f-L>r4qjxYbKd6;8A z(v8By@D&Pz889#l%^aC}x90qIk!K5mO3H5r&en;?lDD@aXeqQoVeYBIGhUXFr9Qf1A;cGloZFk*LMN2#7Vj*#eX1dG2D%3qY>Qr@Rmj zda%Nl=DiY5qO}Egi-ZQ(4+yu+CtU%)rSL1E%bEFmHqm72$D@n}G|Yja1VCQx3W}MO zFv`W7^$G6hhs-oqmiBjiZfp=umatxr5ix`eA=Wq~MQOW>l1vB{4#_q3UrL?gXhp{8 zp5wLBPLIgeLd)V#+rV1tk=E-k(C1DH=fmYWF`Ff{&^_BgAZ3GZTUC>U4l5E$#XlUa z`i$ri|K1GmVYJAm*wry-MYMUi>aeGuv;l+Sy&q08VOxT0s% zG##FkILgqSP87|qoxecKe8?LAwCh}I=8klea%xGvLJ=T1x)3{}0CY?iuUJl86VAJ) zIQ9%>t~n_i%E&6ycmkUm-WxpX5z8cDIgTtP0%Tj@Hx}K-Sb3AV|D@l0r67rCC`Rl} zB5g0xDM_0IpNMIhJdv1b``{^0s;<~;6b6!`|2Sq$?L5uU0r|TC9ymz(5r|g2N15La zmfn-Qe!g#9e@1eYuD%ZNp}zL%NSZ&>4^?!%icwfTHTp#;C;nUXv7mNNNGTT;PJ&WL zss>n%um{xG)4wYG>iv}ggj}0i8+N^*EzEVsJJqKCgrF|H9eo{(dJ3lKyjT1ZyubH^5y=obG)^4}Zqr^GEuRBg+|iu%UB2nqUHR z9UAgHv1-JecNQl3xxJibl5sh>h=75?;N&CZ+30TVGzPTU>1by@r38#lm-H;v-Da;R^MVFDfBtCDaNklX34d29HQYo~l$=K}hs3UvXksl8id$Szl5h16D;; zNP6Rj9$xGNsnt}IVp>fkeUc3*El5x)rxhdr4n~n&MCjqxvszj$kQ7(xV>fd~>l89t z1Eqg%mMa}TLq~YxnJ+Bva0pyM(*$(!74~#tY4;-(?nE+)V}Aq7ETltW)y^M{;7P;N zbY553_i*_Ncl~P?D8U|c&x88ZeB?EO_- z=L-z@FWe)+yPVJbgh+xeOTd0R7!I1PycSnZK+=L3-#)+A976xYCDeG`Al-!0_`4&! zYYmSBPBjr2S|^in+NfmpQkR3xU&}v`$iG5cH$hy0C`-I|_PJ|G@pQD;(#l{_Yyy3) z9e%qOp6ydEOz$r_k9j(Nyt62bZ^({|rai}78t3@>&PyO*l?Z(63sO}?mQ}M7^2p{C zI%%UqmRm@VCK-;2FBWN?>nTS;8H+}RN-ik){q^&o6-rB%6PI*LkguJjUdeCa50%Yi z_4tv9b<>4#i2y##Y!f%b+*E_0@n2uy5>!0TVD)-%N+UOqk(etot)^`bYG;3SHm>wR zzXU~Tm&9$9Na6gq+=zEI#M_Cvnnr^CaRP;8E`s9}awer;KwzW1nYwFt(3Y}z{*Qp- zOF;WWOd!_|Nh(R9@OK83m^)uO6dp?`N$XNoo6XK}hD-*O=1A{ZiIIvdL6JwsGd%NC?M2OEu`as|Tgs-;WBbTI1S1 z2fg>#gEE(5w^nVZ$>-nf2%&E(+3z|s7(!Jglp|doUUHibOv9D+2OXaru+?^^u4^jp znKgZ%>(Y~S*}0-ZIJ}P18T|asYt->)8y_S0&H7MuO)Z+FVL(P=Lc4-Xp z#NR-653H&WaEw(QP&RO1V(EP8uWdVZj!u03%W(1!kCwgs94e&nw&&PS1@?^=4>4Rr2BwbG{MlM!;`UTC4t4_tusw*OEfV|~$06>b#&HpzP>pfLXG`*;Yzo>!y_?TA56Y&I1^^RJFBfn!ndQH>o zK?-h`^O@{0MGBS;c=f556PoD@Wp%}0sL`a&cg#ll7+S*xc8G(`I#M&X%Ec|2y?M_$ zy-bWQ^mHhOiFGrAs5cHcOHro!?iPnRx{0xgHX3?skR`#woku%W6Y@T33R9nD{YEvD+eEM!Eu+C;j#Kx! z>q)spn)}7aU0)nHOx=njp|Je?PL$9@o{>WrhG@#DI}$ke(pST9?Q!iS6W@%aJ(;AT zxKObgiBAwnXP6r@ik;z!IIq}&BI>uT%8B)2xJ5}gm$fT0w6Oa zzqv_nw#T1n6z0D?eSA6+AGw8OBydqi@6q{T;vWzJrSM}#f@_Mr@k7c3Y05l-S=r5? zlSvQE;``MXp)sm{)0Fw5Bii*t<)C1S zsLbf+3KTRrerB{db+|jWhLV{r?0)66FM%VzxtV2jKu77knD6Zff6n^6+n9mzym;L? zc{9^MJmF?{jlgyuZZ-;gv>f&q_1Cp7g{uDU@txpe37F%D5hc8g@k65#Z%ttTP0@3% zT^HP0LsaRup7a~Ap-lA3-kX9Yt!(Y?<$d3|=v;NE%$szPoug0vF-Gj+Z15>V6;xWm z8;qacEd+sF_B;Nj$?)sd1%`tWO!S8+1K~=XevwS7Zd>$N)X8I6lxhEWT%=1qp?MP~ zxhD-Th(CGK!>!t8$Ut{rCzm_yGrn);SLej^p0ozVXC%;%l7wo3huZ<=hMCmcbYEgMTZvs6TnxPI(bbr76q&~TbFLoa zNVB@!HMj2o^=}HzohXmD=uWOWC6?8jr{_b3Y4DfAVN>WMndi;58-imk*w%ULV=o-x z_+x5@qonC#97jB{D;w%;<;lIPFj6gPJb|}pUYs=}@i9)OXd6artrbv+D82bcS%&wh zs(%>q?X^tNh21zSpv07ma$AHX%Q215MW+6Z2kDP)j?5&Q;-40b zGRZ_L*dI97J}5O$reWhAHBUAzpRsu6emKQ&yefrk5p1rwQANB246+0a@$`>&xary1 z{a?)`^+P3CEdvI0a?qiELADu~nY_rjSEHE;rw!a16?}QldLIpt_H>Brl+zm5*X7Qr z<7;>nFXLJiDvyNxRVV%`Z;Z9OR}*!y%GwHNPHCbnm5{GbW3Rc5Xv?5Bj_d>mj0KdR z#{6w7abJP4h)X=E1g{KRj$t{Z6|uI_Rm8Nd4t^;yKR_wN|JSeJc>a}!)MP{TY&^kO zM6Vf)(BS^joy&V6>NdmF|3=Hu(h=Np28_t4ki`1tAWo|`j8(>P}{)Td;7jC543VT(dI*u$h?qc1| z1Us_;tP!+T3yE{@&w5tA6V&_1-`*01$PNWG?=+J@m__46+1y$^#Ic8CWCO00RR+n` z9(`QnJxz{el58S<7GVyUv5Iu@Q%SXKTmgmQah75&%besJJ~o8H(V-k7 zbdP$lB3?zePD2P;K5)O7N2d(rmzK&CzX#{AhKG=gOlOBRN02o0g)rJQA%!Dm1xwR7 zHDdZ$zU;#w5fW_gJa3}{=Q2uF=a<9yiu-UmE*TDWM~2xzbOlTuRM_JoebH={tK+#a zAzJhh`&C0ARmpx=PevWsT9_G_5hzGll+e>Dbsyq-^i%tPkCIE8H|z{EXl7IaC)bfS znb{U4-c@SmsB+!0m5tDc)u%G!g)%~;zo{JtTVAJ_4PMr>L8q_A*IK{J?>;xVz2HE{ z7rq(M713y&g)SborDPUo3tZ_~jrCJ;`TVzoN=|h=rDFoP(wfB*I;YU6gi2{(Zv6Ns ztM3DUqzC>QxOk5cuJ8bhnkxkd+i_3_jqCAUr=ZB~x5vf*LZ3!EvEw9-1@Ze5=hPe8 z&m%Ls#H@;jdi^uQM|4E_CfG(0W8Jjt>HOKb}J)%>wt1=Rd@1Gq@26Np4AQAtwF=Ffind;&XObHeC(*- zE;{5--v5#$uNrG6L`OD;>;cy_rtEyuD{ z#`n!drF~dGNcux|mVg%06O#CS74^pWC1zsb?Zq_2H0r)HIm{lOc=Wx-NHcPDUEb%+ z;7kSCnR2)SkQQwM6OecO_^di4HZFTSh@rg}Hdxb(mk5dQ%iy=a;--?R%zyqQqk^~D zH%q5*gh4%H%&CtyWSF3Y%NXcO$1F^aLTq5;XIU9n`&9(Hjm=|R>08fT<%9xpp+aA_ zm~edr1UvmS)Ik(m;nLsc$mU=1LSzTMHvMZyId!-)@2WfLl*CGyd@D+y)Puv_z3I{v zMIV@A9QizE;>9osx1P+br*enRm*~XjBz2h`-Zp9?^|^Isw%;cYGtSZ@;hHJh|6DjR zTVpCt@q+a02^i0k(n4+6?>wz=ltCEvQE`tSbK%y!?F)$#Ay;eUn$| z#SV6H*sapHcVwl>cWPSP`Ys#|<0J0koyW5@-csC;_(-dhj_yd~^D$ldzBH2w6&&mu zc(9WCfCJdEU0mInSPsRr*FO{(n+R@gjO88|EJ;%APMiN29AY{o>O^21^xw)*Xft9| zUm``?c_ZcTF-2^$uTbA2`DSucc-@GdgwCo+kxhGbs+JG)Ua=Cad;GHdBnts*E?QiH z?i=&V&$eC3h)}qv(FO%fYCjGdl#ltNy!mE#?ASWLDyPOW9vI9;t2qvt6fEh2K#0@N zYmQhPYdH<{t7ljL{Wo@dlR*IhyLq)qv1v(1-lKUPpeOj!eEC+5TEx}iKtAMe+QzfQ z2H7=zGcpn2wfN>?u9DbhvCr5E<`~tjpXMgXy52ZcWlMf;nsM)xhk7!i>EL`IRxK3a z7oIvJzB6`Mb0K{EhbJCaBVm6we6?(SQs!~wbniLiivFz`_qEvEm$tQp;w?$F-?1-{*aaL5eo7yo_H4z@{|Cf%D( z_*$hs+(&><#8xu|m}UoFfjzX?ld>6mCzd}@ztrlXxQEiRL*Nco# z_>>iDPbOTLmO10|cZI-_8#X((5d`0qx7P^{?0{QXAmmpbq7E5v_Z*pYIHYr_NlGeqa z3~cggPcP*|0wn>osH2H&MI>!h@pfB(l%6^%WVbS?JA4WgAD-(iXaO4?irw>p1rxAs z+3e|>=5U$!=TmjcWGK)ST2Xj?m_I;^oPd+vRyg1RVx@;4_4I!*Y(743182fMcVxv# zJ_Y=mSZV-f_ZL@0I|8#*Oyy9(QL$;5>`pW&>>QElgOOh_x6Tf`g!ZPh0dA9chJNpN zTk+Jkt#_3-gul<#j_q$yojSLv^sk(yMcmX#otWp|qSN1+L1_bIl{hUwzreR8G3~6_ ztiTN;dyJQJmtP0N%&E_0T>StI3R1eOgw&lcn01CGT+Wd;K@Aus){5)<%xzViU0&{7 zn*mLC(+ozc{_`w*E7;aUfo~G-0v}U%QB0;SJ&0U9uy%JyAn1QgsEe=>L#o0o$Zimg zx1hvtf-fSUE!YT$b~(b-0a&CWwqlZiw{9E;?I9%DU2=BSw_oL(mP(E^A3vj~EGaE9 zPm1^?FVYE28={x=DZi_h^<9Xw_lboj#H^_dgOW=BnSF$lw@bAn@lPDe;?nXTnfu(XV+ONm|t`+eq1&|%X29#G${F%r#ZlC$j&$*Hb0OPysK4{rQ|7JFC||J?$YA|kpM+K`%jVe%Z=j~U}PlX%3kXR})ws>A?h;`hBi zhN>+;dJTnbbt5gWGOEJ}r*?bf;HcDFjMu0%h1)yX=UbeMtruQ$SxDE*N1+XHA*>e; zW(l;$G8#%Z^LfrQFL#OTEZ6OsaM(mgtr}9>o%q*+U@>6lt-t_JU*G-_5#2Oz`7U2a z4yMvjmqX_}tEP^L5%bT=LCEgX^pUk$-o?vv@hnl@u>z?M_0T_M8-}7+Hj-l%QI)EH zxz4-V6|XD=nk3oOO)6{@Pu66k6tArA^>xHc`X+)W>;sI~b&}WY2rYasE9g{_g6|5g zf>Sk&ce=_p&8OOGy)7(-pJZUxN`9**h>U)FgeF$=HJ{hF^RPzcb)YuI=TN0wYei!g zI^(v}uB682tZxBhbyStDn-3MW5(4XXk@WDiqHqOntQnH}IM;W@SFlO?ev9{HTj2eab-+=&DGvXo$U8MY;>JUlIgsyT{s+q}LEa`!9_oLiWaDQL z+oy{cP~tXC$o&)2&@B*Ky4mVrKK8d-m^?h11}3^$Jgznn7`1XH-$2ANHewRjyr8i3 zeRueO=NGTrvySALp1`;|*ZFci0o%5D|G%NfhmAm?9oQbV6FI$mWKr?YRmy3G_N>NL zgZ}e)!Gr*DP=jgu`Wt)2vf(B-2_scRuplrT1!EP{eDoZUwMr0d+tk8(A)H~_VmkCL zQ|WR(p015m`7~>=RWI{LcTFBPA1W{8kWb6aG57wFy`jz{LN++hqA-!XH5^Da%IO?l zdi{gEPSe?((b3M5#TM>;hrX{AHQMAVZMh0rQ7A!bgJJtrbNJjRs^F=mQnyOnteP|q z7?QS5q%w6YS-C*7-XsS6VvBi=v!0Zi6=3kt|6J*O-LHZETSeM(fQlnnyNs;7&dcZW z29*#RIY`VqfMiEvV(i0E{=N(+XJ1`OO+iBr#aAvHsf1G7PfAI!0^_MLJ`Sfc{%33< zgM#I7rbw+S%RdamP?F&cjnq5mqL!|h!{E5VSs$S>8c!03e#U9I zeKLeHse3T<_wK8*ti^NDLs0~pwSPG^q^*_fy(GN6=>kYic8 zwxrROMaOiU;BHB?qyD=ixiZ<(s0wGGS^Y|#Y~}Wy#v#gTCH6wJ`hq3v--m@~NRTIY zvr6nOutbz6Gv?2s=km1}nlr(_XTR2NmMEm5h&=`a*rS|`^2P{EF5rx!@95E9Fourv-~y*za-CMxs!62tiXAA^#xdgd zzvF%W!2@VNp8UCfd81Uu~t{jh4iR`Wc8tSbj@l^A+P_0I=p3nHK>)h%HhLhuSmRZgVinc%F2on zQ$yW;bf-6S0yD;&nhUnu^TTT0ysS>n?(meQhjfzTpMl4b32$naB3-7Qxj(GpKnTL; zjSiE1kk|*^x<7UQ!_-^0#lc3)nm7a}xVyW%1PLy|wQ+Y1PVf*cxVyVIZoxfxkj5H! zcj&{+o;~ON1<$v2)l;kLUSdY24)f{nBl8yzpyK#Bo&DZTAm{nZ5r%8#p9^qQ=A2d< z<6403gX{BnGf5p+&2&)m@W`{bG5LYU;>f{X-C~*T8=h}(-poTq^2CWgt>*Y4b^uh! zdl<{ya8L)IA7V4TcM9y#;!1X}M{<=la+_uvBmb~&+`;2FlKRvI+@eo}mLU+6m9M+} za*D5fj9Pd!kDl2kaxWw5=Uefdu?c;+f{!*c1Twu}o7#B){n!#wT$B!Q0OFou z+o*MTF_a43{)UGpEUngG%J>A*=a_DT=dR|_v#{@X^CM2k8NKIbZ8@1Hv4^EgZ?@<< z;%E5)#b^QatFLCwZeH)Jum75ax9)y}G7sp+=LS4iw1`O ztWf2{oqwQK4G5A%#yQ3IMrOxk*I0<$r5+fo$sNCP&l(dw7;3a5??^i@F=)WwfAZs) zSc#RtXH!!DZq{i>MTeDDFYx)NOoqgl3K-}@v(2xcFm-YK%=IbOoHOHEM$B;0l`Q>k z48OA=iyUh23~fQ;acQnP@V-&UrGX2K?j^T1<$ApM}Zq{(a(=kQxW20D% zV4Cn(e`>{Hcr>-{n@>(5hhB(nDu{UKz(7vs~ zS?p;^$if~-En5~^$x?%!tY=fX#(&G15BOuu5*5_dDt33@vEW3|S76R9FUXhp`%M(i z0`=cv*@Uk#>5|WJ{i;qDE3+qZ*;-U~DIc>S5+0%oMvoQT#vZxPnv9n)=!c`(xXxm*ZHsnK_edOnaX zBj6x`KakLeTPKmCQyKw*%na=gK72|UJfm#BQ!sN4OTU@sEZd?ja z_I=6DI>NnHLuMz&TXvu@g-v=D5M7$|NM+$$L5;tGiVyqtlh^W0 z?sJt|{YdPATm4LQkx$~*l+^N>$Oaq5Uz~%AB<{5D4itaBQvo=s<^P$=YRxQZJ~&8u z)_q;PwH?SXJ!=!F6vcbn>@pvJwY~O;qFtu*1W)cj8zN_x^eEi=U$VprVI1^v*{ct? z()t+Mt4qs+SL-+IIo~EQu8n*snd9;58>)YxWpF-LH_$p149BB0^#obq(jz~(oY#B^HP`_xFxj4a>LOJH(H5!Zdm`I*6=ethk5 zJ(Gf^>GxYy3-O;(?$CK6T$duYykMr1YXtj>fi+J^KPD+m#PJS)eic;z;eWP&3uDuxlGQRGrX+g&Zn)Gn2;4@-(N}b=3-o96eywJS zM`_2A)5Dp~JHqa05&D^2eI1Aa4!*M!K=y9Om%nw9H7xvQG4jMwFSr`dK(jq7w#{wV%!?2W3<8y^r`XrUT$bfQ&%|^)8@FtfI>U%u&k3!2rS|Am122dlF zcR0tqhMnSyH;!+!(Ze2}5AL{8d-9lwJR!_}2(A{NyPU<~q-IJ;uSc)X(%`4qG*-l^ zJO`z~!^q8AHc@;*r(HH!@g+%*Gqq78x}v)g1u_qDYUnTPif`c%bM={-G{E^}zu!W3rV`!;~c( zHGa@Y+Z~uu_&{-Nr3PnVCc*E-#VmO#ID|~xZL+YGe$Vb9y^u_r9GG?%kr3pMNAK*T z-tNp8b=FI}gAugldyT%4iwss?B-_aT1-@(H0vL<`$s)EioW7>5H@ClkUF+SxB8S9{ z?5kc`U*Wu%xz~s;cDCS;g+}=g%TC5~4?T`f z@Y_~nLbI)66oE)|`bJY!Q`Qt-C|31fQaPK43I~3|F*>kmWxwhPZ{+00&ClkX>90kU zEPtELBc3>hV~swf&iQRdZ&q%T5kZ#;eiB`sWgJL%-?PQMrk_I6;>9C4^cLVA)tVKa zbR-ANjG-9yMXtI-Xc#kL_{PWm^NcsE{0j_bQmRI?6ZYb#^K5&h-N8MhJMu0Y?K6;H@QqWjJLlQLjk6pcNo zxH`z;3DT=DzB^mPZ76zNx4sru@kZRLKlZkj79Fb3`%X%DLUb%GyV zK6X!QdZm`QtXj-69h=?`dr4kR%aQ+OUmuYy``_m2|4lg-eFzjHi;8BX7~Kzm*ys1Z zTM$pK&lL4X!lbeTPLqrLCJOx2zH9%?H~d7N-wwvbQuBFT+Lo>xnwrphm{&XQ*hc(m}NOt+aMsMB1170Txc4MgU$r; z9cIFR=W336?80y=y}@C^sqa5!^76> z`;F+s4tur;;xbd985am&wGcAbkbbHc^DQFF?p%uk6RBPlm(~O`)>4^36gXA9S=gY< zmizN*e2m~CJ5=Q_7mxW;KC_D{l}mnK7}5S|p@FIS#Fx!q-POX|vQM$P8{Mp-ttEwA zWO=Fw+IM138))07Q)eWi+(~~TW_OoRsX80elB12dM;yz@+`Y8O-Ruz)jrk?x0#Iep zuq|I!7L4=B*$9h9iw@ zmS)AuuV)#lcDj7`^ChQBHkQ57j3W{;LHRiMYKcECcLev#x0F@mfNpfI%whm`A9V1hM0>9uJK<9J)?m1&A$CpzMo$VTa2@eMpM zQiI#zrX9?fsC5!$M4)PG1IxMH#3dt4XvV>z;d|yZ?!}?zbI8&ay$zQ7*SeyI3>O5F znQrriSz`azf3bSL0j_++@|93uA|!@-$dYK^uDre6O)5_9bD+MqP2HAuDd8Tbf60Dx z@MooOP!59o_Gax)qj^-@4CpiA^6`{fV6&P6{m-BXD^VWgpGvO(QyMI~0=kqx`D*vb zQG2RC!A+lrVUizq{Hjf#TfNC(QV-@PP`h;~Bi7NLF0lwhw|rYwTkNc`l#m=cWF9sS z4vvO_y@R!Q^PAuNsNlXZvcjJU@=BZJ+jc&v>!TiL{!v)jPp=l|k_$Dz@txh`PPs94 zlS0buPau^V%eIqjyD~YWqrqX~=rBGgQP} zIi?;1Sv!cGk44a!>;XmBE=vE$_)i=w7o8h&IUk-V~YrqkDvI-4i<~rtlyJU z()Jd9FI=8+mh(RGOL~1Ki$BjUp%{xaZ~xY%)oKevJmk>ZHdLdySm|9vqN9-sf$9!$ zP2yLD>jI2-B?gVkqQQTg5PNC@o0o)_tpJc-5f!`1};ue+?T%%c7z3ZkZCV<5+N0 z^_0HvP$77C{Xwa`fnep!bhDo?4(^3-)@p`Fs;)b!{}C_{K1>D*6HZs==K<{kZkvo} zq1k=ZcVlXJgbuXqkL((=)yYxQ;ACP8=q%lu`v+w=z1c!gFu~hC#nwnO$y8u8XUpM) zT&VWs;o`4!9u#yw2CJ2G*_7|=xj!(?=^kvx;K14}4NcFe2soI!^CPKL*21}^_q#^g zsvB0XY8PC7*ZLkRQ2p+OtW7Mag!Y$cRo0$#H$TzZJ;ih4dzJ4=s?S)5-8e?3RrXI? z(2@ZU;7;?N!;;SY7H8~CN@92zzBxe`-m`AJf=*8%Iz{@qpdp(3XJrb0KRVu$=r$wX zyaGgYvkqJM=N|Rkge+p*7FP+qSsE^@)}3 zCWY1JYs`z1ZMpY|In8!rS1W~PySWd1?JI>gbzVZ*Zs)%#_dI`eH}mI3X=6(rQ!bNp z=vrW?QzBq6gdEE~>%oN($y#ZaJ@tQ*V<#ljr&)iZ5%+s;B+sLc3QP~KjwlJdr2c>U;aJpG#1ERr*q0NjYcOjPrxz7d$H))sMM}+HpF(wY`WS=2>*I+E>+?@_o`ul z1nX;1R(?)dX`yL(NqbCxC0_G*#}@X0puCqtA`P?fG!+bK0pS7m3bcS9PkHI9R~Y`* zkFu%Cr|}2-GSW{D^sCFCg2rZ6j|K=GH$uMUK>CDYAzzyN@o5MGzjQJ5A1dB;B32Z7 zeAAzAZe;nEO!12clDJi21dntZNQ6XY3g$QKhjV5GssOapvlwL!jSrTgE4o*C) zsgO&~1<|&s#A!Nb z$xYoyWuxnl>`g+k(Y3qNdC|A{?axw7I4zMRcjYpgdexT+&m5*8$u+&iwa5}5QN5ti2rb03mBht(QbfN7pb5>3{e#Q4 z1Hln*R(dWdZSTdeaa-czzjF-%lL7Ou`7!z=311~_cngBRb5Dv7JbH|5o%7NuB>Psj zy1#LmhwdnoL&G4g1Q}H~`p9Wc$evhRf6dhSj`YmIdbB6a-{LjMP#-pRZpn@dgxa~C z55YCiwn@||NWW4=(=Kv@N1(#)r~rl0Wj0$i2x)J*6I^;V?*)d4S_GlPJ)P6 z5L@Ybs*g}TA`-c)-7gxFy?cE^UAQY~Gi@UnC(Q0_Px>8Ashj#@4%iJ{`NAG^@AsF} zpF8LK)PPwFb$6OlpRfm!tU_vi3l(%yQQG6qs0NU1YG3`y|J`j@&Nklypy6k*iZ=I*Q_}8zL8I*vE@>*(8Tod zgV}M7Si*JlW@QsmnIP0-iMl=(x_!&OTA4HB>0BZ;LhO^~P31~rk-OilT5saDyT;xl z;us_bMoL@+P@0;w@vxptOllO>$MpvnRiPUiL$0 zOhlw5S4f}x4&89yq{*RnP3*uEC1tSWy8r4`$u^zn-dp&;bim>rTR4j>{y%-P$djBS z^iwzxRFn+hXSsS!@hZ}`-bg5E=lfwaY9Wu$?S2PpyFEWV;t9jTW9g}asIc_V;i^wm z`jn{u;AMSo{}WR#h(LpCqpDEn1!oX65K;??x`^p9d1++arHOC>?sK%V@w(SL2e!q^qn-fw zJlQgIcZU;cGk#Ti(ee1*002$c>9&csNcc-qRH8W}>m=oL5d9PJ@VAR5rRgv2*`d!? z^Y6X1djvQfeh)j;6u)n-u4gUV5sur{4CK80^RpuZXk?!gSw^%I^JKi-1U|ipM4{d7 zsQC)C&gi_IwyP~|3IxP3mjJ}k;l9DZ-Lzb;*$n;p+k=V(EbQ%tZvxk>`1hseOO~vE zwh?HLUqsxsYTJy!#1Ak%k9kcK=_*D+!XB8z)(d3h(SY!%HRCPt zWv~Q?6&o_|quWmi45Zre=c$@X5Rzl^EvF(z#eRi^Ua7W%9ktm3_)0r>1)sWb?OS**{i)0^&)`tzPvHk_^LUZ7KBEAceQ1 zfKgcMUR#>lW?J(v{B!&1zj>772gmdWmFMWRpXv**dA+{*CoR~@CJaX9(E(&;aY%Pa zEQ$5r0SfD34_8?@!t%1fMfG`|Kf6cI7L(l60a3J{PW-sV19|C&dOWc21ep2~8)5+| zJz=1zy(J@ZA~yD-(`4AEI|Y<4?1IDOu(0r9&u+WPuaQQ2{WUt@NbPFuEZVlXpxT`{#%~YVQ93u?xn2WfxqZ=A|3F+ zW`|#hKzlkH4u<&vqn|O(VG3Y!2+%yS@-6SGCvf9mFd0QzebW`!jO%`|9;ud){4#*a zIjuo^uJY^Nfoj1Hxj!}OpP)B`F!0{uuJl}BlDE$^f>QD8za}deV{NBKGuL`b_qW@O z7TNfODxQq?#q{*#U=l%|UmB6aE>(Yn{ot{Ebh)C-a8Z1|bxXe!r(JireL5J#ca}e! z8UI6BEw&yhAGOaCdm-mRR7s5B(zkftstA<^QNP1h@)WtBKoUM0Mqy zVY^B+9Tv#)jOOxr&cl*7;#>j0D+n?e0HPhxQirLRo1R6J)w(= z+HR0ly+Kw8$430oJA80N775$vfa@uZ|2nAc`y0tcZq$?3?QJSi54N|r*98-8`xr|e z&+l&?kl1dGPRt&qwCE`DO-s46QmXA7aHss0JB^?fIpZue4D@?;c~xQcAw^U|u$fYl z{0-?4s8DQOG>7u*ZJ6C04j3XAv-yOLJ6K{>KgONiZt$vmfG4?^K*gB3xl|wME%f%x zrh1V}&1NFpV8-Lly@Pc9Pa)tAD^4dRAq8jpYMd($=U}HL;8WT$dPPJ_I}iD&nI zQ#8!LW28unzN^O}G%bvh&r37>@$&Gw4iOd?sg{q2bbwW*>;>zrBjh%WV+S4yee~nd zq?m%9)-U~tJ6SimUzc=JKPc$_ zl|~hPKABxtR`q%{uLMq zBG|E>dSp#i@@O>MbwY_aYxvVY6CqCtbntATx6x8H1m2qEs*;m*pAnuqF8;^kT9VlM zoV;4S{ccbqXu{|VgO09|ij9BRzo%ijfM=aV*pW8z5#=k{pmW%qf`R>pa_XIX&xrc(rqqIr{XF%0XXD!^nO0;Ut?r!GjBeVv z0BoGw9d+IB!()Ng18$CT`8BzpWSFc;We9Rrc2tecwxufp7H4OA|84;W~2WcGj9P4 z(49|bM@{9_%toxEszm)ce=53IjE7IK*}8hLhO#18K9V18dbn}{rwR%WO2sY*Horh4 z35|^ydIpj8e72a;(Vg5EKX|dhEV_Wz92vxCm)kHz!}#qxc?^KI#rq@&}Obqn0p5FyjpMmi4Z?==^J6zs^$?wwAGyg4&~->Zhm$Ee4UdT#-PxGJ9s2vqCU)YbL{UXw<)2{{pFE;&zQNkY?XoNsmS zNnL2PDJUEu-s`Z4^)|KW=-oYLKc*qW-$#gY*TrT!BXu(QZ^%#jEzgm0vMZP)Bh#|t zZ>W90LkbCI+}8zyLik|_{-5eviRbnrn0UAB>s%9<+=b&MuWe>FpUIXbo@xK8G%%sB z&p%g-b?a+5hBE+3jUnJb3--HC-#$-k{N$dUwsozgy{n)`WRg5Ww#pLNu#&7S(X&0< zyuZ6CL!>=0(=W|_OgMc6IgR3Z+I7fn9KBlRIE{_oNvqdI(0|s6v)Ph~gU9;vo$MJ3 z&P;N1{C1^M1X<&i5fiuc*_~o3>9kyQci1lhyIXd5I*MA)PA8STc=6Ul-xj_c{m$HZ zt@iX;14X3QX{5Fe4k1%AzHV*jH4@U_A6w<)e{vgnmcqs!@0_Q7cUao@XGY{q`xY80 z7ohVp((CIIJdd?j{*Q%!tOi@4!%`$XYuMep2$r@mW#)54yL~$f}bpd4sV?PL(7 z9;nXT?DYGvwO51FzX&Vv_LQ1z5G;`kg%}-qK5K)_*DF52yx&73qT4N&NlY&LJO1HN;)TRB`3j{&}g zttBFXzu6xqBmrV)FHHO?ypq z0p~E*eka&=qpi^sb44Fd-ma@Iezg6-hmK?oAE&|T)0gJ_Vn+lKS7E0?+G zc60~#z)Yh2SSl(Cm$iR0d>o_I>1bAe_egu}fl)2F<&Vb`S-mc?^TCsyirvUK3(%k# z3-Lx8F7-=;Sy*9DHPK=`ulY;Ub!Q-p#=h)5y+4Q~4zH$Q`cCN9h(mY&C&>byTRL$Cnbyjs6WSLNTe zd}s!j83(K{x|vDdg^Q;fwooUNRkx4%M)lyoDmy38jKa!!n&U*MqM2`PgMFEBw*$ib zW{>zA%cM&^ziERMIp4IW$=T#Zx^SVeIqO=JWe;qN?2R|Q#O3}G8mHm7hVu|6nGPD{ zO>wbMK?{Rjr()vaV4usph#fB}ryi#wKr5x+UgLW?dF!{#Y*spleua++4ng%g;V8JO zg$d_1u~vFqV=M1O=(<4+A%tJGwxaZA{tTD<89>giQ_^gbEikO1`aL%i-raQG7oAui zYp#~ruh%K|K*tdtK_ARYu|+3QFS{=)?G$7yKYcxvE&5wY*#pTGD0=nS$a)TWXN7(q zPWHX{Obxh!)p)H)e)Wff8S6Ex%v%?m5Vg!IJv%q5-rfjj`qom3@zrSj#w&pAyMko9 z22uZ62kd&cF6%)>+)3kR*s3{A3cPEtH-{>E`n63EKLAHRx}&Oq3v#N4!A5Q{GmA~T z-o|k7y3Tp7Y3nZibUyn(^8*_svOAa-~AK3s%h;`8qW zk3HSG)B|@e+C;lv(PT#>)!D`&oKHV<&LE3 z!Ij%s&vHn3cgB9*9aMquIKGxy?0p%MkUUs%B=1P2r7 zs^+&?Qlm0}VKNmV=AK8qY2w5&1`PJL2pv7CG`EPJ0(t6Suw72%Px_|IP2K}I0S@i5g!2z;vEJ9-aHy3 z*hb$K_il=qmzMMDRjw?Eh|On6NggZ$xD?#X9`^-(bG9ijeK=gB-T$ro%PSJ9z<5a! z^q{~omgpD6vM137bp$fR+J5P$_b(B=<6C3mWh8-^9*h3Vsh>ib!= znO#%1yq@^aogYUeXnBgtf83_=g_5wu@@TnZbX!(`DtAt<5SdMNc>B%S1Fs+Db35Kf zjw+7C#Rofm=>a5}N|Q0O4!k5&USnXdv3U&MuZw(oMP`eWntqNF4OGkLq_1mab?v%v@|ex# zZa6G72^)%h4}r>qx^7h8zGAl_d_??-i0>2l03+PmUhlHurtk~d=Y0#|BKMcP#xR`- z-c5DbjMI&Nsuqp~m)}oZ`%*M;JIMw05J`|(COM!23`__9eAGmkcGvhK0S%RP6sv9k z`?dCq^CfbOZ0(T8WCWe#pvi(S3v17S{T`Fyo4M}M?g+xN1p59SvOmKxq?=P@y66N= z(`qQ8Z6Zpu4rEx%ns6F;jnhjQfDAX4`A$A7YRTbh%jO&*c+m(@k?RKSrb!D|C1MgaPSL$jVmNR)%&$1WwN#3s2E5!DzprFr=5NC zy^%fxln{Vtrd-`6E+6+FYS6_inbFpT^aeq5n4BY>qw9RJG)r0AXN(T}-LD)ZJWZQHj|3?`Pgykm=zE<(P^fGb*- zJRw}wH*u^kH!AS2855(2xSo;CLaq1IVESAQ#vnW_7&y>)5Msz?P!MEOoEy^yO+W5i zuMaB!#RQ4D22hDaYV2LW2~bXDnZ{i;S)=D@IWM5yr;vcQ_BBWr;LmX|z074@L%iwb zt~r9nllG25^Kxt>oK%O_D>YyOHQ}38?_N$R97(**T|gYg?3>Wq!k>~G(Dr#Hp1xu; zw131m2~#nWtucI>dZ4^al(Al7k4N z#SB3J-<{n+b}(HsnL%V{JavQ_9zPD^R*+CGRD!*-K#muyg!zmaYLb_Uc757oG^Jrj zchWESc{t?3?~8X@n~g;=#5Qg1sm%1>-D}hM4*Y_|T?DjHAMU+^Ozo3^jCPv@9k%|; zJJJCka49U&#osZW1Ldl2`_ByoPUBaARCCepnGAba(l)0T(pG+fu^{R#Xwg-joDFQa2es!n1@vX%ZkL2_dDjrd1{FHHnt71~TTGEPWxh&i4>yI$KEOPCya#3n0clDC0-tIA4U5gw?_n za<}GQ^jQ?M3P-2J9KMj|boibgw(6CbCE@BF7$Rr~#D^tRE+A-Q! z0*qknbwD_3!-V9>XvML_7qn(Q^#BLF!Qe=s%kip}9lMj`|3|^eZQwXB4%&6AbVZ2H? zTR6*-Zxs~n2+XX4VZR_V(&!}N#XsoY5bc=`2U{wgIV;4>Xam+e%f)g6oL7^}o^(`o zxLi~4OR-yL1AbwrVgt+bfXn2-&pE-0vxF3hSuZ1V1Z~-~^ZZ-jQ^{*5>!sWJGQapM z8&tIongUcZ134>S1@M|>Ew4+*DU=F$xY4nmR?F|SSpDDc-WvK5l(|JV5pj;hyhCSr z7%v z??6zwC>1<<+Cy$Gw}z|FIZ;PgzvmNRS!c)eS5;OrMo?ZLU_TBH2! z!^1F(a2n;)lSPj3pOeT%5!}$A!qsquUN4&I=a7YP){3hou!14~_;>pRjstrxyjS6P zjM&hZk}hA}P`@+NQ*=C&#LWIx37y*Amr7QI2ex*1f$DKMvUUEzE~tB2S< z!rS%oZB5X`&!m}uSq1a4x?mldJ}HAc2p)Bf8x zqQQS*U;A$Mv;|Fr(BXdL#+$Mt?{LKZWA7_S7X(WE zJyj*>*Oea9NTr0pnx8Uc;W;Vc{_+^S8&nkVVEd})4EK?@ZSYKIJTHQW8zydY*5;pE zy0w7pZ|n-+l@7LGcy0u=5rX2=2&bgJxcer}8c3K@)Dd;<_MW8^K&Ql7bTydf9|74=R$LRD|0YBd5p35bgm<*LT`V8}4Q7zL8u0 z;Awuqf>vH=Cf;?_nUeUlXQ=%k?{J%VCOLw50aw}j)eiC5DN_bQqVsI2*y9f3@H7q? z1Gal$7)Ayp5`!D>e}5zI8!}L_d&nQ4|ElihhT4*b=k^3dq~E_QQmFGZ=cg#iijzC4 zExO%g=eC)ktXVp}cx5Fd)&D)WZ=WdSFSVm7n;?VFTK^^bFNdT+KifnBva(g`hj*XAnwc!mQ zTrImreQ=(sDlSJjm4))9E8yE;=Q8co@l>=rleUiR@?A83sV zg)P!M+c$r57yFs}aaVygelOzr(F`}9U6W5Cqlac+d5O_gY|wf2W2oBUX>*%4))H& zna)X~_K(Iq&Npjl$_sGT-h6bCaR{tQO}^G8p%4@50+(@Bnt=q_U#qZxH|*lf?rhl;wX;I#AG>SU=r>U}R`Gh?hfNqc3$ zJT>^6;&}4)FFQ*(G@@OGM|tW|c#9Hl>=e7T>Mk2J3~b!O zJwq|OBX_1i(Nd|pbK^h1^LeP?^?1)0_Tg145-?g#IxQ53ai3qi4461HStp9A4u_Q8 z)3vb&TBV6j1Mqv?=m|qe!}T{YK66E-=y*(uuX?KmFnb{;G=sD1LBU+Ja1t9}Z-_4S0L{x4!Zp@S@S-3AFi1=LGt2 z=JH3<@%@p|R-KN}ZwmBA{CW})+gX*{*Z1Je|7=jwWxKETMsatSZSCxUrP_#+<;Z>5 zFpFg%lSNlm@J1)=V6i&sNtPLG&v9=!`W#5=dc2m)`nC$@UJ2Q1_j;T;jf2FT!%d%l z`CX{z1vjHQ8X47X#WK`xlUCyvC|=*kHJ_Hi_{jUtWB$bpAcr5oNKJJ(}*e*uq zGm|Qac}iG~d46xz@h6|N)N|!KPKWZo^qdL+Bp_MvBH1GRJ07aPprptrb)WXY;0N7e ziq5Y_5pTEdY~ofs0iTj=YW%qRUMKMtE!$#5XDZ83>TpT}Ieo6|PEW$@sTIZ9^NL+3 zLYYUKk22<}y7S*$T?4dKbZ)C7ISslsTaM{UZ1ltn!T=9lp7rEz>KI0n$_d*nwrm5z z5N7K=$lfuRf~p`7I#=zP48X|PlO=dg-DT(6E>5RYEq8Ai2rZR9x0J|uR+GL;6Ny*q zaBMBP!Y4fKeY@|_XETkUy5;cq;u+w%I{DwvANxaIyAHlZP!q*{6uu#jq*B^G%;UxAb;j%h!3s@;-v))1K99<+PU5 zUs-QY%3sUv=04u{zthL_&iQVaVfwiRjjJLsthOL8;=1=*id6c|`~EK~>x&EEk_32X z1fr|bPC?Z><@T}yS>>$z>i1`2-}j@L+vmI>i;wY(`1U@M_gH(^s*%(3^*FZzgyv^;tPg_2#vKYz&w- zvs~Zth#6%)?)_9xM5g2Z0KjEi9J&=rk6#J)x56XI-;pLOh~#ob$r>NvQHF+sWgE_P zXO~a%dqH$-U<;T9dmlP zZg-E~dFHu!LTwAx5hlWu(xDt-mb&>T7UTR&gl(d5FEOs7a`|1>bkdq0L*9<;k>V4F zjM9KQ*>dM)u@$NFw1d-ss;dnW`669<5rKIt|Bk$@B_@EkZ^!n&69M*(rPB|f4_peD zl}Tye^S}F?j5ScEDDl!3XA#Tf2Rg-AU=qrbHBHt z+KcKOdoYmNpKiA}PoMg-{3Iga^CO860Edp>MzHW{GwN&gn(YJ)zB`>my~&LQv)AP5 z(0-Jt?t2a+^Vf_IS%V!ebEsPGmnIuUexTBPpSv`E_Cwt6BpSPlvBALXJT^l) zc|H)G(K$^Wfg~-PK<4hL-Oy)O#`4;%ke=`}Pccfcn?rEu2X>{Dn)!}Lx3+EoIrL%f z9q{~14Dhh5@X%z*EK`N*x#$v`@QVL%O5>w`J)dGSX0UDnt3tLh`TEpE9ViLEYw$9_b3I`<_9n^07ULm}U&qb{*GmNPwDRmAX@mO$%9lgA%s~9c&MY+%ADoujllE*ZMh-XK@Q|-^ zYWg^KG`%A}K42W@^V}CygpH_NkdUIK9@c@1!t2Yj_uC_$>bVhilTSqU0vul4*_3qW z^zQJ>jr82Nn02r{T6PViX#!a3tN(mrl;aw*vX_Z;r^@YxU0B8y1&?Ftte&I1ZY_|( zqam;VxLv9O{b{0H+hpQPH`8%+dPUitkLOV!HPAs#+7m-hvwz`|Z4 zr1NakyF*il$C)6_yj|gFTUEPR?fiW1*3M%W`IsZtPwdf*cTXMgC_*j$?--D;ug_T7 z3WlShe>}T{ItVLUzbtC=`U5(GEB|JAE4NrHjcDIKiwBtM$P8;~FEk0I(8&e`ZlDIPF%o_5k=SuyA-4i!oPa|+o4;3Usm)jt zFE`5{!NV%nG8iEjO3f_p7u0r~$}f}0KpQV7(&Sl&KB1@K3MFzxYw_?&@*|sSC`L$WE(<#P4w{pbqQdQnh|Ow zS|L;{Q;~D6p=_c0&1SkMz!;nP+;=zjiyJMJ(jx+Y1lV62K^_hY{C>AnU*}f;d`mGq z=Y3&&b}-Jf7c}ynE(wo~tPZ63b5&WdBP=w!Hjh^v|I z%&PKuiF@z+xQb-kP1UJ%QPbVk7(d4yoxO|c;Al_B$@X-b-0OqdNZto79LBD|MeL1U zg@67I{Bt)_dSU}-u5aM%|Bt=DfUY9j`?b-&-yQcm=R5Ct-@V^0EzpKE?gS?Ui6=y` zV8Pwp-Q7Jv&HPnHEY(KOR9cP z{ii(L&!W?&jNGcm%tJjmcwss#j*nyb*4_+VqlU@09?U+{jV-4pVR3yab5EHvcykX{ zISeH*=@_|bHXQU{!YoH!j#v(1^A!!Y9~sQ?i>7SzoXvrI^VxTQ3P*h>5Seh2?6|9J z^qS7nySi99jbf9nF6VDfVvn^6t8N)_*nSq*JlAo|V*#tZCb09?C^p)TV4K4*HryM* zI-jv5q+TW=;~e|^#xUndKQ5e@$L))&iSjwflSlVSiN1#8)dg4_naQj*L(tjTk3HvR zu8=X!{^e-J3>i&T>N2$1AfK%in>NT$fF#k{_=lJL53U8+5rot}8bucE@&l zZ*ETN#$khQ>@euVKGOm0AJvRT58%L<0UR7N@MlRLC-dB^sK27da~u%+caQALNt15a zOz*{A0bsXhs&R8dS3GwclaqT$DRXGXq=sQ-Rlo1B^rg*Shki`I8xX|WP9^w6cY=;} z!}oj-yuvgDxrjfskaxl`P8{sS=$`+Lk;b48AmDu&>zgrOKtWQNH&unH%F}=OM7}u6 zo0Jo~@f~M?iy$axA?3-wFzr%}2Hsh0yFXA!ES-Kp&LWMAj2bi?_kKPFFiB5*KU<27WkXgt2L>fU#~}nKDM7EsG~}Zs#KGPHn*L z(hdTy?%#3l21NNDA~X0T>F&FE5PFi_L_6}LUCEF4B>VO$63m7XKcqA98t_iYB&gkKvbJWAaTa z7OVAFMiAOER7#UgLKBCY(nDjKGK{F4XsrE+`9Bc^*3!jbIjsgwrA4oC0!9p2soS54 zoq92@LvKZM`wnEIt`-|~wOOyD&1QXVb{K1O&`gI5vvs($T9>dRdP;}lp9%=I0s!i~ z#x$eR)OeV@O;;rpeOiNQgT7`$ua>Nw&<+;?0={X#MO5Hj$+qNvNrr@^jaNF`#$>G~ zBy|f>5B3q4eS+k?i=^aQk`#2B13qW@?9?i{Tv(^5-Ptu5*&O5Hqd=;Qf_YsSOx3dx zDufn_d+fJonxs9qn&H>?QCAWv(x}o_7llytB#1@!$7y|T&D*rC&#YjaK8_ffQ znQJwSbHStVPdLgJ@43u#9K|Br32YU<;8>s@RuP-Yd~lTwt}_{TO@q~r8dwBRz$5NB ztK6rs$ia-+R;KLs)MU4>_#Wer5uI|5t-iC^`bA z!sij6e1$1!}N(qBY11gpOI4X6OqH&M>TFou|%`Q$!5Le%ZW zIIS4O-FbbLz6%a>)r4{H#c=h(3>>VEhQ?4dhN?7p$PmY{VywF8A(&MX#=0km}uy^J?8W zCv>4tPb~WN7Rw&Wb_=14BCSj>kCVq=6Owt|5btk_?bhNPxB7O&UYyUdeNham8QDxMJJO&y-c!Z!*m}|?}Fa~*eVIz$H>ld;~PdtSsv0M}e-pJRN zq3&L|2HnB`;u>!5nNFVPX-YyYDGs_MbdloV%R;L6Mauh2l!aX*%k?-{w@$$B#%_!~ zJe0l!OTz+)%8ybyD9a{E=})3@PmAQKfRd)ohkgkVNXa=6p1N66x^^1Rh0$*`{f#i- zGFgKO!&+iLaWEx|Mk_E-w%VMc!|Nz;-^CjN03QW{8vqBfWR!;N)XT#AYl08O@kze$aHOn%;cZF#?z_4DYJ$RVXIyrVRZVkaG;ui0W~Ie z9>NY2ZK6-<^U%tWC$@$Z-7)0(T|>$p<)}eMymTH(rOUfd_kUDwM&iCRsu>_qNk$DC z)5;-CpV{kkeqj$L^lZtJQEj;6Iz*Wrxv8Q5_0m>GoRMZwb~cr5ujNzX$jlie7fFxhG1Vl0^IG6FK z4>ELzIU_G`X5P{D99%vJ+hf~!5P65flzU`H+i~~YUJkFE$Gl@3(7CV)?R_&b-Ls6I z0maPqj#ctad*DMviZ93fLYV0k$(EaYnRIm{2A4K)%KbPc`Oc)cpCQ@d3`GGqC{D1V zUd~}4M?I>KpfKSkkDi<-?eQjMBqje8V@1*sM`z6>@!?X^^4F77xR<9dE>l!&O`_K! zvZ61M8hwF{w}kh)JczNEhBE5pU<|GdVfe`b=$-G6spSB4E!3HJWgPol7h`^XB)S*+ zV|aNWW6us|^yz`KdX6-dIw%?q>%F8BLUY^4FTeGpewU{eQ4Y8Op zoQpF@;CW#Mi9UyUR%9*eV@d9_!(=|$PO7M5Lf#T0A52&3ELm~TC ze!qZCl2n|z_@Ya znK*G0JJ&BK(Z!NDi}l=^)mH%mIoguLg1-12G$AYL5ZT2Cl%`G*qU^F>vQLDpPk6?P zX0Jm(rr!++qTFZVd$}i`o&)f5>xYNiK%5=)SUsD?+Uuz5|np$Xo_X&0v_VVgUJg)+lQ|mSYJcar95E7KL;H#nlG8&+*l31^I(*(A5+Qw0ISJj?&+_ zQ*on|xeA22y*GUt3qSeaEK={vWA}B`3K*z~+RfAZi?Eo|n;Sd!a_{6RR;drC+<%MM zw}-0O<5VS_rz-BWfQS9!m>t|&JAtEf7T|AV!*1gdM4TAKo3QPahiqfDW_K13Rac@c z^67YE8Ga5Bls$^4v?PwT5rIlmAw6#&+_NL7d=aOB0Tl_nD30by^eql9(Py4f7h-I8 zQYsApD*;w@l`nYxs)FKYPbhlwh>B+qd6^x?i|`u+T5e#f_P1E>o=I+A0M+FQsyu~q zpT)8xCYavhoHPCXNPG}WMU$pOzZ3|bKS`rB(v#;~=kk1k$p=7?HO~mU34=+SrBC_( zRlJGvrsi=PPvZT__CNeC47?8n%LK6R(Iv=#7wK6SNzSko7p*Wn)BSKubtE*ypH%VN z$_PJ5YQ#~J#P=ARew>i>d3Ysh;h7{Z_Q{$;BbvS5{96491pnTz-x~-n@7~LpZ(1{< zArc@BepBOb@^veE|L1=(;J^Q_fP&mVO{6pL&;_IJgXuNUjMfd&fbWLRR+{_#l=%dt zWVBcw_gOD9Mre=X#zrk3UL4G$OX|wp0*@}Mb9dD+W~pg1xr-K?4YbL+YCxUmd#3(3 zP>q{$vtS^%eVBG6sh3Bv%Al<>EApXTJ@Aav6ehkobN|bwj5_nSgXwf(l2@u=;MrBm zVyq~Ox=u-gjkuo5iKv9pt_h{8#GMPFfwYRKqHE|&hJ}`57FUi*T0QDMX>6LQN8J5G zxZbzK^jZ*FA%zTe$zt%O2nL=FL+f%RQ+=|S5?P3rbsR^nZ+_iT_U_aa+!bXASIQuVJAIKW;NqSI<@at->Uxa|+e^IhuoHeEfH$f4 zDS2Sa!_rd<;K(-S@+q>axs;BwE}xS7Nkg1Ambjcne82e*@d$t zBqp21QOT@{j>S8}kGwcr_6Pd2C@`AU;c@JVjTdF`BKFoUN*;=PSy3wa$({s`=s`%g zuL$|>KPhm##mkrZycGAcoQp>Y?b?C>S)PM)NeDj8*#-J|-`uE_J16zL0Gz|Z+%FdQ z4>JOijTHcpb(M9Nb(fQq`6Z21Mq8324W&Qc#yW@gNuF@q52D^%qN!qX5c^8E33w&upIJM8g{U}o?`jKhl2k1l6J zaxoW!W0@VCgL*^-y5TPv6IRHofHW@M_r%8fI_Xi)P$<4vq0DdxHmq7MfMW*Jr%mOU z`4H@8_2%|$H322Pab7iunA?kZR$?Wf=L%1sTk*UsjK{?`$}Gh(S+oCmqYQ|+@_tsG~xSu|T0u08D94}1zSjGvn zZX(i|DCYg$yiA4h*BWXfj@MI;9X8kq6NB-LGo8ZxnJZZ`Zyk&0u4U@Pc?xtiJ@&_B zD$Xa*X(E7Q)W``;Fc`~h9b;Ax)8@dS{z~*gf`W`L-00mIn?7B++rPWgl<0jpkdXtI ze%**%y?|%o9&f>*@^Nyr9g&}AClM_!LQ$bXT(`W=tf>nz(l)}d=RY~WaWpSICQ)%$ zhsQT`DX`L|TmV?TyB_i9hA^$)S6D9YPMvsP8?uC|M-Egx_Msr{K95rzc%EiMZR`%} zJoLG@r8lEHwGak+Ft1(oNj#%N!f9<@IcoDJWFut{ym^rmF3jb-&21X>OMyU2HsO&o z3=jL{6HYJCp;8$5>WCfGMDFI1{XC-1m~c(}IV`62!Fl6wsviYWSDZ+7VFFK+{dtxa z$QuDi_0OV7zP*X7GkS1&miQfR89?gQNeU38+bw5Cmv7lWbDT1KXVXd3J_G{UWavX6 zP}1dx3rJHL|MaKPtd9($k1*+)p5APV3L^MX6vai+yokR;X|ScxWy%tqMc$<}zMcsX zIKF)`CwHwNKPN-kRx3cEJmJ1_%=7T;ynGTuZc!{Z(n2v0@KZ)DlJH^wAc_~y0>$@n zSD7rWv46)e0s;v|alSm?x8j57z&o06Liv&PR0)u+c__}68qSlr01Cp+@a7{k6{~=t zJJ)yj!O2}*h!Z9ekT`>&q&Wm9Eg&Rmp;*or@8=PiG!y@%$@nIY5jTE0fsW=oH*cxt zt~b9{e*(e3_v`ltf|~~qE5=_Mec3!nuf>-be)$!X+jaOJ3?wMXW<%{eF}Aas(*Nr_ zVdNzUG)4n{((s`Tl1+$O4VuoUJLiF49B~T4LDrf7B%$h+~_AXv}TJhTI8kJU-ytyORZ(iYr{TW^sxhp1I znH!)gkeD}a7*OKQf+EpcoOg;ofeU`bd-v!Wq>gHBO>b< z8X<>NuA_t4-Yuq%{f|n-l|K^aE&2=%EnrMK=p@Shb+nDF=X1a3c=+4E8-Ep))P+*} zI*=?s3m)G*LDBW&yt#RaSHfJrPIjawz?#=rEGdt=N#?U%L}krVjla5+e3gfP|u2qHF3AV?VVfKH#0u)vJ^*ZJZzc+Bf($%OU#im*Pd z32yyAC=IzUKt=4MNZex&66Sr8v9ZsUI+&!?(MxGvbN_qT*~{41rtcSPO=BJUC&+ngb^*VlxKGKG%rPn_3b zHcZjP;nY&nypQns$t5K!AnW6&j3^|Vn|)tzZy^~Kl7JMOvw(-s&hYwW4sS}I^72`} zSkI&EwGUZQM{wUXf;+;9-`mnF1bM&vMS*3H^{~ zwDPN?m4o=c@71CmTF0WKR~!k9V_e8%S_O*V$o*Q{-mOI=u#V{|RqXSN!NoyqjqxMM{LC)9NGS8e#lX_u4N5ViaQI6jD?jFUXSbNG|dQe^=XRm(3o9Bg8l?ks> z9!t*Cqa^3;YxX+yWBUDoAZ8Wr&gQr{PQlfE8izLy!l3J?m}(mcBmKiLpgqi#0cyJM zNWH&-5-DgdeN&CpHB-{|@BRI8vSaf2(bE(dkRZ^gSyL8cHfkzkj8%~eQ(^F%E`P3M zRKdt-vLZ8saV*i)W7lAH&h+W=Hj-eaCIF#dckVaotDr;;#6H<6xisEi)e%{V7Gw$# zXfkAJ7d!M7_@#kzR+K>$+Gi)8gh*Evh|K za8ctmiPzz~c#$3Q(}3XB&jA8qRv#u%m3W@Vp5puI(}By&4V6y9vMEq?#7=6X_XzE# zF7YJwMRC+Ti>J0YL400OL^)m|^4?V{9!64IlpwZ?vSivS>1$*5Lc%`ct}kF*tFN%# zJeGXt6;vi%66gKCd>;ZqGZ6w=@4QGVd?)h8ZzOdE;-a85;}JmfJdRuGVay8lXRx~u z!`wXa78mE|!IvlwzQXGQarY3fS1-#6^14rCkSCeRaU{ot;_GsU{Jbn>|7+QND)cJ3 z!Pgk?=}IqGZwv$k?2ZXmh99jfi>5a9p!mM~P~taF^%*yOAHNg`N?oq={P-rGA6?J$ zdBBkhIAS-l{Q0F(SUZt z=h9hsDcy|Z=y1&&|951fnq~N#fz$YFkMZamm~dz72n7ISG(Z6Xp(odeQ7MdewVUcm zylf71WsxrCUA34$K#QOQ`bsC_=1jT@0`!IHoJ~#o1!|spQd1f#3~&TB#lBQWZ>IXb zPBX{-GRgA27Qo@YdmvN#eZ?ZvHrP6;qTB!o}H~quP`P!+Df!?(ki|@Omvsm|i$u_?@%tG_| z+N+M<9<_`UVA$KWmTx_4nJhlH`;N9MAb1==eYPv)x>A+yK;)@~*i7w)odA+sGkW8= zxDU}+)=@6**X1w$C@&A=O_?Zn*)vi8XH=GD@$7{y51yQD_B!-q`rUxQBV;yL9MrJ$ z9E8Qi-b@(!-xv=a@}td!WMrVx%r|PtKtqi5%$iN#RC3;eL4Eb#9w#FNx+6v@k%8G$ zmkJ0_MF!qiW5i(5oHYtG%$~Z0DdXn~h?p*5!JN?oU}PlW=SCBxWb{HtGR6wXSZ*?& zBicG#?A?{CJv(x}cV}+*?e;w!^zV+Fx*AExb|U9PkbMlQ6)5;VO3GK;h4 z(H?G!sh%;q-CA&NQG4()qRL5|=k_|3Iq3050D^4pQxmjMG5l4}BYF0~3s1{~gxoz# zl*>ictdOPQ;tvr+P24W(oQ6^3B93(x7j_pdrBkt-aq@NO7GZ{?J_-ZRAN~p;$WNs_ z(+kp0GP6@FZf+dKmDR@F-8NPkHAqGZRDA@tQ5AhyP_(!K6(vzGE}GBM197l8g3oOW zUgU-=Fi<0)pgQH6I7ap{*iKF44qk<9W5rMbXlqPZIJg6D$CrxFIrgnl{z*U}(+QQt zo}t1;jY`MXiZQQ_S}NecQNTfrfP)m?RHX8(Fq*<>8&!V+q0-1(yb<4NeQmX3{OjxM zsjjY~wzgJzkJ$c3oUb&}mf}DQio>q+q#%+PWhvCXh@}3Zm8kzLUORUc=WWAtA9G4% zXKzvFw`Kb!Kp-XeJ$t}&|GPY2X2$b%(*!V z=j#;sALdO{82BL|X!6uwhX1`2WitR(Q-F7++TNJ9QO#X%ey#olf`9MVzX}LcP#~iK z9huy*D<<6r(Xam~+9~}4=FnDvK)Vt16$p?Mg?(W7KccQ9S1U6Nx9Bs8R(;1ZXM!Pq z2Zr+G@}Rd6kZYl?%qdXmB+R_Ho;Nk!RpNcv5q%a27?{~x3-@h$%G3LrCTSGONPrwA zDD5;gFB1g>L^dc&TyOoT4qr>Pv+ldc{6?yAHzLtuxB>-o2-0h|1Mp4#^-v&}Bc;(es&p1|32DHYZC36I!GnBzub9k!4Yd5qU7R@6VbOMU)bY6_hx7Vk@AtpzyP zD0-22i)`=H*e)H&t5R=aHa!V@aECMTu}n{S#_cDM$tx6}RrXD4a%?CNrqUt*2{#JU z#Kk{^`+LTcA8?-MBA@4RBHsjCN|SE$Eas}Xe*21hi?_H3*b5`-K%VO{a&Mm{z-2AF zuk>U0)j=Gz9?sT_J=t=h2iKe@QBZVA0Ks}?{CyP=NJFe6)(r_wpQubs7XNS~ZgI14 zj+%z0zZPe`2XQxeJYK>tc!ew^F=!K6fqTezUysYtIb7X0AB+79IKO)i*0%fU5nVz5 z1TamjXIuuD-Y2{ea8>>^TL8>6szjM9OAC1QET7VXC>|DC zH+voWG5u~p;GeJv=ZIn0d8@N@W=lr)Y2U12ZYotXA-%VTUV_1p0Y41}nmcxQLsOxN zV`s2%_9|ie*D0odfmmNKYn9lxn#FUP!hrw-0SAqM&Rtv3Vj06px(ah;LlmoqbDou>83&}nRN=N0sUGdTzN@1{z zGBT0Uub?F7?L=#Do~A29u%<@(v2gBEWfUga1j|HcB*wiy#s1=6Dl?sV6S6^EL`PHW zqEEf6t}?E3h1*P?g`K55+nK6jKVdS1sVNPhBG-lD=&O|Ztfby$1huY4RC`aSGUha8 z*}=$u11iZOI)A`a{u&@?Pp)&pg6={y59)Y~hbmXDiR)S7X zC*JXxIN!T<`KdslNE+z;bc$0QDGe57bRWShr!K;%x1!RyGjF^!DT~-haaJhB8KFFl zxJ^;eWd#gMgxOE_z05t2>o|Jd#M%7{IsTW#_6t0VyhBl1ASJo66lF&WgFZz7KxZXi znSX_=x;WoziZgx0`6ZZrSchK(1dS4DN*)WydKk~stO&BB-0(iJ1IuZnIX*_0i!)5H zo;3=mNqRh(Ka#xlQ^^xI%{Pg1l%Xb3f(9T+w;9RhCEd8WuOIFK2828q*Fmyt>Qj{nfT~Zx96D$&{8`O`8YPdB!;Sv4 zrx|Vfk74T^JyK5(=HW#N0z&5pDUpG~n{sk7VdmYMH{0@o&l4LtJF&JBC2(9X9|ozO z&cB=1fSQ0g)I9T{rc4;yw?H6N7ESeIN2)!|M7p2RZ0KjG&cleP(?gl7@eNb^f5ol) zgYirIbx0f&Zm%BB%M$S!J-x)6gn86g_)uFINUfLnO#S*$8#Pqi zU;9yYt0UD81B4ND7C?|oz?GT2^cLq3rmsH029n&U&iCg<`Nj;E&6&mYCF_{8Y%QAO7I9U8 z!9L4VY`JuyLFZX`@giGxE+IYSJold^5L8}7bGkc8cdE0lX@H#H*rw zao;T9wKUtM;k+yt_tLBw0uGGh?t(tto!<|eX*~rLbR*;L9?18kKGzijyGkpjKNgAh*jX=^>Z27D5mm7 z9wnvj~-kJ^t%B;c*aukN7do@$!?4u@EOLMx<42lkdtu9r~6H#1G3+MY$h~X znBC@%X_TJUn77CD>!pK+fQXIr7c+m#Y>W*i2*W-}822ekKBk7_8;(;McN6j6#K25h zmyv*RCR2oYpU%_?^O$MAh&j`iF@NR?1s)_!ENLdnpn`_=%2KA8H)EyJ9BIn#9Tz7NUMe!-it6@h!1_4wOGh7Y06^g!mYCoVY>%k&D>U zXDGI61F-Dchs!;>b4#NaH~M$yQs>^>>N}7f?RsP5asSuf-9+1Z5X>yUHDk{3@!UEY>EMfqHwKl*UAq@M)@?8?+j$FO5pLmCjl*cUPP5g&IkZNU!#iB0U+}i*I znT;^;%hcTU=GW>^Ao%xw{oX*Z_v~$23*#@F0<|A8k4`#^RRHiaq5zHRYP3peO4PFN zBtGvwj!C19ao#zMT+89)-I_>_^Kx?B*YnV48!tk4P!%v&)mFc;oqscu#{Z3rFigAj zl#a!&TlK{DW+DWN(HGmJHc=z42})$35ey1FsE*p)kmmj4enW|}h8`cnZ1rzgXxxT7 zZbN=m^C4*vWfPLf2h+%WvIDQEWo)wO#>NZX*>0)Eo}2yIc1@iP=ey(QvXsiy*A?>7EHCTxd5qt)W!%?95q~} z=n+)=4HhP`CslVki@NDj^U#^P@WelH<|McqeyUw5Hu zVUksK?nXMFIaG9-+sa!uTz=rMNQ;tQOEw&Mht8CzK4s?VF*?C1sL4vLbbCN zwHenbNDm+;_y*<4BEK{%$a3OkrU#xoCvkgbFDxc?=Yr6^rTvJq-y+KTfMgMM=ZOG`2ahk1{lwyfYtT>8?*{~#%eWsRNPf&`820Ze3~Qqi|4{NN zzKjIO4#17Zen1~xbViI4CSL3pX5C1n8L6+5k&ra{vdzAM_BaI`itDYV4T)Py@^JhgqOO-Nx zyf1|SCqpyz)xKlb;xQCuhhcr&o&{?U(|zPB`i)${>i*iC?9mfTjUn7yJ|DNE`v^F+ z9m^3TINd{y9sP&WecTqd?mtgVgg*(k+qgbM4WA3!IX$Wk-utIeoE7=b$UN`pHv@u3 zB?}0O<5l8SRkNSyT|B?LnuPhr_W9TDHQBlhbygtTl&;9pwv zWX}X@;`Z_?*;?cktK`}IxqcZCln6*G$OpV6{r68 z4M+a+7018*jvM2&3B9 z1+Y5HmHYntC=QxOMf4J0$1S5ufI(IKa_SP7i)*GKmzOq)5c~-Qf4=@;uiqO84qG}Y zLw_o2#^nE)x+zV9=F_s@Wd7cB9NN03Sgg_F!FknaK{-x~$q73{PULx>rrxHqFo4>! zXq8znkEP~`E7d;c!i4C5Xs{b3`wW!c9m(}2I>i5Ir($9HWz!(pSHMNia4(kk#qtNB z`j$j4{Boc1ZWMR)@wSCGQ8QjWFS+9ioE-N z!t{poO&|0LGkbo5m(^k_xlie<+xRA|!tS=7kUpWOgy|Jv;B$ ziuxJ9eL@~6+t6ptBJ1fMa-N*wLEcr8Q!H@{T8E?GQryKdHsKucY3E7LyFy)k1aDF= zl5~9`(N~rbdU`hgCuWg+$_)2)rr0kx!cNF>wK2gbrt_*Gff}FD)Ohx$HclAd$D;13 z2H)3Rs3usLV~1XfY7z|u9I1)VWD`YcZUmg3&piPfPD1xLjpP2tamstgbz{hjxQy(8 zT~`%Kyz3FJ&e!Aoj1gR#DZa-ut9e=MBlbs8`NoyZf*nd<0ohkV!jRIrSS#6Y)^-j^J_UR;Q1%SP+w}gTqb*k?6691LH)FcTA z3>`_`BNyslCX4)np){6E=M&h?8-&$#0a|i$v{`C+?9##8XEA<>TkwtDD6|^qh}ql^ zTR=ek4kA;Jh;lC{G;KL)`A3?)4*i&ZHy}uOw1so$`=j6Gb4;`iRc5tW6DvmqGJOjJ z{S||($GHs~c;j;i0v&|zg1(8nfYwS2$MWkfP&}A zLrU75+m{3oEKmTVxpV#;$ss5g zI9+GKrW3T$UQSoz^|UwHKuX9x3RAoZ4)qdVF@f-KAG(j;z_2k3nZ9@f9@e|T$Aq*q z>Ui!NLt$DlkCOr@Nc4SYRGts?8v{XUemWItPE^Z&08x8+ZL@;VX*%p_^)2f^|ALJz zguW2^{BuQ{zL5HY4J}%*zGX|cwfu^s|NM$F_l;CV@1Q5l}_kR8UK=9#A#XqDTCXEoVfUo*b z;cq?6P#ZdmeG7GoK0bu}ORAYJY9H(E-NgyXIlkMzf z`+M2sMvh1$pQ2hj2zbaVI!x}f17ttjPj1m(iYsnYR~SNV z&;qLc1&n!(62`w9RrWpJmDpD8Aq=tqG-0AAP?vj`^4CG+mmKC{(GfBq?js{trPS;l zBxPM1@KQvm~$RP}%8Chl9YP%rYV z7kP^ERM!Ubrpkv`RUT9blV4tWpR!l?iT2pbxtYV+tkZ>M1KY4>SbGkQ?t}B0c|3Y- zA%JdI0}RMc#d5?tRozvi458pLnBglV&*^(~G;uCVc~p2> z{LYRFkQ2YXCp!f2Y*(Ns{qYv@+gz(OgOa0V#b*D(h8+z{UdxJE-=e41Lzq-)%0D!; z@@cz#+THksU#eS|5v-X$j{?VQ;CqL9uUkJTyl)HRD!@SwOC^8-Z?R2mf8$|8{Ec&5 z*t&%UQ|Bp}Zi5kYG=G>CL4@r(tv+F`cV7Yg=tQpSQuy7tma{6Al{evaq1u6 za9V(XH2o(907wXE1cI|I+j62|{gl{#TJ95RPqb^x#eGIxx0}t4dke61T+C&M1tfWz z^E7fVxuM5N3AjvVtUHf0Ln%@s8$a!H{OLd-@)K!`bK`iH9m(UgAhP4#NDi~(Y>ET| zKNddpVrserW7F+0$+XA#!Cgj*rA~@1=GpgIUf`>M!=#-17-rZj`=pG;`q+#+OijMQ zeE);2wVcb*vnJefF~mFC1iysQ;(|PepbP;AKQm&`-1X+y>Q5l}_kR5`fM5-s^_D9A z3clzwkuTK5b=<&|lPk1IKCP~F5YBDrAT0Ip(h!PlGPKp;Xu zKy*V>9xrO*_lo^8I`I2H!EY)F7BBA`@WfVEQKhq?GL&d@X@9Qj+>MlZ3g&5i%Zwpk z+Hyw^t8b@V4Q3VUK?Y-=b+XxKOXsVW@6vHhIrhkf&^7L7z2~0I1G|g0)G;vKY zvw(_J>T=Fe_vnhy)$f&SL4Bz|&nsPoshcGrMC32>l27qvzA}G#p2l;^ZSov)Y<(%& zHeQ~)u{=t;6j7#z@%Lr)Lq-M~4RNC+6a*y8sE9cUc`L{-K12DddsJ2V3IGTe5{lRIpWPcJrwCD1pNBC1fAr`Aa*>o;&jDg(Ed@ z?om%Nb;Ul^r~1#6vny1Wk9h*Im zq=$>h5r(};Kuc9^2DLdB)I^w58$IiLMNX$SW+8Q=-sRO{6qMamMmtK#U7&PqmwCp@ zb#ab3Aqk=q+~kN!5@6)_E2BNi@2sKBvh1=B68hx#9iFkg+3V1c>30Ky`yLAzJLvDq z)9R1)9gqfDQ^VwKzX7$LTIdWlB~ci8{Opa6`12xPON z=K4&?ZB6@DNN|utseZg~#RLoo^kjiiPaZvpXXVyov{V~MU%eT0)?Z0C?YRv2vK>%dI+b^mAeKzfhU}qXGb= zBpjS<00JdKAl}R6@lU_yK*!E3oHv;sCtp@pp9VJ8JwE@v_2S7(#JPOc>E@ zUcbGBAx;v8SQtqO5MddUg&CbA;6O$lT9j^@MDWOFk zD~)q_x;aq~W++eGV{;Y>bG(AQqP@JS&J^FZ0adpQU@|;gfFH#{4cI9g~v2>!K^n%EHm14}L5tn@dq@-b&ksMi%;MB2-VQv~3 z`1w*nl+y1&0%4+@)a-r9?cYlkWzr=<)V;jeiQ3S$s^6=eiQBzVred4;|K{G}Veth4 zfTQ0Y`)+>ko=fg;96Gi6@_w%{asO`aI`m`u-GIR2>?B62wPuv;#QPEBDvhpu;w??C zd{REBpFS5iZ&sQJHD~O9OUWpL5?%1MQ#DBnu&2QBI)3MmacSEY*34eWC>gyFKp^`j zXbK=u0fWleH&>q@k~~fxe{9`4ajv^Ow!gyS3DfD_<9i^Gk`VH~(U<1G>2Ru2I>SwW z00_iqKe!LGb=s2>6UgFCC+IP98Ew@k@y|AW>C>kl+c&Le`I1E}UA&NWt5={oLW}?B z?_ctDmw^l%J&zg7*OPMd9Ip=_rsnWbUhO}?>plB;ar7{m&R0ncyF-SbEe|}c$@a7% zGt!Bi6kiH5!i4dBBuwbDp9KUjo}`i^03fL4cjUF}OtC2AbD_MRYQ%I@J?Vcc41SJy zpWnN$5)CNs*PpQV-SPUS6Y(9o^R!nVo{3|U1vof=+leT1LCW(?u-UT}AD3GKTH=4W zxs%ZQKu{yfpOx;<(+w-BHJe7=f@RdL-9+8$jnqr6+d`%JRGw<|q@Yg=p7#Bcv>q*a z+~-T4^l3>~%0D#&fe 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 literal 0 HcmV?d00001 diff --git a/docs/html/images/distribute/stories/lifesum-icon.png b/docs/html/images/distribute/stories/lifesum-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3975ff260ed4f6eada0a2c95fc02ca8963920569 GIT binary patch literal 10652 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 literal 0 HcmV?d00001 diff --git a/docs/html/jd_extras_en.js b/docs/html/jd_extras_en.js index bb797b2ab1d1..1a97db4dc94e 100644 --- a/docs/html/jd_extras_en.js +++ b/docs/html/jd_extras_en.js @@ -2981,7 +2981,6 @@ METADATA['en'].extras = METADATA['en'].extras.concat([ "type": "distribute", "category": "google" }, - { "lang": "en", "group": "", @@ -5379,6 +5378,9 @@ METADATA['en'].collections = { "distribute/stories/games/docs": { "title": "", "resources": [ + "distribute/stories/games/animoca-star-girl.html", + "distribute/stories/games/happy-labs-experiment.html", + "distribute/stories/games/playlab-puzzles.html", "distribute/stories/games/upbeat-games.html", "distribute/stories/games/tapps.html", "distribute/stories/games/noodlecake-super-stickman.html", @@ -5401,6 +5403,11 @@ METADATA['en'].collections = { "distribute/stories/apps/docs": { "title": "", "resources": [ + "distribute/stories/apps/condenast-shopping.html", + "distribute/stories/apps/economist-espresso.html", + "distribute/stories/apps/expressen-sports.html", + "distribute/stories/apps/drupe-communications.html", + "distribute/stories/apps/noom-health.html", "distribute/stories/apps/aftenposten.html", "distribute/stories/apps/el-mundo.html", "distribute/stories/apps/segundamano.html", -- GitLab From fc4a5c2d85eea5650cc722c1f3e7ab026accd624 Mon Sep 17 00:00:00 2001 From: Nick Kralevich Date: Tue, 11 Oct 2016 09:01:38 -0700 Subject: [PATCH 710/809] Delete "Show CPU usage" This functionality hasn't worked since Lollipop. Bug: 21388590 Change-Id: Ie4388d88f6e06f3e2d2e84e9c4515b3ebc6a0ea5 --- api/current.txt | 2 +- api/system-current.txt | 2 +- api/test-current.txt | 2 +- core/java/android/provider/Settings.java | 8 +- packages/SettingsLib/res/values/strings.xml | 5 - .../providers/settings/DatabaseHelper.java | 1 - packages/SystemUI/AndroidManifest.xml | 3 - .../com/android/systemui/BootReceiver.java | 46 --- .../android/systemui/LoadAverageService.java | 315 ------------------ .../server/policy/PhoneWindowManager.java | 16 - 10 files changed, 9 insertions(+), 391 deletions(-) delete mode 100644 packages/SystemUI/src/com/android/systemui/BootReceiver.java delete mode 100644 packages/SystemUI/src/com/android/systemui/LoadAverageService.java diff --git a/api/current.txt b/api/current.txt index 08bf3ed4a5aa..8655d8995808 100644 --- a/api/current.txt +++ b/api/current.txt @@ -32482,7 +32482,7 @@ package android.provider { field public static final java.lang.String RADIO_CELL = "cell"; field public static final java.lang.String RADIO_NFC = "nfc"; field public static final java.lang.String RADIO_WIFI = "wifi"; - field public static final java.lang.String SHOW_PROCESSES = "show_processes"; + field public static final deprecated java.lang.String SHOW_PROCESSES = "show_processes"; field public static final java.lang.String STAY_ON_WHILE_PLUGGED_IN = "stay_on_while_plugged_in"; field public static final java.lang.String TRANSITION_ANIMATION_SCALE = "transition_animation_scale"; field public static final java.lang.String USB_MASS_STORAGE_ENABLED = "usb_mass_storage_enabled"; diff --git a/api/system-current.txt b/api/system-current.txt index b3d016962984..0fe164a269cd 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -35238,7 +35238,7 @@ package android.provider { field public static final java.lang.String RADIO_CELL = "cell"; field public static final java.lang.String RADIO_NFC = "nfc"; field public static final java.lang.String RADIO_WIFI = "wifi"; - field public static final java.lang.String SHOW_PROCESSES = "show_processes"; + field public static final deprecated java.lang.String SHOW_PROCESSES = "show_processes"; field public static final java.lang.String STAY_ON_WHILE_PLUGGED_IN = "stay_on_while_plugged_in"; field public static final java.lang.String THEATER_MODE_ON = "theater_mode_on"; field public static final java.lang.String TRANSITION_ANIMATION_SCALE = "transition_animation_scale"; diff --git a/api/test-current.txt b/api/test-current.txt index 17bd2c7e4d64..d74526b72150 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -32560,7 +32560,7 @@ package android.provider { field public static final java.lang.String RADIO_CELL = "cell"; field public static final java.lang.String RADIO_NFC = "nfc"; field public static final java.lang.String RADIO_WIFI = "wifi"; - field public static final java.lang.String SHOW_PROCESSES = "show_processes"; + field public static final deprecated java.lang.String SHOW_PROCESSES = "show_processes"; field public static final java.lang.String STAY_ON_WHILE_PLUGGED_IN = "stay_on_while_plugged_in"; field public static final java.lang.String TRANSITION_ANIMATION_SCALE = "transition_animation_scale"; field public static final java.lang.String USB_MASS_STORAGE_ENABLED = "usb_mass_storage_enabled"; diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 9268db7c2e42..8bb6942fb73f 100755 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -1850,7 +1850,6 @@ public final class Settings { MOVED_TO_GLOBAL.add(Settings.Global.CALL_AUTO_RETRY); MOVED_TO_GLOBAL.add(Settings.Global.DEBUG_APP); MOVED_TO_GLOBAL.add(Settings.Global.WAIT_FOR_DEBUGGER); - MOVED_TO_GLOBAL.add(Settings.Global.SHOW_PROCESSES); MOVED_TO_GLOBAL.add(Settings.Global.ALWAYS_FINISH_ACTIVITIES); MOVED_TO_GLOBAL.add(Settings.Global.TZINFO_UPDATE_CONTENT_URL); MOVED_TO_GLOBAL.add(Settings.Global.TZINFO_UPDATE_METADATA_URL); @@ -2787,7 +2786,8 @@ public final class Settings { /** * Control whether the process CPU usage meter should be shown. * - * @deprecated Use {@link Global#SHOW_PROCESSES} instead + * @deprecated This functionality is no longer available as of + * {@link android.os.Build.VERSION_CODES#N_MR1}. */ @Deprecated public static final String SHOW_PROCESSES = Global.SHOW_PROCESSES; @@ -8406,7 +8406,11 @@ public final class Settings { /** * Control whether the process CPU usage meter should be shown. + * + * @deprecated This functionality is no longer available as of + * {@link android.os.Build.VERSION_CODES#N_MR1}. */ + @Deprecated public static final String SHOW_PROCESSES = "show_processes"; /** diff --git a/packages/SettingsLib/res/values/strings.xml b/packages/SettingsLib/res/values/strings.xml index 08e5164fb252..43b766803e33 100644 --- a/packages/SettingsLib/res/values/strings.xml +++ b/packages/SettingsLib/res/values/strings.xml @@ -582,11 +582,6 @@ Force screen layout direction to RTL for all locales - - Show CPU usage - - Screen overlay showing current CPU usage - Force GPU rendering diff --git a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java index 7338a9cb654b..c1a1f844f6d9 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java @@ -1483,7 +1483,6 @@ class DatabaseHelper extends SQLiteOpenHelper { Settings.Global.CALL_AUTO_RETRY, Settings.Global.DEBUG_APP, Settings.Global.WAIT_FOR_DEBUGGER, - Settings.Global.SHOW_PROCESSES, Settings.Global.ALWAYS_FINISH_ACTIVITIES, }; String[] secureToGlobal = { diff --git a/packages/SystemUI/AndroidManifest.xml b/packages/SystemUI/AndroidManifest.xml index de2511574e09..443299e09708 100644 --- a/packages/SystemUI/AndroidManifest.xml +++ b/packages/SystemUI/AndroidManifest.xml @@ -213,9 +213,6 @@ - - diff --git a/packages/SystemUI/src/com/android/systemui/BootReceiver.java b/packages/SystemUI/src/com/android/systemui/BootReceiver.java deleted file mode 100644 index 8e24eebd10cc..000000000000 --- a/packages/SystemUI/src/com/android/systemui/BootReceiver.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (C) 2011 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. - */ - -package com.android.systemui; - -import android.content.BroadcastReceiver; -import android.content.ContentResolver; -import android.content.Context; -import android.content.Intent; -import android.provider.Settings; -import android.util.Log; - -/** - * Performs a number of miscellaneous, non-system-critical actions - * after the system has finished booting. - */ -public class BootReceiver extends BroadcastReceiver { - private static final String TAG = "SystemUIBootReceiver"; - - @Override - public void onReceive(final Context context, Intent intent) { - try { - // Start the load average overlay, if activated - ContentResolver res = context.getContentResolver(); - if (Settings.Global.getInt(res, Settings.Global.SHOW_PROCESSES, 0) != 0) { - Intent loadavg = new Intent(context, com.android.systemui.LoadAverageService.class); - context.startService(loadavg); - } - } catch (Exception e) { - Log.e(TAG, "Can't start load average service", e); - } - } -} diff --git a/packages/SystemUI/src/com/android/systemui/LoadAverageService.java b/packages/SystemUI/src/com/android/systemui/LoadAverageService.java deleted file mode 100644 index 59ffe03b842f..000000000000 --- a/packages/SystemUI/src/com/android/systemui/LoadAverageService.java +++ /dev/null @@ -1,315 +0,0 @@ -/* - * Copyright (C) 2007 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. - */ - -package com.android.systemui; - -import android.app.Service; -import android.content.Context; -import android.content.Intent; -import android.graphics.Canvas; -import android.graphics.Paint; -import android.graphics.PixelFormat; -import android.os.Handler; -import android.os.IBinder; -import android.os.Message; -import android.view.Gravity; -import android.view.View; -import android.view.WindowManager; - -import com.android.internal.os.ProcessCpuTracker; - -public class LoadAverageService extends Service { - private View mView; - - private static final class CpuTracker extends ProcessCpuTracker { - String mLoadText; - int mLoadWidth; - - private final Paint mPaint; - - CpuTracker(Paint paint) { - super(false); - mPaint = paint; - } - - @Override - public void onLoadChanged(float load1, float load5, float load15) { - mLoadText = load1 + " / " + load5 + " / " + load15; - mLoadWidth = (int)mPaint.measureText(mLoadText); - } - - @Override - public int onMeasureProcessName(String name) { - return (int)mPaint.measureText(name); - } - } - - private class LoadView extends View { - private Handler mHandler = new Handler() { - @Override - public void handleMessage(Message msg) { - if (msg.what == 1) { - mStats.update(); - updateDisplay(); - Message m = obtainMessage(1); - sendMessageDelayed(m, 2000); - } - } - }; - - private final CpuTracker mStats; - - private Paint mLoadPaint; - private Paint mAddedPaint; - private Paint mRemovedPaint; - private Paint mShadowPaint; - private Paint mShadow2Paint; - private Paint mIrqPaint; - private Paint mSystemPaint; - private Paint mUserPaint; - private float mAscent; - private int mFH; - - private int mNeededWidth; - private int mNeededHeight; - - LoadView(Context c) { - super(c); - - setPadding(4, 4, 4, 4); - //setBackgroundResource(com.android.internal.R.drawable.load_average_background); - - // Need to scale text size by density... but we won't do it - // linearly, because with higher dps it is nice to squeeze the - // text a bit to fit more of it. And with lower dps, trying to - // go much smaller will result in unreadable text. - int textSize = 10; - float density = c.getResources().getDisplayMetrics().density; - if (density < 1) { - textSize = 9; - } else { - textSize = (int)(10*density); - if (textSize < 10) { - textSize = 10; - } - } - mLoadPaint = new Paint(); - mLoadPaint.setAntiAlias(true); - mLoadPaint.setTextSize(textSize); - mLoadPaint.setARGB(255, 255, 255, 255); - - mAddedPaint = new Paint(); - mAddedPaint.setAntiAlias(true); - mAddedPaint.setTextSize(textSize); - mAddedPaint.setARGB(255, 128, 255, 128); - - mRemovedPaint = new Paint(); - mRemovedPaint.setAntiAlias(true); - mRemovedPaint.setStrikeThruText(true); - mRemovedPaint.setTextSize(textSize); - mRemovedPaint.setARGB(255, 255, 128, 128); - - mShadowPaint = new Paint(); - mShadowPaint.setAntiAlias(true); - mShadowPaint.setTextSize(textSize); - //mShadowPaint.setFakeBoldText(true); - mShadowPaint.setARGB(192, 0, 0, 0); - mLoadPaint.setShadowLayer(4, 0, 0, 0xff000000); - - mShadow2Paint = new Paint(); - mShadow2Paint.setAntiAlias(true); - mShadow2Paint.setTextSize(textSize); - //mShadow2Paint.setFakeBoldText(true); - mShadow2Paint.setARGB(192, 0, 0, 0); - mLoadPaint.setShadowLayer(2, 0, 0, 0xff000000); - - mIrqPaint = new Paint(); - mIrqPaint.setARGB(0x80, 0, 0, 0xff); - mIrqPaint.setShadowLayer(2, 0, 0, 0xff000000); - mSystemPaint = new Paint(); - mSystemPaint.setARGB(0x80, 0xff, 0, 0); - mSystemPaint.setShadowLayer(2, 0, 0, 0xff000000); - mUserPaint = new Paint(); - mUserPaint.setARGB(0x80, 0, 0xff, 0); - mSystemPaint.setShadowLayer(2, 0, 0, 0xff000000); - - mAscent = mLoadPaint.ascent(); - float descent = mLoadPaint.descent(); - mFH = (int)(descent - mAscent + .5f); - - mStats = new CpuTracker(mLoadPaint); - mStats.init(); - updateDisplay(); - } - - @Override - protected void onAttachedToWindow() { - super.onAttachedToWindow(); - mHandler.sendEmptyMessage(1); - } - - @Override - protected void onDetachedFromWindow() { - super.onDetachedFromWindow(); - mHandler.removeMessages(1); - } - - @Override - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - setMeasuredDimension(resolveSize(mNeededWidth, widthMeasureSpec), - resolveSize(mNeededHeight, heightMeasureSpec)); - } - - @Override - public void onDraw(Canvas canvas) { - super.onDraw(canvas); - final int W = mNeededWidth; - final int RIGHT = getWidth()-1; - - final CpuTracker stats = mStats; - final int userTime = stats.getLastUserTime(); - final int systemTime = stats.getLastSystemTime(); - final int iowaitTime = stats.getLastIoWaitTime(); - final int irqTime = stats.getLastIrqTime(); - final int softIrqTime = stats.getLastSoftIrqTime(); - final int idleTime = stats.getLastIdleTime(); - - final int totalTime = userTime+systemTime+iowaitTime+irqTime+softIrqTime+idleTime; - if (totalTime == 0) { - return; - } - int userW = (userTime*W)/totalTime; - int systemW = (systemTime*W)/totalTime; - int irqW = ((iowaitTime+irqTime+softIrqTime)*W)/totalTime; - - int paddingRight = getPaddingRight(); - int x = RIGHT - paddingRight; - int top = getPaddingTop() + 2; - int bottom = getPaddingTop() + mFH - 2; - - if (irqW > 0) { - canvas.drawRect(x-irqW, top, x, bottom, mIrqPaint); - x -= irqW; - } - if (systemW > 0) { - canvas.drawRect(x-systemW, top, x, bottom, mSystemPaint); - x -= systemW; - } - if (userW > 0) { - canvas.drawRect(x-userW, top, x, bottom, mUserPaint); - x -= userW; - } - - int y = getPaddingTop() - (int)mAscent; - canvas.drawText(stats.mLoadText, RIGHT-paddingRight-stats.mLoadWidth-1, - y-1, mShadowPaint); - canvas.drawText(stats.mLoadText, RIGHT-paddingRight-stats.mLoadWidth-1, - y+1, mShadowPaint); - canvas.drawText(stats.mLoadText, RIGHT-paddingRight-stats.mLoadWidth+1, - y-1, mShadow2Paint); - canvas.drawText(stats.mLoadText, RIGHT-paddingRight-stats.mLoadWidth+1, - y+1, mShadow2Paint); - canvas.drawText(stats.mLoadText, RIGHT-paddingRight-stats.mLoadWidth, - y, mLoadPaint); - - int N = stats.countWorkingStats(); - for (int i=0; i 0) { - canvas.drawRect(x-systemW, top, x, bottom, mSystemPaint); - x -= systemW; - } - if (userW > 0) { - canvas.drawRect(x-userW, top, x, bottom, mUserPaint); - x -= userW; - } - - canvas.drawText(st.name, RIGHT-paddingRight-st.nameWidth-1, - y-1, mShadowPaint); - canvas.drawText(st.name, RIGHT-paddingRight-st.nameWidth-1, - y+1, mShadowPaint); - canvas.drawText(st.name, RIGHT-paddingRight-st.nameWidth+1, - y-1, mShadow2Paint); - canvas.drawText(st.name, RIGHT-paddingRight-st.nameWidth+1, - y+1, mShadow2Paint); - Paint p = mLoadPaint; - if (st.added) p = mAddedPaint; - if (st.removed) p = mRemovedPaint; - canvas.drawText(st.name, RIGHT-paddingRight-st.nameWidth, y, p); - } - } - - void updateDisplay() { - final CpuTracker stats = mStats; - final int NW = stats.countWorkingStats(); - - int maxWidth = stats.mLoadWidth; - for (int i=0; i maxWidth) { - maxWidth = st.nameWidth; - } - } - - int neededWidth = getPaddingLeft() + getPaddingRight() + maxWidth; - int neededHeight = getPaddingTop() + getPaddingBottom() + (mFH*(1+NW)); - if (neededWidth != mNeededWidth || neededHeight != mNeededHeight) { - mNeededWidth = neededWidth; - mNeededHeight = neededHeight; - requestLayout(); - } else { - invalidate(); - } - } - } - - @Override - public void onCreate() { - super.onCreate(); - mView = new LoadView(this); - WindowManager.LayoutParams params = new WindowManager.LayoutParams( - WindowManager.LayoutParams.MATCH_PARENT, - WindowManager.LayoutParams.WRAP_CONTENT, - WindowManager.LayoutParams.TYPE_SECURE_SYSTEM_OVERLAY, - WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE| - WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE, - PixelFormat.TRANSLUCENT); - params.gravity = Gravity.END | Gravity.TOP; - params.setTitle("Load Average"); - WindowManager wm = (WindowManager)getSystemService(WINDOW_SERVICE); - wm.addView(mView, params); - } - - @Override - public void onDestroy() { - super.onDestroy(); - ((WindowManager)getSystemService(WINDOW_SERVICE)).removeView(mView); - mView = null; - } - - @Override - public IBinder onBind(Intent intent) { - return null; - } - -} diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index b8f7d1f08dca..f027b941454d 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -177,7 +177,6 @@ public class PhoneWindowManager implements WindowManagerPolicy { static final boolean DEBUG_STARTING_WINDOW = false; static final boolean DEBUG_WAKEUP = false; static final boolean SHOW_STARTING_ANIMATIONS = true; - static final boolean SHOW_PROCESSES_ON_ALT_MENU = false; // Whether to allow dock apps with METADATA_DOCK_HOME to temporarily take over the Home key. // No longer recommended for desk docks; @@ -3157,21 +3156,6 @@ public class PhoneWindowManager implements WindowManagerPolicy { mContext.sendOrderedBroadcastAsUser(intent, UserHandle.CURRENT, null, null, null, 0, null, null); return -1; - } else if (SHOW_PROCESSES_ON_ALT_MENU && - (metaState & KeyEvent.META_ALT_ON) == KeyEvent.META_ALT_ON) { - Intent service = new Intent(); - service.setClassName(mContext, "com.android.server.LoadAverageService"); - ContentResolver res = mContext.getContentResolver(); - boolean shown = Settings.Global.getInt( - res, Settings.Global.SHOW_PROCESSES, 0) != 0; - if (!shown) { - mContext.startService(service); - } else { - mContext.stopService(service); - } - Settings.Global.putInt( - res, Settings.Global.SHOW_PROCESSES, shown ? 0 : 1); - return -1; } } } else if (keyCode == KeyEvent.KEYCODE_SEARCH) { -- GitLab From 374ddfe529739109b35039306f6f4d880c86deff Mon Sep 17 00:00:00 2001 From: Andrew Solovay Date: Tue, 11 Oct 2016 10:50:31 -0700 Subject: [PATCH 711/809] docs: Changed Google Analytics link to https:// We've changed the script so the auto-generated versions of these files will now use https:// for the Google Analytics links (required if the files are going to be moved into Piper) but the existing files haven't had that change applied, so I'm doing it by hand. I'll build and stage to https://android-dot-devsite.googleplex.com/sdk/support_api_diff/... Change-Id: Ia11114920f84101522cd4511fde6a0363675bf24 --- .../22.2.0/changes/alldiffs_index_additions.html | 2 +- .../sdk/support_api_diff/22.2.0/changes/alldiffs_index_all.html | 2 +- .../support_api_diff/22.2.0/changes/alldiffs_index_changes.html | 2 +- .../22.2.0/changes/alldiffs_index_removals.html | 2 +- ...id.support.v4.media.session.PlaybackStateCompat.Builder.html | 2 +- ...pport.v4.media.session.PlaybackStateCompat.CustomAction.html | 2 +- .../android.support.v4.media.session.PlaybackStateCompat.html | 2 +- .../22.2.0/changes/android.support.v4.view.ViewCompat.html | 2 +- .../22.2.0/changes/android.support.v4.view.ViewPager.html | 2 +- .../changes/android.support.v4.view.ViewParentCompat.html | 2 +- .../android.support.v4.view.ViewPropertyAnimatorCompat.html | 2 +- ....support.v4.view.accessibility.AccessibilityEventCompat.html | 2 +- .../changes/android.support.v7.app.AppCompatActivity.html | 2 +- .../changes/android.support.v7.app.AppCompatCallback.html | 2 +- .../changes/android.support.v7.app.AppCompatDelegate.html | 2 +- .../22.2.0/changes/android.support.v7.app.AppCompatDialog.html | 2 +- .../22.2.0/changes/android.support.v7.util.SortedList.html | 2 +- .../sdk/support_api_diff/22.2.0/changes/changes-summary.html | 2 +- .../22.2.0/changes/classes_index_additions.html | 2 +- .../sdk/support_api_diff/22.2.0/changes/classes_index_all.html | 2 +- .../support_api_diff/22.2.0/changes/classes_index_changes.html | 2 +- .../support_api_diff/22.2.0/changes/classes_index_removals.html | 2 +- .../22.2.0/changes/constructors_index_additions.html | 2 +- .../support_api_diff/22.2.0/changes/constructors_index_all.html | 2 +- .../22.2.0/changes/constructors_index_changes.html | 2 +- .../22.2.0/changes/constructors_index_removals.html | 2 +- .../support_api_diff/22.2.0/changes/fields_index_additions.html | 2 +- .../sdk/support_api_diff/22.2.0/changes/fields_index_all.html | 2 +- .../support_api_diff/22.2.0/changes/fields_index_changes.html | 2 +- .../support_api_diff/22.2.0/changes/fields_index_removals.html | 2 +- docs/html/sdk/support_api_diff/22.2.0/changes/jdiff_help.html | 2 +- .../sdk/support_api_diff/22.2.0/changes/jdiff_statistics.html | 2 +- .../sdk/support_api_diff/22.2.0/changes/jdiff_topleftframe.html | 2 +- .../22.2.0/changes/methods_index_additions.html | 2 +- .../sdk/support_api_diff/22.2.0/changes/methods_index_all.html | 2 +- .../support_api_diff/22.2.0/changes/methods_index_changes.html | 2 +- .../support_api_diff/22.2.0/changes/methods_index_removals.html | 2 +- .../22.2.0/changes/packages_index_additions.html | 2 +- .../sdk/support_api_diff/22.2.0/changes/packages_index_all.html | 2 +- .../support_api_diff/22.2.0/changes/packages_index_changes.html | 2 +- .../22.2.0/changes/packages_index_removals.html | 2 +- .../22.2.0/changes/pkg_android.support.v4.media.session.html | 2 +- .../changes/pkg_android.support.v4.view.accessibility.html | 2 +- .../22.2.0/changes/pkg_android.support.v4.view.html | 2 +- .../22.2.0/changes/pkg_android.support.v7.app.html | 2 +- .../22.2.0/changes/pkg_android.support.v7.util.html | 2 +- .../22.2.1/changes/alldiffs_index_additions.html | 2 +- .../sdk/support_api_diff/22.2.1/changes/alldiffs_index_all.html | 2 +- .../support_api_diff/22.2.1/changes/alldiffs_index_changes.html | 2 +- .../22.2.1/changes/alldiffs_index_removals.html | 2 +- ...ndroid.support.design.widget.CoordinatorLayout.Behavior.html | 2 +- ...oid.support.design.widget.FloatingActionButton.Behavior.html | 2 +- .../android.support.design.widget.FloatingActionButton.html | 2 +- .../22.2.1/changes/android.support.design.widget.Snackbar.html | 2 +- .../changes/android.support.design.widget.TabLayout.Tab.html | 2 +- .../22.2.1/changes/android.support.design.widget.TabLayout.html | 2 +- .../android.support.v17.leanback.app.DetailsFragment.html | 2 +- ...android.support.v17.leanback.app.DetailsSupportFragment.html | 2 +- ...support.v17.leanback.widget.DetailsOverviewRowPresenter.html | 2 +- ...upport.v17.leanback.widget.ItemBridgeAdapter.ViewHolder.html | 2 +- .../android.support.v17.leanback.widget.ItemBridgeAdapter.html | 2 +- .../android.support.v17.leanback.widget.ListRowPresenter.html | 2 +- ...oid.support.v17.leanback.widget.OnChildSelectedListener.html | 2 +- ...ndroid.support.v17.leanback.widget.Presenter.ViewHolder.html | 2 +- .../changes/android.support.v17.leanback.widget.Presenter.html | 2 +- .../android.support.v17.leanback.widget.PresenterSelector.html | 2 +- .../android.support.v17.leanback.widget.RowPresenter.html | 2 +- ...roid.support.v17.leanback.widget.ShadowOverlayContainer.html | 2 +- ...droid.support.v17.leanback.widget.VerticalGridPresenter.html | 2 +- .../android.support.v4.app.NotificationCompat.Action.html | 2 +- .../android.support.v4.app.NotificationCompatBase.Action.html | 2 +- .../changes/android.support.v4.app.NotificationCompatBase.html | 2 +- .../22.2.1/changes/android.support.v7.appcompat.R.attr.html | 2 +- .../22.2.1/changes/android.support.v7.appcompat.R.dimen.html | 2 +- .../22.2.1/changes/android.support.v7.appcompat.R.drawable.html | 2 +- .../22.2.1/changes/android.support.v7.appcompat.R.id.html | 2 +- .../22.2.1/changes/android.support.v7.appcompat.R.integer.html | 2 +- .../22.2.1/changes/android.support.v7.appcompat.R.layout.html | 2 +- .../22.2.1/changes/android.support.v7.appcompat.R.string.html | 2 +- .../22.2.1/changes/android.support.v7.appcompat.R.style.html | 2 +- .../changes/android.support.v7.appcompat.R.styleable.html | 2 +- .../22.2.1/changes/android.support.v7.util.SortedList.html | 2 +- .../sdk/support_api_diff/22.2.1/changes/changes-summary.html | 2 +- .../22.2.1/changes/classes_index_additions.html | 2 +- .../sdk/support_api_diff/22.2.1/changes/classes_index_all.html | 2 +- .../support_api_diff/22.2.1/changes/classes_index_changes.html | 2 +- .../support_api_diff/22.2.1/changes/classes_index_removals.html | 2 +- .../22.2.1/changes/constructors_index_additions.html | 2 +- .../support_api_diff/22.2.1/changes/constructors_index_all.html | 2 +- .../22.2.1/changes/constructors_index_changes.html | 2 +- .../22.2.1/changes/constructors_index_removals.html | 2 +- .../support_api_diff/22.2.1/changes/fields_index_additions.html | 2 +- .../sdk/support_api_diff/22.2.1/changes/fields_index_all.html | 2 +- .../support_api_diff/22.2.1/changes/fields_index_changes.html | 2 +- .../support_api_diff/22.2.1/changes/fields_index_removals.html | 2 +- docs/html/sdk/support_api_diff/22.2.1/changes/jdiff_help.html | 2 +- .../sdk/support_api_diff/22.2.1/changes/jdiff_statistics.html | 2 +- .../sdk/support_api_diff/22.2.1/changes/jdiff_topleftframe.html | 2 +- .../22.2.1/changes/methods_index_additions.html | 2 +- .../sdk/support_api_diff/22.2.1/changes/methods_index_all.html | 2 +- .../support_api_diff/22.2.1/changes/methods_index_changes.html | 2 +- .../support_api_diff/22.2.1/changes/methods_index_removals.html | 2 +- .../22.2.1/changes/packages_index_additions.html | 2 +- .../sdk/support_api_diff/22.2.1/changes/packages_index_all.html | 2 +- .../support_api_diff/22.2.1/changes/packages_index_changes.html | 2 +- .../22.2.1/changes/packages_index_removals.html | 2 +- .../22.2.1/changes/pkg_android.support.design.widget.html | 2 +- .../22.2.1/changes/pkg_android.support.v17.leanback.app.html | 2 +- .../22.2.1/changes/pkg_android.support.v17.leanback.widget.html | 2 +- .../22.2.1/changes/pkg_android.support.v4.app.html | 2 +- .../22.2.1/changes/pkg_android.support.v7.app.html | 2 +- .../22.2.1/changes/pkg_android.support.v7.appcompat.html | 2 +- .../22.2.1/changes/pkg_android.support.v7.util.html | 2 +- .../23.1.0/changes/alldiffs_index_additions.html | 2 +- .../sdk/support_api_diff/23.1.0/changes/alldiffs_index_all.html | 2 +- .../support_api_diff/23.1.0/changes/alldiffs_index_changes.html | 2 +- .../23.1.0/changes/alldiffs_index_removals.html | 2 +- .../changes/android.support.customtabs.CustomTabsCallback.html | 2 +- .../android.support.customtabs.CustomTabsIntent.Builder.html | 2 +- .../changes/android.support.customtabs.CustomTabsIntent.html | 2 +- .../changes/android.support.customtabs.CustomTabsService.html | 2 +- .../changes/android.support.customtabs.CustomTabsSession.html | 2 +- .../android.support.customtabs.CustomTabsSessionToken.html | 2 +- ....support.design.widget.AppBarLayout.Behavior.SavedState.html | 2 +- .../android.support.design.widget.AppBarLayout.Behavior.html | 2 +- ...android.support.design.widget.AppBarLayout.LayoutParams.html | 2 +- ...upport.design.widget.AppBarLayout.ScrollingViewBehavior.html | 2 +- .../android.support.design.widget.CollapsingToolbarLayout.html | 2 +- ...roid.support.design.widget.CoordinatorLayout.SavedState.html | 2 +- ...oid.support.design.widget.FloatingActionButton.Behavior.html | 2 +- .../android.support.design.widget.FloatingActionButton.html | 2 +- ...android.support.design.widget.NavigationView.SavedState.html | 2 +- .../23.1.0/changes/android.support.design.widget.Snackbar.html | 2 +- .../changes/android.support.design.widget.TextInputLayout.html | 2 +- ...d.support.percent.PercentLayoutHelper.PercentLayoutInfo.html | 2 +- ...support.v14.preference.EditTextPreferenceDialogFragment.html | 2 +- .../android.support.v17.leanback.app.BrowseFragment.html | 2 +- .../android.support.v17.leanback.app.BrowseSupportFragment.html | 2 +- .../android.support.v17.leanback.app.DetailsFragment.html | 2 +- ...android.support.v17.leanback.app.DetailsSupportFragment.html | 2 +- .../android.support.v17.leanback.app.GuidedStepFragment.html | 2 +- ...ndroid.support.v17.leanback.app.PlaybackOverlayFragment.html | 2 +- ...support.v17.leanback.app.PlaybackOverlaySupportFragment.html | 2 +- .../android.support.v17.leanback.app.SearchFragment.html | 2 +- .../android.support.v17.leanback.app.SearchSupportFragment.html | 2 +- .../android.support.v17.leanback.app.VerticalGridFragment.html | 2 +- ...id.support.v17.leanback.app.VerticalGridSupportFragment.html | 2 +- ...d.support.v17.leanback.widget.FragmentAnimationProvider.html | 2 +- .../android.support.v17.leanback.widget.GuidanceStylist.html | 2 +- ...ndroid.support.v17.leanback.widget.GuidedAction.Builder.html | 2 +- .../android.support.v17.leanback.widget.GuidedAction.html | 2 +- ...ort.v17.leanback.widget.GuidedActionsStylist.ViewHolder.html | 2 +- ...ndroid.support.v17.leanback.widget.GuidedActionsStylist.html | 2 +- .../android.support.v17.leanback.widget.ImageCardView.html | 2 +- .../android.support.v17.leanback.widget.ListRowPresenter.html | 2 +- .../android.support.v17.leanback.widget.RowPresenter.html | 2 +- .../changes/android.support.v17.leanback.widget.SearchBar.html | 2 +- ...roid.support.v17.leanback.widget.ShadowOverlayContainer.html | 2 +- ...droid.support.v17.leanback.widget.VerticalGridPresenter.html | 2 +- .../23.1.0/changes/android.support.v4.app.FragmentActivity.html | 2 +- .../changes/android.support.v4.content.res.ResourcesCompat.html | 2 +- .../android.support.v4.media.session.MediaSessionCompat.html | 2 +- .../23.1.0/changes/android.support.v4.view.ViewCompat.html | 2 +- .../changes/android.support.v4.widget.NestedScrollView.html | 2 +- .../changes/android.support.v4.widget.ScrollerCompat.html | 2 +- .../changes/android.support.v4.widget.TextViewCompat.html | 2 +- .../23.1.0/changes/android.support.v7.appcompat.R.attr.html | 2 +- .../23.1.0/changes/android.support.v7.appcompat.R.bool.html | 2 +- .../23.1.0/changes/android.support.v7.appcompat.R.dimen.html | 2 +- .../23.1.0/changes/android.support.v7.appcompat.R.drawable.html | 2 +- .../23.1.0/changes/android.support.v7.appcompat.R.id.html | 2 +- .../23.1.0/changes/android.support.v7.appcompat.R.layout.html | 2 +- .../23.1.0/changes/android.support.v7.appcompat.R.string.html | 2 +- .../23.1.0/changes/android.support.v7.appcompat.R.style.html | 2 +- .../changes/android.support.v7.appcompat.R.styleable.html | 2 +- .../changes/android.support.v7.graphics.Palette.Builder.html | 2 +- ...ndroid.support.v7.graphics.drawable.DrawerArrowDrawable.html | 2 +- .../android.support.v7.media.MediaRouteDescriptor.Builder.html | 2 +- .../changes/android.support.v7.media.MediaRouteDescriptor.html | 2 +- .../changes/android.support.v7.media.MediaRouter.RouteInfo.html | 2 +- ...rt.v7.preference.EditTextPreferenceDialogFragmentCompat.html | 2 +- .../sdk/support_api_diff/23.1.0/changes/changes-summary.html | 2 +- .../23.1.0/changes/classes_index_additions.html | 2 +- .../sdk/support_api_diff/23.1.0/changes/classes_index_all.html | 2 +- .../support_api_diff/23.1.0/changes/classes_index_changes.html | 2 +- .../support_api_diff/23.1.0/changes/classes_index_removals.html | 2 +- .../23.1.0/changes/constructors_index_additions.html | 2 +- .../support_api_diff/23.1.0/changes/constructors_index_all.html | 2 +- .../23.1.0/changes/constructors_index_changes.html | 2 +- .../23.1.0/changes/constructors_index_removals.html | 2 +- .../support_api_diff/23.1.0/changes/fields_index_additions.html | 2 +- .../sdk/support_api_diff/23.1.0/changes/fields_index_all.html | 2 +- .../support_api_diff/23.1.0/changes/fields_index_changes.html | 2 +- .../support_api_diff/23.1.0/changes/fields_index_removals.html | 2 +- docs/html/sdk/support_api_diff/23.1.0/changes/jdiff_help.html | 2 +- .../sdk/support_api_diff/23.1.0/changes/jdiff_statistics.html | 2 +- .../sdk/support_api_diff/23.1.0/changes/jdiff_topleftframe.html | 2 +- .../23.1.0/changes/methods_index_additions.html | 2 +- .../sdk/support_api_diff/23.1.0/changes/methods_index_all.html | 2 +- .../support_api_diff/23.1.0/changes/methods_index_changes.html | 2 +- .../support_api_diff/23.1.0/changes/methods_index_removals.html | 2 +- .../23.1.0/changes/packages_index_additions.html | 2 +- .../sdk/support_api_diff/23.1.0/changes/packages_index_all.html | 2 +- .../support_api_diff/23.1.0/changes/packages_index_changes.html | 2 +- .../23.1.0/changes/packages_index_removals.html | 2 +- .../23.1.0/changes/pkg_android.support.customtabs.html | 2 +- .../23.1.0/changes/pkg_android.support.design.widget.html | 2 +- .../23.1.0/changes/pkg_android.support.percent.html | 2 +- .../23.1.0/changes/pkg_android.support.v14.preference.html | 2 +- .../23.1.0/changes/pkg_android.support.v17.leanback.app.html | 2 +- .../23.1.0/changes/pkg_android.support.v17.leanback.widget.html | 2 +- .../23.1.0/changes/pkg_android.support.v4.app.html | 2 +- .../23.1.0/changes/pkg_android.support.v4.content.html | 2 +- .../23.1.0/changes/pkg_android.support.v4.content.res.html | 2 +- .../23.1.0/changes/pkg_android.support.v4.media.session.html | 2 +- .../23.1.0/changes/pkg_android.support.v4.view.html | 2 +- .../23.1.0/changes/pkg_android.support.v4.widget.html | 2 +- .../23.1.0/changes/pkg_android.support.v7.appcompat.html | 2 +- .../changes/pkg_android.support.v7.graphics.drawable.html | 2 +- .../23.1.0/changes/pkg_android.support.v7.graphics.html | 2 +- .../23.1.0/changes/pkg_android.support.v7.media.html | 2 +- .../23.1.0/changes/pkg_android.support.v7.preference.html | 2 +- .../23.2.0/changes/alldiffs_index_additions.html | 2 +- .../sdk/support_api_diff/23.2.0/changes/alldiffs_index_all.html | 2 +- .../support_api_diff/23.2.0/changes/alldiffs_index_changes.html | 2 +- .../23.2.0/changes/alldiffs_index_removals.html | 2 +- .../android.support.customtabs.CustomTabsIntent.Builder.html | 2 +- .../changes/android.support.customtabs.CustomTabsIntent.html | 2 +- .../changes/android.support.customtabs.CustomTabsSession.html | 2 +- ...upport.design.widget.AppBarLayout.ScrollingViewBehavior.html | 2 +- .../android.support.design.widget.CollapsingToolbarLayout.html | 2 +- ...ndroid.support.design.widget.CoordinatorLayout.Behavior.html | 2 +- .../android.support.design.widget.FloatingActionButton.html | 2 +- ...droid.support.design.widget.HeaderScrollingViewBehavior.html | 2 +- .../23.2.0/changes/android.support.design.widget.TabLayout.html | 2 +- .../changes/android.support.design.widget.TextInputLayout.html | 2 +- .../android.support.design.widget.ViewOffsetBehavior.html | 2 +- ...d.support.percent.PercentLayoutHelper.PercentLayoutInfo.html | 2 +- .../android.support.v14.preference.PreferenceFragment.html | 2 +- .../android.support.v17.leanback.app.BaseRowFragment.html | 2 +- ...android.support.v17.leanback.app.BaseRowSupportFragment.html | 2 +- .../android.support.v17.leanback.app.BrowseFragment.html | 2 +- .../android.support.v17.leanback.app.BrowseSupportFragment.html | 2 +- .../android.support.v17.leanback.app.DetailsFragment.html | 2 +- ...android.support.v17.leanback.app.DetailsSupportFragment.html | 2 +- .../android.support.v17.leanback.app.GuidedStepFragment.html | 2 +- ...roid.support.v17.leanback.app.GuidedStepSupportFragment.html | 2 +- ...17.leanback.app.HeadersFragment.OnHeaderClickedListener.html | 2 +- ...anback.app.HeadersFragment.OnHeaderViewSelectedListener.html | 2 +- ...back.app.HeadersSupportFragment.OnHeaderClickedListener.html | 2 +- ...app.HeadersSupportFragment.OnHeaderViewSelectedListener.html | 2 +- .../changes/android.support.v17.leanback.app.RowsFragment.html | 2 +- .../android.support.v17.leanback.app.RowsSupportFragment.html | 2 +- ...leanback.widget.DetailsOverviewLogoPresenter.ViewHolder.html | 2 +- ...upport.v17.leanback.widget.DetailsOverviewLogoPresenter.html | 2 +- .../android.support.v17.leanback.widget.GuidanceStylist.html | 2 +- ...ndroid.support.v17.leanback.widget.GuidedAction.Builder.html | 2 +- .../android.support.v17.leanback.widget.GuidedAction.html | 2 +- ...ort.v17.leanback.widget.GuidedActionsStylist.ViewHolder.html | 2 +- ...ndroid.support.v17.leanback.widget.GuidedActionsStylist.html | 2 +- .../android.support.v17.leanback.widget.ImageCardView.html | 2 +- ...support.v17.leanback.widget.ListRowPresenter.ViewHolder.html | 2 +- ....v4.accessibilityservice.AccessibilityServiceInfoCompat.html | 2 +- .../changes/android.support.v4.app.AppOpsManagerCompat.html | 2 +- .../23.2.0/changes/android.support.v4.app.BundleCompat.html | 2 +- .../23.2.0/changes/android.support.v4.app.Fragment.html | 2 +- .../23.2.0/changes/android.support.v4.app.FragmentActivity.html | 2 +- .../changes/android.support.v4.app.FragmentHostCallback.html | 2 +- .../23.2.0/changes/android.support.v4.app.NavUtils.html | 2 +- .../android.support.v4.app.NotificationManagerCompat.html | 2 +- .../23.2.0/changes/android.support.v4.app.RemoteInput.html | 2 +- .../23.2.0/changes/android.support.v4.app.ServiceCompat.html | 2 +- .../23.2.0/changes/android.support.v4.app.ShareCompat.html | 2 +- .../23.2.0/changes/android.support.v4.app.TaskStackBuilder.html | 2 +- .../android.support.v4.content.ContentResolverCompat.html | 2 +- .../changes/android.support.v4.content.ContextCompat.html | 2 +- .../23.2.0/changes/android.support.v4.content.IntentCompat.html | 2 +- .../android.support.v4.content.LocalBroadcastManager.html | 2 +- .../android.support.v4.content.ParallelExecutorCompat.html | 2 +- ...support.v4.content.SharedPreferencesCompat.EditorCompat.html | 2 +- .../android.support.v4.content.SharedPreferencesCompat.html | 2 +- .../android.support.v4.content.pm.ActivityInfoCompat.html | 2 +- .../changes/android.support.v4.content.res.ResourcesCompat.html | 2 +- .../android.support.v4.database.DatabaseUtilsCompat.html | 2 +- .../changes/android.support.v4.graphics.BitmapCompat.html | 2 +- .../23.2.0/changes/android.support.v4.graphics.ColorUtils.html | 2 +- .../android.support.v4.graphics.drawable.DrawableCompat.html | 2 +- ...pport.v4.graphics.drawable.RoundedBitmapDrawableFactory.html | 2 +- ...upport.v4.hardware.fingerprint.FingerprintManagerCompat.html | 2 +- .../android.support.v4.net.ConnectivityManagerCompat.html | 2 +- .../changes/android.support.v4.net.TrafficStatsCompat.html | 2 +- .../23.2.0/changes/android.support.v4.os.AsyncTaskCompat.html | 2 +- .../23.2.0/changes/android.support.v4.os.EnvironmentCompat.html | 2 +- .../23.2.0/changes/android.support.v4.os.ParcelableCompat.html | 2 +- .../23.2.0/changes/android.support.v4.os.TraceCompat.html | 2 +- .../23.2.0/changes/android.support.v4.text.ICUCompat.html | 2 +- .../android.support.v4.text.TextDirectionHeuristicsCompat.html | 2 +- .../23.2.0/changes/android.support.v4.text.TextUtilsCompat.html | 2 +- .../changes/android.support.v4.view.GestureDetectorCompat.html | 2 +- .../23.2.0/changes/android.support.v4.view.GravityCompat.html | 2 +- .../changes/android.support.v4.view.InputDeviceCompat.html | 2 +- .../23.2.0/changes/android.support.v4.view.KeyEventCompat.html | 2 +- .../changes/android.support.v4.view.LayoutInflaterCompat.html | 2 +- .../android.support.v4.view.MarginLayoutParamsCompat.html | 2 +- .../23.2.0/changes/android.support.v4.view.MenuCompat.html | 2 +- .../23.2.0/changes/android.support.v4.view.MenuItemCompat.html | 2 +- .../changes/android.support.v4.view.MotionEventCompat.html | 2 +- .../android.support.v4.view.ScaleGestureDetectorCompat.html | 2 +- .../changes/android.support.v4.view.VelocityTrackerCompat.html | 2 +- .../23.2.0/changes/android.support.v4.view.ViewCompat.html | 2 +- .../android.support.v4.view.ViewConfigurationCompat.html | 2 +- .../23.2.0/changes/android.support.v4.view.ViewGroupCompat.html | 2 +- .../changes/android.support.v4.view.ViewParentCompat.html | 2 +- .../android.support.v4.view.ViewPropertyAnimatorCompat.html | 2 +- .../23.2.0/changes/android.support.v4.view.WindowCompat.html | 2 +- ....support.v4.view.accessibility.AccessibilityEventCompat.html | 2 +- ...upport.v4.view.accessibility.AccessibilityManagerCompat.html | 2 +- ...ndroid.support.v4.view.animation.PathInterpolatorCompat.html | 2 +- .../23.2.0/changes/android.support.v4.widget.DrawerLayout.html | 2 +- .../changes/android.support.v4.widget.EdgeEffectCompat.html | 2 +- .../android.support.v4.widget.ListPopupWindowCompat.html | 2 +- .../changes/android.support.v4.widget.PopupMenuCompat.html | 2 +- .../changes/android.support.v4.widget.PopupWindowCompat.html | 2 +- .../changes/android.support.v4.widget.ScrollerCompat.html | 2 +- .../changes/android.support.v4.widget.SearchViewCompat.html | 2 +- .../changes/android.support.v4.widget.TextViewCompat.html | 2 +- .../changes/android.support.v7.app.AppCompatDelegate.html | 2 +- .../23.2.0/changes/android.support.v7.appcompat.R.attr.html | 2 +- .../23.2.0/changes/android.support.v7.appcompat.R.drawable.html | 2 +- .../23.2.0/changes/android.support.v7.appcompat.R.style.html | 2 +- .../changes/android.support.v7.appcompat.R.styleable.html | 2 +- .../changes/android.support.v7.graphics.Palette.Builder.html | 2 +- .../23.2.0/changes/android.support.v7.graphics.Palette.html | 2 +- .../android.support.v7.media.MediaRouteDescriptor.Builder.html | 2 +- .../changes/android.support.v7.media.MediaRouteDescriptor.html | 2 +- .../changes/android.support.v7.media.MediaRouter.Callback.html | 2 +- .../android.support.v7.preference.PreferenceFragmentCompat.html | 2 +- .../changes/android.support.v7.preference.PreferenceScreen.html | 2 +- .../android.support.v7.preference.PreferenceViewHolder.html | 2 +- .../23.2.0/changes/android.support.v7.recyclerview.R.dimen.html | 2 +- .../changes/android.support.v7.widget.OrientationHelper.html | 2 +- .../android.support.v7.widget.RecyclerView.ItemAnimator.html | 2 +- .../android.support.v7.widget.RecyclerView.LayoutManager.html | 2 +- .../changes/android.support.v7.widget.RecyclerView.State.html | 2 +- .../23.2.0/changes/android.support.v7.widget.RecyclerView.html | 2 +- ...droid.support.v7.widget.helper.ItemTouchHelper.Callback.html | 2 +- .../sdk/support_api_diff/23.2.0/changes/changes-summary.html | 2 +- .../23.2.0/changes/classes_index_additions.html | 2 +- .../support_api_diff/23/changes/alldiffs_index_additions.html | 2 +- .../sdk/support_api_diff/23/changes/alldiffs_index_all.html | 2 +- .../sdk/support_api_diff/23/changes/alldiffs_index_changes.html | 2 +- .../support_api_diff/23/changes/alldiffs_index_removals.html | 2 +- .../android.support.design.widget.AppBarLayout.Behavior.html | 2 +- .../23/changes/android.support.design.widget.AppBarLayout.html | 2 +- .../android.support.design.widget.CollapsingToolbarLayout.html | 2 +- .../changes/android.support.design.widget.NavigationView.html | 2 +- .../23/changes/android.support.design.widget.Snackbar.html | 2 +- .../23/changes/android.support.design.widget.TabLayout.Tab.html | 2 +- .../23/changes/android.support.design.widget.TabLayout.html | 2 +- .../changes/android.support.design.widget.TextInputLayout.html | 2 +- .../23/changes/android.support.v13.app.FragmentCompat.html | 2 +- ....widget.FullWidthDetailsOverviewRowPresenter.ViewHolder.html | 2 +- ...17.leanback.widget.FullWidthDetailsOverviewRowPresenter.html | 2 +- .../android.support.v4.animation.AnimatorCompatHelper.html | 2 +- .../23/changes/android.support.v4.app.ActivityCompat.html | 2 +- .../23/changes/android.support.v4.app.Fragment.html | 2 +- .../23/changes/android.support.v4.app.FragmentActivity.html | 2 +- .../23/changes/android.support.v4.content.AsyncTaskLoader.html | 2 +- .../23/changes/android.support.v4.content.ContextCompat.html | 2 +- .../23/changes/android.support.v4.content.Loader.html | 2 +- .../android.support.v4.graphics.drawable.DrawableCompat.html | 2 +- ...roid.support.v4.graphics.drawable.RoundedBitmapDrawable.html | 2 +- ...android.support.v4.media.MediaDescriptionCompat.Builder.html | 2 +- .../android.support.v4.media.MediaDescriptionCompat.html | 2 +- ...4.media.session.MediaControllerCompat.TransportControls.html | 2 +- ...id.support.v4.media.session.MediaSessionCompat.Callback.html | 2 +- .../android.support.v4.media.session.PlaybackStateCompat.html | 2 +- .../23/changes/android.support.v4.text.ICUCompat.html | 2 +- .../23/changes/android.support.v4.view.ViewCompat.html | 2 +- ...y.AccessibilityNodeInfoCompat.AccessibilityActionCompat.html | 2 +- ...pport.v4.view.accessibility.AccessibilityNodeInfoCompat.html | 2 +- .../23/changes/android.support.v4.widget.DrawerLayout.html | 2 +- .../changes/android.support.v4.widget.ExploreByTouchHelper.html | 2 +- .../23/changes/android.support.v4.widget.PopupWindowCompat.html | 2 +- .../changes/android.support.v4.widget.SwipeRefreshLayout.html | 2 +- .../23/changes/android.support.v7.app.AppCompatDelegate.html | 2 +- .../23/changes/android.support.v7.appcompat.R.attr.html | 2 +- .../23/changes/android.support.v7.appcompat.R.color.html | 2 +- .../23/changes/android.support.v7.appcompat.R.dimen.html | 2 +- .../23/changes/android.support.v7.appcompat.R.drawable.html | 2 +- .../23/changes/android.support.v7.appcompat.R.id.html | 2 +- .../23/changes/android.support.v7.appcompat.R.layout.html | 2 +- .../23/changes/android.support.v7.appcompat.R.style.html | 2 +- .../23/changes/android.support.v7.appcompat.R.styleable.html | 2 +- .../23/changes/android.support.v7.graphics.Palette.Builder.html | 2 +- docs/html/sdk/support_api_diff/23/changes/changes-summary.html | 2 +- .../support_api_diff/23/changes/classes_index_additions.html | 2 +- .../html/sdk/support_api_diff/23/changes/classes_index_all.html | 2 +- .../sdk/support_api_diff/23/changes/classes_index_changes.html | 2 +- .../sdk/support_api_diff/23/changes/classes_index_removals.html | 2 +- .../23/changes/constructors_index_additions.html | 2 +- .../sdk/support_api_diff/23/changes/constructors_index_all.html | 2 +- .../support_api_diff/23/changes/constructors_index_changes.html | 2 +- .../23/changes/constructors_index_removals.html | 2 +- .../sdk/support_api_diff/23/changes/fields_index_additions.html | 2 +- docs/html/sdk/support_api_diff/23/changes/fields_index_all.html | 2 +- .../sdk/support_api_diff/23/changes/fields_index_changes.html | 2 +- .../sdk/support_api_diff/23/changes/fields_index_removals.html | 2 +- docs/html/sdk/support_api_diff/23/changes/jdiff_help.html | 2 +- docs/html/sdk/support_api_diff/23/changes/jdiff_statistics.html | 2 +- .../sdk/support_api_diff/23/changes/jdiff_topleftframe.html | 2 +- .../support_api_diff/23/changes/methods_index_additions.html | 2 +- .../html/sdk/support_api_diff/23/changes/methods_index_all.html | 2 +- .../sdk/support_api_diff/23/changes/methods_index_changes.html | 2 +- .../sdk/support_api_diff/23/changes/methods_index_removals.html | 2 +- .../support_api_diff/23/changes/packages_index_additions.html | 2 +- .../sdk/support_api_diff/23/changes/packages_index_all.html | 2 +- .../sdk/support_api_diff/23/changes/packages_index_changes.html | 2 +- .../support_api_diff/23/changes/packages_index_removals.html | 2 +- .../23/changes/pkg_android.support.design.widget.html | 2 +- .../23/changes/pkg_android.support.v13.app.html | 2 +- .../23/changes/pkg_android.support.v17.leanback.widget.html | 2 +- .../23/changes/pkg_android.support.v4.animation.html | 2 +- .../support_api_diff/23/changes/pkg_android.support.v4.app.html | 2 +- .../23/changes/pkg_android.support.v4.content.html | 2 +- .../23/changes/pkg_android.support.v4.graphics.drawable.html | 2 +- .../23/changes/pkg_android.support.v4.media.html | 2 +- .../23/changes/pkg_android.support.v4.media.session.html | 2 +- .../support_api_diff/23/changes/pkg_android.support.v4.os.html | 2 +- .../23/changes/pkg_android.support.v4.text.html | 2 +- .../23/changes/pkg_android.support.v4.view.accessibility.html | 2 +- .../23/changes/pkg_android.support.v4.view.html | 2 +- .../23/changes/pkg_android.support.v4.widget.html | 2 +- .../support_api_diff/23/changes/pkg_android.support.v7.app.html | 2 +- .../23/changes/pkg_android.support.v7.appcompat.html | 2 +- .../23/changes/pkg_android.support.v7.graphics.html | 2 +- .../23/changes/pkg_android.support.v7.util.html | 2 +- .../24.2.0/changes/alldiffs_index_additions.html | 2 +- .../sdk/support_api_diff/24.2.0/changes/alldiffs_index_all.html | 2 +- .../support_api_diff/24.2.0/changes/alldiffs_index_changes.html | 2 +- .../24.2.0/changes/alldiffs_index_removals.html | 2 +- .../android.support.customtabs.CustomTabsIntent.Builder.html | 2 +- .../changes/android.support.customtabs.CustomTabsIntent.html | 2 +- .../changes/android.support.customtabs.CustomTabsSession.html | 2 +- ...upport.design.widget.AppBarLayout.ScrollingViewBehavior.html | 2 +- .../android.support.design.widget.BottomSheetBehavior.html | 2 +- .../android.support.design.widget.CollapsingToolbarLayout.html | 2 +- ...ndroid.support.design.widget.CoordinatorLayout.Behavior.html | 2 +- ...id.support.design.widget.CoordinatorLayout.LayoutParams.html | 2 +- .../android.support.design.widget.CoordinatorLayout.html | 2 +- ...oid.support.design.widget.FloatingActionButton.Behavior.html | 2 +- .../24.2.0/changes/android.support.design.widget.TabLayout.html | 2 +- .../changes/android.support.design.widget.TextInputLayout.html | 2 +- .../android.support.v14.preference.PreferenceFragment.html | 2 +- ...7.leanback.widget.AbstractMediaItemPresenter.ViewHolder.html | 2 +- ....support.v17.leanback.widget.AbstractMediaItemPresenter.html | 2 +- .../android.support.v17.leanback.widget.ObjectAdapter.html | 2 +- ...android.support.v17.preference.LeanbackSettingsFragment.html | 2 +- ....v4.accessibilityservice.AccessibilityServiceInfoCompat.html | 2 +- .../24.2.0/changes/android.support.v4.app.ActivityCompat.html | 2 +- .../changes/android.support.v4.app.ActivityOptionsCompat.html | 2 +- .../changes/android.support.v4.app.FragmentController.html | 2 +- .../24.2.0/changes/android.support.v4.app.ServiceCompat.html | 2 +- .../changes/android.support.v4.app.SharedElementCallback.html | 2 +- .../changes/android.support.v4.content.ContextCompat.html | 2 +- .../android.support.v4.graphics.drawable.DrawableCompat.html | 2 +- .../android.support.v4.media.MediaBrowserCompat.MediaItem.html | 2 +- ....support.v4.media.MediaBrowserServiceCompat.BrowserRoot.html | 2 +- .../android.support.v4.media.MediaDescriptionCompat.html | 2 +- .../changes/android.support.v4.media.MediaMetadataCompat.html | 2 +- .../android.support.v4.media.session.MediaButtonReceiver.html | 2 +- ...d.support.v4.media.session.MediaSessionCompat.QueueItem.html | 2 +- .../android.support.v4.media.session.MediaSessionCompat.html | 2 +- .../android.support.v4.media.session.PlaybackStateCompat.html | 2 +- .../24.2.0/changes/android.support.v4.os.BuildCompat.html | 2 +- .../24.2.0/changes/android.support.v4.view.KeyEventCompat.html | 2 +- .../changes/android.support.v4.view.MotionEventCompat.html | 2 +- .../24.2.0/changes/android.support.v4.view.ViewCompat.html | 2 +- .../android.support.v4.view.ViewConfigurationCompat.html | 2 +- .../changes/android.support.v4.view.WindowInsetsCompat.html | 2 +- ....support.v4.view.accessibility.AccessibilityEventCompat.html | 2 +- ...ityManagerCompat.AccessibilityStateChangeListenerCompat.html | 2 +- ...upport.v4.view.accessibility.AccessibilityManagerCompat.html | 2 +- ...y.AccessibilityNodeInfoCompat.AccessibilityActionCompat.html | 2 +- ...bility.AccessibilityNodeInfoCompat.CollectionInfoCompat.html | 2 +- ...ty.AccessibilityNodeInfoCompat.CollectionItemInfoCompat.html | 2 +- ...cessibility.AccessibilityNodeInfoCompat.RangeInfoCompat.html | 2 +- ...pport.v4.view.accessibility.AccessibilityNodeInfoCompat.html | 2 +- ...t.v4.view.accessibility.AccessibilityNodeProviderCompat.html | 2 +- ...ort.v4.view.accessibility.AccessibilityWindowInfoCompat.html | 2 +- ...upport.v4.widget.SearchViewCompat.OnCloseListenerCompat.html | 2 +- ...rt.v4.widget.SearchViewCompat.OnQueryTextListenerCompat.html | 2 +- .../changes/android.support.v4.widget.SearchViewCompat.html | 2 +- .../changes/android.support.v4.widget.SwipeRefreshLayout.html | 2 +- .../changes/android.support.v4.widget.TextViewCompat.html | 2 +- .../changes/android.support.v7.app.ActionBarDrawerToggle.html | 2 +- .../changes/android.support.v7.app.AppCompatDelegate.html | 2 +- .../android.support.v7.content.res.AppCompatResources.html | 2 +- .../24.2.0/changes/android.support.v7.graphics.Palette.html | 2 +- .../changes/android.support.v7.util.SortedList.Callback.html | 2 +- .../changes/android.support.v7.widget.LinearLayoutManager.html | 2 +- .../changes/android.support.v7.widget.LinearSmoothScroller.html | 2 +- .../24.2.0/changes/android.support.v7.widget.RecyclerView.html | 2 +- .../android.support.v7.widget.StaggeredGridLayoutManager.html | 2 +- .../sdk/support_api_diff/24.2.0/changes/changes-summary.html | 2 +- .../24.2.0/changes/classes_index_additions.html | 2 +- .../sdk/support_api_diff/24.2.0/changes/classes_index_all.html | 2 +- .../support_api_diff/24.2.0/changes/classes_index_changes.html | 2 +- .../support_api_diff/24.2.0/changes/classes_index_removals.html | 2 +- .../24.2.0/changes/constructors_index_additions.html | 2 +- .../support_api_diff/24.2.0/changes/constructors_index_all.html | 2 +- .../24.2.0/changes/constructors_index_changes.html | 2 +- .../24.2.0/changes/constructors_index_removals.html | 2 +- .../support_api_diff/24.2.0/changes/fields_index_additions.html | 2 +- .../sdk/support_api_diff/24.2.0/changes/fields_index_all.html | 2 +- .../support_api_diff/24.2.0/changes/fields_index_changes.html | 2 +- .../support_api_diff/24.2.0/changes/fields_index_removals.html | 2 +- docs/html/sdk/support_api_diff/24.2.0/changes/jdiff_help.html | 2 +- .../sdk/support_api_diff/24.2.0/changes/jdiff_statistics.html | 2 +- .../sdk/support_api_diff/24.2.0/changes/jdiff_topleftframe.html | 2 +- .../24.2.0/changes/methods_index_additions.html | 2 +- .../sdk/support_api_diff/24.2.0/changes/methods_index_all.html | 2 +- .../support_api_diff/24.2.0/changes/methods_index_changes.html | 2 +- .../support_api_diff/24.2.0/changes/methods_index_removals.html | 2 +- .../24.2.0/changes/packages_index_additions.html | 2 +- .../sdk/support_api_diff/24.2.0/changes/packages_index_all.html | 2 +- .../support_api_diff/24.2.0/changes/packages_index_changes.html | 2 +- .../24.2.0/changes/packages_index_removals.html | 2 +- .../24.2.0/changes/pkg_android.support.customtabs.html | 2 +- .../24.2.0/changes/pkg_android.support.design.widget.html | 2 +- .../24.2.0/changes/pkg_android.support.v14.preference.html | 2 +- .../24.2.0/changes/pkg_android.support.v17.leanback.widget.html | 2 +- .../24.2.0/changes/pkg_android.support.v17.preference.html | 2 +- .../changes/pkg_android.support.v4.accessibilityservice.html | 2 +- .../24.2.0/changes/pkg_android.support.v4.app.html | 2 +- .../24.2.0/changes/pkg_android.support.v4.content.html | 2 +- .../changes/pkg_android.support.v4.graphics.drawable.html | 2 +- .../24.2.0/changes/pkg_android.support.v4.media.html | 2 +- .../24.2.0/changes/pkg_android.support.v4.media.session.html | 2 +- .../24.2.0/changes/pkg_android.support.v4.os.html | 2 +- .../24.2.0/changes/pkg_android.support.v4.util.html | 2 +- .../changes/pkg_android.support.v4.view.accessibility.html | 2 +- .../24.2.0/changes/pkg_android.support.v4.view.html | 2 +- .../24.2.0/changes/pkg_android.support.v4.widget.html | 2 +- .../24.2.0/changes/pkg_android.support.v7.app.html | 2 +- .../24.2.0/changes/pkg_android.support.v7.content.res.html | 2 +- .../24.2.0/changes/pkg_android.support.v7.graphics.html | 2 +- .../24.2.0/changes/pkg_android.support.v7.preference.html | 2 +- .../24.2.0/changes/pkg_android.support.v7.util.html | 2 +- .../24.2.0/changes/pkg_android.support.v7.widget.html | 2 +- 550 files changed, 550 insertions(+), 550 deletions(-) diff --git a/docs/html/sdk/support_api_diff/22.2.0/changes/alldiffs_index_additions.html b/docs/html/sdk/support_api_diff/22.2.0/changes/alldiffs_index_additions.html index 9786c9209afc..fcff8eae612d 100644 --- a/docs/html/sdk/support_api_diff/22.2.0/changes/alldiffs_index_additions.html +++ b/docs/html/sdk/support_api_diff/22.2.0/changes/alldiffs_index_additions.html @@ -332,7 +332,7 @@ Listed as: Added, zBy (float)
          -

        46W|%RG>Y2KEw!VGgYqR@efuT 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 D<~IP>0b6P>X>6J< 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�AOo%)p0 zu=mLtRc!L)?CkOS--^gB-J6W5>L%IW)hMZ|8Ir{zZ&vRZ}}_XQ9q?2_Z0%9>&`frMd!Z8?K8xd>g?IrHYp%1w;ST8?XC@9?4RJ&P)t;E_%dArpJkyK<2 zbt0F_@EBJEiBD^>>5X&|Lu&a?yU=-8%C6oB zTFN=+eJOo1I!#Eg#V^ax z3CVr5p`Cr03tfu;0F()TNNw)VW|=IUHV!~)rpzq{mNlqp$r z#l#T4J%M}CI8$tmLNy)y0!_Y(8m!{hWLMkmfx2O@CcFm=6izoi4Upcx$xYpxym!{! zXd^?HDUhkFEfn3qw$2+ivtDwgX?!}WO*5WP?BKP}%iaVmJ#S`T#~Azszg}o>KUv67 z!I=E@Dy=2~iX=g*6^GMuCe!o-JiLA=3SbiYhJ?LGq$k^c3O8KP^|gBn{|8Wn{N5M& z@koyn;K%q?qUjAj^RWtI{TQj^eq`MmI(w-R?#J=WNKBHKoBdp}>&ZGEaz6i#epa3D zMSEBE!2t*O?I;Z?iqZwP@kRQ91RQcabY(H(W;qE_*T6ZFXrW&x3p0>&mrV zv7s%$1O=dGq4IA7Xx!$qR2pp8uywjT2X5DlP`x66NAut` z)jE-OwNbn}?L-e;HI?ZNgmo{ft1VIk&r!JZS01>3>LPN!WU$Q_{rG=RJxv48um@}J zI8I*2u?5p}W>2d1@N_aGb+P`kOAM47cuH!C0(v_mm|F@{C-jQ>;O1*et^2{4!~NP` zDU=PGHP1yYMn`aSy{Wk%;@-DF8A|S(u0$VBS-p4^F$ zuSofD>X)6qTscPOi+>&+{b4NYvkK=@p1ur2FtWc8!qscgPT}{eyoq|+EfYab1>f$d zTx!}&0iS6!ALiJp0Mf1YuvD%`c2EP{C=vf9U-e4B(AKqu@5&qW8m*|2V61*5LBDGk zC(lwUo8}@Dna-8LC1DWqdoSeuT&O^*^E#hMW{TZza6%qA(57v&htuT_3z)&_5I+B8 zZCI&apnXfojDIL?mZDtEhm(H$({qno z*GSP_^la(C%j7DQk2biP?Cr3;#x`0*(Yl*2CWvRE@7$_|s^`=+P*?65n1{q14Doiq zVt$K+;qIlY)^x_N=RAOnqoS+R0JV)IF}B1S)QrgS6(R;wy-UD2y~02j#zbzvh-&HJ z)!x^kD-!P%3?8=xI`gPPi4%Z_ZwkXSNd2g3$0>+rJj=@k)ZZR=Ifk;YCdm;P2fuQUHSjZmZ<*8!tHpFhj-VMwHNOv9=OamH~{sw zv%hmFkN0`3@t2qE`3e}q*t}no>Nk=(Xz5g}0yq~{=h?nGE+Vplpp=;dV{4)9Q`B65g4ec)CGUwP43#)yq>Y23F>(NkYWPO!F#@p zL~L@?#=kM|A<@Ts9Q&N+7W=;O)b1SWu=tfU|K*wVbgOiAY-HaG7HzSUo~|a;9AKT9 znf_;+7Bm}A6dnzFKEF7RQ4mtvl&^C|@$kV#u8fKL62u=iRX=6oXOU#_6}vQ(qzDaU zrt=nEvNerb>jQ$;gJ9HMx|ey~)V`-+29Q*dCCkZN$ohK2#D!3v9Pz7~+^Xvqt=pd-%tvP z&M*43GOGEz9GUKGnd>s!F@v60ZG<$2zcAD$-#6g&j&69egi(3Vzk{0ktl4bcA-~_N zyf3WPPK|$kppjWJ9+L6YdVuTB6w}}KC-S4tLtx7Og#>p6HFPFz?THNasSYiwuO5ETC_^VnOMU{M7!wrfIdKb$p1?Dg#TT2cLb9xF0j9p z$^GPL960F8pcrAb1`F9V+@nldb4muJ<`-pK&%|evp*`%1DGsSWJPWJ_eE4!VKTKZz zag+(*n!)!l_^4_ej4fp$_uQ6K-ju10aGU5VGi@WHF&%)Av6Or!9e;*~*Xb;B{Xqd= znVPE@XwcdaOOO`6{)}U?vXo0E67}-gLPA0myVw)8=kM*(iSB!W6wr3SCcOFt>!k8h zL{$7hZKIj*hq|Z#o@B;lZ>IOE%**$MULQA6=AHQV%D*y47O5wGq2XtCw>!;^Iq~4> z4Y*^q0gnIa(h=@T1x{a9vDu~6Q{6ReXutP<(lw6uIcwc@@bz;W&0o){({NJPPy-i1 zqMzV#<%_Tc${9g(fy$;RJ%OH(9{KaBen)gAi*VS|Oii7dcH^tUHr4oPgBsM|u7k`R zXVOzihL_Ym&25J$R1H21T;QX*+&3{h&Fapqrqd2lG|&fu7kFB$8(tPRci3~ z(h<3?Nd8DKMHhed_7C}o{u00~CY}NICeT0HmXF`e5TBHuhz*#|ppY17C|u0zIb_Mx z_6={ucViF&OtS8(Zt3m=r$NFiXT44*dI!6g7qjp>Kerk;Ikg{+)fI7|J9H zmVurXZOp2)qBNYiPI_!DcV>9(v`5x=_&I4q@xzwMl-llrNsP@s*c%$O&LiGpT9c>D zd^vEhXiIl0cbe4A(GT-O-Oag`$zJ23Cv#1zAC~Soe*22bM^h73jS|aMSdJ~g( z^ra7qPvr~9+gGgov2A(;ZMvwic$`=R2{;LF<9TqNGeV-`aBuB-L1(N=Zmn88PB(p# z&d=+TFpAA@of_ihNj>sT$*E3tA-jzyN(R^udT46)8YIHX+K9n>ZZJ}*+q%tNmY~j@ zv>%S&9J*wj4;o~%mYH)*#t9Ke|AGewNv?+{7d zz0DTATE9|z1DxS`fAuAsbLxD7#iSyP4Ud4tFDv#qH{g=eRIv=A$oFsQm_+-{sY=11 z3GdSUm`ORzGaYh<5XOu5KOc;OQc+DV^zK8NuXJ=^)o>n}h_#`-c7Q*>ns)Q-_;T+c z=*=_;^^orn`dpeAZ+s9L{N+T`m^-M zz>(M1?hGb{PSk!)8mXnaG0WtUB3 zkLmY+0>u*3c&_?sls~bA6n9X^O*LVg0*gBrjtB;!X7=p|SS+Rus@HEg)Zb(BWVRm2 zR9acTc)S4>g%EveY)$2 zC{8U{a>%@d?$U21h6!XN>}+l*LtlfB|3h=~jS>e@n!k6d*3kd|7HpB`zxDGAZ`|8S*KRk^pqJDW>)60%RqFGh20h9NmpvEWa@ zo-JB1$2-+W{~(TUs)J2&%7HC4_uoJ0X13m2$Zp!G79JCp$3pja;D?mUBMcp=-^uFF z$vrvrEL%Q)Txor})#3gRA>hs!(wln(=kML|e@p%}w(@C^td5xG3nqlgiFkQI42b%m zpkV|}9l@C93%PFodBvSuJN$?3Q<@XmMFh5!+(iU8MArQo$(Wd&5R!1G%<$%izH?;7 zrRxHQWIVSch5oe~CT9g-wer--uY_z}VVN4UzTnf+f`BQ?~g zui(#R{~u^z0z)U@KO}))iK4*n3+n$a^FQQ)=2Mu*|BwXS=#p-_XWrg~jHr?F#q#V| zM)-TYQ2))ke>8&sePM!(m4rJX?km85=HgQhy68rmn(u~n)T))l^dG~|Ijfdxj%_Vt z)2@3IPG>(o!BExL7wno{Ru%CO<^TIorTH{jJz*n2AT#5^-%@@W;@@I6RthYfRri z)i@+E2x+HY3U}BI`rKs)sUe?EKtMq6{q@ybH{c%Jt9qa0>syujd^s{aHul@PQ3e%D zubiH(%}%a)J8Rr)h4}~S^oQDm?C#~|TUc%T+fURRz>90Jb^E6LK@TPMfSz-^fxJwT zZM=ePe0d<8)L9>Q-94N1{jJyc$TrztEnDz9y_frIJn0Z0Wp13C0}tJuo$&4Z7=7@n zv{cT8CkQ5(gqjKQz*t(NdbtB%+p0gM^T?D{kG>6?fhfZyWTAsGlD61@%YG-aV!o zPHmTti1M>@H0j&p4gsbk{{j2cFP2f;+c^{GZaRGI%c}>wyE>|MGdMv{IbQY-4#qBz zdk5Vf@phQ>!*$ieulZGYCpz=JxXg(Bvx|vQtE>Hi zLvYn}VM4+1Q8*s?>5BWwa^(m>|ComC4uUIPuKFSE-Hp{0UHsK|AtPtKh#u&X3Klaq zAZFe7k@-f;P!s51_&3CpyA2H8KmYIb#{cY1Lj9Nvs|3Klr&T}@a@zqo|8B$qpg#LR3!u}#s*1GNE zzkBMQ^+SIl0tvgZDTdJeAZarj>-SWZ9^Pmi8o)BU^lC*i>k3{1q~j;W+2-WU8C-=R zOncacjV-v;LbLQ$LpmYH@6C91T(WzSXKa$+(V?2eqZCx7CtN?;MOe;LwLj><4Wq{T zBUNs4^#pmb=r#O}kxNRi{8$l~iSAa(>HY zq#xubUBN!*cIuy4M4use;tY(q4;h!5fcj3tnO4)nR>^$Hyz==*XYqZygDXE?!q0q# z7gYznz7b&vVnIAV@MiY+ik~X8r|oD?9^i$uB#(GI9JY{53$= zB;v(VB5 zHDEFN-EZ~X6^{%Mdh^jMW=p<-3Xdi{UcZ9EZa-x8>VL2n{DUTkxi`H6r_B0`9dD3 z;X?gfvyoV>##|cx3qDUM5s9dxkHpBN2W;)j=e#aC$M@8lG7plvyEl84{( z?L;rlX_c+NquAT6v3`)Z4iXk7_jRq1)*alSSF+v_m4TRQr6&D2SWSmC_qQz9?Pbp+E`$Q~#95YgawfyDenU&&?e^?2v@Sz}PF?g;C02P5idXpr)^%Z9$iyIP zAqJdzP})^W!C2jHPcif4AOXfIY@Lq+o#9PGy@*X+F>6I-5) zC}jHSUP=JhqlGMwmm9I`-%n8CQF~Y481>N7H#XePhuZjTo^XOxI<9^{q!T!=$HR%> zI6dDM(ar|+i7F(HTeOxZrymxLtU^eTG0E>n(hdd_f zY);q?1OoDnx#$*rvWZFkyFz@}x7wC^T+gcBuJE&G<2W(WE4I`v1DX(n8Y;gA4 z%OHs+;4De)pZ=QsWY2oo4Krk_Pv%HyGAn>|5wzHBxI@AaQ6svCrMFUTPGiTPJ@_(} zDv;InGOu=<@u7Ixb~_?6#YP-iu2pOZ?LUK|i zxV^t_6U+oOE$Sup&vt{WAwuJdjqOPQR(-?-E0Z1%$Rg1 z#on%y_n27dBk*p;l~7WuReNt{8*!_`RV+K$)Nr*BeZQd@IlTf_AVqtT4~Fl!nDkHO zuXjTzNFO{+&g{X}Y}@x<+aeb?Jj2C!zdEO_w;B-X7eCrR79&U49oFH3hhYwVbCB_p zqt;}%=60kzeyh6#(b1BKJDs!EWnZYAFL{!0_8oI8*&p6X{ztPBnI8Vk?k?`X85t)A zhnxQFeOaoXbb;Eb*Jb;N6SIk8c)L0n^jnMK`7dVGH4d`F5DiOp^u3L}=Wmwrf5<9O z#3#v|?NJ#@e_o=TR!V=H#Uxd?@{(q{@JaKeEo+7*c2z4+pnb^Jy1T|*Op)Jm@Tq<0 zf_;s}&KSrjPhJ&4nNdq>8NNQSJx#2m)XC9vWHxl#UuHG@doxbUFP8TY-cjb)Z za;=_a;DN(uLVdGZ*K9C3D52a_-#TX+3G<9U%B2Kd+qN%#)rY?=VU)$NY)Y%u5L5Ej zyO2^+L|=n5%}Z}g+hGoulg>Q}Z8`#5^K>v`6Z;LBCFe8tq7l17HVJpfslb>^!044U z8Qi6zdCnBxb0yz1WH_vH1+eR8P8%6>#uAfVeBVHI_ra317!z-~`~Y_0)jdOJxu9F; z+}X{B_X4W)uWT8Mu}h#h-1STV5F^^Arkywj;K)4lulZPa7%y4+(h)LYq*z~ifVcY2 z=tNN@c`1_N$}Xci+IJOsR1IDCJPan_$`%_RYj7$AO;-Pg4Cv|x=sW)PQYAYufq#zi zfpibi&u*uC+SD*H*zmh#bqN7p1|h+(P?A28mb0F49>}C@p4rx|rR&Mg3@G{P+r&2J zGPRRmO%5^AdeTC*Yj1Jpy1}*PspJ6GIQXCsiB>rp^!w8p0c;8|>!kIFVXduHFj-0c zO7&H@OWhj5Q7JC?`{EZK9zHt!1G4I*c%(NeyV&hn{GpE>xeq;S zY>YKWc~w%3Uz^yFTYaqk=APjKTt-uNU`QfhcI4=&t$<=+S~aXC<1>?tpM!iuCwLY` zby&t+wC4o4?5@_O?^F`hH3C2c-)7=3ain4ct{@fMlM$C;O|?uBotGL`DLK!sj(UKZ z84t#{Eg6H#dD%n%B}+{+anFdN)b50=Z9sjwaOs%w82-S>O5JpV{Af!MN+56-ct$%B zdZwSHbSqw=E_4d|fzY!sd20AOe z+O>$MviIyig^F{{lg@U3kM7Aqz?0V>YHB6tlQt0DLUt`VnlGI8Lf}t|-*1{Ndem^Y z9ikz?)&5Z5v+lI5>p3_N1orTlD|CKR{k+5mg?b&XS7P~|U^(}*;E76ns~vaBSnz@U*3 zvjMMJh+vs31bstj-%CB*Bh9$8^WufFF6V3NN;n@ifeb-Wbn76t7C%M2=@>mPUGqhp z@52@yC+Y?_g4iLJrD=TcVC^EhfIs?yoTarvMZE~0(et9{$CJ zg%*D9Zt@nV=H|B|J~j&WA-r?@`SRJsf-CjzW?boFB_l*ve$XVWMnH2*oD24@{T}q4 ztu@clZ4+)ujWI4A0_+=B%GitUj;+X44+O4%<(A2g6xC?G3j5*sTzDed-5#SiF9cQy z*z2M{kyonh*uLvZ#Eg}xSl!sbsSZ1IqY{}(w==?Xh&GS7cH#TO`VIo=|L<67_9%=U>!tw z$IkcEMH?6Y|9%&~ypMn{flG90N>X+jXpcI>CY*!6)2s;~y!Fp%qWa;HA`LO5;(SBF zkl1%iVLwm`VtxHX8*@^Uj{oc+Qfr9L0P8&NMksl(d9|7GahHOfTFU9T82A^?n+LTp zd01YG#gXHOyw%SG(EDRarA2wC#?)J;!DL*By2ku#*CX_UhJ@q|m_BC}G-JVQ*YS(^ zK1goQBNrh!C-5x~)}Gf-7jy--xE4@{>T340h`V7te^j3y?1i{I9lx8CW&nYU&B=ZUO~ z8`uS*v;c9sHVP5^I8ir=i#5gjf{pforD?exW_}&i(jy3}X zw~M`S(5xLGpF;(@w?MttvGQf;pdnaZ5fI%z1AL5p1v-Y&zD``jzwUv&D=I}Nca?sG zn7|fGHgU`A3Q_MJgsf}=zB3by{|re*S-y~~{Ni@|s|6BI3gpS`Ko#A>S0z@#3$HNh zQfg!GdvfgK?8PZzlO*CDv3{K628zdc6cSNkJv>vxG8va@Op$=j5;r{=~}<8mcHh?E%jt z1ZLB%Bb1xHnvjALTO$B^6h;yaiPF~R;76F5{nK@MNc*}Ie+d`->&1ZrZ6QY-cOU+2 z2TnXj2PM%cQ{+?@3r%2+OOMwPM)ai0sJJB<;gCV7E7y)2Rk(qcy&vx25&F6j0Jvs} z7`bT1CD?Web+V?n9W>ta#I}zf3*AtX3x4$=Vy8gm)WF7T^Y9q;(apte;~X8sxSpDx zCaylpE%jea&5CRw=%`&Zfr8Ll>?4fS#PV%J7S&)avJrw~srlp3Ts5YT`#NLKxJq2U z`{N>Uj|ss6+eT%(xT>Dek_?3A4wXdbIwe($6TSmtvT2*S$pQq5`!77-3g4f`Ccugz zz|Bh9+BW=1^c|=2(ll71%D4Bbfp7!V8{7m^@^X~sKfMpI>3KPWBY;0si-iu+idD8I ziAH9fixGj-#=@i?-w+Vzz`yToxjKSMu9)?P&-f2Gvg2QrX^#|A!#Z*~5AUdsV9ZQ} z*64<#UeM-J%i4_jsK#!&%hwx%TOoW8SZuWyvW)|G4?G+;g)AVKMor5qUPsk`Rc`u{dq@C8Us-ADGKXPKAzexfLf7gT# z{=RKK4=~MvYB)S)=`6~XED??Ilx)u~!1;+_%)y)jjPu4>4CC1cD8ew(ROe*gpy?Uf z0PI%RS{m}Dcl@#f`ahx19N2p<;n=R4?#FbaP%9*2VVvAeW25zE)6?whbeRQKb4_l2 z-!t$~mQAR0L8n{`BR~RrbB6%3D9%Xrd6~yvRO4K^{)T6aLe&m`wkfjI?I#-RoL7oW z#75EP6@JHi@^~f2w0o`qeiz!T7|v7eVYGhbeio1=Ap~kv&?J!#>msC|SB%1V@d%1h zq%lrEo8bRa<4>rQ-DwvG8#MVDc*SnZ|8+`l*h8piYa=pyz(2I^65Hr#G-(aHq-!); zb;$JcEIOzK}x}n`IXl>@}_Nlp9>S~mibZ~PEKe+zigB}`5FpvUC5DF~3qobpm ztmm84%`E|*cD-Nfdu!liWO{m1*7Q2dtNUcLjX9`rZ3T(_5U#WRW+V&cVRykDU+|qk z(EKI{D!;jJp%1Mwba6|3Jvfeww1J1^n^2Hz!Hn)**Ul**(89w$_8(Lp*Gp*&jxDQd zZ__)>=9ed1HoIn+{CalmoNMNr1!? zH*`}5<0z_7T*Rw6VP!2XFj6G5sz0Dyo_3T=I zm29H4MF53Vu|zViVAac%!L?FKKjso>{Yr4>hW1-GweCkOmm3{u9|&|K&puLht}~Kw z>fKNU=RVP%Xly--r{Q6b5=X@-si!>P*Wn29${q9Zrk zx=-y&Y;iS<8ZkI$z}l442uN+Ic)v{G91vEks1XLNgc0w13?Pnye>HEG2Dr&XP^ra*u#vfn%ti! zh=t<{VsfR&O13?P5dg)3bez|<>xZ{%b<9B2O2b3)v!(O`?JEMoIM;z6I{iNfyWEuFkZ^_)R-W69?WNYq-1EUhgB3_sQmluV!szB4hwCSI~LF`9_ z0;WiTF*tdPuS2Iwf`QvTQu>P>%#wCokYi5z_9oB--t|ztO)I@!pG*p0+S5c?FMS35 zj>uqdDO>(=IW0u_%NW6GdH2_~aw?erO6gl|&AA+Ve}iG)1ezr!<$qxf>awa1RJ>aP zUOj=Yeb^9N$e59N4mk|Na(d~;qiUqciTpyC(VX!8-(-6Y-SkyR|C*`~bnd`8=X>Ic z2k1P^84YEoa*-Mtuo?axSk5!Awn5_5a?ZKzSmT~9_Vdqxw2VD-?qrXG$mfo^*A4 z*8HoPk0D6Q2Avj^3t7F)htZoSy)tORj^?g&ks3^ybak0x7A0H=-Yw#Y2>*q+@Qf`u z^;*=v#RrPWp4ofo#v^@2fu<3WL1_x{TqN$=4{E^DFBB)zEguh94Y&7*J|w@&fd)^H zHM&3(#FFt4JF&Ja%^NN&Gbbe6nqeIvswYjNo7OBB}w7HCEZn8Op?IC=QgVGJB! zhk15Sqg~!hk>UO8X^S+mJ*D!m4|O-!#UBaQFYpf5CRm`16Ja1ZU(()+c_EPBtZ)_S zB7}feSEAsQ#v6a4Dc`=*VLn4a7iiDrSLm$r z)EF1&81#)Ofg`qpy6Im2Ubm1x*vl?^rAfa!lY=rSntP3JQR2xi)`v3|b5Dp5FMzf6 zZyI>a-MQM!{^bIy($u`#vznH4fl3-fcz?-3U|cLbTa1-%`PD_Gor> z4dFMx)CI8%lQd{Y&g5`2)Ul|IRc_l18($ zr09l%YA_mAx^j zu=*E-EE(m+d$pN>jNg{dm4Od;yn z13$GCUbB6N@iOM=g2uKcN2@`)P)1eC?_Jcn3kc#_qXRQZOC1y|RVJLpr7Su%0 zSeG{DhWB?nuz@O``W!ToUCfkawF&%mYjFSu9%?&oT{4 zq*{ps+)@7()gbik#U6a(rQ-GY_j+x1=1m+%WCpeKV`B(6oN!!f0FbG|9wj-+iCuea z3wAX|%OtJXRkA=A%&<{&v2#^28~%q7d95gOJPd@nBcV_@YYT}aF^fRg@=FKDCt{v? zc|XHwIu7q4*bmRni-mW~^H)xmKp#OK4*`X+p1U0wzpm(n|Gc{(~%gvsFd; z!Q7+Eb@vKT&oXHw+YqVU5Sj|r2>1S%< zY$v?6HBRjA*rtrS`@l8B%(kx-`$rtA z+K_>CD7Z>b0C1~=bpCjNZF;nR9B8+)k$p4XGG;Gp1#Rd}2J39F)@s(F!$w^cXhnbL zS1F)Amfo=v`w$4Fq0q0(W#1pU7ERncDn|CEB&FbJMgdz(03A=Rr1e%5k;j_rq=7x* z1=!9|ku*p6OT4%;QobiKn#tBR9>?kw^0 z`fPS+JlK1@s@jO%3Fp$$2^!8ll@Bty^1lT}DKXGA>8i~uGJd%qbnG?vu3ZLAZ8NI-RT?%**$T zrUPeXFeWc_XeLsTD+&MYl036z=!XjQ-TVkvPP-NwUnM!8&6m$)24xkPTcZ56Ag=ud zOZ0LMv1UZ=1ydT5-6WK}#1GcEsRLFEUS6*VZZPhuBSnW1)Ec1;dz>52kH_DHW<29L2#RQ?*k;@UNWB869E=D8m%zz0bnpvb z%Y)xjVu2LTxp@*MK=xMH^=^d0-`n%Pn7>W1>b?iv6rXW18w z{S&SUd8uU@q)q%yzh*r-(SQ@Af0;#in99x1PO?Gx;QotP z_CpH(M>)_r2hysE%DInIi|V+rMJQEEa+@4>pIj!p+b!uqx=GH%B(T1w8K+YQsa*{- zc0)piN)Xb%g>ec&cGfW76_y`(5`qJPVcZsB z%#L(9ikfXRK^K>GKd>4P{&wnz@6t>hI4#GA}HAXrJ$1QNnLw_!?06(?j7u0?!xO|u)Kj}6Lzuuy} zEl5!q%@J0yMPZ=M334~}*uN_Yzug1tFNC-)#vkirU)cfnLNhh|kNQDh&xPPxEhDUC zN|mTJrMw~qQW@MWPv2=-ma?@goYpPvH8C_Q^br|c0b4mN@l7)4DS*Wg0N$uM2NCZZ7nJFDgIt59+)-N53YpqBv61S?LAf??3Ie zyXHwlkf;~sPfu;W^W};G_?Y!D!>s|SrPnED6BR`15tC>+qA@Y-RY880M6GjBR!d~M z5T-diqZP6#i~RR5n(h7?s2fiL+m2e3M^Qhs0+eaq4=IgdUILpM>cq@1aC_!+wilSO zDK>B}xD0FU)$9^W71@1Oa%*Wbk>64oY6%yD+M>HBNZ*XQJ%0dkNoc+g=e2TO|5LMr z0_Rb;7&Y_Bi~heNR(>fihodl~;P!;^sk_$Hp zemKHv>`2S8m`79E>VK*PRDV<|@sPJ)r^;1e&C84hw14sF1lTGUe1oyCRig!qMX9^h zilRz3Ask^of>BNHfC#2z^4Y73aWdi4?BquA*2AMDovrH4HH~#Px5hMTq##ELnnM7& z3{wTCI={n+J(CXHk}JuO7*NxytBhwmaTbQIomWTXiTKXV_XL;BDsj=>!#26>H z!iNGQtv~r=`QR=dK+|30Z_)##!V9hg$Mj_6DS~HUNP8#N(#*k zRyv{8m)pS+u%82p&PX|&)j_-p$VQ>HrLk|U(d7kXQyX-q9YM=FvAbD%ayQbBtYOj$ z0wk5$?`MJIN@SI*q+<9GAL5NUbH?2_!s<7{5#plT;NQ?X^5wH+CW==Dr!TCFCttb1MZ9oycRfjD4|d^(WzN8=yny` zK*b#w;KPHJ2|$%w#Fa=cT~gW1P$;_v)!ZfWQqN-jGmVm#1uBkGdv8p!#J-R~)NJV} zr&+h7G$}+2KeE@Ef5(0O?*~&TIeRgYbczD3Ry{T8bO!;RA zD}u>#G2POzXCw@)(c&Y%{smS0hc=kbr1y>etV70K0m{nxH`W_Faj6J;@t}tz)giP9 z^Umj_dX$YS%G2;vz#*V2M@zaRH$yKX7mgj?RF+CmQv6d9_|^Lqj-?h-lSjF9 zMIz+vpZVgN!5;_s9)Xi`vRrrl;=q&WX0VwUv?=FV#gP=C3Mr2ktj@v@%e4%`eSLiE z(>b7j73{*1?WU9(HHemO*^yi|r;^oM9th=FQGGq-@ccVW=(9bNtd(pwdb4CxhEQ(w zIuQ6$NyE8+`SK#hj2-ASaJxN$daUh0?91_1S5Gi$t5(pqRn$m2_eGb&jWNss-hAdo z`33Qy*-byq1O6rB zO2{7Sg+WOpnNbPj%5o%iL_c$Aoth^d5SI||i488qtBffCPXucluAL(~>bs1yhR99$ zq{t9lc?zAg-9?#!kBB?Qp)M&(lzz_Ra0*TeUk{ed1Dwnk;62PUXG5DKnQKye|1uO4 z$DkH{tHK)fyINVI8R(Frl@ zsT93W`W@%t96DLWZCs7E+K!~3!)z=u-9?x{kBnU%MM%3#3$zLE*bx-BMi8*+i>o+w zLiqJ+U#JNuP;X*axP2CrIkJV+F12UnHZ&QDUsybwbX6VjYo^F&p)+r-`J5)Eg>)hw!kHABkOaUz_rlgQ?)TP zlJh2HAOiIUB2m@yKXy2XBX&<8`Mxz|TtwO}AH>RRcnpN^J{e=`Hv0ZU5ai%M+lzV3 zaDLPQ2w=N)iP$f+S_EBwG~fg6p_E1}B8aC=Y(6kp|hw?!G&3gH>q176>T5^uFNym*!l!ZY2fbA9%zi?tr zof|uT*3pz-$qo5-816uZ(OM`xFYP8Avkh8}AQ2xX)EhM4=!=(N zw?RREbQ^ov#B9-Oc@l zwPTOz4D26yLwR}{?S`yaa!a6{taim}UsZ<}fd2x86}b@rHQJ{`Rm-#n`;v}(+j(iZ zNz;QQkcCKWy09E*djTMF!5a-8<^QJZs-#rCfc5$V=)e9!8j>=yJZP|Uch!AN0 zgF}w?Hy62@O{0uX99gvChewc=Zb#9fsOlr01y`>!V;#P-*4?M+L=pu?8H}|-(BvlwPS~x#xV(B({BEuK`NYm2l6VboJ`Je_> zqA5WaKwEpaA$sv~J~8L;5h~iVu^Tnls*!eLCv@fxkzW5Od;eSN`n(Ucss~_21kj3( zp&(^e(1zNiVTYf)MFIH&Nlv1r(FyUNtEd35%7DUMslqRNe$5+YFW#2jJ#}MDG_D4ziK^FchRBh!w`~QpV5zFWV|`BrirI%t1tGrWLgudP1}X?ICzLI9n-q`Le^;QA0{yAU&%6C$Lg;8Z&cC?_@g@>TWL6dC zL#X$y46YB+M80t}V?i58Yt~1beeAJ*!MLgh2=$JIJS>4~RD*7WvxaCD{cIW4h}@Z0 z(qW(0dc`U;nvC>U(@On>!Y>z}b>C-U`NfPt)~q))Jw+0L2XPy?54lT{2+Y0~7`Gk* z^jy{k!E4h@*!XM5OX_KC#n|hYFriQTU2fSr%}|NYQ(J8n3v9QjSKM_YM1*(uW-rin z*k;LAUZaO_F3lxQs0^B8Oe?V^z@*-(hVY~|(%+s)|16~QyYp^T!+?IM!0WJVouh_~{=`w^DWS3(VRL7TLm`s|)O^P5lq`VRG$6NF$p zSOkro%I`oG(5Ur81y(Ek(NlQh`yRp?4`wAKQ0XFnPp%2yJ{nJG@JmQo1XU*?OH!GE z*g5bxap_NkOw$~)9(W@n$Qu+J&4(SF(q9@MO60rGIT*tQT;##X`Nw>z zz5+}q^f#+-oKr6+`#Y(+mi(h{8eUWp&iMHiTJMw15cZwMIMApuG#GeQWy%?#QiIC5 zN-N@d&+WZ~kC?Y46^MfbG$3I*awCv~5~T}mlTPmGP-MC@SGT-+FlhW?SJ??#5I#mI zo?QyufL7T>f$vhPw-7FAw{%sgHY=}vdt8y;T^Xp4*s%A$X+cd&ji+8T{xaV(K&w`>N z()|2ZGApw?&|6nab%GUmRo!EuUsDwI%2LWg+xAAjD{0M)SsDHu<(Ty~rNlUpkTWoHM8G7hp zQVSCI6^LO;28r!BI4NC6KxLP5*kblQ)_5jW#U8D%6It*&Ih|1|OzU6z*HUF5Efj_x zv`WpK7Xi@q6>*7+k*Q|>QJLG15TL|PqyQMT{M(y`Muwq#97a(05(Y{2 zk-d|O-y)AoN9M|8w`{qBY06T87N&kcFEY;k_gT(uIB54sl=C^IiFas{DVz*dVI>g6 zA6E+7XdZ5j$2+W|V8E#j2Ec}q=dbm{`k%TzVKD7AolEAxmM-Ze5ZWr1%s3|SY2Lf1#LvR->iZagRme1f4yQ1jJZBn~4y!HUgK%1q!hU##f#J2U8@g_%F(&C`I9 zp#fY16}{jv6^!1zaqr;hj)+fgcIec^Ab_o!UjWd88XV0wMV5`N3gtQj3kk%=N^Upk{YNWl)rCV1q#Uta2Sa!D<$<0a{9sXu5O9 zX?l0WnH{(o@}tGZAY6(H*ng9_uUoTTtE2@%9$^R)bo^@Tj)ucY(5RrasHkG-iQ`EVb|_vYN9fc90vG9a*oRblM;&iDy$XzI6TJ(dd#VMUvh`)biNc# zGUr|ZJd*MAf~9F_A7*#P70I6p^lR;JZ$(u_-K%pBtm$&1{>CkJV!UOv{TH(%7Mw`3 z6_Ni!sRQ^`fr&^*<({ekbJ1jNA&*IqTa#~%hVM?LexdWK07#t+`lq@Vp>M^8kiRN> zu*$x|LJ}p-@kX>Sb7o+&Oox%<5Fd;_Et3I{f8kM}drs#W) z9K@0P<+(TN%-O0YvC;psy06>B2{xP9Pp?0&Y9a>s8S>N4=i8E49HNt=Sfi3FvGBf7 zvtDy7c{Y!UYx!y!5B*`LhrV+LnE1>OfLVjIo<^wJH6YbLx{bE=1`2IdcP-1x*`y$68`-?|O-|ZH5>p;e*t`fh)!W0h2`F`x~+CAd}4UR8-N= z@Iaz+ARyvID-NcD;JewE?AV zK(0xqB;Q2lkxAP2o4F@)roi0jfA_|VsHYSMkT1mXdFj+1_ldA=H7qY7LW zT6oYjoRMGa-G!aY;UW^P2j_SGUY{OSaa) zz10jR>^OpI(F?duunA}|(Vwk`lw7l~HF6ZC54_rvVyVZe_|`76BKcJ4{4sF~IX+3OjQWv0s341I*`*b64Vh%7fwg6Gl3UKELGb5aTIOFkSj?pku3EqO9lcM`!A2cgD<;K2wF9 z_(b#_8g8veaYp}wj~qIf?K0Om_*xD_3Ju*LQG(206kQh}VPGF34vN zPXjAsN?Ft4ehMiUJ(qKI#KUxa(m35&__;5NJn0z`ZB;hfEI|Ci3tb;ipfC3>Eed3o z=spq`pDPb#eNLtDc-#maOTb+U3deOZDWM1Y?oTJoq;~{wuz-_9ZG$jnT(fLcNZ0o( zBPj*ZM3*2@@~<+2NAV9JqHHvFBF~r--=kVWo;O_JQ&4JfswKBsYv@4y5J%&J5M=f-^hnk>BO5MJpzvOYiJ~!em zHP+iCHlv^FL~!>Lj@$WCWP-e?1~*mjlp;Z|(ur6|(hmrb#8V90r)!b>-P6rY*Z z3x8%MOhd;Pa;$~sbgY8>3b>{s`sWw+_0bMc_lnq2cfWSDA{5})4<~_B>v^bQbYBR- z_IEnNj%K0Nm)0LKv5oW8ns^&E%6cAHCX3Ndq_0oH{_IP^*S_{}UPa8771p4_ea6Jf zg&_XPnIvD8mqy9YTEuSCN&afX*B<;}R`b_zVv6A7k6wd;SOh%Y{m@hb-p-TA3m-}^ zTp+Vd`q*|qB!97;kjOa%fJG|~V)^92!3_CsVWPh1bAG`B85^t#b&Pg5VunXayk`ob zIHR{anQ7c){Ov2~ ze-6W6?Z~EDqlnPS5`p>h;M~>kz!>#F3H)T?ybo;6yR~~~OqY9CA|E@ysDobs!EyBE zRxf#5h=g%?-(8Lkar0LoiE>6R%LSs=89bf4NXS5iZNv=E*!KfeqtFgOftLaNagwuHND8djSJ5=KV-qBBlclOLlPVYgj|d$cv#&_yw*%kyS&b z=aW9uqdZseWCO|Txj+?uIQR8vHC?JR6VCV}6@$rfndJ@t|7d~*eq{n)&D@=+4Wgy0m=Wh$<15{2i27em4mgkf=_p%J zC?X$uaac45lm6qrU;W8R7#YPrZ%PB; zBIy0cXR0{d2;`fT++TDf0FcbHPP`ln733H!V4&#FTNm8?=YhiX3=sP|VvJ8CpKgx| z21bhx+ZL5=r4Ts;1{d@OqW|zZ@YM#f33wJF3St>Xq?%S0N6ZWNLFse*3lqT*(UGsQ z#!VG|U^Td66fnWin*?d10|h=E26Q6+=@H+}?A)|G)e^snx6Q z=f-1-FOp&9AlC09wLZ?jSmS0$z%8*T^l`h!-Nb~N@hJO&!TO0cq{SVzL$etbirZxU z;SQca#ceHLlw5Y5K&n{HzV;PbZuO&?dRkR8aFHJYi~s>K?i}`|&ytTtfRUvZz?n*y z*zr?9?L8ixRVTj@zq$DTP_KaA2BcZOKex8XISE7ksaP=67+3q>Xn)_tLQ5m5Tyr17 zqmCK~uX@VvgA0i`$RQUNfo`LphuapAc;u$bxsHo5g0#~^@hJBI;eDdeTi2u?+d}ux zmJ-{}Xm`ty6R46)kyB`p{b0tycb93f5+0N|5|WENw~PvGuwx=DYFUmV3NVG~v&0i^c*m)fGmNE0 zODmY~`k>~qMC!=o2>cP62WWMl@O$~0gk`xfkkn5wB=XkDTjU-~G*dKE2Q4@-9kTe* zDMSSpBR>mOe<3#%zyQfYmr{qJt0r|42BuW#V3=ahiH1fE|+xy&AJg;t@YKKNAW8FmwcVyXBP8R!F!fBM2Z zmyREqh&`-K=h8EXcbTR*r@33lxN^}KL;%Nb?J;#F)0CSwXpcE{L?wT(uzL?Sm1NHu zEmZ7sH5pC*4;OEkYSAB;;#P$Bk_DQGLZzysyw%|9rJXBt@c|V<40PP5?df^Qcj!@e zjv-I0U=>{Edl{_Hng)T}n7YWbK6E}kJFPqwa)~Hi>+g@E1=~) zb#W{4P!yKi4i#h4>*vrfp8lYPyul?c3FlsLE5?NLrR5i0#5_N6&?5Srgw_$`k^MCj zb3m+9@;dAxN%&@=Z~~{KA6mqssLaRVE#I=FSzATkr>Y`yJV9o+zwL0JOiZqSO%n{M zx@A*09H$xAsIGSocdO6+y?L%@=vqi)FyObq)cphIWU%jShiw3+Pc8O)rI}Q#Ip|!+ zMY<*v46z1elrsgP3E(j6?*96j5bzkXZvo)84pfkJ;uL$b={0gH+M3D4pUMyGE%M(; zI@W6kXJu@idC7_|dFLB}(EbCAK~l1?(?;<1b_*;%cS@;ULR*ld!s5SdXzN0VY&3i@ z3q&B~Y*@-S9!!Qp#B-?49X`9j;rF=KJgxI@?}q7v;V=J=SfIyBk;r=$5@p$?L=DT9 zQrVhwvh7CjyDZ?vgNnxcIf8F%^rUK3g;q$JtI_YiN?|s#F5y-m4Oi8p_T^WysN$V5w>dlOV6S@%!D_ z5M;Ua6!)j^(@*&YTL4a<57A?=%$<7C3{21aOV}AN zd;=Ct>`Qlg-L%jSN|4SE<8FI%(@Rv>yjt#FNj=v#a>Rt4iaChg-rr zRO$dArL2!Zy?qINyL2}`bTP35g88s6AqZbKioi>C$J;%BVK}}>gIZ{?B8Y$d1Mw_DJnsQ@shP)=iO0)S9~Upxuts1L zjE?>`V+jofbOT;DNTtH%Fd-U9^PL3@*{4S6{zSQnW+e0Dgn*u7jJmw!9brj+yE#I>Ab|02T7@tK%l)egqLJicmUwb5RZG%I=roT&OSUmG`cMJwss?$W zCc`!SDA7cUidpEuNzt?sJ>iCzX@%G&G%i_^q0XBOxmED~IWZeuRP+UVV~a!fy{*EhzW?r2^u*VVrma zBNK-oxC7z$#JCes^vRp)XQeUMAvt-8UB+C0PKfFB$vdYMa5tM2M3mpLkvh3Opu(3M zV4&%?_AOh;GuL{mvIxXvKmICeX+ojl@c6dF^huQVmz6R42U*|ZOhyAn+KHAXP4nzh z?72y%u}my*%cydtJk%43`?RepjqU%(s->F2*??zodf+fyVD@CYDgH#=BwEqSSNxL& z%6QnJ4dLz9#mLYzH=xRPuG!|AaQMQoti1NkZO_u}D%>}e=bB>~;sB0GLP_u1|KLw) z3AnNZxQX$!!m(z165t{~lf&u6y%@pZcT%>EsH{<0G z2$J#ri6(cq3FB>p4@x5bm_H<}2U+{3U@-&nHe*+0(+a0_mU(PUvs#^G_zT{qXAIcQdpKfT+t$sK=B2Q^q~3QrPyjqfS+vx@hvlYTQJjy zH^XhkmX1#fb}e;cNX)4?i;&nMjyJj3h1>6hqPT5c6ceK3{gDKLo2P9u>Q-Wz%^O^x zL85vI4aAb7Sr*X*4j^k!PtFqv%NfpUjOY;!+9rIj>+tE2NCKS8RWx$Ta|U;>`Xk4fp!I22ar5S)c_vzpASr_`(ny9uaD%hv)TE;=)hTP`jn+iD|^}SwzZXRFjR&$ z6OXxBEB#xj`Il3?p{&-$Zox?7>iq2>68!3(njgo~WaO$E|1EQ{HlT)t#o2nn}`Ki)BnNsp0N^b+v)jeJ5O=f>Vin27;@D_^v3Hr_^0}&{A@27(}2aC)S>k zqkc09L83O|8y{4RJ1p5J+@zBmVdG@e_WztD)U`!-F(4I?ODLB0ncPZ{3w1}r_d>P#Mgekv zxQbs;%zh+7J4mS}@RfR^#eBbOli_j<0Y?y6QV)@8)zQ|<6!M>GQdeVP3s;KSVHKQt zwio&`ggEBFEhH2mS@&VhY{Yme&~pjg`{sV3&E^DculZu}>sE(aPPks%v=eUDaP@V+ zs=#((8>oeQ-gB|{E@*z+XofjVT#+x&)bKt&RR@Z7+ZI?(8vd)9ZDoGDV57aLCq26hpfj(g zNYRjh3O`uEDca=Pii+t}tV!}{%V}`Wi|g}_8#wgNHC`fw(e?t^p4R~WUV$N|2R@@6 zD3@h}zmQ!;*!KUKUq-Xk0jyO_aS5o2coYzDJI=5t!P_E5gjz}1)cj5C?%brh&}#+Z)( z1YY7@4YE;(ST$PrJnZJ=;$RhxEdl>&t++$IO@d~R9&Lk*8>hC&6!5x5sv!;GmTQ^J z8jFA^qXkS!={}b5cY~huHer`aAJJVI`ahLc&29R)l>LL6gknIHGx+ zlmp-lTF#%iovDW2#q^^OYk5aLP{V+lo>qPMfwLz1SZA(O+N}liY(o0oJ^saGke3$| zMOzz45RJl7A?nj17_rWp)5=Vg&(1US)qh1}pn* zwre`c4Mwe3D*XD3oM+lkjj67VE4AbJtLbF5r3F<%K;%8b<(gwN6sk2ZdT)N}Gs-N8 z72=jth?s}ia#BA8i6?OW$ZdCBlQMkgZ)M4`K?^+Q)3HpSeZ&uYU9yp^RXT{K_0Ycw zs^m(@DFjHCRdCn~#VnBORfrNM=~^Qq)p{gFoG1}p`081Ey>%?sqTDGBdS)dQQ85|* zWQqt9nZqt2^BVz8bJIg!D~KY{jtw}4t*Xau;beI4OTSJ+k=8bX8pfo|G$2TxpozEDIuwE0dGnH?OE$Ut7X9V6{ z6?#B=IPs*z_F z5DDFd*RIr5j-W(F-xF{eSp&$P< zTSZj3bGGPV!%Ail7$>H)98GGF`FWmiG-U*#Agc!s&`TzqGMRia^` z{H|U^YuF^Gk>Fd>t^7nZ?`V*yFpI5>U@tq0iFW z$fcY(AIfUiuIFu^9l#y1Iqvg#5ntuv-4Z6DQ6SUt!wfX(nGK~Nz@`fOr5!^9 z_pAsd*5WJ?P3?jqvA4<-6K?!JW&I=HE4>0R!L)2}0;>Iv5+p#xEYgyJ$4>Y-1o325 zOp~f~&9@dee4N(&d`t^l^h%r`Uf^DEn zS>T@3Hfz4nE}?;+wSJ;L+B?RdCZrkKW!T{at6sCQl$Tq9ejh$mh&RYB)x$MY9=rEN zVb&d9a#?x z<{wA{aJ3mf(TYh372R91pH34O(GnMmhq4!c^A4e^0`W^;b55Vo$t@{KSlGn$UIW=t ze0x4nx@A7YKrmXIkMn&}IVW`Lv`2x%Rz&(6IyuO7DD193fKb%|( zVawMKx@v5#>A9XEY!PIQm_^*R?q<_Bw|lV{cim%bU+`MonS#6c_+dK``m4b9!52y? zdi{4+YZ3Kp6o22cDjihBDUIiv*hMnU{3gAeLPv&Y{D5eguMo+o0w)n%Y)V_VAD*5q zImY5i!SRoO$4^UZ8AjSw(pg0DR|IHPz3J-0(k&!+897EM^kzj}-X%WB&HPEB^}c%V z#QE#TF<1^+D&0~n_bREnZDH$+)s)(e7O=czT-bLI<1YQ~Gp~37ootEH=X=B410(fY zEKWeKE6o}e050QFLV7Jnnp7%}d!K!Qh^L7W3T54kPd*QtsS88m-WkwqyV!qZHT6BgEEXJ`{Y{Im|Jrq6 zShg#me>IzHr{Uw9(=dr9hxjj0WpWL)P$CQ+O&!MmDKNILuGYuNs?r<{ z{0(NU@7%%LLXskzF#}gr>?w@x&uX_LopA{^E0Fof-dDd$`;1s+3cK|Yy0L`YpSrUa zGp~oVjdh*_a&83)V=jH6vpDcK)isfK2owfvIti_;`bRQG@(>uGj${8_=~}|aJxq)D z3kLs&3>cGNeHcGSuCQ#PBX$383UGWEfouY9Codo)f0ESUg#vVEdVX#W;_i1D8&9(f?2yQzeKXRjB!X z@IaG42032%h5{^bR5{lzpb9$(L}nwRrLjd_rIO;iLJ@xp4)4L~mR}O}!W)C|j*oy6 zi4h)<2~TVc(1YlY$3b}P8A2Y={XT}2D5SdOatJaRhXKh#iS5K zjFqbYYduVRUOL5lwz))kXK{e3M9hnFCbK|`a1>#k2xB#JK?Q3g%OR&ad2WO2@aRUc zetWgPK5fPOP68(J!nJ<&%z@4D!^}N(8#tmuQc1Gy2*SzdPYnWF0f6E_w6SV}*0Vt< zDqMn_&<>UvBy=i!-<3XqSqY4%l%Rn3P~T2!(*O%wu%xyBWUmI1a)3s$Ymmz)Ck<8* z4wP?}*Ni|7=7HMyrAO*jnhvo;fi>xCL)+(hw{-asANlSC^hpo^lqeYw`uJiNcP140 zX?1gTi!bz_ZiR`095co`Z#Gt;p1Y3pGT&aya2x)&su=DIaeTkxtAo*Syjq^&w|=vw)~F0z2WoO zP>8NQ!SdG?|7M%j;CA1;x9jrE%p!kOW)@2EEHJ3T8^m(2g@)IzWnuS$8wvy%HhdG= zX~<2PR49$(el~xG+Ul2*_+76Aoj)m0OiB|t7+mY$^&ytYR8=IRNuz`I zQlmfKL|)5I3rkyIuB*-&;o!uA&136}`UHdo1SS5Zx4Eci9cxz`Sd$}cTn`VE(MhYZ&X}8g($=KB@qKz9a#W!U?vYW7^{f+E_cq~ z(jM7+`+K;0p!WIzD%%4-x{Ljv8W$|=_i1ymLbysfUI)Z=y<`4e+esB{Uz&a_m-ueL_U@D5_JZYA zp(+E+I~1YtZv9;ZfuzXhvP%SxFD3{W;$Y1kBR7uS2wU=nlYKW#tA-wEfpSXVq0evG z#uI+Z>rj++Y@3t~)@^XWi{4RndLMmBOcDvh!42jP_>|nj+&Q776d6U-Vu3vnRn%#? zn4p^1eYjac->F%QN-MKDoMN)kY6dbc`cNzpJ&GB&_@jcMaZJSo?utmma*x#}tq?9d zpRVj&*K-R47K#g)r^I}q;Gg9aM4!?p+p8HuDQ0sLx(=pDyzz-VlXcnWFpDc^r2)m! z`6wPaIZd459bOoxmt$Ve;QFVxcSh0x&gdte%B)K9I&KVh^rN)aGa7kx?)KV;;Pa!A zkum}7NEu%@OOrKCkkb$N8a=$d(|Ig_MGdoEcp`(}=s!$wa4^3=pT?v4?;IK|O))5Ylq4KCTOt6qGWOO_u79r(Y3y z|Avu}cCh%VJzi;iZS)7HIz_Z^8C(x#qqt|Fr6?EjfeJ`QvE5h!qsRf4Ih4?OgY~qi zp!Jn+8NXT2NeNXCs{)azKnP zx8Z=WS&+=12EF2@*lgr88-iOnTgk*`G%T+}yC+&tjG@p#U&{nB8v0wn0KC0LFmWRI z%?Z(4!AN>#GIC;x2wWH?ud?Hn!AZyFi{_6NMOmjo7dq~xT1U+P_3lhB3%nxj=e!_z zhJOZoXtO{#*$F+nau`e9_j6<|biRkz(k0cMKu(e$tOAC%4kBoFytE{;IxjB=KL{gj7>N z9_Z_W>UAOHaiGWk&4q@K_s-Z6aKkQsJtq#hA;P;0e}Z7Mw0O_wg2ZCjek(ZTiW9=L zhENtv52^o8f^evRI*8LTL@|wjlnZ>#5fR*m2HNoIR{X&sn7QRd5qssG%S?-lqHGoR zvNO{}4?(q>nRA48Fb;dR8a#~ii(pUZJ%;nZzkitKcfdq*AYAOVku%x(a}fxAR`YNM zZcY7D+ILTXy47> z(@Lhu&n8IpQ5%p}-AZD+4S2#gT(a;f#sA@$g?dp0Smp+qeey_CUP@R7Ieh{aloo3eK_A!lDoYNNb-PXYV1jaIgA6KQI?FNQGM8g5_h5S*RyK*Z# zHhxu4DK% zQALuk$`*^pL9P#_L^nWacCSpWu^V}WK7(M+MOr8K6l zaKkpK#^#0$1xF$~n9yVyuO%@PzoJtQ!dQp5)jvyQUe0#{dl~6}otIBqT;t%Jx@E$b zj#ArQQW>ZAeODR^dyG$~WClGVKCu*?H=<|AAAZ#a%pi7~nnAbI> znTvyP%QhrBnq5A&V@+jQD7)h(!u}(V*jp)QP)xn>YZknb{dHKwvEvbB5tMmfHcuh!SFtv44t|9zA|{cRMvDCO<|l#KMAvS%AP{jK(P14iOY@EpoZjl0+_3p}?{4DaOsok7$%NC~ ztEaL!RtC&*C;`1@3}O<~A{!4H?m}p?t3|lQTrqJ$1Di>8{aw)Vznctq0FxJGz}sXG z;P)fcZk7HfGp7y6ToeW1sAbo{V7&}YnarC|e;pjnHp{5l*b?66Q2@93IHqF*t5D;q z>K};|iwajGsCfNu}5uD@v~CE8dafhU92; zDSj$(PY0TxN_e$GO7IJ3gClexsl~Mbvujav^s?Z9Cb|xe-&$<6>=n=BALdQQe~{{K z5dKF{O5Ka09xC1Iy3Z^l9eL0gPd$Kf4<-J}QE@urm2VfdhrFB0Z^uB@VRNUeE~GIo z-{W|64hc!p=SYoA-6(?;egV{mc_*Du3#&%<>Ey#RZ9f!{Hmv<%*-t@koWuAgi2eDa zBvnHPxD^K~j1Z1OYQ2`|!^tL)R9;i@n(3R9?Br)NO7nqaCgOideY*HtVfToDk#s2L zDn^kL7TK95U9NX#S3L5G%fgR8Uq5bv0(i!HKZ2Nu1`8*&bhAP1E@DyD zJ}FYyM_LD_Lr zCpeo@M;z*A6k2DA&QqQ|NyCd>?w$clTu9SSIouiLr{|Im`IyLloalM2+f#5)FRK6F zRyP62I(8nTA8r2Iq=EnMM+nh|F)-EBPdr)gR5a~^T`xF{kPAMPd|oBuEw#Tc8>_go ztCg%f#_~O)AB=4MOq}H_fdIWxfMpgZ4WL$jtz}ue3KMa@DqO(z)X0CMgL|Wzg^|l4 zI!iLFZDs`88*hGSaqDy^HBlKw%XXs6+(qkGMf`gw6H+1SF5~su2x!AN-zoeHt9i2~ zbp4U-&Pdnzu~s9w*U~#-(V1^xCf#3U-$n-B`_o8e20w`}$liR%k0k8bu9(lzcb&&g zK&}gH-gLu|`Big*TyF$Z7-Oh5LRh^iNXQ;kWi5i#6CcI5Xsv7NThiz;!?AkIr$f4g zn~*^mcdx`{1N7S!l<09(&P5iTqR>J((*(&loO6cY`QAzkd!km6|2>(cT zLK|n{Oo;CZ`zvw?)ZKv|PI^;&Y)udthK(efCYv`S8dxQuR?6RTFnX6CUxw*x5;!TY z3ea2VEMOVUO8XZX6r5{syVDyzNuvD~!0I)%xj=gfXt@=QlxPj{Gw?t&R9?YpEss2? z(IqhtkpKxnlgtj+JnFtaZD<7y%>*k{bQHr3;NF-r{OvD8eG(GrS9)Ra4O`UAmW|gN$J_T?#)E_rLHRS`Izj_TUG6^@p3c)`wdY z_(n?sO?9Z48-wGJ^1~Tr{~w|*$Z{deXLlct;T1yPQs;-->R$Z!e{iAY9V~N|I8J?5 zLBNG<0|~&VeZIg~vIx zh|A$Lx~xUtYit$a+jMU9@d`SNd(*)Q32BmJ+Y}4tYVFrbDgCXocF@J!IlQ%4<}Bc` zh(8TV+@tKPH}!wt^noU@!c19t*TCmF*Gw5{*gTkti?ftYPCDKyr9CBh3J>%IUp0WI z3N1JoGcpq-0yE2&=s6OW=^I5+`*gnoV{~}j46ZLF3N_267=OTtZ5f%o*-LnNZeOF0 zu~)%d8LUQLx+8C3=pG_QjmO1I(4KG5eg5@|GLAS+y6uQ)bO6*nR=IL{e%cC72PrE^ z_lHsO>sZOI(lT0xw)fi!H2*14cVQFVnfX#-mdR*DP}+q-e5%AEiC_R~m2i_wY7~3! z{H<}M&(C&&i{fcT;krgog6;#ccOzXkV+x9W8rU*Q1BPG}LHDe4Ou9;_=u~(qJ?mJ+ zJC^%#3XlME$$qxBm!7>}fo)4@3f!>$)(phd8+A_sSv(iSO~(BQOD8FVBgX%BT`Gjk z36bs0G08j%edNrTC;rT&LeHp#GTuKrQpNi{`(zemk8a+AKmQsX zZn`h-HAe-}jedOVQW70;I9B0%=hc1#eppQn+`mx*CR^)90+Vka^e5pU)l*T=W$dp} zP<^P4o?KO$MHt4ismTodpxXDCsu~PkEwaV5nNztUvAV4DhqXqvDgwJBO}BX<5fZ^Ep_GZ;(ExDM zD4(_a>$fxYmMz7%&t2H}b^xPGFu}0cu=GSpT1GiF&T8CXow!V9_&^9&inB3$E#ELW z346I1T_+n}3FH|Rf9epFWuK1f<&h3Vu7>A|a+D%6fr(dEpOS{TRVG zPFmngF1Ez=h1?Xsf~}Iq>LVZRaSyQst`ODxLn-$KEq=90Nb|9u+_@|64tV1Jrez|> z80+6N_Ad6wrOg$wEUrBPX0;HXe4b37d_R%MO%VsTlKS4bu7cu-oH4QO znHce|f2|9@3a%4cxPFy@IvIpGJU6^wDMfa#6bCb*j|H&Yw9poDti}?P1^F+TvR@&Z zyk-l(=g&o)dx`%&@;ai|RxSI+eKmfm3%JU!z23TRKExY9)=3TvfVJHBrLonSuC5f7 z_a2hs`*I1hzEJvQTgGmM*M@7?C~k8YaiLPTEd+2o9BV)ST4Q3}2|+m$*Z7;^2=dE% zwPw_>m|snR;nMy)8t}Xt&Y7lulE59Ny|E_ojT;)qPay(p+b6`s|MlKq?nsB;xl~WR zhAoX%3lyF|EH&&3gs)y@J4NGh8jR#>Tw?zF4m&B83hkG3&YsFhY-b#p=w) zJl}>2ugf*i3TID(W39mVf;IK78>Q5J$?6Y9$ za-Vw&jYUu@y3?D#?JYT_1m9f$685BYA8MaEZd%QgnH$8 zk7V7p1?}MnoM}%!GzAu?kz@}cnR<59Tu^ryh%02ZjA|$M_A7*BUPvYE5Rxl3G37Xr zL6%(u|0yMZRN7U3h!o!oNX30-(&`F6Ib&ukuIRW)CRr`F-w`Buw&Ts#%H|hqFyaSl z!D$Ip2uY@-Y`+yu5aTppO*q;G#7@&nht-T86#;1w*ARQFiarSe3b^5^LbCOf#c;P$ zDC|-j3oxdbBmCk^w5UEDX8@UagAhiHp8VN-`n14_Cx|i+6y@LwVzLT=daF-&><=kJ z74sUkvRfL7f~d$=WRr%ve8QsFTyZ;pRPzC4fq0VgNeA*g_X0P1F+X9}+w;N1t8y>h z*=V=30pss&1rNFHMs%kgdgqT)1n$XTj+Y9+-tCg3hgn72tC6F z$p+FyKidHV**H>2f)vE~i(lBeumH!=y)e8TflKTZR-39z@R6tPr&3V$RQb##kStk_0%NmD;9Fd-^$S(@z5)me-bM$Tp(oh|3Cmaw`N zrkMO5t{?gw~7Keg2)z1gof zv`1ual81LHc&?=U)>TJR0vN%-f6wL0FIE^ zyagtzWOgj)AxQG>Hiuf<0UhC&=>i@Gg;qYu8sV!c-SHu20>e z*Le^}GY7T{AOAY!R)O~bQA3F@if6OdopIm{NTaZI^8>8Qc5i812QF8?>eTx(( zqUA93duM;315xGX!n4TgHweMq*TefBy%U*VLH8%9z4e{&XwaBQ+?K7u-Iv1?6yAm{ z#g_&X;>m~=TP3HKWr5ME0w{`Wx7I>UYeZt23TzzqH>+b{yDhD=stViTE1b{SeP4Uk zRh7=fKdAed`~Xwja3SAb9Hq1gzuE&~e>E&h)I=X6;(ieSNMJCmkZq`8Qv@vjh`{y{Qb z!(zQ-v);f9mIjqt&(nsARD-zJfA9hA${jdugMixWtNWWRGsdyXJ$N4vO_@ddDLDSl zRnFlKL9+Q7A%`}tFQjyr?3~bT&h-|!;VvlswK6=6yGH!1Wi?AeQ$U1^^62xl@eC` zp&|`WC1%2pfl8Ki!!9jXDrUlqhT6Dt&lBD=E#97*6F4L3f6poz-@rN_#zW2KXZ8&@X8lMynbi{X&r9d zw*G@qAV$Mn1}}rxG$zKhvs3-!njaWH%&*#3J?+_sT`e3i!S;t?3#(;v3oMs^;G`LD zW)})(b%7@SD`rEr-qG;8ofFsXrJ|o$Cs*7sR-X^;(1hDJd}J>T$JDM;Z~5cj!t5_u zAFdD9o*XAg^H&Cujj2K9(rJD*M=o$Oyx*dr=E3U-lieaS-3r8ehiKH__BxniS_LBO zw)9Ly?YifQY-_l)GbxjCjiPGtMWD6tJI{V8*72p)S;9no_vj3k(z?Xv#Lb<`X%I~= zRLPhIQd3rN`x4jDs<85s2+W@|q`=03DB*Pbvy>g?Dou!9xx#JhbNOtibx5kOhX{Ft zsPVfB_)_ht+r;aVx{Z^w3oMT{)r)7nBiRWKzq?l8CP$B0 zcqJ`>i%}idV!;MoxJ@xw=2-pBa%dA@`nUMnbaAgXeu~R!sA<98R4FvgL3*VI7>yWA zCbYzm7j5Ht+PISLH!ekoaPmVD=m?f5oc$B|mWGT_`^sgW{(}j7{)MZ9 z;~A6S%r`QXLr~=7_Dga?#?aX8Ol6s)65pu`*GMz(G_b+CBo-FBDJPzC1&6&L2G}|v zxtwMQ{ba~x`js+X{_&9}-6{8WD02jr$Heq`={o)gqL4cH7EexOjMrJ9KKT#|U9lqf;sLN{CJissY)FDxk2OZ~TDywpYMtyj0A(f<(x*=}_M z5_edCg<8Ev!(h#n_`%rOE)mX-p>xx>Ar8;uE!)mQ<(&Biid{fr#3fL2Q`+SptndQp ziL1S`Q1OtuynY{0Sdv*rQ8;651f(=5UItmzJ7c++#Sem;z>bfZVCseq0_C;+p z0guTCmSHLL*aQcU4fg;)?Z{t#6s2^Dx!a=73`)5El%(5W z{$IH&3u{@Oxg083A9f&$7(5>Zqv#RAMZ9sQuUc#dA!= z=JVR(PeOqp&9Z$ZN0j6UyHwLTlJ5bk9;gEV}Ca&OM~i5E{~ zqlt!XcQ&%p5hGo*t~YJ7q}k<*M83AZp{E<8J3`4dHwVSCb@NAP>XmKhoGqJhLG)a* zmM`7Z|I1nu+sP@e_UszWM?M>6XEr2XHrJbTzF{;%LVg0PQB*$Z&?P*4nYy`_0t z_%&B*yXNJ~{a>TZY_qspgtLeKUy}OwUsnt)6d$E=drN1*Gz>cW_x|HavvXOen>_|Z zGXKBhrZfI?ka02Nt$)l3Em*f;%)G>B8n*eIb;oCzfq(bx+?@Y+;6ff}W$VKKjG(H{ zwNypxJ9^D!ZQhr1b$={yer8(Nz%0pW$hTSexbJeHT}5h)a&>UUK%YHcgAu?M3h7 zHyGHQYm7`&>um8ZR^FwZe!CXP+3l(iW~y02Q5mqsd9-iJ6&~MRbITUtet-BV)C98> zlh&&y<*(8-S#Uae_Wdhwoj5#~P7c82+6Zh)H*cq9a^3L}Z$bMR<*=)F{y;F1^T-WUe&o9$zMMLm^ zS5LM$ojkc9!!d8R<%mlIE2@c`OH3yysx3)l;GxQ0%m_3%s>BR>&K#3`IJ|#EkyAA! z(m53>`@Ul}ZL3377Qfs6C^T>mmeVnyMeuUs*G`RIyF{f$tG+r*XQAS2fT-(9?!-bfLHu5s*#mg`AxZ;dxIp(*`ZgqN;c z-9_1{P(f?&GP}}yc>`;t%9rPV=5~0PQYVY^0CM$24Tt)cor&fBu4P+6NN!Q=IT$zX z!YDe-1KXj9@j=M(F+~K4wXUwN70K-M%`7`Z6&(E&e|E?Iv6JuXs${(AoywKi8U)f!hR$hx@pOMcaPEmVGO;ti z8~*5~`)^S#jUYHLmrz2>Kd5(Z_HJ^Ep)G~f;VvkDX?K78C<-`4gyLMox2%+XscQvO zOpDz9;m`0@*BH4J(`X33JGvNROF6yJsXE`))z#zX;_@a_*Q=mcdb;}|mG!yqrToW` zp^6B%-#r$Rcw)ML>|DDWVoz8wZEgp#? z_;!Ct@ZLE2yMQ{OV1L#X*HZp&e}xdKLt=9M`BfyR$#aYm0#xF8P1h6+PwuVIzX<1$ z=j50f_lWDTF|cil4`jM*G!VH){9bnOKE$8uO)hX97hirX(lK*Gd@!kFJz4tG?}fW}$#)Cf!G4M@37%nu{7ay} zZ!Rx{==;J0N?84mTNwt&TeBhEO2Wi+VoIk=X%#}mFrc} zOjMX_p7w(14+SlAnHrVA;g#6bNIMPZO2hW{8^HO{--9`&owaU?pEg*x>{fHW{xy({OJ9Ry2XX&fOz)*Su8jhTo^OsLD#zv>ay5%nvx z)_0K(+Ak1hH&Xq5zcSw52jNS8<6o^`prY$Vt3m&=n?H((;zJXQex^y0SH$@Bg!}@M zxHZ$EVm&MBgTTFt>Aj#KLUPTd!7D@j-uCN`)X=TlvkH>`k^Rk;fu13mO}Obp>;;+Z zhQ=pK>DlvxioO)SbGzW;YP@RaQd%sL>M`z}@Q1v4JgGxv87zY!9V!csaj}wkNqB^( za|wDsje*Il#2%FI^_$#+dhy(^i|>hrMj9LLlWk_+HX(4eKIJR}>Ymd4_8jFSBcYS| zs44H(D&qoGs49!X6${8|`OifX_H_&g&h6Vu^p826`~PW4Kg^GEq?&6Pc87|7!Q6bC zcTrosh_PWVl7!z{cp5EF10_)WWZa%O#P|XS`Ef~loa5ga-+@(h-HKKthrd<%2V$6f zJ2D)}XRvVlkf_=v=P5DTk+@5Y6t?#bypM}t=kL+gB?!sY`_nU5<`$Mz#oD;gz%PQ{ zmRwceyQ2nqATaquR~G=2u{a1r4DkuNdo4KEp@I zi_7tWrq8Z7a>gwxc;wJ>kHQmThQb+|%l4Cq?*>5gpG-DYgNBiw=ie;G89O$IUnqIF zd!uU3-v#>L5?bBm^!|*(K+NHdPR61~#!ZW{-2CKS`uHlYPr#pX`Ez{W8Y(`l=9_-g?;&z7Eq7VD2WigZ)$g@0=Eb4pqWpO{-LM?br?K?p^i~ zqH^BLy`t%R^%d9BS{BG(SJ&+!8oQNltewaT2>WaOVZr~0t9M|pEZVkqS8Ut1ZL?yd z!ip=l?TS;W*tTuEV%ttul8SxT-sd~tz0dsv3v-M)XYXzF_BL)owrbgK5%;@+kWyxo z%*%)wJ;Oqmqb0lbwFMlS>CA)E^gCY1%c5zwPx!DfGxa{bTG;otSf^e7=?Td}ElCq1;gzCLV-D&L@Vn%C3`3L&)?6Dba1hl5su(Xw1|WXZ5bQOT#_)g_!h<`CsA;4e3n}VS3VJ>W+142?Fb$F++!_e?1s{4fK5kP<`c5B6etW%FalMHV{<3$3>m#IG_G(|7Mc0 z^L=>P>WgMS$!@H;AeAsC?t@f#?X2Lfa+6Ye~n{B6GFN~uw@n@O+b(&*gUdwd(x zxF(m_@2#JQ6TbfETA4;QJ$mEO4W-e9UF1e;iNURhy?h4$@lGSk(Y4qd+(7&zPz3NE zg^CpFupJOz{dbccmXtZZ(SXcUo0i(iR+nAQQ)ePof79BQ{JfTiHikY5AR1H=){x)x zy9GTon`Lc&xv(d(pV6ksj62V&K4PdTfn*;OfY!X}9kPi=)k9MGk4JE$XI`AeR?#Id zp_?v4NoS506o|BH{`+xc#Ny;$Lz1?@5nYWH6aqY#*K);2N^h|k`b#!>oXu`pu!)-! z6KWXsQpgxEPp5Ld*)7oV0F>xe96mPisq@UCj4L?Gd8=yW?F@NM_=I=)k0X+ulL5wIvB zyPsYrco~5g?*E^BZ{jNfk5BdV<=o_s>URpz+sG!GpyAsavh0LvB)`d$1Lz2b3t>g6@!c@i!r40kyECTk<)zza^?s4dG!10n zmMM|cfvx`yM@%a_`Wi5Xz+hOAJKW0FqV1Jn_P(!lKjSy^0xyEyh3_khnF?jC9bvi4 z|NFFhbl9xPcJ#c&997B*4z1F^C*s7_d%BcK!e&BEO$;e-JTck7$HQfFCsax|`pkvy z2?+DN+1#CUtMC8un^wNCP{g=zxMLuQXAb--gq7jazd=;NW`@MK+=|G~F^!h+lQT2! zoKMuS=Qn%#zjKGMmJ>LmLC*dT`Z;#R>6$Lrbl^_)J| z#J4`FqDCnfm(l1twey~))|wm;3aVu6>LH9zow04DPatGgKzo9MbW-YofX9pek)*IM zDofl(!rm6sTn%$tOlwCh1XZ-3I5(c~*~tN(r|(O%yC=FTM=uJx@?$w`jmM{~RAZ#J zyc5q;OTorN%J5F$ao$bBUy}@lb*?4(Nro(fovtU&wgR|rhOrV@ep^{7TY9!`X;$w~d?^6HQJ}qtgq6>EK=cfrjJ%x^| zIZC0Z&0h8=l-rE%Q|86hl)>yJNBdj*&&iZF?~9t7WDHo(ix&IQ-%B<_JNO(sR=X@e3#DDlk5nzvb-7JC-Cf z7aZE&j~DU&m~BY-!uo-pN3TfaeaDDfuRy;vy*1;h5~fv;OGrV8!J$u=c*fiiUtLfP z1i}D`<2CIYwBZQp$|Xj0XC9y9{=b8Z`ppB!=ND_w5fN+@emuLi@A?^g#PC3}?{A_@ zgL98#Jo`xyYwk4iWD*%s9K;(#?m85;O+}16*jkI!d^*Gh$aS1{3JXB+-<$C3>=HV6 zZ=gQoU}tr;4N#-5)qi7tW7zv7$~(Z7*@6wmYFW7n^|yC#1cxw*mfXZWs&GWP@39-E z%#kNbJW632HBVu>*ebrk)V?mG_k;wGft+eXM%gjGZ(P@7#jsn_^knRGK-1=)h*#D% z>E<=-<39fyfeu}M?03|au=4}zN|`60_VF}C#E|e!i;iG5%uNK3!Dua$aBbUOT^o>h zz+W2K_v*O1&1*-D^ZnO?MP%OiYE^a{QfO!U^ZSKd5W(P6$%n+=Jzw2hCt!7a1F5j4 zrO*F_sz9}&I)Jr)R|+wuCt_$fZbJ;man2?_P1`&IQW$P#_Hs8sa>#G#DY9*Oj600{ zLDCr#-?Y?k+O+d@|33p*eQ2@2#3;3>o!zj`I1S#anB4uPElS2puId*KUpv1J@#1oO zX+{4&G+GZ*CxYD_LAYl~|6z+z-&knw?u{lFH{Zu+wUoxclXuSd=4UBcD5fh&9U$Ap z=l-M#a}hpokX|IS6gE7(d0F4Z9z8Sp;O}f#%AI%kr08i>?5*j*?8jR;j#!|h(CUWy zeiu#&`V~z)U}^nBV!tc8$6>XyC9g4PC^x5h0T#SQbzRVRHY-l!$JFLcar@t^Vfr2B zqBPsCZeZh>iA{VEje+dTwz*)w$G?kZeZS-3!saUem6Cy9UacLqJdP@2BvnghbAk4q zc>jG`bF8q;!x=_m&(Um&o3Vk{{iU` z?*|>wFaz4143xYO6pWeHK{JrphHsLygDZg%Wj^utP&pE#NyYVFXKJ@wH>XegE<;Dh zCj9a#N_bcPPD~!<)#v%dCxY&g9>N5(|4h$;$No6hIJQYMFfGdwz34&gmZMN_{UKz{ z9vZ2<;uRZpL6L#D0}?W^*s3U&IX~eegDn6ar|ZptK7!V3^f(o)^w4PLVTsad-xiso~FxVk60_OqAN=?}yx7N1f6_pvCIs9d&E zmhZTl;gz-J{L*+}Ki3j#bs*Rlm(A^=S5t~8??VtE6IKCp=gMcGWRM{h3qf1cidn&v zLY=n{=C1n>k!>oaa(7nBJYy1-B}0Kus)SMT18Lu(VL=Pj#`s_a@);j7n{=Ljl3 zEGg+1?zlYDx)bq}`}(CjA4w7%K5F+mQRo*z{!KXNl1N110OyW}+6NjM3fuIHgX-%h z(t|Gd6XLk+PFmi6IGqX1>?Sx+;5yNk(1$^E2wob-`vD;c!@z`a;n5 zk~9oORqn;5@?-qJO)O^!&9gd}BaMoJ%hqk_vHqT0drw=wi|A-v=#2blEJHTMrenK6 zX5%gnfsqrYQ4+pqd5h=A?kFem%eaAgQVqVxf7TSFZmjQn?|01ds!esNRK#0u`wtj7 z;v5~OH%jhKPqw!zGy-=t1@l~%w!Rfis&$U;nc^B9uz33JFF#^1KY`gl2PEgOZ56)tmJ9)R}VUx@8 zzESW?WzT@k_XOz+>2ssYU|VErXaD0wdFuMb!ATimWUEy>2<7MbTA(#NNtqb19tG2;6yvSM}Mtb~ilM zH(keoXzTryWE7hhhYxB>Zjc>~#UI*-#f1oE=$S;;!2EUOu^t3t{cpY44SyuQ{$Y$& zVsITz>HjnyRMx^D(=h6s^kxG2SRzXb)5B}B4 z0?v~L1|I_|O z$_U{u@;&nNxOr&mV-R-i{XV<3xe>TA9 zL}OAkEtLe&C4EM zcvtvQ!vO3!=J^39V`pw#T@(DoE)=+<$d~Tbw(o@r!KA@r{j8GVx-_O?AjOhdL$q)) z_|4$*3wFWn-Mc$`m9MDCe1B}gZU2?ka+soq6Qi)0YhQ-^AAyc{RxRyz31|Pm5B5?V z(4Btz;4Y^$70M3Nw&!EGsCbQ_$#&^{K>jdtU3BE-H`G9_^Ml8`8U&#E16mNE+_y<_ zeL2MS?AN1^n7ACL{572O^EtZ?ce(%XE&%R(beLl#P@t3V;o3%L_8hleI6%eA;w(Ai z!LIH%yXBUF*pX||0YS*}4jt~Y|L=GAR%uWc9g_(SBb<%r$SNb{ z{R|-bC(*$PSFWlwrd$^`m`&hm=7E93d_8#J)0%in9H&u>TjVKCu|@&Uj6%Hoe$?%0 zWdrfH!IMB>7u}?i{15%o@p>6))2S^~MvEu$ofGp`DJZh{DE3)E7%HmsBzj0j%(1z7 zlq;gq)Afm3P@j-ARVLDJLUyS+*MW?GB<3EJ3~d*7vkNFHrtDVx^+)xLxi$5n9xN-3 zTE^L#kSGadY0Ku%F+zOl)9rm6Q-QrF`D;t6%DaKl(8lZuD4lZ@kbL`Y_1ZAda0N(7hAZiUjdo{WIvE@t&`Na2SHDrwDANJ_09T;{~q@i##W%xsP3G`1R*Z&}(oUG>T73pc@~B3}(X zboZmj7;Nsbslnnh>?n@;}g?Ds*bN8Es&) zYuXyRr3oYrkX|?e!%JSpvkmvDry3s^`b700I~lyKv&`dp#Mt*MkaHP{xeqA2dC`kF z2pUE?*!hZO3XvPI4B$&kc>@!|5BMeUl^wJzN3geIMKRDpEUL3%09&cBpt<;JN+j+> zC@Q|A4*P5lft_p{vy4QAyIDlJ56&Zj-<&u&v{H`%!#vXC*nDTuX0CJFl1a;SA=|PG7yg7FA!dYMB4BqB%pgX6rt?78I*@@ z7pnZAc~jK}ZjY5pwjYlKd*O%r!{Cvk3dYa9kpEOFSF`+5H^bXF*+}_f*7-ZntTBur zeHALG5jRlsOfgEvG^(gXsAocc}QT9Zz5u+bVEg+Br-f0=Y36N-@pCSq+6m= zM#{|>dPcoL=dKwvgOR2jImsI|aipnxmW6!RN4$L|cUB|O_jo7JLloS>o- z^X|mU_igxrbCWNbw3>qzEx}%LF1ZJLMOu@yEHW5uZW!3~0<{}6@OAVtrBoSE;05mL zDGw+4=sDX7WIq>Sx(zX@4O5V|e7gKK&Pz`B5?*^q6{;+9k4NFPvCaXSi z!KRs(6e4Hf=7*L+&+3@6gb*euzadHvBB^0Wq(tK=Wo4=W1LYr~)5QlFL0x&{yuIVN z5cr>nhnDA%wJo>c47|_aX(s_5t)y@Q|hu^mjQL%YwNV`Or(zEwnoDB#xM9 zA8~z+=k$;*TXC~BZ)jWz#}CDJjzV+SAwHK9uJNX2pF%Law;Ch;fs3goL=OLc&d#_+Ww70?Y0WZ3QfQ zl1*df0E`5~jk>B55#eDDkoB9|FrnAm#KE=dpOFrVUijf~Yhuej@x1m1g=wtNy!Mt1 zv~sO~;3mwEu{?9U#c9uUX*g3R)VVj>tk~B6=5g=P`_=fsxXxWQC%CT68X3n{KUiQp zN&kods=fn8R&XVqZ_k|&(+Xli+N9FE!FS^YN=E13%lEL<6 z`t?V!X9D2RJNm5~`Ayg8rgjs6t7k($)&-{(q=6!A4tp@Pj#VpY` z{58&quWhX~OY0aY3wkD7OSxXAXdvV&Z6}wCq{_h<5~GF^;IbySuaDoTP|kpZ^RgS# z4K}J){fapHRwh1K=ZA4*v9txQQ7u^q?)_XlaHGQT3F^6{pSDK%e|P}@tt4$2_}CPn zwn887y#O~rsAqN7B;myA+y=AVz~7`kP814NQ8(d^S)t|ywCT# z-`G`pyQ%tze_6Qrwg=N9%GP*ZBVt!!O8?pi~2M{^axJ|#~qFE-4J z-mh*2{%d+z!>-%WcRh+y76;eMHup0@`l^(D(z6_~`Jo<=mBBQucz1BBafSdn!y_~O zU8bnkc=z`*n%N3pnek-qy-;@P%5N=UO1}AfiK6OmWyL#0a+vH;(?KrBS3flH&Py@b z+z{AHx!q!Kgfk!5eh>vv&4)t#++JGN@AXm<%+^RPsk*}JVX>kauD`l9dI!>V9Z5U5 zR^}?%^Z8AD^V1$X*yjqT*GJ!)szl=*E4S9&gAX@5W@`n|_FZpsj zYtg=Pu{(x1$sBk?ZKH4TZ-BxDHAdYxuks(Vlb$Yp@<)Ek2KUzv{5(~~_ntJ?W;DMT zJ5S9vA)b*7!lh~Sp3M$lV*HzZNBaglc)Yc~(A;gTvBIh~?G88GA?;gAu9@IZI=P2u z`Tsywg8j`f-$eYt|1(sb%#~(%8BXxB&Ner0bSDaj%>6-6!a=>GfR z`y@}IGG}$Ygf9g*&A2_0j(XW4QrFEI6vWNNA8^<5+I$3AWZBa`53*Fpvw{TS>OY1!&di7L4g5Z%}(e4 z)p2*CYDFJ&0C1<5-~fmy3x4FLk3T!`z^=-L5Idr|-6*Yes_`ic<0ROR$1=GxI2}bg zdtyD&7XWtjgUT^nxDRdh$;XVixkn*-9ik{+oU zuN|8=*E?iRZjDUBoD$lm(gaa*kAUQC=Xn&cgW zJ{s@%A^fejKNIN|9wQ`toZR9|5Pd4-gXV(-E z8xf(;Rl}afV?|F=FzoE7 z8wmaSX$^h_2Kgi$*caESNm?4i7ujf)F}iW2JX0euSDOJDV9OgHrA-kHo~H3wg@S1P z0h{Wh4Of5$UNK?2WIx9iSQerWT4T0%cCk$SKlQv@ML;>#NsXZ498}zSa#N-bg9*h@ehe-1qS{u!IE} z_bM>rs{Ui;myBl9nM$t(v(v7of|kbBEyiExya)lY9=;y!H2Tf>!Nm*RQvS;f_}>jq zf)&UY{f`JSteYj6Ko3L@N)9wpR0~*0c0}HVecM#9ztcV3L4jnOK@E)I zHPG;gV9u|bA7`5OP`=jH{dVJwZ9JQ>UOP6d6-;8W{t~xqBLvUBl|7etyo{xNS@wS9>kISQ>@lUY3Z$*LSxx z{YH4fiK=j!VJuj7vNU!{xPdG<7mp?nP3JxlJ1I}DiQjM|dz$5c`5>0>Wp7>&Z*=`J z-=BF(y+N%yWBUTP7eUKc4nn8$$v`dB$^}^4(pIET?#$@IyiH>3DcYYqVsL~U@JWcE zVt+^cb}R(Mj64YQldV|m!ox>~=Tvjd9^qR=qik0%8b7~(?FmEtFsalUC5Ug4uUXW9 z2u21ifc;?54z)JOL(;N}9Th0aCSpop-o^s%Sq#x&do2bnF!o2j++d0dwN`rbAB5+o z6%C=k9;C;FmJmLgE#KV{W7`|CAWJLZj9gVwO9OI$GY`cdQo;#V>ap;9GOmsA1a1M; zO)rvQ*d}t*V{`B(7_{{#*8U6;yz`0|#K-4POUEHwQg6;zxZYe8(o^e(U0#i%n6`I! zoBQ%-BU!wjZ;SS_FYsZ!Jv`}x#k7GgYTK8SBFKS-wH1IY|8RgHVLJ`JY1)e)r%OUX zwhKSMkfMy+8|J$+4_q%cEgndil$h)fF;)vAoVw$t@7uQhC0MGeA*xKO=&nIG9>i`^ zjrj6Y9g*%gRHm_Qr5vu2LGVN?`rPTMkSifKF2uS`v6STK z;HmP-2@T{*EsEffHcU4B{hFAiub=G4$E>L=a{CXf;sCP4HKwuOZ5tQntLJL