The Busy Coder's Guide to Advanced Android Development by Mark The publisher and author(s) assume no responsibility for errors or omissions or for damages Presently, CommonsWare offers PDF and Kindle; other digital formats will
Previous PDF | Next PDF |
[PDF] The Busy Coders Guide to Advanced Android Development Version
The Busy Coder's Guide to Advanced Android Development by Mark The publisher and author(s) assume no responsibility for errors or omissions or for damages Presently, CommonsWare offers PDF and Kindle; other digital formats will
[PDF] The Busy Coders Guide to Android Development - CommonsWare
1 mar 2015 · The CommonsWare name and logo, “Busy Coder's Guide”, and related trade dress are Presently, CommonsWare offers PDF and Kindle; other ebook formats will You get a commonly-used programming language (Java) with some Press Next to advance the wizard to the main Android project page:
[PDF] The Busy Coder S Guide To Android Development 6 2 - scheduleitio
Murphy, which supports the Android 3 0 SDK in pdf format for free Per the Four-to -Free Guarantee, editions of CommonsWare books that are four years old or have
[PDF] The Busy Coder S Guide To Android Development 6 2
algorithmic reasoning, coding dexterity, and a scientific programming style, it enables The Busy Coder's Guide to Advanced Android Development Android /AndroidCourseResources/raw/master/2ndEdition/Errata/2eAddendum pdf
[PDF] The Busy Coders Guide To Android Development Mark L - iGuatecom
il y a 8 jours · The Busy Coder's Guide to Advanced Android Development-Mark L Murphy 2011 There are dition/Errata/2eAddendum pdf Learning IOS
[PDF] the case for an international carbon tax
[PDF] the certificate of fitness verklaring van geschiktheid from the cbr
[PDF] the charles de gaulle airport
[PDF] the city of houston department of health community health improvement plan mission statement
[PDF] the class of recognizable languages is closed under complementation
[PDF] the clean coder pdf github
[PDF] the climate action simulation
[PDF] the coding manual for qualitative researchers pdf
[PDF] the communicative function of ambiguity in language
[PDF] the complete book of intelligence tests pdf
[PDF] the complete idiot's guide to learning french pdf
[PDF] the complete idiots guide to learning french pdf
[PDF] the complete language of flowers a definitive and illustrated history
[PDF] the complete language of flowers book
01223456
78943:9;<=>?
Table oflCntbsiolv xtblWnlctmhrpbtlcrtsnxtl
!bmbPnBkbrW by Mark L. Murphy Subscribe to updates at http://commonsware.comSpecial Creative Commons BY-NC-SA 3.0 License Edition Table oflCntbsiolv xtblWnlctmhrpbtlcrtsnxtl!bmbPnBkbrW by Mark L. Murphy Copyright © 2009-11 CommonsWare, LLC. All Rights Reserved.Printed in the United States of America.
CommonsWare books may be purchased in printed (bulk) or digital form for educational or business use. For more information, contact 'GuitAvtannacDlBuiCtan.Printing History:
Mar 2011:Version 1.9.2ISBN: 978-0-9816780-1-6
The CommonsWare name and logo, "Busy Coder's Guide", and related trade dress are trademarks of CommonsWare, LLC. All other trademarks referenced in this book are trademarks of their respective firms. The publisher and author(s) assume no responsibility for errors or omissions or for damagesresulting from the use of the information contained herein.Subscribe to updates at http://commonsware.comSpecial Creative Commons BY-NC-SA 3.0 License Edition
Table of Contents
s 19un MguMgy Ms2h k9himgiu0Weeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee,i,Ah l29 eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee,,i
!.fgGp.eAGeAr.e4GGsk CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'CCCCCCCNNi ,u.u.RoiWiA.W CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'CCCCCCCCCCCCCCCCCCCCCCCNNi!Bu.WguidAiGmCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'CCCCCCCCCCCCCCCCCCNNiii
JuuBABeBmweAr.e4GGse4ote4GomAhCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'CCCCCCCCCCCCCCCCCCCCCCCCNNiiiOGoug.e'Gw.CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'CCCCCCCCCCCCCCCCCCCCCCCNNV
'u.BAiV.e'GppGmWeBmweAr.eMGouDAGDMu..eY=aM3e0oBuBmA..CCCCCCCCCCCCCCCCCCNNV yi1.ghgf.eG1eBe'GppGmW!Bu.e4GGsCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCNNVi s Rvi dPMU0kip M20pMSrgeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefMui.mwWe>iAre4.m.1iAWCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCl
5oumBTGoAeiWeMBiue,fBhCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCS
.h2lgi0cM(urhMSd0Mvi dkeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef),igse?Goue,GiWGmCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'CCCCCCCCCCCCCCCCCCl@
'GfGuWxe iN.weFG>e?Goeyis.e5r.pCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'CCCCCCCCCCCCCCCCCCCCCCClA5r.eyBhGoACCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'CCCCCCCCCCCCCCCCCCCCCl9
5r.ePAAuiToA.W
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'CCCCCCCCCCCCCCCl65r.e'fBWW
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'CCCCCCCCCCCCCCCCCCCCCCCClcO..imte7Ae7meIW.CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCa=
iii Subscribe to updates at http://commonsware.comSpecial Creative Commons BY-NC-SA 3.0 License Edition wnsbl, rlqxWalIxoWFxb-oEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEO1 Giant Economy-Size Dividers....................................C................................27 Choosing What Is Selectable....................................C...........................28 Introducing MergeAdapter....................................C.............................29Lists via Merges....................................C................................................30
How MergeAdapter Does It....................................C.............................33From Head To Toe....................................C....................................C..............36
Control Your Selection
....................................C...........................................39 Create a Unified Row View....................................C.............................40 Configure the List, Get Control on Selection.....................................41 Change the Row....................................C...............................................43Stating Your Selection
....................................C............................................45 CsbhWxrGl!sh-hSPboEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE31Traversing Along a Gradient
....................................C..................................47State Law
....................................C....................................C..............................51
A Stitch In Time Saves Nine
....................................C...................................53 The Name and the Border....................................C...............................54Padding and the Box
....................................C........................................54Stretch Zones....................................C....................................................55
Tooling....................................C....................................C..........................56
Using Nine-Patch Images....................................C................................585nkbl.psbbrlcBBlqxtGbWoEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE6V
East is East, and West is West.......................................C............................64 The Big Picture for a Small App Widget..................................................64Crafting App Widgets....................................C............................................65
The Manifest....................................C....................................C.................66
The Metadata....................................C....................................C................67
'G Subscribe to updates at http://commonsware.comSpecial Creative Commons BY-NC-SA 3.0 License Edition7sEbfeavncCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCU6
7sEb3 ve-GeqcSEGExFE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCU6
7sEbSEqnycCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCC.P
gkvcsE bek-bgkvcsE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC.h
gttbux-WEcqIb7sEx bfx)Ebek-b7xBEqCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC.: ivkc vyyxkWbjvn bLgttbux-WEc9qVbREqcxkaCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC.:isekWEbjvn bfvvoCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC.D
QkEb2xXEbleab5vcbwxcbgyyCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC.U
g-FekGE-bgttbux-WEcqbvkbgk- vx-b:CHCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC.U5ENbux-WEcqb)v bgttbux-WEcqCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC..
( EFxENb1BeWEqCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCC.6
g-etcE !3eqE-bgttbux-WEcqCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCC.p3ExkWbeb0vv-b,vqc
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC prU0g h29gi© MF2mkeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6f
0EcbcvbcsEb(vxkcCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCph
0EccxkWbcsEbfecxcn-Ebek-bfvkWxcn-ECCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCph
0EccxkWbcsEb2G EEkb(vqxcxvkCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCph
5vc!2v!7xkab3nTTyEqCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCpD
Qtcxvkqb)v b(vt!ntb(ekEyqCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCp' RE)xkxkWbeb(ekEybfeavncCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCp' i EecxkWbeb(vtnt(ekEybiyeqqCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCp.2svNxkWbek-b,x-xkWbcsEb(ekEyCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCp.
7axkWb1cb1kcvbcsEbQFE yeaCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCpp
2xWkdb2xWkdbzFE aNsE Ebeb2xWkCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPr'
2EyEGcE-b2cecEqCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCPr'
(E !1cEBbR eNeTyEqCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPrU isekWxkWbR eNeTyEqbRakeBxGeyyaCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPr. G Subscribe to updates at http://commonsware.comSpecial Creative Commons BY-NC-SA 3.0 License Edition1kbgb5ENbjv oblxkncECbQ b,vtE)nyyabeb3xcbweqcE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPPP
gbfxccyEb7vnGsbv)b5vvbjeNoCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPPD7vnGsbzFEkcqCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCPPD
wxk-xkWbekb1cEBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPPU
R eWWxkWbcsEb1cEBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPP6 .h 2gi0cM.rkgunM-i21uckM20pMAh l h 09 keeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefVf jvn bRxeyvWdbisvGvyecE!ivFE E-CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCPhP3eqxGbgyE cRxeyvWb2EcntCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPh:
,ek-yxkWbivyv bisekWEqCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPh'2cecEblekeWEBEkc
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPh' ( E)E xkWbjvn bQNkb( E)E EkGEqdb( E)E eTyaCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCPhU7sEbivkqc nGcv qCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCPh.
i EecxkWbcsEbOxENCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCPh.
REeyxkWbNxcsb( E)E EkGEbOeynEqCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCPh64qxkWbcsEb( E)E EkGECCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCP:P
t0in2gi0cMsipc gkeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef)T1c9qb5vcb/nqcbwv b7vvkqbgkaBv ECCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCP:'
gb"nx oab7 ekqyecxvkCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCP:U
lEGsekxGqbv)b7 ekqyecxvk CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCP:U1BeWxkxkWbeb2yx-xkWb(ekEyCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCP:.
7sEbg)cE BecsCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCP:.
1kc v-nGxkWb2yx-xkW(ekEyCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCP:6
4qxkWbcsEbgkxBecxvkCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPDr
we-xkWb7vb3yeGoCbQ b2vBEbQcsE bivyv CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPDr gytseb5nBTE q CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCPDP gkxBecxvkqbxkb?lfCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPDP4qxkWb?lfbgkxBecxvkqCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPDh
G' Subscribe to updates at http://commonsware.comSpecial Creative Commons BY-NC-SA 3.0 License Edition usEkb1c9qbgyyb2ex-bgk-bRvkECCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPDhfvvqEbwxyyCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCPD:
,xcb7sEbgGGEyE ecv CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCPDD
gkxBecECb2EcCblecGsCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCPD'
gGcxFEbgkxBecxvkqCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCPDU
"ki0cMgy M.2n h2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeefB62kEeoxkWbeb(EEo
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCPDp7sEb(E Bxqqxvkbek-bcsEbwEecn ECCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCP'r
7sEb2n )eGEOxENCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCP'P
7sEbieBE eCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCP'h
1BeWEb1qbzFE acsxkWCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCP''
gqoxkWb)v bebieBE eCbleaTECCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCP'U0EccxkWbcsEbieBE eCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCP'.
gqoxkWb)v bebwv BecCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPUr7eoxkWbeb(xGcn ECCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPUr
4qxkWbgqakG7eqo
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPUhlexkcexkxkWbjvn bwvGnqCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCPU:
gyybcsEb3Eyyqbek-busxqcyEqCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPUD
A12Li0cMF pi2eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef8T
0Ecbjvn blE-xebQkCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPU'
leoxkWb5vxqE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCPUUlvFxkWb(xGcn EqCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCP.h
(xGcn EqbxkbcsEb2c EeBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCP.U
SnyEqb)v b2c EeBxkWCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCP..
zqceTyxqsxkWbcsEb2n )eGECCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCP.6wyvecxkWb(ekEyqCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCP.p
(yeaxkWbOx-EvCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCP6P
G'' Subscribe to updates at http://commonsware.comSpecial Creative Commons BY-NC-SA 3.0 License Edition7vnGseTyEbivkc vyqCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCP6:
QcsE bueaqbcvbleoEb5vxqECCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCP6'2vnk-(vvyCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCP6U
gn-xv7 eGoCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCP6.
7vkE0EkE ecv CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCP6.
N20p1i0cM7Lkg nM'© 0gkeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeef6f0EcblvFxkWdbwx qcb7sxkWCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPpP
7sEb(E BxqqxvkCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPph
7sEbSEGExFE bzyEBEkcCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPph
7sEbSEGExFE b1BtyEBEkcecxvkCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPp:
1b2EkqEbebivkkEGcxvkb3EcNEEkb4qCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPpD
wEEyxkWbR exkE-CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCPp.
2cxGoab1kcEkcqbek-bcsEb3eccE aCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCChrP
QcsE b(vNE b7 xWWE qCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCChrh tp©209 pM7 h©i9 MA2gg h0keeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeVG)SEBvcEb2E FxGEq
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCChr: usEkb1(ibgcceGoqMCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCChrD gbivkqnBE bzGvkvBaCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCChrU2E FxGEbw vBbg)e CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCChr6
2E FxGxkWbcsEb2E FxGE
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCChPD7sEb3xk-b7secbwexyqCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCChhr
1)bcsEb3xk-xkWb1qb7vvb7xWscCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCChhP
gye BlekeWE IbleoxkWbcsEb2E FxGEqbSnkbQkb7xBECCCCCCCCCCCCCCCCCCCCCCCCCCCCCChh:7sEbueoE)ny1kcEkc2E FxGEb(eccE kCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCChh:
7sEb,vNbek-busabv)bueoE)ny1kcEkc2E FxGECCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCChh6
3eGoW vnk-bReceb2EccxkWCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCh:h
7sEbKzFE yeqcxkWb2E FxGEKbgkcx!(eccE kCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCh::
G''' Subscribe to updates at http://commonsware.comSpecial Creative Commons BY-NC-SA 3.0 License Edition8oxrGl.foWbkl.bWWxrGolhrtl.bsmxpboEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEOV7
Setting Expectations....................................C.............................................235
Basic Settings
....................................C..................................................235Secure Settings
....................................C............................................... 239Can You Hear Me Now? OK, How About Now?....................................240 Attaching SeekBars to Volume Streams....................................C........241 Putting Stuff on the Clipboard....................................C............................244 Using the Clipboard on Android 1.x/2.x...........................................244 Advanced Clipboard on Android 3.x................................................248
The Rest of the Gang....................................C............................................253
CnrWbrWlgsnmxtbslTabnsfEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEO77Using a Content Provider....................................C.....................................255
Pieces of Me....................................C....................................C................256
Getting a Handle....................................C............................................257 The Database-Style API....................................C.................................257 The File System-Style API....................................C.............................262 Building Content Providers....................................C.................................262 First, Some Dissection....................................C...................................263 Next, Some Typing....................................C.........................................264 Implementing the Database-Style API.............................................265 Implementing the File System-Style API.........................................269 Issues with Content Providers....................................C.............................270 CnrWbrWlgsnmxtbsl4kBPbkbrWhWxnrlghWWbsroEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEO1V The Single-Table Database-Backed Content Provider...........................273 Step #1: Create a Provider Class....................................C.....................273 Step #2: Supply a Uri....................................C....................................C..280 Step #3: Declare the "Columns"....................................C.....................281 'i Subscribe to updates at http://commonsware.comSpecial Creative Commons BY-NC-SA 3.0 License Edition2cEtbMDIb4t-ecEbcsEblekx)EqcCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCh6h
7sEbfvGey!wxyEbivkcEkcb( vFx-E CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCh6h
2cEtbMPIbi EecEbcsEb( vFx-E biyeqqCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCh6h
2cEtbMhIb4t-ecEbcsEblekx)EqcCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCh6'
4qxkWbcsxqb( vFx-E CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCh6U
by M.u0g29gkM.u0g 0gMAhu©ip heeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeV"I1kc v-nGxkWbjvnbcvbjvn bivkceGcqCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCh6.
ivkcEkc( vFx-E bSEGetCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCh66 Q WekxXecxvkeyb2c nGcn ECCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCh66 gbfvvob3eGobecbgk- vx-bPCUCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCh6p (xGobeb(EGobv)b(xGoyE-b(EvtyECCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCh6p2txkb7s vnWsbjvn bivkceGcqCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCChp:
ivkceGcb(E BxqqxvkqCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCChpD ( E!/vxkE-bRece CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCChpD7sEb2eBtyEbgGcxFxcaCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCChp'
REeyxkWbNxcsbg(1bOE qxvkqCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCChp. gGGEqqxkWb(EvtyECCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:rr gGGEqqxkWb(svkEb5nBTE qCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCC:rh gGGEqqxkWbzBexybg-- EqqEqCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCC:rhleoxk9bivkceGcqCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:r:
7 2h9yi0cMdigyM7 2h9yF202c heeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee)G6
,nkcxkWb2EeqvkCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:rp
2Ee Gsbjvn qEy)CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCC:PP
i e)cbcsEb2Ee GsbgGcxFxcaCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:Ph4t-ecEbcsEblekx)EqcCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:P'
2Ee GsxkWb)v blEekxkWb1kbSek-vBkEqqCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCC:P.
leab1bleoEbeb2nWWEqcxvk_CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:Pp i Subscribe to updates at http://commonsware.comSpecial Creative Commons BY-NC-SA 3.0 License Edition2Ee GsSEGEkc2nWWEqcxvkq( vFx-E CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCC:hr
inqcvBb2nWWEqcxvkb( vFx-E qCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCC:hh1kcEW ecxkWb2nWWEqcxvkb( vFx-E qCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCC:h:
(nccxkWbjvn qEy)bLgyBvqcVbQkb(e bNxcsb0vvWyECCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:hD1BtyEBEkcbeb2nWWEqcxvkqb( vFx-E CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:h'
gnWBEkcbcsEblEce-eceCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:h' ivkFxkGEbcsEb4qE CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:hU7sEbSEqnycqCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCC:h.
U0ghukm 9giu0M20pMU0g ch2giu0eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee))f uvny-bjvnbfxoEbcvb2EEbcsEblEkn_CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCC::h0xFEb4qE qbebisvxGECCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC::D
gqoxkWbg vnk- CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC::'lx--yEblekeWEBEkcCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC::p
wxk-xkWbgttyxGecxvkqbek-b(eGoeWEqCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC::p wxk-xkWbSEqvn GEq CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:Dr wxk-xkWbivBtvkEkcqCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:Dr0Ecb1kbcsEbfvvtCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCC:DP
7sEblekx)EqcCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCC:Dh
7sEblexkbgGcxFxcaCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:D:
7sEb7EqcbgGcxFxcaCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:DD
7sEbSEqnycqCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCC:D'
7eoEbcsEb2sv cGncCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:DU
SEWxqcE xkWbeb2sv cGncb( vFx-E CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCC:D.1BtyEBEkcxkWbeb2sv cGncb( vFx-E CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCC:D.
4qxkWbcsEb2sv cGncqCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:Dp
jvn bQNkb( xFecEb4SfCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:':
lekx)Eqcblv-x)xGecxvkqCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:': i' Subscribe to updates at http://commonsware.comSpecial Creative Commons BY-NC-SA 3.0 License Edition i EecxkWbebinqcvBb4SfCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:'' SEeGcxkWbcvbcsEbfxkoCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:'U ,vBxkWb3EeGvkqb)v b1kcEkcqCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCiCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC:'6 suh!i0cMsigyM7F7eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee)T6