tag:blogger.com,1999:blog-28390174537802590992024-03-18T15:18:07.054+05:30Sai Geetha's Blog - AndroidWhile this blog started off as my personal ramblings on Techncial things it has turned out to be a blog dedicated to Android. Any other technical ramblings are shared at my <a href="http://saigeethatechnical.blogspot.com">Technical Blog</a>.Saihttp://www.blogger.com/profile/12784084112335938233noreply@blogger.comBlogger72125tag:blogger.com,1999:blog-2839017453780259099.post-48273698792185482192013-11-11T14:33:00.001+05:302013-11-11T14:33:38.911+05:30Samsung Look Package - Some Fundamentals<!--EndFragment--><div class="MsoNormal">
<span class="MsoHyperlink"><span lang="EN-GB" style="color: windowtext; text-decoration: none; text-underline: none;"><span style="font-family: Cambria; font-size: 12pt;">Again, based on the fact that the </span><a href="file:///D:/Documents/1.%20Samsung%20Smart%20App%20Challenge/(2)%20SSAC2013/SSAC2013(GALAXY_Note)/_____/(2)%20____/developer.samsung.com/ssac2013/note/main.do" style="font-family: Cambria; font-size: 12pt;">Samsung
SmartApp Challenge</a><span class="MsoHyperlink" style="font-family: Cambria; font-size: 12pt;"> </span><span class="MsoHyperlink" style="font-family: Cambria; font-size: 12pt;"> </span><span class="MsoHyperlink" style="font-family: Cambria; font-size: 12pt;"><span style="color: windowtext;">that has
already </span></span>begun on the 5<sup>th</sup> of
September and is going on currently with the last date of submission being 30<sup>th</sup>
Nov 2013, which expects the use of the </span></span><span lang="EN-GB"><a href="http://developer.samsung.com/samsung-mobile-sdk#pen">pen package</a><span class="MsoHyperlink"><span style="color: windowtext; text-decoration: none; text-underline: none;"> and the </span></span><a href="http://developer.samsung.com/samsung-mobile-sdk#look">look package</a><span class="MsoHyperlink"><span style="color: windowtext; text-decoration: none; text-underline: none;">, this is the promised article on the </span></span><a href="http://developer.samsung.com/samsung-mobile-sdk#look">look package</a><span class="MsoHyperlink"><span style="color: windowtext; text-decoration: none; text-underline: none;">. Let us start from some fundamentals. <o:p></o:p></span></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span class="MsoHyperlink"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span lang="EN-GB" style="color: windowtext; text-decoration: none; text-underline: none;">First, What
is Look?<o:p></o:p></span></i></b></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span class="MsoHyperlink"><span lang="EN-GB" style="color: windowtext; text-decoration: none; text-underline: none;">From the last 3 articles, we have
seen that </span></span><span lang="EN-GB"><a href="http://developer.samsung.com/samsung-mobile-sdk">Samsung Mobile SDK</a><span class="MsoHyperlink"><span style="color: windowtext; text-decoration: none; text-underline: none;"> is a SDK that brings 10 different small packages together
into one SDK to ease the developers world. Look is a java package available as
part of that same </span></span><a href="http://developer.samsung.com/samsung-mobile-sdk">Samsung Mobile SDK</a><span class="MsoHyperlink"><span style="color: windowtext; text-decoration: none; text-underline: none;">. It is a package that provides specialized widgets for
additional functions beyond what the Android Views already provide. And of
course it builds on what the pen package already provides. In fact, </span></span></span><span style="mso-ansi-language: EN-US;">Look requires that S Pen be used to access its
features.</span><span class="MsoHyperlink"><span lang="EN-GB" style="color: windowtext; text-decoration: none; text-underline: none;"><o:p></o:p></span></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span class="MsoHyperlink"><b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span lang="EN-GB" style="color: windowtext; text-decoration: none; text-underline: none;">Next, then, what
are the functions Look provides?<o:p></o:p></span></i></b></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span class="MsoHyperlink"><span lang="EN-GB" style="color: windowtext; text-decoration: none; text-underline: none;">It supports<o:p></o:p></span></span></div>
<div class="MsoListParagraph" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
</div>
<ul>
<li><span lang="EN-GB" style="font-family: Symbol; text-indent: -18pt;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><span lang="EN-GB" style="text-indent: -18pt;">WritingBuddy – This basically
helps by giving an editor when a S Pen comes closer to an area that can take an
input from the pen. The user can write in this editor, which would then by
recognized by the WritingBuddy and converted into a digital format for further
usage! </span></li>
</ul>
<!--[if !supportLists]--><span lang="EN-GB">
<br />
Quite a useful feature considering that the S Pen would lead to a lot of apps
that would take a written input but the UI should still be compact with out
having large canvases occupying the UI for pen inputs. </span><br />
<div class="MsoListParagraph" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<span lang="EN-GB"> </span></div>
<div class="MsoListParagraph" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<span lang="EN-GB"> This can be used
with on any view layouts and in TextEdit. WritingBuddy recognizes numbers and
alpahabets and even handwriting images which would lead to usages like
signature recognition etc.</span></div>
<div class="MsoNormal" style="margin-left: 36.0pt;">
<br /></div>
<div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
</div>
<ul>
<li><span lang="EN-GB" style="font-family: Symbol; text-indent: -18pt;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><span lang="EN-GB" style="text-indent: -18pt;">AirButton – I see this feature
as an advanced context sensitive menu! A set of items or images or what ever
may be relevant to a particular context can be shown using an air button. </span></li>
</ul>
<!--[if !supportLists]--><span lang="EN-GB">
<br />
The wow factor in this is you can creatively define the gravity, the direction
and the display type making it look like a feature that was always needed but
not invented till now! <br />
<br />
Based on the user selection of a menu item / a recent item display there, the
next set of actions can be invoked.<o:p></o:p></span><br />
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
</div>
<ul>
<li><span lang="EN-GB" style="font-family: Symbol; text-indent: -18pt;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><span lang="EN-GB" style="text-indent: -18pt;">SmartClip – As the name says,
SmartClip is indeed a smart clipboard, which does not just capture the selected
content, but also the metadata related to the content! This metadata is
converted to text that can be searched on or sent to other applications for
further use. </span></li>
</ul>
<span lang="EN-GB">
This is certainly an interesting feature that can be used very imaginatively to
provide seamless copy and paste options between various apps and also help in
capturing related content. <o:p></o:p></span><br />
<div class="MsoNormal">
<br /></div>
<div class="MsoListParagraphCxSpFirst">
<span lang="EN-GB">This feature would look
more magical especially when there is metadata available with the content
captured. For example, if there are URLs that are part of the content that is
captured, the SmartClip can capture data from the URL too and send it to the
destination app.<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
</div>
<ul>
<li><span lang="EN-GB" style="font-family: Symbol; text-indent: -18pt;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><span lang="EN-GB" style="text-indent: -18pt;">PointerIcon – This is a good to
have feature – something that is taken for granted in many desktop apps but has
found its way into a mobile through this package! </span></li>
</ul>
<span lang="EN-GB">
This allows you to modify the look of the pointer when you place an S Pen on a
view. <o:p></o:p></span><br />
<div class="MsoNormal">
<br /></div>
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Revision>0</o:Revision>
<o:TotalTime>0</o:TotalTime>
<o:Pages>1</o:Pages>
<o:Words>501</o:Words>
<o:Characters>2862</o:Characters>
<o:Company>saigeethamn@gmail.com</o:Company>
<o:Lines>23</o:Lines>
<o:Paragraphs>6</o:Paragraphs>
<o:CharactersWithSpaces>3357</o:CharactersWithSpaces>
<o:Version>14.0</o:Version>
</o:DocumentProperties>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>KO</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="276">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;}
</style>
<![endif]-->
<!--StartFragment-->
<!--EndFragment--><br />
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span lang="EN-GB">The Look Package Architecture<o:p></o:p></span></i></b></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span lang="EN-GB"><br /></span></i></b></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOJ5-EMTCt6FXIvjNny8T_niM-GtalifRxzXg8zvywkhCP1_lXwpO2ETn3A__IZ8qK9bnrKRRCmkqlDW94diEc7ZVaZSjqGn795aI-pBbyrE0bMutjy3TGfNvdoXWqzkx-C3ZjvCm9SQX0/s1600/Look1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="195" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOJ5-EMTCt6FXIvjNny8T_niM-GtalifRxzXg8zvywkhCP1_lXwpO2ETn3A__IZ8qK9bnrKRRCmkqlDW94diEc7ZVaZSjqGn795aI-pBbyrE0bMutjy3TGfNvdoXWqzkx-C3ZjvCm9SQX0/s320/Look1.png" width="320" /></a></div>
<div class="MsoNormal">
<span lang="EN-GB">This diagram is taken from the Samsung
documentation.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">Lot of custom apps can be developed using
the look package and as you see the look package is mainly an extension to the
Android View package.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span lang="EN-GB">The Development environment<o:p></o:p></span></i></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">In order to develop an app that uses the
look package and support all of the above-mentioned features, you need to
download the complete <a href="http://developer.samsung.com/samsung-mobile-sdk/sd">Samsung Mobile SDK</a>
which can be downloaded independently or through an eclipse. Both ways of
downloading the SDK and setting up the Development environment are described <a href="http://developer.samsung.com/samsung-mobile-sdk/start">here</a>.<span style="mso-spacerun: yes;"> </span><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Revision>0</o:Revision>
<o:TotalTime>0</o:TotalTime>
<o:Pages>1</o:Pages>
<o:Words>111</o:Words>
<o:Characters>639</o:Characters>
<o:Company>saigeethamn@gmail.com</o:Company>
<o:Lines>5</o:Lines>
<o:Paragraphs>1</o:Paragraphs>
<o:CharactersWithSpaces>749</o:CharactersWithSpaces>
<o:Version>14.0</o:Version>
</o:DocumentProperties>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>KO</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="276">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;}
</style>
<![endif]-->
<!--StartFragment-->
<!--EndFragment--></div>
<div class="MsoNormal">
<span lang="EN-GB">Once the SDK is downloaded, the contents of
the SDK are as shown:</span></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioFtoTocZ0dquuo802VYwzC_aCG9405OYKnmwH7LArWdaP-eIq_TqLbT6CMvaCWZFhVtD9FexFjJIHwx2O3py-L4PWbuMOJom5fF5InmPgTmyvNMV1UxVaZJDFUEvHbLXEcDvC38rv41JD/s1600/Look2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioFtoTocZ0dquuo802VYwzC_aCG9405OYKnmwH7LArWdaP-eIq_TqLbT6CMvaCWZFhVtD9FexFjJIHwx2O3py-L4PWbuMOJom5fF5InmPgTmyvNMV1UxVaZJDFUEvHbLXEcDvC38rv41JD/s320/Look2.png" width="320" /></a></div>
<div class="MsoNormal">
<span lang="EN-GB">
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Revision>0</o:Revision>
<o:TotalTime>0</o:TotalTime>
<o:Pages>1</o:Pages>
<o:Words>43</o:Words>
<o:Characters>246</o:Characters>
<o:Company>saigeethamn@gmail.com</o:Company>
<o:Lines>2</o:Lines>
<o:Paragraphs>1</o:Paragraphs>
<o:CharactersWithSpaces>288</o:CharactersWithSpaces>
<o:Version>14.0</o:Version>
</o:DocumentProperties>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>KO</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="276">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;}
</style>
<![endif]-->
<!--StartFragment-->
<!--EndFragment--></span></div>
<div class="MsoNormal">
<span lang="EN-GB">The libs folder has all the 10 different
packages that I have detailed out <a href="http://saigeethamn.blogspot.in/2013/10/samsung-mobile-sdk-introducing-complete.html">in
my earlier post</a>. Each of the folders has the respective library jars along
with the basic Samsung mobile SDK.<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-GB"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfiTWI73GG6KMmVFXFArKf15_3xrJ-oa_B2_dOsljwQMniR6vc6JCEy96SZ1c6RPvEAniH7bQlpPumL5oKkrZJjKi_flQEvZsOE9iFM_p7c4EooP6AL5qi1ckdFSpk-45oz71Y-g_BU5SN/s1600/Look3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="101" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfiTWI73GG6KMmVFXFArKf15_3xrJ-oa_B2_dOsljwQMniR6vc6JCEy96SZ1c6RPvEAniH7bQlpPumL5oKkrZJjKi_flQEvZsOE9iFM_p7c4EooP6AL5qi1ckdFSpk-45oz71Y-g_BU5SN/s320/Look3.png" width="320" /></a></div>
<div class="MsoNormal">
<span lang="EN-GB">These jars are to be copied into the libs
folder of your project trying to develop using a look feature. <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">Now, let us see a very simple example that
changes the pointer icon when the pen hovers over a TextView. On the click of a
button, the icon changes.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">The 3 member variables created are:<o:p></o:p></span></div>
<div class="MsoNormal">
<b><span style="color: #5e1445; font-family: "Consolas Bold"; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: "Consolas Bold";">private
boolean </span></b><span style="color: #001daf; font-family: Consolas; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">mIsDefault
</span><span style="font-family: Consolas; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">= </span><b><span style="color: #5e1445; font-family: "Consolas Bold"; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: "Consolas Bold";">false;</span></b><span lang="EN-GB"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<b><span style="color: #5e1445; font-family: "Consolas Bold"; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: "Consolas Bold";">private
</span></b><span style="font-family: Consolas; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">TextView <span style="color: #001daf;">mHoverTextView;</span><s><span style="color: red;"><br />
</span></s></span><b><span style="color: #5e1445; font-family: "Consolas Bold"; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: "Consolas Bold";">private
</span></b><span style="font-family: Consolas; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">SlookPointerIcon <span style="color: #001daf;">mPointerIcon
</span>= </span><b><span style="color: #5e1445; font-family: "Consolas Bold"; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: "Consolas Bold";">new
</span></b><span style="font-family: Consolas; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">SlookPointerIcon();<s><span style="background: lime; color: red; mso-highlight: lime;"><o:p></o:p></span></s></span></div>
<div class="MsoNormal">
<span lang="EN-GB">With in the <i style="mso-bidi-font-style: normal;">onCreate()</i> method, <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="font-family: Consolas; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">//get a handle to the
button<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="font-family: Consolas; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">Button changeIcon = (Button)findViewById(R.id.btn_changeicon);</span><span style="font-family: Times; mso-ansi-language: EN-US; mso-bidi-font-family: Times;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="font-family: Consolas; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">//get a handle to the
text view<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: #001daf; font-family: Consolas; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">mHoverTextView
</span><span style="font-family: Consolas; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">=
(TextView)findViewById(R.id.text_hoverarea); <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="font-family: Consolas; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">// set the hover icon<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: #001daf; font-family: Consolas; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">mPointerIcon.setHoverIcon(mHoverTextView,
</span><span style="font-family: Consolas; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">getResources()</span><span style="font-family: Times; mso-ansi-language: EN-US; mso-bidi-font-family: Times;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="font-family: Consolas; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">.getDrawable(R.drawable.ic_launcher));
<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<b><span style="color: #5e1445; font-family: "Consolas Bold"; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: "Consolas Bold";">//On
click of the button, change the icon</span></b><span style="font-family: Consolas; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="font-family: Consolas; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">changeIcon.setOnClickListener(new
View.OnClickListener() {</span><span style="font-family: Times; mso-ansi-language: EN-US; mso-bidi-font-family: Times;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<b><span style="color: #5e1445; font-family: "Consolas Bold"; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: "Consolas Bold";">public
void </span></b><span style="font-family: Consolas; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">onClick(View v) { <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none; text-indent: 36.0pt;">
<b><span style="color: #5e1445; font-family: "Consolas Bold"; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: "Consolas Bold";">if </span></b><span style="font-family: Consolas; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">(mIsDefault) {</span><span style="font-family: Times; mso-ansi-language: EN-US; mso-bidi-font-family: Times;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-left: 36.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none; text-indent: 36.0pt;">
<span style="color: #001daf; font-family: Consolas; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">mPointerIcon.setHoverIcon(mHoverTextView,</span><span style="font-family: Consolas; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> getResources().getDrawable(R.drawable.ic_launcher)); <span style="color: #001daf;">mIsDefault </span>= </span><b><span style="color: #5e1445; font-family: "Consolas Bold"; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: "Consolas Bold";">false;</span></b><span style="font-family: Consolas; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none; text-indent: 36.0pt;">
<span style="font-family: Consolas; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">((Button) v).setText("Turn <span style="color: #0029fa;">off");<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none; text-indent: 36.0pt;">
<span style="color: #0029fa; font-family: Consolas; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">} </span><b><span style="color: #5e1445; font-family: "Consolas Bold"; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: "Consolas Bold";">else </span></b><span style="font-family: Consolas; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">{</span><span style="font-family: Times; mso-ansi-language: EN-US; mso-bidi-font-family: Times;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; margin-left: 36.0pt; margin-right: 0cm; margin-top: 0cm; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none; text-indent: 36.0pt;">
<span style="color: #001daf; font-family: Consolas; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">mPointerIcon.setHoverIcon(mHoverTextView,
</span><b><span style="color: #5e1445; font-family: "Consolas Bold"; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: "Consolas Bold";">null); </span></b><span style="color: #001daf; font-family: Consolas; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">mIsDefault </span><span style="font-family: Consolas; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">= </span><b><span style="color: #5e1445; font-family: "Consolas Bold"; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: "Consolas Bold";">true;<br />
</span></b><span style="font-family: Consolas; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">((Button) v).setText("Turn <span style="color: #0029fa;">on");<o:p></o:p></span></span></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none; text-indent: 36.0pt;">
<span style="color: #001daf; font-family: Consolas; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">}<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: #001daf; font-family: Consolas; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"><span style="mso-spacerun: yes;"> </span>}<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: #001daf; font-family: Consolas; font-size: 13.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">});<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">As simple as this, you can change the pointer icon!! <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">Similarly you can work with the WritingBuddy or the
AirButton and the SmartClip. The samples in the downloaded SDK are a good guide
to go by. </span><b><span style="mso-ansi-language: EN-US; mso-bidi-font-family: "Consolas Bold";"><o:p></o:p></span></b></div>
<div class="separator" style="clear: both; text-align: left;">
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Revision>0</o:Revision>
<o:TotalTime>0</o:TotalTime>
<o:Pages>1</o:Pages>
<o:Words>221</o:Words>
<o:Characters>1260</o:Characters>
<o:Company>saigeethamn@gmail.com</o:Company>
<o:Lines>10</o:Lines>
<o:Paragraphs>2</o:Paragraphs>
<o:CharactersWithSpaces>1479</o:CharactersWithSpaces>
<o:Version>14.0</o:Version>
</o:DocumentProperties>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>KO</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="276">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;}
</style>
<![endif]-->
<!--StartFragment-->
<!--EndFragment--></div>
<div class="MsoListParagraph" style="margin-left: 0cm; mso-add-space: auto;">
<span lang="EN-GB"><a href="http://developer.samsung.com/ssac2013/main.do"><span lang="EN-US" style="mso-ansi-language: EN-US;">This article is sponsored by Samsung</span></a></span><span style="mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-GB"><br /></span></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span lang="EN-GB"><br /></span></i></b></div>
<div class="blogger-post-footer"><script type="text/javascript"><!--
amazon_ad_tag = "saigstec-20"; amazon_ad_width = "728"; amazon_ad_height = "90";//--></script>
<script type="text/javascript" src="http://www.assoc-amazon.com/s/ads.js"></script></div>Saihttp://www.blogger.com/profile/12784084112335938233noreply@blogger.com11tag:blogger.com,1999:blog-2839017453780259099.post-20344141571150992372013-10-29T17:37:00.001+05:302013-10-29T17:37:42.316+05:30Samsung Pen Package – Some Fundamentals<div class="MsoNormal">
<span lang="EN-GB">This is in continuation from <a href="http://saigeethamn.blogspot.in/2013/10/samsung-mobile-sdk-introducing-complete.html">my
previous post</a>. Samsung’s latest devices (<a href="http://www.samsung.com/global/microsite/galaxynote3-gear/">Samsung Galaxy
Note 3</a> and the <a href="http://www.samsung.com/global/microsite/galaxynote/note_10.1/index.html?type=find">Galaxy
Note 10.1</a> (2014 edition) tablet) are unique with the introduction of the S
Pen. The focus of the <a href="file:///C:/mySingle/Temp/developer.samsung.com/ssac2013/note/main.do">Samsung
SmartApp Challenge</a> that is currently open expects developers to use the <a href="http://developer.samsung.com/samsung-mobile-sdk#pen">pen</a> and the <a href="http://developer.samsung.com/samsung-mobile-sdk#look">look</a> packages
that are part of the <a href="http://developer.samsung.com/samsung-mobile-sdk">Samsung
Mobile SDK</a> briefed in my earlier two posts. <o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-GB">In this post I would like to dive a bit
deeper on the <a href="http://developer.samsung.com/samsung-mobile-sdk#pen">pen
package</a> and in a subsequent post on the <a href="http://developer.samsung.com/samsung-mobile-sdk#look">look package</a>.
We will see what are they, as we go along. <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">S Pen is opening up a new horizon to
Smartphones that support it. In fact I would not be surprised if Samsung soon
open sources this project for encouraging wider adoption.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><i style="mso-bidi-font-style: normal;"><span lang="EN-GB">First, what is an S Pen?<o:p></o:p></span></i></b></div>
<div class="MsoNormal">
<span lang="EN-GB">Note that S Pen is an innovative
stylus-type input device that comes with the Galaxy Note range of devices. It
seems to have started off with the idea of making drawing or writing easy on
smartphone where a finger touch doesn’t provide a great experience. It is not a
capacitive stylus that typically phones came with but uses the Wacom’s EMR
(Electro-Magnetic Resonance) patented Technology. For more on the technology
behind the S Pen, you can read <a href="http://forum.xda-developers.com/showthread.php?t=1439369">this article on
the XDA Developers Forum</a> or the <a href="http://www.androidauthority.com/break-it-down-how-does-the-s-pen-work-154435/">‘Android
Authority’ post.</a><o:p></o:p></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJKyPfgoNlNetmkasm6HHm06y_kIH12jCXcRD4xniXxAGHmPYeHHM4apcQ2fmn6ZAKdXFWxTqYR7k6NhfE8i30-GPiLHHPidru-_eEJiD7ahgKaYok-VjtG7dL4xUrgrv3IkPX8ooHOuKO/s1600/SPen.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="99" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJKyPfgoNlNetmkasm6HHm06y_kIH12jCXcRD4xniXxAGHmPYeHHM4apcQ2fmn6ZAKdXFWxTqYR7k6NhfE8i30-GPiLHHPidru-_eEJiD7ahgKaYok-VjtG7dL4xUrgrv3IkPX8ooHOuKO/s320/SPen.jpg" width="320" /></a></div>
<div class="MsoNormal">
<span lang="EN-GB">The tip of an S Pen allows for its usage in
apps that need sensitivity to pressure applied and precision. The side buttons
provide for press and release events based on which actions can be initiated. <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">In order to support developers to build
apps for the S Pen, a <a href="http://developer.samsung.com/samsung-mobile-sdk#pen">pen package</a> has
been introduced as part of the <a href="http://developer.samsung.com/samsung-mobile-sdk">Samsung Mobile SDK</a>. <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b><i><span lang="EN-GB">Next, what is the </span></i></b><span lang="EN-GB"><a href="http://developer.samsung.com/samsung-mobile-sdk#pen"><i>Pen package</i></a><b><i>?</i></b></span></div>
<div class="MsoNormal">
<span lang="EN-GB">It is a package that allows developers to
write applications that can take hand-written inputs. It allows the use of a
pen, finger or any other kind of input tools or virtual pens to aid precise
user input in the most natural way possible. It feels like you are actually
writing or drawing on the device and would you call that a luxury? I am sure it
is an understatement for thos who use their devices extensively for all day to
day activities. </span><span lang="EN-GB" style="font-family: Wingdings; mso-ascii-font-family: Cambria; mso-ascii-theme-font: minor-latin; mso-char-type: symbol; mso-hansi-font-family: Cambria; mso-hansi-theme-font: minor-latin; mso-symbol-font-family: Wingdings;"><span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings;">J</span></span><span lang="EN-GB"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">The <a href="http://developer.samsung.com/samsung-mobile-sdk#pen">pen package</a>
enables to <o:p></o:p></span></div>
<div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
</div>
<ul>
<li><span lang="EN-GB" style="font-family: Symbol; text-indent: -18pt;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><span lang="EN-GB" style="text-indent: -18pt;">Draw using a pen/finger</span></li>
<li><span lang="EN-GB" style="font-family: Symbol; text-indent: -18pt;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><span lang="EN-GB" style="text-indent: -18pt;">Change user preferences for
pens, erasers and text</span></li>
<li><span lang="EN-GB" style="font-family: Symbol; text-indent: -18pt;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><span lang="EN-GB" style="text-indent: -18pt;">Edit and save the inputs</span></li>
<li><span lang="EN-GB" style="font-family: Symbol; text-indent: -18pt;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><span lang="EN-GB" style="text-indent: -18pt;">Undo or redo thus managing
history of inputs</span></li>
<li><span lang="EN-GB" style="font-family: Symbol; text-indent: -18pt;">·<span style="font-family: 'Times New Roman'; font-size: 7pt;">
</span></span><span lang="EN-GB" style="text-indent: -18pt;">Support both touch and hover
events</span></li>
</ul>
<!--[if !supportLists]--><br />
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">A few words about the architecture of the <a href="http://developer.samsung.com/samsung-mobile-sdk#pen">pen package</a> before
we look at snippets of program using the package:<o:p></o:p></span></div>
<div class="MsoNormal">
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Revision>0</o:Revision>
<o:TotalTime>0</o:TotalTime>
<o:Pages>1</o:Pages>
<o:Words>223</o:Words>
<o:Characters>1277</o:Characters>
<o:Company>saigeethamn@gmail.com</o:Company>
<o:Lines>10</o:Lines>
<o:Paragraphs>2</o:Paragraphs>
<o:CharactersWithSpaces>1498</o:CharactersWithSpaces>
<o:Version>14.0</o:Version>
</o:DocumentProperties>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>KO</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="276">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;}
</style>
<![endif]-->
<!--StartFragment-->
<!--EndFragment--></div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-ZCxShMlXxVv7wcuxbN56GsKpVwOtDIVjTOl5gCfAAKzpPgHANiRvW6OWT36R_LUo6oIsqOwBJ8g22eMk7arBkY0rnTPprKNFhB3f_uUGZ7WXx3Xqv_EWM8ieL4BtY7Iw5R86QzOnX4io/s1600/PenPackageArchitecture.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="227" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-ZCxShMlXxVv7wcuxbN56GsKpVwOtDIVjTOl5gCfAAKzpPgHANiRvW6OWT36R_LUo6oIsqOwBJ8g22eMk7arBkY0rnTPprKNFhB3f_uUGZ7WXx3Xqv_EWM8ieL4BtY7Iw5R86QzOnX4io/s320/PenPackageArchitecture.jpg" width="320" /></a></div>
<br />
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Revision>0</o:Revision>
<o:TotalTime>0</o:TotalTime>
<o:Pages>1</o:Pages>
<o:Words>322</o:Words>
<o:Characters>1836</o:Characters>
<o:Company>saigeethamn@gmail.com</o:Company>
<o:Lines>15</o:Lines>
<o:Paragraphs>4</o:Paragraphs>
<o:CharactersWithSpaces>2154</o:CharactersWithSpaces>
<o:Version>14.0</o:Version>
</o:DocumentProperties>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>KO</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="276">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;}
</style>
<![endif]-->
<!--StartFragment-->
<!--EndFragment--><br />
<div class="MsoNormal">
<span lang="EN-GB"><o:p> </o:p></span>This diagram is taken from the Samsung
documentation.</div>
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Revision>0</o:Revision>
<o:TotalTime>0</o:TotalTime>
<o:Pages>1</o:Pages>
<o:Words>863</o:Words>
<o:Characters>4923</o:Characters>
<o:Company>saigeethamn@gmail.com</o:Company>
<o:Lines>41</o:Lines>
<o:Paragraphs>11</o:Paragraphs>
<o:CharactersWithSpaces>5775</o:CharactersWithSpaces>
<o:Version>14.0</o:Version>
</o:DocumentProperties>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>KO</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="276">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;}
</style>
<![endif]-->
<!--StartFragment-->
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">As you can see the <a href="http://developer.samsung.com/samsung-mobile-sdk#pen">pen package</a> is a
layer over the <b>Android platform</b> using
which many applications can be developed like the <b>S-Note</b> or <b>S-Planner</b> etc.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">The <b>pen
core</b> is organized into various packages with clear separation of
responsibilities. The relevant methods
that can be used to develop apps have been made ‘public’ through what is shown
as the ‘<b>Pen API</b>’. It also provides a whole host of listeners
that help in handling the touch, the hover, the zoom, the long press, the
replay and the text change actions, to name a few. <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">The <b>Engine</b>
provides the core of the package. It a way of managing the runtime objects and
extensions to the Android view, line a canvas, text area, multi view, a context
menu etc., that can take in inputs from the pen or a finger.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">The <b>Model</b>
</span><span lang="EN-GB">module</span><span lang="EN-GB"> is literally the model of the <a href="http://developer.samsung.com/samsung-mobile-sdk#pen">pen package</a>. It gives APIs to save a pen document and
retrieve it. It could be a note that is
to be saved and retrieved or a page with a set of strokes to be maintained in
the history or even a image, a stroke or a text box with support for all text
formatting – these could be persisted and retrieved.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">The <b>Setting</b>
</span><span lang="EN-GB">module</span><span lang="EN-GB"> is one that helps in understand whether the device support s pen
and manage the settings on the pen, eraser and text - a small utility package. <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">The <b>UI
Control</b> </span><span lang="EN-GB">module</span><span lang="EN-GB"> consists of the various classes that help in managing the UI layouts
and associated context menu. <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">The <b>Plug-in</b>
module has a recognition </span><span lang="EN-GB">class</span><span lang="EN-GB"> that allows for signature, text, shape and
equation recognition that can be used for very interesting apps. The S pen
Object Runtime allows developers to embed video clips or special text box as
sandbox.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">In order to start developing using the <a href="http://developer.samsung.com/samsung-mobile-sdk#pen">pen package</a>, you
need to download the Samsung Mobile SDK. It looks like that the programs need
to be tested on a real device and are not supported on an emulator. I did try
enabling on the emulator as given in the article on ‘<a href="http://developer.samsung.com/s-pen-sdk/technical-docs/Testing-S-Pen-apps-on-the-Emulator">Testing
S Pen Apps on an Emulator</a>’. However it seems that it works with what is
called the <a href="http://developer.samsung.com/s-pen-sdk">S Pen SDK</a> and
not with the <a href="http://developer.samsung.com/samsung-mobile-sdk#pen">pen
package</a>, which is the focus of the developer challenge. <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">Now, unzip the Mobile SDK and you will find
a folder by name libs. In libs, you find pen folder in which you have 2 jar
files – “<b>pen-v1.0.0.jar</b>” and “<b>sdk-v1.0.0.jar</b>”. Both of these need to be copied into your
Android project <i>libs</i> folder and you
are ready to create a pen based app. <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">You can start with a simple hello world
program:<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">In the <i>onCreate()</i>
method, you will have to check the support for the s pen feature first:<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">boolean</span></b><span style="font-family: Monaco; font-size: 11pt;"> isSpenFeatureEnabled = </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">false</span></b><span style="font-family: Monaco; font-size: 11pt;">;</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;">Spen
spenPackage = </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">new</span></b><span style="font-family: Monaco; font-size: 11pt;"> Spen();</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">try</span></b><span style="font-family: Monaco; font-size: 11pt;"> {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> spenPackage.initialize(</span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">this</span></b><span style="font-family: Monaco; font-size: 11pt;">);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> isSpenFeatureEnabled = spenPackage.isFeatureEnabled(Spen.</span><i><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">DEVICE_PEN</span></i><span style="font-family: Monaco; font-size: 11pt;">);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> } </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">catch</span></b><span style="font-family: Monaco; font-size: 11pt;">
(SsdkUnsupportedException e) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> //Handle the exception here </span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">return</span></b><span style="font-family: Monaco; font-size: 11pt;">;</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> } </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">catch</span></b><span style="font-family: Monaco; font-size: 11pt;"> (Exception
e1) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> Toast.<i>makeText</i>(</span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mContext</span><span style="font-family: Monaco; font-size: 11pt;">, </span><span style="color: #2a00ff; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">"Cannot initialize
Spen."</span><span style="font-family: Monaco; font-size: 11pt;">,</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> Toast.</span><i><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">LENGTH_SHORT</span></i><span style="font-family: Monaco; font-size: 11pt;">).show();</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;">
e1.printStackTrace();</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> finish();</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;">
}</span><span lang="EN-GB"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">Once this basic and essential check is
done, let us create a <i>SpenSurfaceView</i>
and add it to a relative layout:<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;">RelativeLayout
spenViewLayout =</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> (RelativeLayout) findViewById(R.id.</span><i><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">spenViewLayout</span></i><span style="font-family: Monaco; font-size: 11pt;">);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> </span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mSpenSurfaceView</span><span style="font-family: Monaco; font-size: 11pt;"> = </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">new</span></b><span style="font-family: Monaco; font-size: 11pt;"> SpenSurfaceView(</span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mContext</span><span style="font-family: Monaco; font-size: 11pt;">);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">if</span></b><span style="font-family: Monaco; font-size: 11pt;"> (</span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mSpenSurfaceView</span><span style="font-family: Monaco; font-size: 11pt;"> == </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">null</span></b><span style="font-family: Monaco; font-size: 11pt;">) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> Toast.<i>makeText</i>(</span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mContext</span><span style="font-family: Monaco; font-size: 11pt;">, </span><span style="color: #2a00ff; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">"Cannot create new
SpenView."</span><span style="font-family: Monaco; font-size: 11pt;">,</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> Toast.</span><i><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">LENGTH_SHORT</span></i><span style="font-family: Monaco; font-size: 11pt;">).show();</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> finish();</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> }</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> spenViewLayout.addView(</span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mSpenSurfaceView</span><span style="font-family: Monaco; font-size: 11pt;">);<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">The next thing you need to do is a <i>SpenNoteDoc</i> which holds a <i>SpenPageDoc</i> within it and voila, you are
ready with the first Spen app </span><span lang="EN-GB" style="font-family: Wingdings; mso-ascii-font-family: Cambria; mso-ascii-theme-font: minor-latin; mso-char-type: symbol; mso-hansi-font-family: Cambria; mso-hansi-theme-font: minor-latin; mso-symbol-font-family: Wingdings;">J</span><span lang="EN-GB"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="background-color: lightgrey; background-position: initial initial; background-repeat: initial initial; font-family: Monaco; font-size: 11pt;">Display</span><span style="font-family: Monaco; font-size: 11pt;"> display = getWindowManager().getDefaultDisplay();</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;">Rect rect = </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">new</span></b><span style="font-family: Monaco; font-size: 11pt;"> Rect();</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;">display.getRectSize(rect);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> </span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">try</span></b><span style="font-family: Monaco; font-size: 11pt;"> {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> </span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mSpenNoteDoc</span><span style="font-family: Monaco; font-size: 11pt;"> =</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">new</span></b><span style="font-family: Monaco; font-size: 11pt;"> SpenNoteDoc(</span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mContext</span><span style="font-family: Monaco; font-size: 11pt;">, rect.width(), rect.height());</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> } </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">catch</span></b><span style="font-family: Monaco; font-size: 11pt;"> (IOException
e) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> Toast.<i>makeText</i>(</span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mContext</span><span style="font-family: Monaco; font-size: 11pt;">, </span><span style="color: #2a00ff; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">"Cannot create new
NoteDoc."</span><span style="font-family: Monaco; font-size: 11pt;">,</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> Toast.</span><i><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">LENGTH_SHORT</span></i><span style="font-family: Monaco; font-size: 11pt;">).show();</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> e.printStackTrace();</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> finish();</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> } </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">catch</span></b><span style="font-family: Monaco; font-size: 11pt;"> (Exception e)
{</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> e.printStackTrace();</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> finish();</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> }</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> </span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mSpenPageDoc</span><span style="font-family: Monaco; font-size: 11pt;"> = </span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mSpenNoteDoc</span><span style="font-family: Monaco; font-size: 11pt;">.appendPage();</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> </span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mSpenPageDoc</span><span style="font-family: Monaco; font-size: 11pt;">.setBackgroundColor(0xFFD6E6F5);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> </span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mSpenPageDoc</span><span style="font-family: Monaco; font-size: 11pt;">.clearHistory();</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: #3f7f5f; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mSpenSurfaceView</span><span style="font-family: Monaco; font-size: 11pt;">.setPageDoc(</span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mSpenPageDoc</span><span style="font-family: Monaco; font-size: 11pt;">, </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">true</span></b><span style="font-family: Monaco; font-size: 11pt;">);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">Note that when you create a <i>SpenNotedoc</i>, you make it as big as the
display size that is available. <o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-GB">Then you create a <i>SpenPageDoc</i> and append it to <i>SpenNoteDoc</i>
and could optional set parameters like the background and clear the history, if
any. <o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-GB">And finally in the <i>onDestroy()</i> method ensure that you clean up after yourself as
shown:<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">protected</span></b><span style="font-family: Monaco; font-size: 11pt;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">void</span></b><span style="font-family: Monaco; font-size: 11pt;"> onDestroy() {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">super</span></b><span style="font-family: Monaco; font-size: 11pt;">.onDestroy();</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">if</span></b><span style="font-family: Monaco; font-size: 11pt;">(</span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mSpenSurfaceView</span><span style="font-family: Monaco; font-size: 11pt;"> != </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">null</span></b><span style="font-family: Monaco; font-size: 11pt;">) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> </span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mSpenSurfaceView</span><span style="font-family: Monaco; font-size: 11pt;">.close();</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> </span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mSpenSurfaceView</span><span style="font-family: Monaco; font-size: 11pt;"> = </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">null</span></b><span style="font-family: Monaco; font-size: 11pt;">;</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> }</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">if</span></b><span style="font-family: Monaco; font-size: 11pt;">(</span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mSpenNoteDoc</span><span style="font-family: Monaco; font-size: 11pt;"> != </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">null</span></b><span style="font-family: Monaco; font-size: 11pt;">) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">try</span></b><span style="font-family: Monaco; font-size: 11pt;"> {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> </span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mSpenNoteDoc</span><span style="font-family: Monaco; font-size: 11pt;">.close();</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> } </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">catch</span></b><span style="font-family: Monaco; font-size: 11pt;"> (Exception e)
{</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> e.printStackTrace();</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> }</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> </span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mSpenNoteDoc</span><span style="font-family: Monaco; font-size: 11pt;"> = </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">null</span></b><span style="font-family: Monaco; font-size: 11pt;">;</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> }</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: Monaco; font-size: 11pt;"> };</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">And you are done!! With this you have created the first pen app
with a canvas that takes the written input from a pen or a finger </span><span lang="EN-GB" style="font-family: Wingdings; mso-ascii-font-family: Cambria; mso-ascii-theme-font: minor-latin; mso-char-type: symbol; mso-hansi-font-family: Cambria; mso-hansi-theme-font: minor-latin; mso-symbol-font-family: Wingdings;">J</span><span lang="EN-GB"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoListParagraph" style="margin-left: 0cm; mso-add-space: auto;">
<span lang="EN-GB"><a href="http://developer.samsung.com/ssac2013/main.do"><span lang="EN-US">This article is sponsored by Samsung</span></a></span><o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<!--EndFragment--><div class="blogger-post-footer"><script type="text/javascript"><!--
amazon_ad_tag = "saigstec-20"; amazon_ad_width = "728"; amazon_ad_height = "90";//--></script>
<script type="text/javascript" src="http://www.assoc-amazon.com/s/ads.js"></script></div>Saihttp://www.blogger.com/profile/12784084112335938233noreply@blogger.com0tag:blogger.com,1999:blog-2839017453780259099.post-60294882984314935652013-10-08T14:25:00.000+05:302013-10-10T10:35:27.867+05:30Samsung Mobile SDK – Introducing the Complete Package<div class="MsoNormal">
<span lang="EN-GB">As mentioned in some of my earlier posts
there are a lot of individual</span><span lang="EN-GB" style="color: red; font-family: 바탕; mso-bidi-font-family: 바탕; mso-fareast-language: KO; mso-hansi-font-family: 바탕;"> </span><span lang="EN-GB">SDKs that Samsung has provided over time to the
developers. All of these SDKs</span><span lang="EN-GB" style="color: red; mso-fareast-font-family: "맑은 고딕"; mso-fareast-language: KO;"> </span><span lang="EN-GB">have been
trying to provide things over and above the basic features provided by Android SDKs and some of them with specific focus
on Samsung mobiles. However, recently Samsung has put them all together and
released the <a href="http://developer.samsung.com/samsung-mobile-sdk">Samsung
Mobile SDK</a>! It packages everything into one making it, that much easier for
developers to work with. <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">Considering the fact that Samsung’s
flagship <a href="http://developer.samsung.com/samsung-mobile-sdk">Samsung
Mobile SDK</a> is now available and the fact that the latest application</span><span lang="EN-GB" style="color: red; mso-fareast-font-family: "맑은 고딕"; mso-fareast-language: KO;"> </span><span lang="EN-GB"><a href="http://developer.samsung.com/ssac2013/note/main.do" target="_blank">challenge</a> thrown open by
Samsung expects you to use this SDK</span><span lang="EN-GB" style="mso-fareast-font-family: "맑은 고딕"; mso-fareast-language: KO;">’s Pen and Look package</span><span lang="EN-GB"> innovatively on Samsung Galaxy Note 3 and their Tablet Galaxy Note
10.1 (2014 Edition), here I am exploring a bit more of the <a href="http://developer.samsung.com/samsung-mobile-sdk">Samsung Mobile SDK</a>
itself.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">Apart from </span><span lang="EN-GB" style="mso-fareast-language: KO;">the</span><span lang="EN-GB"> 2 powerful packages
<a href="http://developer.samsung.com/samsung-mobile-sdk#pen">Pen</a></span><span lang="EN-GB" style="mso-fareast-language: KO;"> and <a href="http://developer.samsung.com/samsung-mobile-sdk#look">Look</a></span><span lang="EN-GB">, there are 8 more packages have been bundled together into the <a href="http://developer.samsung.com/samsung-mobile-sdk">SDK</a>. All of these </span><span lang="EN-GB" style="mso-fareast-language: KO;">APIs are </span><span lang="EN-GB">over
the Android API layer simplifying some of the tasks for </span><span lang="EN-GB" style="mso-fareast-language: KO;">application </span><span lang="EN-GB">development
on the Samsung phones, which have a <a href="http://saigeethamn.blogspot.in/2013/09/androids-growing-fragmentation-insight.html">huge
share in the Android market</a>.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">Now, would it be useful to know a little
more about each of these packages? Why should we use these packages against the
default Android Packages?<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">Let me explain in brief what each of the
packages provides.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">1.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><b style="mso-bidi-font-weight: normal;"><span lang="EN-GB">Chord package</span></b><span lang="EN-GB">, I have explained in great
detail in an <a href="http://saigeethamn.blogspot.in/2013/08/samsung-chord-sdk-introduction.html">earlier
post of mine</a> (And hence will not be dwelling further on it here).<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">2.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><b style="mso-bidi-font-weight: normal;"><span lang="EN-GB">Image Filter</span></b><span lang="EN-GB"> package provides a varied
set of features for image manipulation. It allows you to apply 33 filter
effects, some of them with level adjustments. It also allows you to apply a
level of transparency to your images.<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">3.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><b style="mso-bidi-font-weight: normal;"><span lang="EN-GB">Pen package</span></b><span lang="EN-GB"> is mainly to deal with hand
written input. It could be a pen like the one that comes with Samsung Note or
just a finger. Apart from recognizing the input, it provides a way to edit,
move around text and manipulate the same and even convert the same into a
digital format. Brushes, colours and brush sizes are selectable. <i style="mso-bidi-font-style: normal;">My next post will be a detailed one on using
pen package in a sample code.</i><o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">4.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><b style="mso-bidi-font-weight: normal;"><span lang="EN-GB">Visual View</span></b><span lang="EN-GB"> is another package that is
part of the SDK that provides various animations based on the OpenGL ES 2.0. It
provides some basic animation, transition animation, key-frame animation,
advanced geometry functions and a perspective view too.<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 72.0pt; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">a.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">This is based on Android <a href="http://developer.android.com/reference/android/opengl/GLSurfaceView.html">GLSurfaceView</a>,
which is in turn based on <a href="http://developer.android.com/reference/android/view/SurfaceView.html">SurfaceView</a>.
So any code written for Android <a href="http://developer.android.com/reference/android/view/SurfaceView.html">SurfaceView</a>
can be used with Visual View.<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 72.0pt; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">b.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">The default Android animations
from scene to scene offer only a blinking effect. However this offers 40
transitions!! Certainly a developers delight.<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpLast" style="margin-left: 72.0pt; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">c.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">A Visual View Slide offers a
perspective view with a 3D space, with properties like Opacity, Shadow, Rotation
etc. Something that would bring ‘gamification’ easily to enterprise apps as
well.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">All of the above packages are available for
all Samsung devices. However, the ones mentioned below are available only on
some of them. <o:p></o:p></span></div>
<div class="MsoListParagraphCxSpFirst" style="mso-list: l1 level1 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">1.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><b style="mso-bidi-font-weight: normal;"><span lang="EN-GB">Gesture package</span></b><span lang="EN-GB"> allows you to capture
events generated by hand movements. <o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 72.0pt; mso-add-space: auto; mso-list: l1 level2 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">a.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">This uses the gesture sensor
available on some devices. This is supported only on Android 4.3 or above. <o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 72.0pt; mso-add-space: auto; mso-list: l1 level2 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">b.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">Hand movement can be recognised
as up, down, left or right along with the angle. Based on that, actions like opening
a specific app or playing a specific song etc. can be initiated. <o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l1 level1 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">2.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><b style="mso-bidi-font-weight: normal;"><span lang="EN-GB">Look package</span></b><span lang="EN-GB"> offers specialised
functions and widgets for the android view system. <o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 72.0pt; mso-add-space: auto; mso-list: l1 level2 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">a.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">Look supports an editor that
can be used with the pen package called the ‘WritingBuddy’. <o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 72.0pt; mso-add-space: auto; mso-list: l1 level2 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">b.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">It also provides a concept of
an ‘AirButton’ that is more like a quick access menu or a context sensitive
menu that can be initiated by using a pen. <o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 72.0pt; mso-add-space: auto; mso-list: l1 level2 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">c.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">It provides another exciting
feature called the ‘SmartClip’ that helps in capturing screenshots or meta data
of text and URLs and crop screenshots. <o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 72.0pt; mso-add-space: auto; mso-list: l1 level2 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">d.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">It also provides a
‘PointerIcon’ feature to be able to change the look of the pointer icon when a
pen is used in any application. <o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l1 level1 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">3.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><b style="mso-bidi-font-weight: normal;"><span lang="EN-GB">Media Control</span></b><span lang="EN-GB"> is a package that allows
you to save and retrieve media files from any <a href="http://en.wikipedia.org/wiki/Digital_Living_Network_Alliance">DNLA
(Digital Network Living Alliance)</a> device. <o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 72.0pt; mso-add-space: auto; mso-list: l1 level2 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">a.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">It provides basic functions of
stop, pause, resume, seek for both music and video files that are stored on any
DNLA network device<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 72.0pt; mso-add-space: auto; mso-list: l1 level2 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">b.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">It can seamlessly present
still-images to a remote screen<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l1 level1 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">4.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><b style="mso-bidi-font-weight: normal;"><span lang="EN-GB">Motion</span></b><span lang="EN-GB"> is a package that allows you to
use the ‘call motion’ and ‘Pedometer’ features. <o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 72.0pt; mso-add-space: auto; mso-list: l1 level2 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">a.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">The call motion is triggered
when you see a message or a number and move the device to the ear! <o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 72.0pt; mso-add-space: auto; mso-list: l1 level2 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">b.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">The Pedometer captures data
around the walking of a person with the mobile. It captures the speed, the
distance, the calories etc. based on the height and weight of the user.<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l1 level1 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">5.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><b style="mso-bidi-font-weight: normal;"><span lang="EN-GB">MutliWindow</span></b><span lang="EN-GB"> allows you to run multiple
windows with various applications simultaneously. This becomes useful with
larger screen devices and almost gives you the power of a laptop in your palm! <o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 72.0pt; mso-add-space: auto; mso-list: l1 level2 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">a.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">Multi instance tray bar is
provided to handle the multiple windows that may be opened at any point<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 72.0pt; mso-add-space: auto; mso-list: l1 level2 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">b.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">It allows you to pair windows
in the typical split style<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 72.0pt; mso-add-space: auto; mso-list: l1 level2 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">c.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">It allows you to resize
application windows, minimize them, move or exit from a Window<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpLast" style="mso-list: l1 level1 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">6.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><b style="mso-bidi-font-weight: normal;"><span lang="EN-GB">Professional Audio</span></b><span lang="EN-GB"> adds a high
performance audio processing logic. Musical instruments can be created with
relative ease. <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">With all of these wonderful packages
together, a lot of creativity can be unleashed and I am sure the <a href="http://developer.samsung.com/ssac2013/main.do">Samsung Smart<span style="mso-fareast-language: KO;"> </span>App Challenge</a> encourages the <a href="http://developer.android.com/index.html">Android Developer Community</a>
to use these in innovative ways. <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">Of all the packages, I am particularly
interested in the possibilities with <a href="http://developer.samsung.com/samsung-mobile-sdk#pen">pen</a> and <a href="http://developer.samsung.com/samsung-mobile-sdk#look">look</a> packages
and so will be exploring how to write simple programs using the two of them in
the next few posts.<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpFirst">
<br /></div>
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Revision>0</o:Revision>
<o:TotalTime>0</o:TotalTime>
<o:Pages>1</o:Pages>
<o:Words>1038</o:Words>
<o:Characters>5921</o:Characters>
<o:Company>saigeethamn@gmail.com</o:Company>
<o:Lines>49</o:Lines>
<o:Paragraphs>13</o:Paragraphs>
<o:CharactersWithSpaces>6946</o:CharactersWithSpaces>
<o:Version>14.0</o:Version>
</o:DocumentProperties>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>KO</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="276">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;}
</style>
<![endif]-->
<!--StartFragment-->
<!--EndFragment--><br />
<div class="MsoListParagraphCxSpLast" style="margin-left: 0cm; mso-add-space: auto;">
<span lang="EN-GB"><a href="http://developer.samsung.com/ssac2013/main.do"><span lang="EN-US" style="mso-ansi-language: EN-US;">This article is sponsored by Samsung</span></a></span><span style="mso-ansi-language: EN-US;"><o:p></o:p></span></div>
<div class="blogger-post-footer"><script type="text/javascript"><!--
amazon_ad_tag = "saigstec-20"; amazon_ad_width = "728"; amazon_ad_height = "90";//--></script>
<script type="text/javascript" src="http://www.assoc-amazon.com/s/ads.js"></script></div>Saihttp://www.blogger.com/profile/12784084112335938233noreply@blogger.com0tag:blogger.com,1999:blog-2839017453780259099.post-85202213497931380232013-09-30T20:05:00.002+05:302013-10-07T15:22:45.913+05:30Exploring the Samsung Mobile SDK <div align="left" class="MsoNormal" style="line-height: 150%; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-pagination: widow-orphan; text-align: left; text-autospace: ideograph-numeric ideograph-other; word-break: normal;">
<span style="font-family: Arial, Helvetica, sans-serif;"><b><span lang="EN-GB" style="line-height: 150%;"> </span></b><span style="line-height: 150%;"><o:p></o:p></span></span></div>
<div align="left" class="MsoNormal" style="line-height: 150%; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-pagination: widow-orphan; text-align: left; text-autospace: ideograph-numeric ideograph-other; word-break: normal;">
<span style="font-family: Arial, Helvetica, sans-serif;"><span lang="EN-GB" style="line-height: 150%;"> </span><span style="line-height: 150%;">As I worked with the Samsung Chord SDK, I came to
realise that the </span><span style="mso-field-code: " HYPERLINK \0022http\:\/\/developer\.samsung\.com\/samsung-mobile-sdk\0022 \\t \0022_blank\0022 ";"><u><span style="color: blue; line-height: 150%;">Samsung Mobile SDK</span></u></span><span style="line-height: 150%;"> is an ecosystem in itself for an </span><span style="mso-field-code: " HYPERLINK \0022http\:\/\/developer\.samsung\.com\/\0022 \\t \0022_blank\0022 ";"><u><span style="color: blue; line-height: 150%;">Android App Developer,</span></u></span><span style="line-height: 150%;"> with many new add-ons in the true spirit of
extending the features of Android SDK in a powerful way.<o:p></o:p></span></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="line-height: 150%;"><br /></span></span></div>
<div align="left" class="MsoNormal" style="line-height: 150%; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-pagination: widow-orphan; text-align: left; text-autospace: ideograph-numeric ideograph-other; word-break: normal;">
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="line-height: 150%;">One such package that is part of the Samsung Mobile
SDK is the </span><a href="http://developer.samsung.com/android/tools-sdks/S-Pen-SDK-2-3"><span style="line-height: 150%;">Pen package</span></a><span style="line-height: 150%;">. In fact, Samsung has thrown open a new </span><span style="mso-field-code: " HYPERLINK \0022http\:\/\/www\.smartappchallenge\.com\/\0022 \\t \0022_blank\0022 ";"><u><span style="color: blue; line-height: 150%;">Samsung SmartApp Challenge currently</span></u></span><span style="line-height: 150%;"> targeting the new devices released by Samsung
recently.<o:p></o:p></span></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="line-height: 150%;"><br /></span></span></div>
<div align="left" class="MsoNormal" style="line-height: 150%; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-pagination: widow-orphan; text-align: left; text-autospace: ideograph-numeric ideograph-other; word-break: normal;">
<span style="font-family: Arial, Helvetica, sans-serif;"><span lang="EN-GB" style="line-height: 150%;"> </span><span style="line-height: 150%;">The <a href="http://developer.samsung.com/ssac2013/main.do" target="_blank">Challenge</a> (<a href="http://developer.samsung.com/ssac2013/main.do" target="_blank">Android Contest</a>) is open from September 5<sup>th</sup> to
November 30<sup>th</sup> with the judgement being pronounced in late
February 2014. More details are available on the </span><span style="mso-field-code: " HYPERLINK \0022http\:\/\/www\.smartappchallenge\.com\/\0022 \\t \0022_blank\0022 ";"><u><span style="color: blue; line-height: 150%;">Samsung Developers site.</span></u></span>(developer.samsung.com)<span style="line-height: 150%;"><o:p></o:p></span></span></div>
<div align="left" class="MsoNormal" style="line-height: 150%; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-pagination: widow-orphan; text-align: left; text-autospace: ideograph-numeric ideograph-other; word-break: normal;">
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"><span lang="EN-GB" style="line-height: 150%;">It is targeting the
usage of <u><span style="color: blue;">Pen package</span></u> and </span><span style="mso-field-code: " HYPERLINK \0022http\:\/\/developer\.samsung\.com\/samsung-mobile-sdk\0022 \\l \0022look\0022 \\t \0022_blank\0022 ";"><u><span lang="EN-GB" style="color: blue; line-height: 150%;">Look package</span></u></span><span lang="EN-GB" style="line-height: 150%;"> of the </span><span style="mso-field-code: " HYPERLINK \0022http\:\/\/developer\.samsung\.com\/samsung-mobile-sdk\0022 \\t \0022_blank\0022 ";"><u><span lang="EN-GB" style="color: blue; line-height: 150%;">Samsung Mobile SDK</span></u></span><span lang="EN-GB" style="line-height: 150%;"> on the Samsung Galaxy Note 3 and their
tablet Galaxy Note 10.1 (2014 Edition) both of which have been just released!!
Wow, this seems like a smart move </span><span lang="EN-GB" style="line-height: 150%;">J</span><span lang="EN-GB" style="line-height: 150%;"> Getting
the strong </span><span style="mso-field-code: " HYPERLINK \0022http\:\/\/developer\.samsung\.com\/samsung-mobile-sdk\0022 \\t \0022_blank\0022 ";"><u><span lang="EN-GB" style="color: blue; line-height: 150%;">Android Developer Community</span></u></span><span lang="EN-GB" style="line-height: 150%;"> to rally around for the
Challenge with their flagship </span><a href="http://developer.samsung.com/samsung-mobile-sdk"><span lang="EN-GB" style="line-height: 150%;">SDK</span></a><span lang="EN-GB" style="line-height: 150%;">.</span><span style="line-height: 150%;"><o:p></o:p></span></span></div>
<div align="left" class="MsoNormal" style="line-height: 150%; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-pagination: widow-orphan; text-align: left; text-autospace: ideograph-numeric ideograph-other; word-break: normal;">
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="line-height: 150%;">The new devices themselves have a lot to offer over
the predecessors. It would be essential to understand what is provided as
pre-packaged features in these phones before we can understand what the Pen package
and Look package have to offer for </span><span style="mso-field-code: " HYPERLINK \0022http\:\/\/developer\.samsung\.com\/\0022 \\t \0022_blank\0022 ";"><u><span style="color: blue; line-height: 150%;">Android Developers</span></u></span><span style="line-height: 150%;">. <o:p></o:p></span></span></div>
<div align="left" class="MsoNormal" style="line-height: 150%; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-pagination: widow-orphan; text-align: left; text-autospace: ideograph-numeric ideograph-other; word-break: normal;">
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="line-height: 150%;">In this post let us see what these devices have to
offer with the said packages before I talk about the packages themselves.<o:p></o:p></span></span></div>
<div align="left" class="MsoNormal" style="line-height: 150%; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-pagination: widow-orphan; text-align: left; text-autospace: ideograph-numeric ideograph-other; word-break: normal;">
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="line-height: 150%;">The features offered by the usage of S Pen in Note 3
seems to be significantly more and hence gives more options for an app
developer. And as I see and hear more about the Note 3, it certainly seems to
be a class-leading tablet going to take the mobile market by storm.<o:p></o:p></span></span></div>
<div align="left" class="MsoNormal" style="line-height: 150%; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-pagination: widow-orphan; text-align: left; text-autospace: ideograph-numeric ideograph-other; word-break: normal;">
<span style="font-family: Arial, Helvetica, sans-serif;"><span lang="EN-GB" style="line-height: 150%;"> </span><span style="line-height: 150%;">One of the important new features on the Note 3 using
S Pen is the “Air Command” feature. If you just hover over the screen and press
the screen once with the S Pen (pressing the S Pen button), the Air Command
window pops up. And from the Air command window – you have access to the
following features:<o:p></o:p></span></span></div>
<div align="left" class="MsoNormal" style="mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-pagination: widow-orphan; text-align: left; text-autospace: ideograph-numeric ideograph-other; word-break: normal;">
<br />
<ol>
<li><span lang="EN-GB" style="font-family: Arial, Helvetica, sans-serif;">Action Memo</span></li>
<li><span lang="EN-GB" style="font-family: Arial, Helvetica, sans-serif;">Scrapbook</span></li>
<li><span lang="EN-GB" style="font-family: Arial, Helvetica, sans-serif;">Screen Write</span></li>
<li><span lang="EN-GB" style="font-family: Arial, Helvetica, sans-serif;">S Finder</span></li>
<li><span lang="EN-GB" style="font-family: Arial, Helvetica, sans-serif;">Pen Window</span></li>
</ol>
</div>
<div align="left" class="MsoNormal" style="line-height: 150%; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-pagination: widow-orphan; text-align: left; text-autospace: ideograph-numeric ideograph-other; word-break: normal;">
<span lang="EN-GB" style="font-family: Arial, Helvetica, sans-serif; line-height: 150%;">The Air Command window looks
like this:<o:p></o:p></span></div>
<div align="left" class="MsoNormal" style="line-height: 150%; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-pagination: widow-orphan; text-align: left; text-autospace: ideograph-numeric ideograph-other; word-break: normal;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIzFmuNFFvDYwzbjgW0_b9pt37jVwTTticntOhHg_bRaqLQWIjvl4AxnOm9h58IbHIm8KPcR0E_oE5sFcrytVKllXp74vvgEfJ9qzL1UkF-ZgsG6IqWFRX0PRcyrr317d7nT2srFEd_TZI/s1600/Screen+Shot+2013-09-15+at+9.36.38+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Arial, Helvetica, sans-serif;"><img border="0" height="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIzFmuNFFvDYwzbjgW0_b9pt37jVwTTticntOhHg_bRaqLQWIjvl4AxnOm9h58IbHIm8KPcR0E_oE5sFcrytVKllXp74vvgEfJ9qzL1UkF-ZgsG6IqWFRX0PRcyrr317d7nT2srFEd_TZI/s320/Screen+Shot+2013-09-15+at+9.36.38+AM.png" width="320" /></span></a></div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div align="left" class="MsoNormal" style="line-height: 150%; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-pagination: widow-orphan; text-align: left; text-autospace: ideograph-numeric ideograph-other; word-break: normal;">
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div align="left" class="MsoNormal" style="line-height: 150%; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-pagination: widow-orphan; text-align: left; text-autospace: ideograph-numeric ideograph-other; word-break: normal;">
<span style="font-family: Arial, Helvetica, sans-serif;"><b><span lang="EN-GB" style="line-height: 150%;">Action Memo</span></b><span lang="EN-GB" style="line-height: 150%;"> lets
you handwrite a note. It just does not stop there, though!! This is
nothing new, you may say. Even in the 90s there were devices that capture notes
written with a stylus! </span><span style="line-height: 150%;"><o:p></o:p></span></span></div>
<div align="left" class="MsoNormal" style="line-height: 150%; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-pagination: widow-orphan; text-align: left; text-autospace: ideograph-numeric ideograph-other; word-break: normal;">
<span style="font-family: Arial, Helvetica, sans-serif;"><span lang="EN-GB" style="line-height: 150%;"><br /></span></span>
<span style="font-family: Arial, Helvetica, sans-serif;"><span lang="EN-GB" style="line-height: 150%;">But this goes a step beyond
and builds intelligence out of what you have written. For e.g. if you jot down
a phone number, you can easily save it to you contacts without keying it in
again! If you jot down a valid address, it lets you navigate to Google
maps directly to that address! How cool can it get?!! You can do many things
like, call a phone number directly from the scribbled number, email to a
scribbled email id, send instant text messages, add to a task list etc.</span><span style="line-height: 150%;"><o:p></o:p></span></span></div>
<div align="left" class="MsoNormal" style="line-height: 150%; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-pagination: widow-orphan; text-align: left; text-autospace: ideograph-numeric ideograph-other; word-break: normal;">
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"><span lang="EN-GB" style="line-height: 150%;"><b>Scrapbook</b> lets
you circle content and not just grab a screen shot but actually fetch the
content and save it automatically for easy browsing later. This includes even
grabbing YouTube content!!</span><span style="line-height: 150%;"><o:p></o:p></span></span></div>
<div align="left" class="MsoNormal" style="line-height: 150%; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-pagination: widow-orphan; text-align: left; text-autospace: ideograph-numeric ideograph-other; word-break: normal;">
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"><span lang="EN-GB" style="line-height: 150%;"><b>Screen Write</b> captures
a screen image and allows you to write comments on an image.</span><span style="line-height: 150%;"><o:p></o:p></span></span></div>
<div align="left" class="MsoNormal" style="line-height: 150%; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-pagination: widow-orphan; text-align: left; text-autospace: ideograph-numeric ideograph-other; word-break: normal;">
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"><span lang="EN-GB" style="line-height: 150%;"><b>S Finder</b> is
the phone’s search engine providing a system-wide search. It really is
very handy in searching the content on the entire phone including chat
messages, scrapbook etc.</span><span style="line-height: 150%;"><o:p></o:p></span></span></div>
<div align="left" class="MsoNormal" style="line-height: 150%; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-pagination: widow-orphan; text-align: left; text-autospace: ideograph-numeric ideograph-other; word-break: normal;">
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"><span lang="EN-GB" style="line-height: 150%;"><b>Pen Window</b> seems
to be THE feature that is starting off a new trend in working with multiple
windows of varying sizes and allowing for easy interaction between them. It
gives your access to eight apps by drawing a box of any size on the screen! It
may open up for more apps soon – a window of opportunity there.</span><span style="line-height: 150%;"><o:p></o:p></span></span></div>
<div align="left" class="MsoNormal" style="line-height: 150%; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-pagination: widow-orphan; text-align: left; text-autospace: ideograph-numeric ideograph-other; word-break: normal;">
<span style="font-family: Arial, Helvetica, sans-serif; line-height: 150%;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif; line-height: 150%;">The same is available on the Note 10.1 (2014 Edition) tablet as well with
a few additional features.<o:p></o:p></span></div>
<div align="left" class="MsoNormal" style="line-height: 150%; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-pagination: widow-orphan; text-align: left; text-autospace: ideograph-numeric ideograph-other; word-break: normal;">
<span style="font-family: Arial, Helvetica, sans-serif; line-height: 150%;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif; line-height: 150%;">The Look package grows on the basics provided by the Pen Package.
The Look package provides specialized widgets in the Android View System.<o:p></o:p></span></div>
<div align="left" class="MsoNormal" style="line-height: 150%; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-pagination: widow-orphan; text-align: left; text-autospace: ideograph-numeric ideograph-other; word-break: normal;">
<span style="font-family: Arial, Helvetica, sans-serif; line-height: 150%;">In my next few posts, I would look at what these powerful SDKs have to
offer.<o:p></o:p></span></div>
<div align="left" class="MsoNormal" style="line-height: 150%; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; mso-pagination: widow-orphan; text-align: left; text-autospace: ideograph-numeric ideograph-other; word-break: normal;">
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span>
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="background-color: white; background-position: initial initial; background-repeat: initial initial; color: #222222; line-height: 150%;">This article is sponsored
by Samsung</span></span></div>
<div class="blogger-post-footer"><script type="text/javascript"><!--
amazon_ad_tag = "saigstec-20"; amazon_ad_width = "728"; amazon_ad_height = "90";//--></script>
<script type="text/javascript" src="http://www.assoc-amazon.com/s/ads.js"></script></div>Saihttp://www.blogger.com/profile/12784084112335938233noreply@blogger.com0tag:blogger.com,1999:blog-2839017453780259099.post-86409916288600365182013-09-23T14:00:00.000+05:302013-09-23T14:00:38.933+05:30The Case of Xamarin – For Cross-Platform Mobile development<div class="MsoNormal">
<span lang="EN-GB">The Case of Xamarin – For cross-platform
Mobile development<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">As an enterprise mobile developer, at some
point, you would be faced with the decision to choose a cross platform
development tool. Remain native and manage its challenges (which are elaborated
a bit later) or go hybrid with tools like <a href="http://phonegap.com/">PhoneGap</a>
(Based on open-source <a href="http://cordova.apache.org/">Apache Cordova</a>)
or go with HTML5 and its related libraries?<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">As you might have guessed, there is certainly
no right or wrong answer. The answer depends on what is the problem you are
facing or trying to solve when you started looking at a cross-platform
development tool.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">Most-often, HTML5 based development or
hybrid development tools seem to be advocated as the panacea for all problems
faced by native development. So, what are the typical problems that continue to
haunt if we were to take the native development route for Enterprise Apps? I
specifically say “Enterprise” apps and not gaming apps (since gaming apps most
often need not have custom UI per platform)<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">The problems could be of:<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">Managing a large number of code
bases – for Android, iOS, Windows, for smartphones, tablets, mini tablets, TVs,
including some variations if you are targeting different countries.<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">Adding new features to the many
code bases that exist<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">Fixing bugs in each and every
code base <o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">Testing all the code bases for
each feature enhancement or bug fix<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">Ensuring features are in parity
in the large number of code bases<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="font-family: Symbol; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">Giving a standard experience on
each of them<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-GB">In short, the problems are all related to
the growing number of code bases each time we target a new device form-factor
or platform or country.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">HTML5 or hybrid apps could bring down the
number of code bases. Infact, they have matured over the years to be able to give
most of the features that native apps support.<span style="mso-spacerun: yes;">
</span>They are positioned as “write-once-run-anywhere” solutions. <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">However, one fundamental question you have
to ask yourself is whether you are looking for an app with the exact same
User-Interface (UI) on Android, iOS, Windows etc.? If you are looking for
platform-specific UI paradigms, you will have to do a lot of branching in the
code – which very soon can become a nightmare. Your entire view layer code
would be filled with branches on platform specific UI!! That certainly was not
the intention when you chose a cross-platform tool!!<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">This may not be too different for the
hybrid route too. You also have to deal with the lowest common denominator of
the UI features supported by the cross platform tools.<span style="mso-spacerun: yes;"> </span>So, if you intend to give native UI feel and
features without being stuck with the least common denominator of features for
your app and without having to do platform specific coding through “if…else”
branches in your code, you must take a look at Xamarin.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">Xamarin is the cross-platform tool that has
addressed this very problem in a very elegant way!! It makes an assumption or
advocates that you develop all the backend pieces of common, non-UI code in a
separate layer and you write your platform specific UI in a separate layer. <span style="mso-spacerun: yes;"> </span>Considering such a design, Xamarin<span style="mso-spacerun: yes;"> </span>gives a complete set of platform specific
features to you through the platform specific SDKs. You have the
Xamarin.Android and Xamarin.iOS, which give you a 100% support to every feature
on their specific platforms. But you also have Xamarin itself with out platform
dependencies that can be used to build all the non-UI logic and reuse it across
platforms – giving you the advantages of cross platform development but also
giving you’re the advantage of native development of UI !! Howzat?!! And since
this is developed using C#, you are almost ready to deploy the same code with
UI development specific to Windows on Windows mobile as well!!<span style="mso-spacerun: yes;"> </span><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">Based on my experience in mobile app
development, typically about 60% to 705 of the code is non-UI in enterprise
apps and that is what lends itself to reuse. <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">Sure, it is now giving a
“write-once-run-anywhere” assurance. It requires you to develop UI specific to
platforms. Infact, what can be touted as its biggest limitation – having to
develop UI separately for each platform is what I term as THE biggest advantage
in enterprise apps that want platform-specific UI but cross-platform development!
<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">Sure, any solution is suitable only
considering the problem you are trying to solve. So, take an informed decision </span><span lang="EN-GB" style="font-family: Wingdings; mso-ascii-font-family: Cambria; mso-ascii-theme-font: minor-latin; mso-char-type: symbol; mso-hansi-font-family: Cambria; mso-hansi-theme-font: minor-latin; mso-symbol-font-family: Wingdings;"><span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings;">J</span></span><span lang="EN-GB"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">Check it out at <a href="http://xamarin.com/">Xamarin.com.</a> <o:p></o:p></span></div>
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Revision>0</o:Revision>
<o:TotalTime>0</o:TotalTime>
<o:Pages>1</o:Pages>
<o:Words>671</o:Words>
<o:Characters>3826</o:Characters>
<o:Company>saigeethamn@gmail.com</o:Company>
<o:Lines>31</o:Lines>
<o:Paragraphs>8</o:Paragraphs>
<o:CharactersWithSpaces>4489</o:CharactersWithSpaces>
<o:Version>14.0</o:Version>
</o:DocumentProperties>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>JA</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="276">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;}
</style>
<![endif]-->
<!--StartFragment-->
<!--EndFragment--><br />
<div class="MsoNormal">
<br /></div>
<div class="blogger-post-footer"><script type="text/javascript"><!--
amazon_ad_tag = "saigstec-20"; amazon_ad_width = "728"; amazon_ad_height = "90";//--></script>
<script type="text/javascript" src="http://www.assoc-amazon.com/s/ads.js"></script></div>Saihttp://www.blogger.com/profile/12784084112335938233noreply@blogger.com4tag:blogger.com,1999:blog-2839017453780259099.post-38914037536495450972013-09-05T16:45:00.001+05:302013-09-05T17:19:35.516+05:30Android's Growing Fragmentation - An Insight<span style="font-family: Times, Times New Roman, serif;">Last year in June, I posted this <a href="http://saigeethamn.blogspot.in/2012/07/android-and-its-fragmentation.html" target="_blank">article</a> talking about the huge levels of fragmentation in the Android world. However, that seems to have been just the beginning...</span><br />
<span style="font-family: Times, Times New Roman, serif;"><br />
</span> <span style="font-family: Times, Times New Roman, serif;">The number of devices were around 3997. Any guesses on how many this year? a whopping 11,868 as per the <a href="http://opensignal.com/reports/fragmentation-2013/" target="_blank">report by OpenSignal</a>.</span><br />
<span style="font-family: Times, Times New Roman, serif;"><br />
</span> <span style="font-family: Times, Times New Roman, serif;">What was seen as a growing bane for developers has also turned out to be an advantage. OpenSignal summarizes the growing advantage aptly:</span><br />
<br />
"<span style="background-color: white; color: #585858; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 22px;">Despite the problems, fragmentation also has a great number of benefits – for both developers and users. The availability of cheap Android phones (rarely running the most recent version) means that they have a much greater global reach than iOS, so app developers have a wider audience to build for. It may be tricky to do, but the potential reward definitely makes it worthwhile. For consumers, extreme fragmentation means that they can get exactly the phone they want – big or small, cheap or expensive, with any number of different feature combinations."</span><br />
<span style="background-color: white; color: #585858; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 22px;"><br />
</span> <span style="background-color: white; line-height: 22px;"><span style="font-family: Times, Times New Roman, serif;">Out of 682,000 devices that were surveyed, Samsung had a share of 47.5% making it clear as to who is in the lead. There are many unheard of devices probably in the local markets of the various countries. And not surprisingly, there are still 8 versions of android in active use. We know many of th</span></span><br />
<span style="background-color: white; line-height: 22px;"><span style="font-family: Times, Times New Roman, serif;">e lower end phones are available in older versions without any upgrade path to the latest versions. </span></span><br />
<span style="background-color: white; line-height: 22px;"><span style="font-family: Times, Times New Roman, serif;"><br />
</span></span> <span style="background-color: white; line-height: 22px;"><span style="font-family: Times, Times New Roman, serif;">Why, lower end phones? Even Samsung Galaxy S does not allow for an upgrade to ICS or Jellybean!! Interestingly, a mere 37.9% are on Jelly Bean. So, the "upgrade to the latest version" mania is not for the Android market, it looks like. :)</span></span><br />
<span style="background-color: white; line-height: 22px;"><span style="font-family: Times, Times New Roman, serif;"><br />
</span></span> <span style="background-color: white; line-height: 22px;"><span style="font-family: Times, Times New Roman, serif;">Some graphics form the report convey a lot about the level of fragmentation and the market share. The device fragmentation is shown here:</span></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIjJMrYIp2A9u82fOc8bMdg4OvHVU8A0wAQ7LD0yt6dETzSDWjbSa3lTSklcuVw1g1WfK1W0NjpMro5UsFQXkjurA4mLKrKRJV3Q9Qh58EtxJcPa5DC5o_DTLcf385MrKSXZN5218L2SDV/s1600/Screen+Shot+2013-09-05+at+4.34.42+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="185" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIjJMrYIp2A9u82fOc8bMdg4OvHVU8A0wAQ7LD0yt6dETzSDWjbSa3lTSklcuVw1g1WfK1W0NjpMro5UsFQXkjurA4mLKrKRJV3Q9Qh58EtxJcPa5DC5o_DTLcf385MrKSXZN5218L2SDV/s320/Screen+Shot+2013-09-05+at+4.34.42+PM.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<span style="background-color: white; line-height: 22px;"><span style="font-family: Times, Times New Roman, serif;">It is far more fragmented earlier and we should watch and see where this goes and surely lead to some consolidation !! </span></span><br />
<span style="background-color: white; line-height: 22px;"><span style="font-family: Times, Times New Roman, serif;"><br />
</span></span> <span style="background-color: white; line-height: 22px;"><span style="font-family: Times, Times New Roman, serif;">The brand fragmentation is another insightful graphic:</span></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc_zXG69bRaFhSLUXVzxwOIbKFKhv5VT0TJ8bInhR21u1MuQK85BODZUGfENv5AfMBJpZnn-3e4RnTbEqtuyqzBMC88YsNJR_ZOBI3YmeRM1zxGoOGvUxSi0JdEFBvVNyuWNQ-yHu3ZAew/s1600/Screen+Shot+2013-09-05+at+4.38.22+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="186" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjc_zXG69bRaFhSLUXVzxwOIbKFKhv5VT0TJ8bInhR21u1MuQK85BODZUGfENv5AfMBJpZnn-3e4RnTbEqtuyqzBMC88YsNJR_ZOBI3YmeRM1zxGoOGvUxSi0JdEFBvVNyuWNQ-yHu3ZAew/s320/Screen+Shot+2013-09-05+at+4.38.22+PM.png" width="320" /></a></div>
<span style="background-color: white; line-height: 22px;"><span style="font-family: Times, Times New Roman, serif;"><br />
</span></span> <span style="font-family: Times, Times New Roman, serif;"><span style="line-height: 22px;">All this makes the market an exciting place to be in - for all types of developers, testers and buyers of mobile phones as well. There is so much choice and smartphones are now in the reach of a larger customer base - it is no more 'exclusive' stuff for a smaller percentage of a privileged few!! </span></span><br />
<span style="font-family: Times, Times New Roman, serif;"><span style="line-height: 22px;"><br />
</span></span> <span style="font-family: Times, Times New Roman, serif;"><span style="line-height: 22px;">While, all this is happening in the Android world, the latest version of Android being named "Kitkat" makes me wonder if Android is going to "Take a Break" and pave the way for Microsoft and Nokia?!! </span></span><br />
<span style="font-family: Times, Times New Roman, serif;"><span style="line-height: 22px;"><br />
</span></span><div class="blogger-post-footer"><script type="text/javascript"><!--
amazon_ad_tag = "saigstec-20"; amazon_ad_width = "728"; amazon_ad_height = "90";//--></script>
<script type="text/javascript" src="http://www.assoc-amazon.com/s/ads.js"></script></div>Saihttp://www.blogger.com/profile/12784084112335938233noreply@blogger.com2tag:blogger.com,1999:blog-2839017453780259099.post-84842900356683431202013-08-31T18:36:00.001+05:302013-08-31T18:36:59.518+05:30The Chord Android SDK Starter Program - Part 1<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-GB"><o:p> </o:p></span></b>With all of the knowledge shared with you
in the last 3 articles, I wanted to develop a very basic Android app – almost
like a “Hello World” App using the Chord <a href="http://developer.samsung.com/chord">Android SDK</a>.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">However, by the time I developed the 1<sup>st</sup>
app, it still seemed like a lot of code. Of course this kind of an app is meant
to do a lot more than just say ‘Hello World’. It’s power is best utilized in developing
games, I would say.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">Like the <a href="http://developer.samsung.com/android/samples/Developing-a-multiplayer-Poker-game-with-the-Chord-and-AllShare-libraries">poker
game</a> that is available in the Samsung <a href="http://developer.samsung.com/">Android developer</a> documentation. <span style="mso-spacerun: yes;"> </span><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">So, What are the steps to start with?<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB"><b>Step 1:</b> <span style="mso-spacerun: yes;"> </span>You first need to create a channel.<span style="mso-spacerun: yes;"> </span>I do this when I initialize my service.<span style="mso-spacerun: yes;"> </span>I have written a service that gets an instance
of the ChordManager.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">public</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">void</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">
initialize(IChordServiceListener csListener) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span></span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">if</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> (</span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mChord</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> != </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">null</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 3;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">return</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">;</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span>}</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span></span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span></span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mChord</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> =
ChordManager.<i>getInstance</i>(</span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">this</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span></span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mListener</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> = csListener;</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span></span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span></span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mChord</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">.setTempDirectory(</span><i><span style="background: silver; color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco; mso-highlight: silver;">chordFilePath</span></i><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span></span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mChord</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">.setHandleEventLooper(getMainLooper());</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span></span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span></span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">…</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 1;"> </span>}<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">Note that I have got an ChordManager here
and associated a temporary file path and a the app’s main looper.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB"><b>Step 2:</b><b> </b>
Next, You would want a way to join the channel So, let us implement the
joinChannel() method and leaveChannel() method as its complement.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">This is after the ChordManager is up and
running. <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">public</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> IChordChannel joinChannel(String
channelName) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">if</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> (channelName
== </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">null</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> || channelName.equals(</span><span style="color: #2a00ff; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">""</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">)) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mPrivateChannelName</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> = </span><i><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">MYCHANNEL</span></i><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">;</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>} </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">else</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mPrivateChannelName</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> =
channelName;</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>}</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>IChordChannel channelInst = </span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mChord</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">.joinChannel(</span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mPrivateChannelName</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">, </span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mChannelListener</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">if</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> (</span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">null</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> == channelInst) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">return</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">null</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">;</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>}</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">return</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> channelInst;</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;">
</span>}</span><span lang="EN-GB"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">This seems straight forward. MYCHANNEL is a
constant declared earlier as </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">public</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">static</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> String </span><i><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">MYCHANNEL</span></i><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> = </span><span style="color: #2a00ff; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">"com.sai.CHANNELONE"</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">;<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">If the caller does not pass a channel name,
the default one declared would be used.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">While joining a channel, we need to pass
the Channel name and also an associated listener that is of the type </span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">IChordChannelListener.</span><span lang="EN-GB"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">So next step would be implement this
listener.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">Note the leave channel code would be like
this:<o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">public</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">void</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">
leaveChannel() {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mChord</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">.leaveChannel(</span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mPrivateChannelName</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mPrivateChannelName</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> = </span><span style="color: #2a00ff; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">""</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">;</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;">
</span>}<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco; mso-bidi-font-size: 11.0pt;"><b>Step 3: </b>Implement the</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> IChordChannelListener.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">All the 9 methods of this have to be
implemented. These are the methods that would be called back when a file is
sent or data is received etc. And the actual implementation for this would be
in the Activity that is invoking the ChordManager service.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">Here, based on the example from Samsung, I
have also implemented these methods mainly as a way of calling a listener that
is implemented by the activity invoking it.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: #646464; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">@Override</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">public</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">void</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> onDataReceived(String arg0, String arg1, String arg2,</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 4;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">byte</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">[][] arg3) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 3;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">if</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> (!<u>CHORD_APITEST_MESSAGE_TYPE</u>.equals(<u>payloadType</u>))</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">return</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">;</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">byte</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">[] buf = <u>payload</u>[0];</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">if</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> (</span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">null</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> != </span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mListener</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">)</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mListener</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">.onReceiveMessage(<u>fromNode</u>,
<u>fromChannel</u>, </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">new</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> String(buf));</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 3;"> </span></span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span>}</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span></span><span style="color: #646464; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">@Override</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">public</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">void</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> onFileChunkReceived(String fromNode, String fromChannel, String
fileName,</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 4;"> </span>String hash, String
fileType, String exchangeId, </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">long</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> fileSize, </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">long</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> offset) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 3;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">if</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> (</span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">null</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> != </span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mListener</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">int</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> progress = (</span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">int</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">)(offset * 100 / fileSize);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mListener</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">.onFileProgress(</span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">false</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">, fromNode, fromChannel, progress, exchangeId);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 3;"> </span>}</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 3;"> </span></span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span>}</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span></span><span style="color: #646464; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">@Override</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">public</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">void</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> onFileChunkSent(String toNode, String toChannel, String fileName,</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 4;"> </span>String hash, String
fileType, String exchangeId, </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">long</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> fileSize, </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">long</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> offset,</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 4;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">long</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> chunckSize) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 3;"> </span><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">if</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> (</span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">null</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> != </span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mListener</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 1;"> </span><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">int</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> progress = (</span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">int</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">)(offset * 100 / fileSize);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 1;"> </span><span style="mso-spacerun: yes;"> </span></span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mListener</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">.onFileProgress(</span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">true</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">, toNode, toChannel, progress, exchangeId);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 1;"> </span><span style="mso-spacerun: yes;">
</span>}</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 3;"> </span></span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span>}</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span></span><span style="color: #646464; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">@Override</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">public</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">void</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> onFileFailed(String node, String channel, String fileName,</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 4;"> </span>String hash, String
exchangeId, </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">int</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> reason) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 3;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">switch</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> (reason) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">case</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><i><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">ERROR_FILE_REJECTED</span></i><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">: {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">if</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> (</span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">null</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> != </span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mListener</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mListener</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">.onFileCompleted(IChordServiceListener.</span><i><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">REJECTED</span></i><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">, node,
channel,</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>exchangeId,
fileName);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>}</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">break</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">;</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>}</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">case</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><i><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">ERROR_FILE_CANCELED</span></i><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">: {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">if</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> (</span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">null</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> != </span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mListener</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mListener</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">.onFileCompleted(IChordServiceListener.</span><i><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">CANCELLED</span></i><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">, node,
channel,</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>exchangeId,
fileName);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>}</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">break</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">;</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>}</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">case</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><i><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">ERROR_FILE_CREATE_FAILED</span></i><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">:</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">case</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><i><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">ERROR_FILE_NO_RESOURCE</span></i><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">:</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">default</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">:</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">if</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> (</span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">null</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> != </span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mListener</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mListener</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">.onFileCompleted(IChordServiceListener.</span><i><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">FAILED</span></i><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">, node,
channel,</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>exchangeId,
fileName);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>}</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">break</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">;</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>}</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 3;"> </span></span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span>}</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span></span><span style="color: #646464; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">@Override</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">public</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">void</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> onFileReceived(String fromNode, String fromChannel, String fileName,</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>String hash, String fileType,
String exchangeId, </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">long</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> fileSize, String tmpFilePath) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 3;"> </span>String savedName = fileName;</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">int</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> i =
savedName.lastIndexOf(</span><span style="color: #2a00ff; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">"."</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>String name =
savedName.substring(0, i);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>String ext =
savedName.substring(i);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>Log.<i>d</i>(</span><span style="color: #2a00ff; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">"CHORDSERVICE"</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">,<span style="mso-spacerun: yes;"> </span></span><span style="color: #2a00ff; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">"onFileReceived : "</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> + fileName);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>Log.<i>d</i>(</span><span style="color: #2a00ff; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">"CHORDSERVICE"</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">, </span><span style="color: #2a00ff; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">"onFileReceived : "</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> + name + </span><span style="color: #2a00ff; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">"
"</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> + ext);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>File targetFile = </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">new</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> File(</span><i><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">chordFilePath</span></i><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">, savedName);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">int</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> index = 0;</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">while</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">
(targetFile.exists()) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>savedName = name + </span><span style="color: #2a00ff; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">"_"</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> + index + ext;</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>targetFile = </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">new</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> File(</span><i><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">chordFilePath</span></i><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">, savedName);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>index++;</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>Log.<i>d</i>(</span><span style="color: #2a00ff; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">"CHORDSERVICE"</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">,<span style="mso-spacerun: yes;"> </span></span><span style="color: #2a00ff; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">"onFileReceived : "</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> + savedName);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>}</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>File srcFile = </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">new</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> File(tmpFilePath);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>srcFile.renameTo(targetFile);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">if</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> (</span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">null</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> != </span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mListener</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mListener</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">.onFileCompleted(IChordServiceListener.</span><i><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">RECEIVED</span></i><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">, fromNode, fromChannel,</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>exchangeId, savedName);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>}</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 3;"> </span></span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span>}</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span></span><span style="color: #646464; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">@Override</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">public</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">void</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> onFileSent(String toNode, String toChannel, String fileName,</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 4;"> </span>String hash, String
fileType, String exchangeId) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 3;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">if</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> (</span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">null</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> != </span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mListener</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mListener</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">.onFileCompleted(IChordServiceListener.</span><i><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">SENT</span></i><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">, toNode, toChannel,</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>exchangeId, fileName);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>}</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 3;"> </span></span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span>}</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span></span><span style="color: #646464; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">@Override</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">public</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">void</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> onFileWillReceive(String fromNode, String fromChannel, String fileName,</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 4;"> </span>String hash, String
fileType, String exchangeId, </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">long</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> fileSize) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 3;"> </span></span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 3;"> </span>File targetdir = </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">new</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> File(</span><i><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">chordFilePath</span></i><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">if</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">
(!targetdir.exists()) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>targetdir.mkdirs();</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>}</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="font-family: Monaco; font-size: 11pt;"> <span style="color: #3f7f5f;">//verifying if the external storage is avaiable</span></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>StatFs stat = </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">new</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> StatFs(</span><i><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">chordFilePath</span></i><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">);<span style="mso-spacerun: yes;"> </span></span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">long</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> blockSize =
stat.getBlockSize();<span style="mso-spacerun: yes;"> </span></span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">long</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> totalBlocks =
stat.getAvailableBlocks();</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">long</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">
availableMemory = blockSize * totalBlocks;</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">if</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">
(availableMemory < fileSize) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>rejectFile(fromChannel,
exchangeId);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">if</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> (</span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">null</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> != </span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mListener</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">)</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mListener</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">.onFileCompleted(IChordServiceListener.</span><i><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">FAILED</span></i><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">, fromNode,
fromChannel,</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>exchangeId,
fileName);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">return</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">;</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>}</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">if</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> (</span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">null</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> != </span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mListener</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">)</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mListener</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">.onFileWillReceive(fromNode,
fromChannel, fileName, exchangeId);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 3;"> </span></span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span>}</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span></span><span style="color: #3f7f5f; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">//This is called whenever a node joins a channel</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span></span><span style="color: #646464; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">@Override</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">public</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">void</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> onNodeJoined(String fromNode, String fromChannel) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 3;"> </span>Log.<i>v</i>(</span><span style="color: #2a00ff; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">"CHORDSERVICE"</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">, </span><span style="color: #2a00ff; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">"onNodeJoined(), fromNode : "</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> + fromNode + </span><span style="color: #2a00ff; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">",
fromChannel : "</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> </span>+ fromChannel);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">if</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> (</span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">null</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> != </span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mListener</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">)</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mListener</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">.onNodeEvent(fromNode,
fromChannel, </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">true</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span>}</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span></span><span style="color: #3f7f5f; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">//This is called whenever a node leaves the channel</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span></span><span style="color: #646464; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">@Override</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">public</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">void</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> onNodeLeft(String fromNode, String fromChannel) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 3;"> </span>Log.<i>v</i>(</span><span style="color: #2a00ff; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">"CHORDSERVICE"</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">, </span><span style="color: #2a00ff; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">"onNodeJoined(), fromNode : "</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> + fromNode + </span><span style="color: #2a00ff; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">",
fromChannel : "</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>+ fromChannel);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">if</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> (</span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">null</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> != </span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mListener</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">)</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mListener</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">.onNodeEvent(fromNode,
fromChannel, </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">false</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span>}</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span><span style="mso-tab-count: 1;"> </span></span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;">
</span>};<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">Step 4: What should happen when a Node
joins the channel and leaves the channel is also dictated by the methods
overridden above.<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-GB">In all of the above, you see that the
Listener (a new one declared in the Service class) is what is passed in by the
activity.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">i.e. in the</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> ChordService </span><span lang="EN-GB">class, I have declared a new
Listener –</span><span lang="EN-GB" style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">IChordServiceListener. </span><span lang="EN-GB">And what does the listener do? It declares methods that the activity
that called the ChordService should implement. They are related what should the
activity do on receiving a message, when a node joins or leaves, when a network
state changes etc.</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">So,</span><span lang="EN-GB" style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">IChordServiceListener </span><span lang="EN-GB">is becoming the glue
between the implementation in the activity and the call back methods with the</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> ChordService </span><span lang="EN-GB">to
the</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> IChordChannelListener.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">Here is</span><span lang="EN-GB" style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">IChordServiceListener </span><span lang="EN-GB">declaration:</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">public</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">interface</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">
IChordServiceListener {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">void</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">
onReceiveMessage(String node, String channel, String message);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">void</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">
onFileWillReceive(String node, String channel, String fileName, String
exchangeId);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">void</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">
onFileProgress(</span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">boolean</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> bSend, String node, String channel, </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">int</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> progress,</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>String exchangeId);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">public</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">static</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">final</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">int</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><i><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">SENT</span></i><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> = 0;</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">public</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">static</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">final</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">int</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><i><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">RECEIVED</span></i><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> = 1;</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">public</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">static</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">final</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">int</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><i><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">CANCELLED</span></i><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> = 2;</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">public</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">static</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">final</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">int</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><i><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">REJECTED</span></i><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> = 3;</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">public</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">static</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">final</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">int</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><i><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">FAILED</span></i><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> = 4;</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">void</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">
onFileCompleted(</span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">int</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> reason, String node, String channel,
String exchangeId,</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>String fileName);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">void</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">
onNodeEvent(String node, String channel, </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">boolean</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> bJoined);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">void</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">
onNetworkDisconnected();</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">void</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> <span style="background-color: white; background-position: initial initial; background-repeat: initial initial;">onUpdateNodeInfo</span>(String
nodeName, String ipAddress);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">void</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">
onConnectivityChanged();</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>}</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">Step 5: Now that we have implemented the
IChordChannelListener, we have 2 more Listeners that we need to deal with. One
is the INetworkListener. <o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-GB">This is implemented in the initialize
method itself as follows:<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mChord</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">.setNetworkListener(</span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">new</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> INetworkListener() {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #646464; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">@Override</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">public</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">void</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> onConnected(</span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">int</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> interfaceType) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">if</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> (</span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">null</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> != </span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mListener</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mListener</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">.onConnectivityChanged();</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>}</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>}</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #646464; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">@Override</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">public</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">void</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> onDisconnected(</span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">int</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> interfaceType) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">if</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> (</span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">null</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> != </span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mListener</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mListener</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">.onConnectivityChanged();</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>}</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>}</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>});</span><span lang="EN-GB"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">Step 6: The only other listener we need to
Implement is the IChordManagerListener. This is typically used by the
ChordManager when it starts.<span style="mso-spacerun: yes;"> </span>Here is the
implementation for the same.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">public</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">int</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> start() {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><span style="font-family: Monaco; font-size: 11pt;"> </span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">return</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mChord</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">.start(ChordManager.</span><i><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">INTERFACE_TYPE_WIFI</span></i><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">, </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">new</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> <span style="background-color: white; background-position: initial initial; background-repeat: initial initial;">IChordManagerListener</span>() {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 3;"> </span></span><span style="color: #646464; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">@Override</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 3;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">public</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">void</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> onError(</span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">int</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> arg0) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 4;"> </span></span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 3;"> </span>}</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 3;"> </span></span><span style="color: #646464; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">@Override</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 3;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">public</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">void</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> onNetworkDisconnected() {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 4;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">if</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> (</span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">null</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> != </span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mListener</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">)</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mListener</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">.onNetworkDisconnected();</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 4;"> </span></span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 3;"> </span>}</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 3;"> </span></span><span style="color: #646464; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">@Override</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 3;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">public</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">void</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> onStarted(String name, </span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">int</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> reason) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 4;"> </span></span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 4;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">if</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> (</span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">null</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> != </span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mListener</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">)</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mListener</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">.onUpdateNodeInfo(name, </span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mChord</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">.getIp());</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 4;"> </span></span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 4;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">if</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> (</span><i><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">STARTED_BY_RECONNECTION</span></i><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"> == reason) {</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><b><span style="color: #7f0055; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">return</span></b><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">;</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span>}</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 4;"> </span></span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 4;"> </span>IChordChannel <u>channel</u>
= </span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mChord</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">.joinChannel(ChordManager.</span><i><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">PUBLIC_CHANNEL</span></i><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">,</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #0000c0; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">mChannelListener</span><span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">);</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 3;"> </span>}</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 3;"> </span></span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span>});</span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 2;"> </span></span><span style="font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: black; font-family: Monaco; font-size: 11.0pt; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;"><span style="mso-tab-count: 1;"> </span>}<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">Note that I have made an assumption that the
ChordManager is going to use only Wifi as the mode of communication between
nodes for simplicity sake.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">With most of the above code , the basic aspects of the
ChordService are ready for being invoked by any calling activity. There are a
few aspects around binding to a service, unbinding to a service etc. I have in
the code but not explaining here as it is not an aspect of the Chord <a href="http://developer.samsung.com/chord">Android SDK</a>. It is more of a
basic android service. <o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">The complete code for this along with the activity
that invokes the ChordService will be part of the next article in the series.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: black; mso-ansi-language: EN-US; mso-bidi-font-family: Monaco;">So, with all this basic exploration, I am curious to
know if any of you have entered the Samsung <a href="http://www.smartappchallenge.com/">Android Contest</a> and also to see
the plethora of ways this <a href="http://developer.samsung.com/chord">SDK</a>
has been used innovatively. <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Revision>0</o:Revision>
<o:TotalTime>0</o:TotalTime>
<o:Pages>1</o:Pages>
<o:Words>1994</o:Words>
<o:Characters>11366</o:Characters>
<o:Company>saigeethamn@gmail.com</o:Company>
<o:Lines>94</o:Lines>
<o:Paragraphs>26</o:Paragraphs>
<o:CharactersWithSpaces>13334</o:CharactersWithSpaces>
<o:Version>14.0</o:Version>
</o:DocumentProperties>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>JA</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="276">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;}
</style>
<![endif]-->
<!--StartFragment-->
<!--EndFragment--><br />
<div class="MsoNormal">
<span lang="EN-GB" style="mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";"><a href="http://www.smartappchallenge.com/"><span style="background: white; color: #6699cc; font-family: Arial; font-size: 11.5pt; mso-bidi-font-family: "Times New Roman"; text-decoration: none; text-underline: none;">Sponsored by Samsung</span></a><o:p></o:p></span></div>
<div class="blogger-post-footer"><script type="text/javascript"><!--
amazon_ad_tag = "saigstec-20"; amazon_ad_width = "728"; amazon_ad_height = "90";//--></script>
<script type="text/javascript" src="http://www.assoc-amazon.com/s/ads.js"></script></div>Saihttp://www.blogger.com/profile/12784084112335938233noreply@blogger.com1tag:blogger.com,1999:blog-2839017453780259099.post-19549455044499262942013-08-26T12:19:00.002+05:302013-08-27T11:47:39.161+05:30Setting up the Samsung Chord SDK<div class="MsoNormal">
<span lang="EN-GB">Continuing from the previous posts, I would
like to write about setting up the development environment for using the Chord <a href="http://developer.samsung.com/chord" target="_blank">Android SDK</a> and give an overview of the main classes to be used for your first program
(to come in a later article).<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">This is towards aiding<a href="http://developer.samsung.com/" target="_blank"> android developers </a>in writing apps for
the Samsung <a href="http://www.smartappchallenge.com/" target="_blank">Android Contest.</a><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoListParagraphCxSpFirst" style="mso-list: l2 level1 lfo1; text-indent: -18.0pt;">
</div>
<ol>
<li><span lang="EN-GB" style="text-indent: -18pt;">Download the <a href="http://developer.samsung.com/chord">Samsung Chord SDK available here</a></span></li>
<li><span lang="EN-GB" style="text-indent: -18pt;">Download the <a href="http://developer.samsung.com/chord">Samsung Chord SDK emulator also
available here</a> (need to accept the license agreement in order to download
both)</span></li>
<li><span lang="EN-GB" style="text-indent: -18pt;">Add the Eclipse plugin for
Chord SDK as described in </span><span style="text-indent: -18pt;">"<a href="http://developer.samsung.com/chord">Chord SDK Emulator Guide ver1.2</a>".</span></li>
<li><span style="text-indent: -18pt;"><span style="font-family: 'Times New Roman'; font-size: 7pt;"> </span></span><span style="text-indent: -18pt;">You can
download sample apps from the chord sdk link and run it on the emulator.</span></li>
<li><span lang="EN-GB" style="text-indent: -18pt;">The screen shot shows the basic
interface of the sample demo. Of course, this can meaning fully execute only
after you start the Chord Relay server in the eclipse environment which shows
the console and how the UDP broadcast is happening from the emulator. This
allows you to do basic stuff like Starting Chord, Joining and leaving a
channel.</span></li>
</ol>
<!--[if !supportLists]--><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8qBtkMavFE5OUQkUrZ5G8v299rSoxjyYrAG48OSQNsjiH0x2TVfbMCdtVYXTpvyjC29B-quHewGEXbxLfxekbs3PWF7yEYuERTONhC2IPein2vHLhW1kWSzao4xaZr4o-v4vp3APpoe7q/s1600/SamsungDemoApp.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8qBtkMavFE5OUQkUrZ5G8v299rSoxjyYrAG48OSQNsjiH0x2TVfbMCdtVYXTpvyjC29B-quHewGEXbxLfxekbs3PWF7yEYuERTONhC2IPein2vHLhW1kWSzao4xaZr4o-v4vp3APpoe7q/s320/SamsungDemoApp.png" width="181" /></a></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">While the above shows the basics in terms
of getting up the first <a href="http://developer.samsung.com/chord" target="_blank">Samsung chord SDK</a> app to work, we need to understand
what the <a href="http://developer.samsung.com/chord" target="_blank">Android SDK</a> gives us and what are the classes we have to use to create our own
app.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">What are the basic classes and interfaces
provided by the Chord <a href="http://developer.samsung.com/chord" target="_blank">Android SDK</a>? All of the fundamental ones are described here:<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB"><a href="http://img-developer.samsung.com/contents/cmm/chord/SamsungChordSDK_APIReferences/java_doc/index.html">ChordManager</a>
– This forms the core of the SDK. This is used to create a Node and helps in
managing which nodes are connected to which channels. If you want to know more
about channels and nodes, please refer the <a href="http://saigeethamn.blogspot.in/2013/08/samsung-chord-sdk-introduction.html">previous
article</a>. <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">This is the class that hides all the
network complexity from the developer. These are the basic features provided by
this class:<o:p></o:p></span></div>
<ol>
<li><span style="text-indent: -18pt;">Tells you the list of available
network interfaces like wi-fi or Mobile Access Point etc.</span></li>
<li><span lang="EN-GB" style="text-indent: -18pt;"><span style="font-family: 'Times New Roman'; font-size: 7pt;"> </span></span><span lang="EN-GB" style="text-indent: -18pt;">It gives you an option to start
and stop chord</span></li>
<li><span lang="EN-GB" style="text-indent: -18pt;"><span style="font-family: 'Times New Roman'; font-size: 7pt;"> </span></span><span lang="EN-GB" style="text-indent: -18pt;">It gives you an option to leave
or join a channel</span></li>
<li><span lang="EN-GB" style="text-indent: -18pt;"><span style="font-family: 'Times New Roman'; font-size: 7pt;"> </span></span><span lang="EN-GB" style="text-indent: -18pt;">Helps you list all the channels
the node has joined</span></li>
<li><span lang="EN-GB" style="text-indent: -18pt;">And also provides a way to hook
up a network listener to respond to changes in the network status.</span></li>
</ol>
<!--[if !supportLists]--><br />
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">Most of the main service or game or
whatever your application is aiming to achieve through node interactions should
be through using the Chord Manager. However, your app – the game or service
will also have to provide implementation for 3 listeners:<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo3; text-indent: -18.0pt;">
</div>
<ol>
<li><span lang="EN-GB" style="text-indent: -18pt;"><a href="http://img-developer.samsung.com/contents/cmm/chord/SamsungChordSDK_APIReferences/java_doc/index.html">INetworkListener</a>
- <a href="http://img-developer.samsung.com/contents/cmm/chord/SamsungChordSDK_APIReferences/java_doc/index.html">ChordManager</a>
has to listen on this listener to understand the changes in the network state –
whether connected or disconnected to the network (of choice – wifi, wifi direct
etc.)</span></li>
<li><span lang="EN-GB" style="text-indent: -18pt;"><span style="font-family: 'Times New Roman'; font-size: 7pt;"> </span></span><span lang="EN-GB" style="text-indent: -18pt;"><a href="http://img-developer.samsung.com/contents/cmm/chord/SamsungChordSDK_APIReferences/java_doc/index.html">IChordChannelListener</a>
– It is through this listener you will have to implement all actions that need
to happen when a node joins the network or leaves a network. Through this you also need to implement what
happens when a file/data is received or sent.</span></li>
<li><span lang="EN-GB" style="text-indent: -18pt;"><a href="http://img-developer.samsung.com/contents/cmm/chord/SamsungChordSDK_APIReferences/java_doc/index.html">IChordManagerListener</a>
– is a listener that needs to be implemented when you start your <a href="http://img-developer.samsung.com/contents/cmm/chord/SamsungChordSDK_APIReferences/java_doc/index.html">ChordManager</a>.
This is required to handle the changes when a <a href="http://img-developer.samsung.com/contents/cmm/chord/SamsungChordSDK_APIReferences/java_doc/index.html">ChordManager</a>
starts. Also, after starting, the <a href="http://img-developer.samsung.com/contents/cmm/chord/SamsungChordSDK_APIReferences/java_doc/index.html">ChordManager</a>,
if there is an error or a network disconnect, what should the <a href="http://img-developer.samsung.com/contents/cmm/chord/SamsungChordSDK_APIReferences/java_doc/index.html">ChordManager</a>
do – is defined in the implementation of this listener.</span></li>
</ol>
<!--[if !supportLists]--><br />
<div class="MsoNormal">
<span lang="EN-GB">The above 4 classes/listeners help in
implementing your own service that can be used with all your nodes in the
network.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">However, while you have the entire above service
ready, you need to decide which channels are you interested in interacting with?
<span style="mso-spacerun: yes;"> </span>It could be the public channel or a
private channel with a specific name or even many at a time.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">The specific channel implementations are
those classes that a developer needs to develop by implementing the <a href="http://img-developer.samsung.com/contents/cmm/chord/SamsungChordSDK_APIReferences/java_doc/index.html">IChordChannel</a>
Interface. <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">The interface provides the methods for
sending and receiving data. <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">So, in summary, you have the crux of what
you really want to do in your own implementation of the <a href="http://img-developer.samsung.com/contents/cmm/chord/SamsungChordSDK_APIReferences/java_doc/index.html">IChordChannel</a>.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">However, the <a href="http://img-developer.samsung.com/contents/cmm/chord/SamsungChordSDK_APIReferences/java_doc/index.html">ChordManager</a>
helps you manage connecting and communicating with various nodes in the private
or public channels by using 3 listeners.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">It is as simple as that. Hope this
clarifies the Samsung Chord SDK a bit in order for you to be able to take part
in the <a href="http://developer.samsung.com/ssac2013/main.do">Samsung Smart
App Challenge.</a><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB" style="mso-bidi-font-family: "Times New Roman"; mso-fareast-font-family: "Times New Roman";"><a href="http://www.smartappchallenge.com/"><span style="background: white; color: #6699cc; font-family: Arial; font-size: 11.5pt; text-decoration: none; text-underline: none;">Sponsored by Samsung</span></a><o:p></o:p></span></div>
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Revision>0</o:Revision>
<o:TotalTime>0</o:TotalTime>
<o:Pages>1</o:Pages>
<o:Words>883</o:Words>
<o:Characters>5039</o:Characters>
<o:Company>saigeethamn@gmail.com</o:Company>
<o:Lines>41</o:Lines>
<o:Paragraphs>11</o:Paragraphs>
<o:CharactersWithSpaces>5911</o:CharactersWithSpaces>
<o:Version>14.0</o:Version>
</o:DocumentProperties>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves>false</w:TrackMoves>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>JA</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="276">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;}
</style>
<![endif]-->
<!--StartFragment-->
<!--EndFragment--><br />
<div class="MsoNormal">
<br /></div>
<div class="blogger-post-footer"><script type="text/javascript"><!--
amazon_ad_tag = "saigstec-20"; amazon_ad_width = "728"; amazon_ad_height = "90";//--></script>
<script type="text/javascript" src="http://www.assoc-amazon.com/s/ads.js"></script></div>Saihttp://www.blogger.com/profile/12784084112335938233noreply@blogger.com2tag:blogger.com,1999:blog-2839017453780259099.post-63278094995238373182013-08-18T15:15:00.000+05:302013-08-27T11:44:40.540+05:30Samsung Chord SDK - An Introduction<div class="MsoNormal">
<span lang="EN-GB">The Samsung Smart App challenge has
motivated me to explore a bit more about the <a href="http://developer.samsung.com/chord" target="_blank">Samsung Chord SDK</a>. <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">If you want to know more about the <a href="http://www.smartappchallenge.com/" target="_blank">SamsungSmart App Challenge</a>, please visit <a href="http://www.smartappchallenge.com/" target="_blank">here</a> or to know more
about the <a href="http://developer.samsung.com/chord" target="_blank">Android SDK – Here </a>. There is a growing community for the <a href="http://developer.samsung.com/" target="_blank">android developer</a> as well. <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">Here is that I understand are the
highlights of this SDK:<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">1.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">It is a framework developed by
Samsung for networking between devices – making it easy for people without
network programming skills. <o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">2.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">It is not physical network
connection that is created. It is application layer messaging protocol that
uses the underlying TCP/IP network. i.e it is different from wi-fi or Bluetooth
which work on a physical network protocol.<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">3.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">Samsung also provides an add-in
emulator to the standard eclipse development environment to test the networking
of your apps.<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">4.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">The Chord SDK allows creating a
network of devices allowing for an n:n communication. It supports<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 72.0pt; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">a.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">Synchronized content sharing<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 72.0pt; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">b.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">Broadcast of messages to near
by devices<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 72.0pt; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">c.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">Data transfer between devices<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 72.0pt; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">d.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">Multi-player games<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">5.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">The Security features need
improvement as any mobile with the same app on it can join the group or leave
the group<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">6.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB"><span style="mso-spacerun: yes;"> </span>Chord supports only Android 4.0 and above<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Revision>0</o:Revision>
<o:TotalTime>0</o:TotalTime>
<o:Pages>1</o:Pages>
<o:Words>196</o:Words>
<o:Characters>1119</o:Characters>
<o:Company>saigeethamn@gmail.com</o:Company>
<o:Lines>9</o:Lines>
<o:Paragraphs>2</o:Paragraphs>
<o:CharactersWithSpaces>1313</o:CharactersWithSpaces>
<o:Version>14.0</o:Version>
</o:DocumentProperties>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>JA</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="276">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;}
</style>
<![endif]-->
<!--StartFragment-->
<!--EndFragment--><br />
<div class="MsoNormal">
<span lang="EN-GB">A bit about the architecture of the Chord
SDK:<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-GB"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguO2ddohUk_JK0gP4h8oppEYDQzqleD5opo3TEYPQNm0fgMgzuqWNZUk2r84AzmsAUjTWtJdvAlmzSwc9VLSnAvIjD_4N5P8Aie1h0LL_QHjl-9tHgN9r1Zyd1ebvSoQSWqkMAJbp2s_1n/s1600/SamsungChordArchitecture.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="183" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguO2ddohUk_JK0gP4h8oppEYDQzqleD5opo3TEYPQNm0fgMgzuqWNZUk2r84AzmsAUjTWtJdvAlmzSwc9VLSnAvIjD_4N5P8Aie1h0LL_QHjl-9tHgN9r1Zyd1ebvSoQSWqkMAJbp2s_1n/s320/SamsungChordArchitecture.png" width="320" /></a></div>
<div class="MsoNormal">
<span lang="EN-GB">(This diagram is from Samsung SDK documentation.)<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">The application layer is where our
imagination can be used to build innovative apps.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">There are a few other basic aspects we need
to understand in order to be able to use the Chord SDK. <o:p></o:p></span></div>
<div class="MsoListParagraphCxSpFirst" style="mso-list: l1 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">1.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">Channel Manager – This is the
part of the software that manages all the mobiles in a network. The various
devices are called nodes<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l1 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">2.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">Messaging protocol – This is
the part of the SDk that helps in exchanging of messages between the nodes<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l1 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">3.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">File Transfer Protocol – This
is the protocol used for file transfers between the nodes<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l1 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">4.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">Discovery protocol -<span style="mso-spacerun: yes;"> </span>This is the component that helps in
discovering the various devices within range to for the logical group of nodes<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpLast" style="mso-list: l1 level1 lfo1; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">5.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">ZeroMQ – This is the underlying
layer that helps with all the messaging and file transfers<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">A little bit more about Channels before we
get into coding </span><span lang="EN-GB" style="font-family: Wingdings; mso-ascii-font-family: Cambria; mso-ascii-theme-font: minor-latin; mso-char-type: symbol; mso-hansi-font-family: Cambria; mso-hansi-theme-font: minor-latin; mso-symbol-font-family: Wingdings;"><span style="mso-char-type: symbol; mso-symbol-font-family: Wingdings;">J</span></span><span lang="EN-GB"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">Chord has the concept of 2 types of channels
for communication:<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">1.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">Public Channel<o:p></o:p></span></div>
<div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo2; text-indent: -18.0pt;">
<!--[if !supportLists]--><span lang="EN-GB" style="mso-bidi-font-family: Cambria; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Cambria; mso-fareast-theme-font: minor-latin;"><span style="mso-list: Ignore;">2.<span style="font: 7.0pt "Times New Roman";">
</span></span></span><!--[endif]--><span lang="EN-GB">Private Channel<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">The Public channel is one one, which any
device running the Chord SDk can join. <o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-GB">A private channel is one, which is created
by nodes having the same chord SDK based application.<span style="mso-spacerun: yes;"> </span><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">So, if my mobile has Chord SDK app, I am
part of a public channel. If I have an app A and an app B, I can be part of
Channel A and Channel B respectively. <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">In the next article, I will talk about
setting up the environment for developing using Chord SDK and later we will
develop a simple app using Chord SDK.<o:p></o:p></span></div>
<div class="separator" style="clear: both; text-align: center;">
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Revision>0</o:Revision>
<o:TotalTime>0</o:TotalTime>
<o:Pages>1</o:Pages>
<o:Words>214</o:Words>
<o:Characters>1224</o:Characters>
<o:Company>saigeethamn@gmail.com</o:Company>
<o:Lines>10</o:Lines>
<o:Paragraphs>2</o:Paragraphs>
<o:CharactersWithSpaces>1436</o:CharactersWithSpaces>
<o:Version>14.0</o:Version>
</o:DocumentProperties>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>JA</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="276">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;}
</style>
<![endif]-->
<!--StartFragment-->
<!--EndFragment--></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB"><a href="http://www.smartappchallenge.com/" target="_blank">Sponsored by Samsung</a></span></div>
<div class="blogger-post-footer"><script type="text/javascript"><!--
amazon_ad_tag = "saigstec-20"; amazon_ad_width = "728"; amazon_ad_height = "90";//--></script>
<script type="text/javascript" src="http://www.assoc-amazon.com/s/ads.js"></script></div>Saihttp://www.blogger.com/profile/12784084112335938233noreply@blogger.com1tag:blogger.com,1999:blog-2839017453780259099.post-75797855800695162482013-08-09T11:26:00.003+05:302013-08-27T11:41:36.687+05:30Samsung Smart App Challenge - Wonderful Addition to the growing Android Developer Community<div class="MsoNormal">
<span lang="EN-GB"><span id="goog_1127203671"></span><span id="goog_1127203672"></span><a href="http://www.blogger.com/"></a>I used to follow closely on the Google Developer challenge. But I was not aware that Samsung too had started something on the same lines last year. I came across this <a href="http://www.smartappchallenge.com/" target="_blank">Android Contest</a> as I was browsing and realised it has happened once already in 2012 !! And it is being thrown open once again this year! <a href="http://www.smartappchallenge.com/" target="_blank">Samsung Smart App challenge 2013</a>! Interesting… </span>Seems like the best way to get the developer community engaged! </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">The entry to the competition has just begun – It is open till August 31<sup>st</sup> !<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">It seems an interesting competition. But the caveat seems to be that you have to use <a href="http://developer.samsung.com/chord">“Samsung Chord SDK</a>”<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">The Chord SDK itself seems all the more interesting ! This <a href="http://developer.samsung.com/chord" target="_blank">Android SDK</a> enables real-time sharing between devices without the cloud!! It allows for quickly connecting with nearby devices and thus sharing data, media and even playing fun games. This seems a welcome addition for the <a href="http://developer.samsung.com/" target="_blank">Android App Developer.</a><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">It seems like THE protocol that is going to take the <a href="http://developer.samsung.com/" target="_blank">developer community</a> by storm considering the huge possibilities of the usage of peer-to-peer networks, without the need of a server! This allows for 1-to-1, 1-to-many and many-to-many device connections increasing the possibilities.<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB"><span style="mso-spacerun: yes;"> </span>As I look at this challenge and the Chord SDK, I would be blogging a bit more about it. In the meantime, curious to see anyone from the developer community visiting my blog interested or participating? <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">Would be great to hear your thoughts..<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">While the competition entries are open to 31<sup>st</sup> August, the judgement is from October to November and the results would be declared by December. <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<!--[if gte mso 9]><xml> <o:DocumentProperties> <o:Revision>0</o:Revision> <o:TotalTime>0</o:TotalTime> <o:Pages>1</o:Pages> <o:Words>313</o:Words> <o:Characters>1789</o:Characters> <o:Company>saigeethamn@gmail.com</o:Company> <o:Lines>14</o:Lines> <o:Paragraphs>4</o:Paragraphs> <o:CharactersWithSpaces>2098</o:CharactersWithSpaces> <o:Version>14.0</o:Version> </o:DocumentProperties> <o:OfficeDocumentSettings> <o:AllowPNG/> </o:OfficeDocumentSettings> </xml><![endif]--> <!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:TrackMoves/> <w:TrackFormatting/> <w:PunctuationKerning/> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:DoNotPromoteQF/> <w:LidThemeOther>EN-US</w:LidThemeOther> <w:LidThemeAsian>JA</w:LidThemeAsian> <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> <w:Compatibility> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:SplitPgBreakAndParaMark/> <w:EnableOpenTypeKerning/> <w:DontFlipMirrorIndents/> <w:OverrideTableStyleHps/> <w:UseFELayout/> </w:Compatibility> <m:mathPr> <m:mathFont m:val="Cambria Math"/> <m:brkBin m:val="before"/> <m:brkBinSub m:val="--"/> <m:smallFrac m:val="off"/> <m:dispDef/> <m:lMargin m:val="0"/> <m:rMargin m:val="0"/> <m:defJc m:val="centerGroup"/> <m:wrapIndent m:val="1440"/> <m:intLim m:val="subSup"/> <m:naryLim m:val="undOvr"/> </m:mathPr></w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="276"> <w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/> <w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/> <w:LsdException Locked="false" Priority="39" Name="toc 1"/> <w:LsdException Locked="false" Priority="39" Name="toc 2"/> <w:LsdException Locked="false" Priority="39" Name="toc 3"/> <w:LsdException Locked="false" Priority="39" Name="toc 4"/> <w:LsdException Locked="false" Priority="39" Name="toc 5"/> <w:LsdException Locked="false" Priority="39" Name="toc 6"/> <w:LsdException Locked="false" Priority="39" Name="toc 7"/> <w:LsdException Locked="false" Priority="39" Name="toc 8"/> <w:LsdException Locked="false" Priority="39" Name="toc 9"/> <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/> <w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/> <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/> <w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/> <w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/> <w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/> <w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/> <w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/> <w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/> <w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/> <w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/> <w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/> <w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/> <w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/> <w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/> <w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/> <w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/> <w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/> <w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/> <w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/> <w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/> <w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/> <w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/> <w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/> <w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/> <w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/> <w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/> <w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/> <w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/> <w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/> <w:LsdException Locked="false" Priority="37" Name="Bibliography"/> <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/> </w:LatentStyles> </xml><![endif]--> <!--[if gte mso 10]> <style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;}
</style> <![endif]--> <!--StartFragment--> <!--EndFragment--><br />
<div class="MsoNormal">
<span lang="EN-GB">The price money seems very encouraging. But the other benefits may all the more entice all budding entrepreneurs. There is a good chance that Samsung itself may support through its venture capital funding arm and will provide a lot of support in terms of promotional benefits – which is not too quantifiable but cannot be absolutely undermined !! More details on the<a href="http://developer.samsung.com/ssac2013/s4/awardsJudging.do"> awards and judges here</a>.<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-GB"><br />
</span></div>
<div class="MsoNormal">
<span lang="EN-GB"><span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;"><a href="http://www.smartappchallenge.com/" target="_blank">Sponsored by Samsung</a></span></span></div>
<div class="blogger-post-footer"><script type="text/javascript"><!--
amazon_ad_tag = "saigstec-20"; amazon_ad_width = "728"; amazon_ad_height = "90";//--></script>
<script type="text/javascript" src="http://www.assoc-amazon.com/s/ads.js"></script></div>Saihttp://www.blogger.com/profile/12784084112335938233noreply@blogger.com1tag:blogger.com,1999:blog-2839017453780259099.post-10838342863229446082013-05-08T16:51:00.002+05:302013-08-01T10:50:04.556+05:30For Technical Leads and Senior DevelopersThanks for the wonderful response for the below post ... The Positions are closed now :)<br />
<br />
Hi,<br />
<br />
<b>Technical Leads Needed in Bangalore Tesco</b><br />
I work for Tesco and we are looking for Leads/Architects who are hands-on and understand design principles well enough to apply them for Android development. Any one with above 7 years of experience in software development with atleast 2-3 years in Android, please get in touch with me by replying to this post with a way to contact you.<br />
<br />
We are using some cutting edge architecture at Tesco with principles of reuse across device sizes (tablets, phones, kiosks, TVs, wall screens, digital signages) across countries (12 of them) and across platforms (iOS, Android and Windows) and still keeping the apps completely native. Sounds interesting? Please feel free to get in touch with me for joining this cutting edge team :)<br />
<br />
<b>Senior Developers Needed in Bangalore Tesco</b><br />
Also senior Android developers with 5+ years of experience with 3 years on Android can get in touch with me for the same team.<br />
<br />
NOTE: Please do not send me resumes or get in touch if your experience is below 5 years.<br />
<br /><div class="blogger-post-footer"><script type="text/javascript"><!--
amazon_ad_tag = "saigstec-20"; amazon_ad_width = "728"; amazon_ad_height = "90";//--></script>
<script type="text/javascript" src="http://www.assoc-amazon.com/s/ads.js"></script></div>Saihttp://www.blogger.com/profile/12784084112335938233noreply@blogger.com9tag:blogger.com,1999:blog-2839017453780259099.post-51440844542943867442012-07-30T15:43:00.000+05:302012-07-30T15:43:13.390+05:30Android and its Fragmentation<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Revision>0</o:Revision>
<o:TotalTime>0</o:TotalTime>
<o:Pages>1</o:Pages>
<o:Words>125</o:Words>
<o:Characters>719</o:Characters>
<o:Company>saigeethamn@gmail.com</o:Company>
<o:Lines>5</o:Lines>
<o:Paragraphs>1</o:Paragraphs>
<o:CharactersWithSpaces>843</o:CharactersWithSpaces>
<o:Version>14.0</o:Version>
</o:DocumentProperties>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>JA</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="276">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;}
</style>
<![endif]-->
<!--StartFragment-->
<br />
<div class="MsoNormal">
<span lang="EN-GB">Android has been making rapid strides into
the Mobile market and has become a serious contender for the top 1 position in
the mobile market (and is picking up on the tablet market quite quickly). <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">The fact that it was anopen platform
allowing for lot of innovation and choice made the developer world and the
mobile OEMs vouch for it and the inroads it madeinto the market was significant
– significant enough for Apple to stand up, take note and even file a law suit </span><span lang="EN-GB" style="font-family: Wingdings; mso-ascii-font-family: Cambria; mso-ascii-theme-font: minor-latin; mso-char-type: symbol; mso-hansi-font-family: Cambria; mso-hansi-theme-font: minor-latin; mso-symbol-font-family: Wingdings;">J</span><span lang="EN-GB"> <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">However, this very fact is now slowly
turning to be a bane for the Android platform, as it has led to a huge amount
of fragmentation in the market. <a href="http://opensignalmaps.com/reports/fragmentation.php?">OpenSignalMaps</a>
has done a research in 195 countries and has come up with the graphic that
clearly depicts the kind of fragmentation in Android devices.<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-GB"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbQIgcKz6RzbHHLEwv8Knw7N0iSdznGqr9KGCjbGOc50v9ZixpI_yvUQzf3oUtv2Xojw8ddUhwPMJfr1Z2EidhJUX_mofKXOmHjqjEgzcgp-IbpfJRBc-DACEJusvLPB3iD_H_G-D965wK/s1600/AndroidBrandBreakup.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="173" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbQIgcKz6RzbHHLEwv8Knw7N0iSdznGqr9KGCjbGOc50v9ZixpI_yvUQzf3oUtv2Xojw8ddUhwPMJfr1Z2EidhJUX_mofKXOmHjqjEgzcgp-IbpfJRBc-DACEJusvLPB3iD_H_G-D965wK/s320/AndroidBrandBreakup.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Revision>0</o:Revision>
<o:TotalTime>0</o:TotalTime>
<o:Pages>1</o:Pages>
<o:Words>181</o:Words>
<o:Characters>1034</o:Characters>
<o:Company>saigeethamn@gmail.com</o:Company>
<o:Lines>8</o:Lines>
<o:Paragraphs>2</o:Paragraphs>
<o:CharactersWithSpaces>1213</o:CharactersWithSpaces>
<o:Version>14.0</o:Version>
</o:DocumentProperties>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>JA</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="276">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;}
</style>
<![endif]-->
<!--StartFragment-->
</div>
<div class="MsoNormal">
<span lang="EN-GB">Samsung has clearly take a lion share of
the market followed by HTC, Sony Ericcson and Motorola. An interesting fact is
that they have spotted 3997 distinct devices! <o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-GB">This very fact has brought down the
euphoria around Android. <a href="http://www.appcelerator.com/form/forms/www/survey-2012-q2-download?mkt_tok=3RkMMJWWfF9wsRokva%2FMZKXonjHpfsX54uQrXqS0lMI%2F0ER3fOvrPUfGjI4ATsVkI%2FqLAzICFpZo2FFZCvCWeYxF6PRJBFM%3D">Another
study</a> by <a href="http://www.appcelerator.com/">Appcelerator</a> and
International Data Corporation (IDC) says:<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; margin-left: 36.0pt; margin-right: 0cm; margin-top: 0cm; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span lang="EN-GB">“</span><span style="color: #122438; font-size: 13pt;">The most
significant finding in the Q2 2012 Developer Survey is Apple opening a dramatic
16% lead over Google’s Android as far as which OS will win in the enterprise
marketplace, with 53.2% of developers saying iOS will win vs. 37.5% saying
Android will win. This is a very significant change over only three quarters: in
Q3 2011, developers viewed iOS and Android in a dead heat at 44% each.</span>”<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
The challenges of this fragmentation are around
the varied screen sizes and the many OS versions which translate to the larger
effort and investment into testing on the varied combinations to keep all
customers happy. <o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
A graphic that illustrates the varied
resolutions:<o:p></o:p></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqt6-bg-DqfPEWGBm1k98-JbVUAm_PxlEyastjEpVdRD9_0zdCkpMTMEtBCWGm6O9idHNhw5McNDva9wyhcvGMuAuy6rSD9VJP33rxp9-ekAdr_uNUDal57FyMKJBPZ7U0NOBkVX2rWp5A/s1600/AndroidScreenSizeBreakup.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="188" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqt6-bg-DqfPEWGBm1k98-JbVUAm_PxlEyastjEpVdRD9_0zdCkpMTMEtBCWGm6O9idHNhw5McNDva9wyhcvGMuAuy6rSD9VJP33rxp9-ekAdr_uNUDal57FyMKJBPZ7U0NOBkVX2rWp5A/s320/AndroidScreenSizeBreakup.png" width="320" /></a></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Revision>0</o:Revision>
<o:TotalTime>0</o:TotalTime>
<o:Pages>1</o:Pages>
<o:Words>5</o:Words>
<o:Characters>29</o:Characters>
<o:Company>saigeethamn@gmail.com</o:Company>
<o:Lines>1</o:Lines>
<o:Paragraphs>1</o:Paragraphs>
<o:CharactersWithSpaces>33</o:CharactersWithSpaces>
<o:Version>14.0</o:Version>
</o:DocumentProperties>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>JA</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="276">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;}
</style>
<![endif]-->
<!--StartFragment-->
</div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
and the number of device models:<o:p></o:p></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEit8-O20Wi5btp5wJzVttN05JIizLWllXmymqg72K1vr9fBj3fKL5hhyphenhyphen5fcllqm5FIeAMrCNcCHNGGwdq3eLbGlBRWciFZgsv2my9OInDA1-DRfqpkdrS_LXweeZDlEe46zURcDPoMHj8tF/s1600/AndroidDeviceBreakup.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="172" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEit8-O20Wi5btp5wJzVttN05JIizLWllXmymqg72K1vr9fBj3fKL5hhyphenhyphen5fcllqm5FIeAMrCNcCHNGGwdq3eLbGlBRWciFZgsv2my9OInDA1-DRfqpkdrS_LXweeZDlEe46zURcDPoMHj8tF/s320/AndroidDeviceBreakup.png" width="320" /></a></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Revision>0</o:Revision>
<o:TotalTime>0</o:TotalTime>
<o:Pages>1</o:Pages>
<o:Words>172</o:Words>
<o:Characters>981</o:Characters>
<o:Company>saigeethamn@gmail.com</o:Company>
<o:Lines>8</o:Lines>
<o:Paragraphs>2</o:Paragraphs>
<o:CharactersWithSpaces>1151</o:CharactersWithSpaces>
<o:Version>14.0</o:Version>
</o:DocumentProperties>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
</o:OfficeDocumentSettings>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:TrackMoves/>
<w:TrackFormatting/>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:DoNotPromoteQF/>
<w:LidThemeOther>EN-US</w:LidThemeOther>
<w:LidThemeAsian>JA</w:LidThemeAsian>
<w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
<w:SplitPgBreakAndParaMark/>
<w:EnableOpenTypeKerning/>
<w:DontFlipMirrorIndents/>
<w:OverrideTableStyleHps/>
<w:UseFELayout/>
</w:Compatibility>
<m:mathPr>
<m:mathFont m:val="Cambria Math"/>
<m:brkBin m:val="before"/>
<m:brkBinSub m:val="--"/>
<m:smallFrac m:val="off"/>
<m:dispDef/>
<m:lMargin m:val="0"/>
<m:rMargin m:val="0"/>
<m:defJc m:val="centerGroup"/>
<m:wrapIndent m:val="1440"/>
<m:intLim m:val="subSup"/>
<m:naryLim m:val="undOvr"/>
</m:mathPr></w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="276">
<w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal"/>
<w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"/>
<w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"/>
<w:LsdException Locked="false" Priority="39" Name="toc 1"/>
<w:LsdException Locked="false" Priority="39" Name="toc 2"/>
<w:LsdException Locked="false" Priority="39" Name="toc 3"/>
<w:LsdException Locked="false" Priority="39" Name="toc 4"/>
<w:LsdException Locked="false" Priority="39" Name="toc 5"/>
<w:LsdException Locked="false" Priority="39" Name="toc 6"/>
<w:LsdException Locked="false" Priority="39" Name="toc 7"/>
<w:LsdException Locked="false" Priority="39" Name="toc 8"/>
<w:LsdException Locked="false" Priority="39" Name="toc 9"/>
<w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"/>
<w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title"/>
<w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"/>
<w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle"/>
<w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong"/>
<w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis"/>
<w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"/>
<w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1"/>
<w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"/>
<w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"/>
<w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote"/>
<w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5"/>
<w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6"/>
<w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6"/>
<w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6"/>
<w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"/>
<w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"/>
<w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6"/>
<w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6"/>
<w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"/>
<w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"/>
<w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"/>
<w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6"/>
<w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6"/>
<w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6"/>
<w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6"/>
<w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"/>
<w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"/>
<w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"/>
<w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"/>
<w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title"/>
<w:LsdException Locked="false" Priority="37" Name="Bibliography"/>
<w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"/>
</w:LatentStyles>
</xml><![endif]-->
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:Cambria;
mso-ascii-font-family:Cambria;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Cambria;
mso-hansi-theme-font:minor-latin;}
</style>
<![endif]-->
<!--StartFragment-->
</div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
The above statistics sound a bit unsettling around
the fragmentation aspects of Android and would probably scare away developers from investing on this platform!<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
But in my opinion, this is no different from the
fragmentation on PC (probably better than that) where the browsers, the CPU
powers, the models etc. are varied and still we have lot of gaming apps that
are developed for all of them. <o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
Probably the good news is that Android right
from the beginning is learning its lessons quickly and it introduced the
concept of “fragments” to scale to varied screen sizes and designs. <o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
Android is just going through the stabilization
phase of a open platform and the good news from the same study by Appelerator
and IDC says:<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; margin-left: 36.0pt; margin-right: 0cm; margin-top: 0cm; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<span lang="EN-GB">“</span><span style="color: #122438; font-size: 13pt;">Android has
arrested its decline in developer interest. After a noticeable erosion of
developer interest over the last year, developers’ Android handset “very
interested” levels stabilized in Q2 2012 compared to Q1 2012, and Android
tablet “very interested” levels ticked up 2.9%.</span>”<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
So, in my opinion, Android with all its
challenges is just grown over the hype cycle and is here to stay as a strong
contender to other mobile OSes and would probably win the race. However, right from the beginning, developers have to keep these variations in mind and build apps that look as seamless as possible on multiple OSes.<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 12.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;">
And testers, if you are reading, here is your chance... A lot of opportunities around device coverage, OS version coverage, screen size coverage and so on.</div>
<!--EndFragment--><br />
<!--EndFragment--><br />
<!--EndFragment--><br />
<div class="MsoNormal">
<span lang="EN-GB"><br /></span></div>
<!--EndFragment--><div class="blogger-post-footer"><script type="text/javascript"><!--
amazon_ad_tag = "saigstec-20"; amazon_ad_width = "728"; amazon_ad_height = "90";//--></script>
<script type="text/javascript" src="http://www.assoc-amazon.com/s/ads.js"></script></div>Saihttp://www.blogger.com/profile/12784084112335938233noreply@blogger.com38tag:blogger.com,1999:blog-2839017453780259099.post-51800586018392200912012-04-19T17:20:00.000+05:302012-04-19T17:20:49.989+05:30Android - Code Coverage - Unit Testing<span style="font-family: 'Trebuchet MS', sans-serif;">This is a very small post for all those who have been strugling to generate the Android Test Coverage Using the ant scripts give by android sdk itself.</span><br />
<span style="font-family: 'Trebuchet MS', sans-serif;"><br /></span><br />
<span style="font-family: 'Trebuchet MS', sans-serif;">I am assuming that you have created one project containing the actual source code to be tested - assume it is called "MyProject" and you have created another test project that tests MyProject, that is named MyProjectTest.</span><br />
<span style="font-family: 'Trebuchet MS', sans-serif;"><br /></span><br />
<span style="font-family: 'Trebuchet MS', sans-serif;">Then, you have written jUnit tests using the inherent testing support framework with android. Now, you have run your unit tests and they run successfully in ecplise. You then, what to check on the code coverage of these unit tests. Here are the steps for the same:</span><br />
<span style="font-family: 'Trebuchet MS', sans-serif;"><br /></span><br />
<br />
<ul>
<li><span style="font-family: 'Trebuchet MS', sans-serif;"> At the command prompt, change directory to the MyProject folder</span></li>
<li><span style="font-family: 'Trebuchet MS', sans-serif;"> Rename the existing build.xml to build_orig.xml</span></li>
<li><span style="font-family: 'Trebuchet MS', sans-serif;"> Run this command:</span></li>
</ul>
<span style="font-family: 'Trebuchet MS', sans-serif;">android update project -p . (including the last dot)</span><br /><ul>
<li><span style="font-family: 'Trebuchet MS', sans-serif;"> Then change directory to cd ..\MyProjectTest</span></li>
<li><span style="font-family: 'Trebuchet MS', sans-serif;"> Rename the existing build.xml to build_orig.xml</span></li>
<li><span style="font-family: 'Trebuchet MS', sans-serif;"> Run this command:</span></li>
</ul>
<span style="font-family: 'Trebuchet MS', sans-serif;">android update test-project -m D:/..../source/MyProject -p . (including the last dot and where you give your complete path to the MyProject folder after -m)</span><br /><ul>
<li><span style="font-family: 'Trebuchet MS', sans-serif;"> Then, run the command -</span></li>
</ul>
<span style="font-family: 'Trebuchet MS', sans-serif;">ant emma debug install test</span><br /><span style="font-family: 'Trebuchet MS', sans-serif;">This should generate a html report of the coverage under MyProjectTest/coverage</span><br />
<span style="font-family: 'Trebuchet MS', sans-serif;"><br /></span><br />
<span style="font-family: 'Trebuchet MS', sans-serif;"><b>Troubleshooting:</b></span><br />
<br />
<ul>
<li><span style="font-family: 'Trebuchet MS', sans-serif;"> Incase you get an error "remote object coverage.ec does not exist" then start adb shell in another command prompt - in order to give write permissions to the sdcard for writing the coverage.ec file</span></li>
<li><span style="font-family: 'Trebuchet MS', sans-serif;"> Then, run the following command at the shell</span></li>
</ul>
<span style="font-family: 'Trebuchet MS', sans-serif;">mount -o remount rw /sdcard</span><br /><ul>
<li><span style="font-family: 'Trebuchet MS', sans-serif;"> Then you should be able to generate the report.</span></li>
</ul>
<br />
<div>
<br /></div><div class="blogger-post-footer"><script type="text/javascript"><!--
amazon_ad_tag = "saigstec-20"; amazon_ad_width = "728"; amazon_ad_height = "90";//--></script>
<script type="text/javascript" src="http://www.assoc-amazon.com/s/ads.js"></script></div>Saihttp://www.blogger.com/profile/12784084112335938233noreply@blogger.com26tag:blogger.com,1999:blog-2839017453780259099.post-56401762107849003292011-11-25T11:51:00.001+05:302011-11-25T12:33:40.470+05:30Local WebServer – Apache Tomcat<br />
<div class="MsoNormal">
<span lang="EN-US">Pre-requisites: You should have Apache
Tomcat installed on your machine, downloadable from <a href="http://tomcat.apache.org/download-60.cgi">http://tomcat.apache.org/download-60.cgi</a>
and you should have eclipse 3.6 on your
machine</span></div>
<div class="MsoNormal">
<span lang="EN-US">Configure the webserver to be used within
eclipse as follows:</span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -.25in;">
<span lang="EN-US">1.<span style="font: normal normal normal 7pt/normal 'Times New Roman';">
</span></span><span lang="EN-US">Unzip the download into your
local directory</span></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -.25in;">
<span lang="EN-US">2.<span style="font: normal normal normal 7pt/normal 'Times New Roman';">
</span></span><span lang="EN-US">Tell Eclipse about Tomcat</span></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -.25in;">
<span lang="EN-US"><br /></span></div>
<div class="MsoListParagraphCxSpLast">
<span lang="EN-US">First, start Eclipse and go
to the Workbench as shown in the previous section. Then, click on Servers tab
at bottom. R-click, New, Server, Apache, Tomcat v6.0, navigate to folder, OK.
You should now see "Tomcat v6.0 Server at localhost" listed under the
Servers tab at the bottom</span><span class="apple-style-span"><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; color: #533859; font-family: Verdana, sans-serif; font-size: 10pt; line-height: 115%;">.<o:p></o:p></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfPaMjNsoFsK6a7NftGGjd-nGtnFhrwWrn0U10tL5MObQ963eO2WwFOXNyAn8ee2BVPqHHagGt6Hm5FQsKTH-f0j7HBw2zabx5sEAV1GrsvTFUG302sYPQByaBtyqPswGzKYUpRKyKLaKK/s1600/WebServer1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfPaMjNsoFsK6a7NftGGjd-nGtnFhrwWrn0U10tL5MObQ963eO2WwFOXNyAn8ee2BVPqHHagGt6Hm5FQsKTH-f0j7HBw2zabx5sEAV1GrsvTFUG302sYPQByaBtyqPswGzKYUpRKyKLaKK/s320/WebServer1.PNG" width="295" /><span lang="EN-US" style="color: black; text-align: left; text-indent: -24px;"><span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="MsoListParagraphCxSpLast" style="text-align: left;">
<span lang="EN-US">3. Run Tomcat.</span></div>
<div class="MsoListParagraphCxSpLast" style="text-align: left;">
<span lang="EN-US">Click on Servers tab at
bottom. R-click on Tomcat v6.0, choose "Start". Open
http://localhost/ in a browser: you should see an empty page showing a blank
directory listing (but not a 404 error). Eclipse incorrectly fails to
copy the welcome pages when it sets up Tomcat, so if you want the friendlier
welcome page, go to your-eclipse-workspace\.metadata and search for "ROOT".
Copy all of the files from C:\apache-tomcat-6.0.28\webapps\ROOT into the ROOT
folder inside your-eclipse-workspace\.metadata\...\ROOT. </span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgV7JMzdY_F3YM7wMqHUIWeictU-chZPh60aJMDeJuHhjSmh8R36j0kqhH-GJq9CMhQloehfVviGQ8-8LgILYpLrRnSUzaehtSI-vMkckM_HsxG878VIfE1tCgvyOyx_GBJlifyakkkqkyA/s1600/WebServer2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="257" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgV7JMzdY_F3YM7wMqHUIWeictU-chZPh60aJMDeJuHhjSmh8R36j0kqhH-GJq9CMhQloehfVviGQ8-8LgILYpLrRnSUzaehtSI-vMkckM_HsxG878VIfE1tCgvyOyx_GBJlifyakkkqkyA/s320/WebServer2.PNG" width="320" /></a></div>
<div class="MsoListParagraphCxSpLast" style="text-align: left;">
<span lang="EN-US"></span></div>
<div class="MsoListParagraph">
<span lang="EN-US">If you fail to copy the ROOT files
as mentioned above, http://localhost/ will result in an empty directory listing.
It is often mistaken for an error page, but</span><span class="apple-style-span"><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; color: #533859; font-family: Verdana, sans-serif; font-size: 10pt; line-height: 115%;"> </span></span><span lang="EN-US">if you look
closely you will see that it says "directory listing for /" and is
not an error at all. However, if you copy the ROOT files, http://localhost/
will give the nice friendly "Welcome to Tomcat" page.</span></div>
<div class="MsoListParagraph" style="text-indent: 0px;">
<span lang="EN-US" style="text-indent: -24px;"><span style="font: normal normal normal 7pt/normal 'Times New Roman';"><span class="Apple-style-span" style="font-size: small;">4. </span> </span></span><span lang="EN-US" style="text-indent: -24px;">Make empty project.</span></div>
<div class="MsoListParagraph">
<span lang="EN-US">
</span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 1.0in; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -.25in;">
<span lang="EN-US">a.<span style="font: normal normal normal 7pt/normal 'Times New Roman';">
</span></span><span lang="EN-US">File, New, Project, Web,
Dynamic Web Project.</span></div>
<div class="MsoListParagraphCxSpMiddle" style="margin-left: 1.0in; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -.25in;">
<span lang="EN-US">b.<span style="font: normal normal normal 7pt/normal 'Times New Roman';">
</span></span><span lang="EN-US">Give it a name (e.g.,
"SampleWebServer").</span></div>
<div class="MsoListParagraphCxSpLast" style="margin-left: 1.0in; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -.25in;">
<span lang="EN-US">c.<span style="font: normal normal normal 7pt/normal 'Times New Roman';">
</span></span><span lang="EN-US">Accept all other defaults.</span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitM7_FlZ1n-XbY8rUVXNNekZ7cMkz9PAGvpSuXzZtBT1XC-TDUuBj9Kl18cqs3J6u9-XALoaHXrBmzRaJjjHRooMc-zfeafG6HvjONlXPoHPtJyXGpoVs9b_33k0soajyCkmNehl0vvejd/s1600/WebServer3.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="302" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitM7_FlZ1n-XbY8rUVXNNekZ7cMkz9PAGvpSuXzZtBT1XC-TDUuBj9Kl18cqs3J6u9-XALoaHXrBmzRaJjjHRooMc-zfeafG6HvjONlXPoHPtJyXGpoVs9b_33k0soajyCkmNehl0vvejd/s320/WebServer3.PNG" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkkJCo3fYKh41S8jh7zk64RtSFoM2fMsBJD4NKfBK8g3zqsMzQWAxWh9x6bLAQXp4M2gyNuu2YpuAj9kvv-b6VhDUAsbOI0SIPLdJEYprOgBBZrQ1LI6FvZXMcbYO-LVFV4LCeDz5GEFfJ/s1600/WebServer4.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="274" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkkJCo3fYKh41S8jh7zk64RtSFoM2fMsBJD4NKfBK8g3zqsMzQWAxWh9x6bLAQXp4M2gyNuu2YpuAj9kvv-b6VhDUAsbOI0SIPLdJEYprOgBBZrQ1LI6FvZXMcbYO-LVFV4LCeDz5GEFfJ/s320/WebServer4.PNG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
5. Make a Welcome.html and place
it on the ‘WebContent’ folder of your new Dynamic Web App.</div>
<div class="separator" style="clear: both; text-align: left;">
<span lang="EN-US" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 115%;">6. Now if you type <a href="http://localhost:8080/SampleWebServer/Welcome.html">http://localhost:8080/SampleWebServer/Welcome.html</a>
in your browser, you should be able to view the page. </span></div>
<div class="MsoListParagraphCxSpLast" style="margin-left: 1.0in; mso-add-space: auto; mso-list: l0 level2 lfo1; text-indent: -.25in;">
<span lang="EN-US"><br /></span></div>
<br />
<br /><div class="blogger-post-footer"><script type="text/javascript"><!--
amazon_ad_tag = "saigstec-20"; amazon_ad_width = "728"; amazon_ad_height = "90";//--></script>
<script type="text/javascript" src="http://www.assoc-amazon.com/s/ads.js"></script></div>Saihttp://www.blogger.com/profile/12784084112335938233noreply@blogger.com19tag:blogger.com,1999:blog-2839017453780259099.post-13646518543540132472011-11-25T11:38:00.001+05:302011-11-25T12:34:19.787+05:30Basic WebView<br />
<div class="MsoNormal">
<span lang="EN-US">On Android we can build what are called
Hybrid Apps. i.e. apps that have both HTML pages as well as native activities
co-existing. There is a lot of debate on which is the way to develop for
mobiles – HTML5 or native? Each of these have their own pros and cons. I will
not go into those now. However, to be able to embed HTML pages into your app,
one of the ways is through the use of a WebVew component.</span></div>
<div class="MsoNormal">
<span lang="EN-US">Here I will share with you a very simple
example of building a <a href="http://developer.android.com/reference/android/webkit/WebView.html">WebView</a>
App. This is nothing too different from what you see in the <a href="http://developer.android.com/resources/tutorials/views/hello-webview.html">google
resources pages</a>. However, the intention here is to move from this basic level
to a little more advanced level of interacting from the HTML page with Native
Apps – integrating through JavaScript. That will be in the next tutorial, in
keeping with my principle of explaining one thing at a time. </span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">Also, for this example you will also need
to have a webserver that serves you some HTML pages that can be invoked through
your <a href="http://developer.android.com/reference/android/webkit/WebView.html">WebView</a>.
As an addendum to this article, you will find how to create a small web server
app in your local environment. </span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">Now, what is a <a href="http://developer.android.com/reference/android/webkit/WebView.html">WebView</a>?
Google documentation beautifully explains it as</span></div>
<div class="MsoNormal">
<span lang="EN-US"> “</span><span class="apple-style-span"><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; color: #333333; font-family: Arial, sans-serif; font-size: 10pt; line-height: 115%;">A View
that displays web pages. This class is the basis upon which you can roll your
own web browser or simply display some online content within your Activity. It
uses the WebKit rendering engine to display web pages and includes methods to
navigate forward and backward through a history, zoom in and out, perform text
searches and more.”<o:p></o:p></span></span></div>
<div class="MsoNormal">
<span class="apple-style-span"><span lang="EN-US" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; color: #333333; font-family: Arial, sans-serif; font-size: 10pt; line-height: 115%;"><br /></span></span></div>
<div class="MsoNormal">
<span lang="EN-US">Let’s create a <a href="http://developer.android.com/reference/android/webkit/WebView.html">WebView</a>
which should display your home Page, on loading. In the main class of the
project here is the code in the onCreate() method:</span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">public</span></b><span style="font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">void</span></b><span style="font-family: 'Courier New'; font-size: 10pt;"> onCreate(Bundle
savedInstanceState) {</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> Log.<i>i</i>(</span><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">TAG</span><span style="font-family: 'Courier New'; font-size: 10pt;">, </span><span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;">"Entering
onCreate"</span><span style="font-family: 'Courier New'; font-size: 10pt;">);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">super</span></b><span style="font-family: 'Courier New'; font-size: 10pt;">.onCreate(savedInstanceState);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> setContentView(R.layout.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">webview</span></i><span style="font-family: 'Courier New'; font-size: 10pt;">);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">mWebView</span><span style="font-family: 'Courier New'; font-size: 10pt;"> = (WebView)findViewById(R.id.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">webview</span></i><span style="font-family: 'Courier New'; font-size: 10pt;">);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">mWebView</span><span style="font-family: 'Courier New'; font-size: 10pt;">.clearCache(</span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">true</span></b><span style="font-family: 'Courier New'; font-size: 10pt;">);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">mWebView</span><span style="font-family: 'Courier New'; font-size: 10pt;">.getSettings().setJavaScriptEnabled(</span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">true</span></b><span style="font-family: 'Courier New'; font-size: 10pt;">);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">mWebView</span><span style="font-family: 'Courier New'; font-size: 10pt;">.loadUrl(</span><span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;">"http://10.0.2.2:8080/SampleWebServer/Welcome.html"</span><span style="font-family: 'Courier New'; font-size: 10pt;">);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> Log.<i>i</i>(</span><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">TAG</span><span style="font-family: 'Courier New'; font-size: 10pt;">,</span><span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;">"Exiting
onCreate"</span><span style="font-family: 'Courier New'; font-size: 10pt;">);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;">} </span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">It is simple and straight forward. I have
defined a <a href="http://developer.android.com/reference/android/webkit/WebView.html">WebView</a>
in the layout folder as below (file name webview.xml)</span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">LinearLayout</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: #7f007f;">xmlns:android</span>=<i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: #7f007f;">android:layout_width</span>=<i><span style="color: #2a00ff;">"fill_parent"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: #7f007f;">android:layout_height</span>=<i><span style="color: #2a00ff;">"fill_parent"</span></i><span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">WebView</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;">
<span style="color: #7f007f;">android:id</span>=<i><span style="color: #2a00ff;">"@+id/webview"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;">
<span style="color: #7f007f;">android:layout_width</span>=<i><span style="color: #2a00ff;">"fill_parent"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;">
<span style="color: #7f007f;">android:layout_height</span>=<i><span style="color: #2a00ff;">"wrap_content"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;">
<span style="color: #7f007f;">android:scrollbarStyle</span>=<i><span style="color: #2a00ff;">"outsideOverlay"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;">
<span style="color: #7f007f;">android:scrollbarFadeDuration</span>=<i><span style="color: #2a00ff;">"5"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;">
<span style="color: #7f007f;">android:fillViewport</span>=<i><span style="color: #2a00ff;">"true"</span></i><span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal">
<span style="color: teal; font-family: 'Courier New'; font-size: 10pt; line-height: 115%;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt; line-height: 115%;">LinearLayout</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt; line-height: 115%;">></span></div>
<div class="MsoNormal">
<span style="color: teal; font-family: 'Courier New'; font-size: 10pt; line-height: 115%;"><br /></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US">I get a
handle to the <a href="http://developer.android.com/reference/android/webkit/WebView.html">WebView</a>
in this line: </span><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">mWebView</span><span style="font-family: 'Courier New'; font-size: 10pt;"> =
(WebView)findViewById(R.id.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">webview</span></i><span style="font-family: 'Courier New'; font-size: 10pt;">);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US">And
then I load the local URL in this line</span><span style="font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">mWebView</span><span style="font-family: 'Courier New'; font-size: 10pt;">.loadUrl(</span><span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;">"http://10.0.2.2:8080/SampleWebServer/Welcome.html"</span><span style="font-family: 'Courier New'; font-size: 10pt;">);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">As simple as this. What this does is that
it invokes the default android browser if we have links on the welcome page as
shown below: (we have gone out of the <a href="http://developer.android.com/reference/android/webkit/WebView.html">WebView</a>
into a browser app)</span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRdMsltr1O_5yTr7lbPgCYH1sHdooEJOchFkORrzpSlCJD7RcGB-U20MHQhOA5_dJoqWW1BhXUTvnc6uebRr1IaxCcOaY1kGCd1V50CgmSl4wyyilD-cI759XWTIg6CyfOQyo124xl51tU/s1600/WebViewHome.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRdMsltr1O_5yTr7lbPgCYH1sHdooEJOchFkORrzpSlCJD7RcGB-U20MHQhOA5_dJoqWW1BhXUTvnc6uebRr1IaxCcOaY1kGCd1V50CgmSl4wyyilD-cI759XWTIg6CyfOQyo124xl51tU/s320/WebViewHome.png" width="213" /></a></div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjSuwOB5_Nm2oc4FHhKARY4nbZl0k9sM13ek76cMyh4RQVLIuyoaCSgwxKAfM-e6tGAgFLeJMLjGi7k57CdUC8ooX11L9-5oGBBT6awLef-Yt1NSQu253kG6essQHfj_pibNY5WpZdllM5/s1600/WebViewDefaultBrowser.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjSuwOB5_Nm2oc4FHhKARY4nbZl0k9sM13ek76cMyh4RQVLIuyoaCSgwxKAfM-e6tGAgFLeJMLjGi7k57CdUC8ooX11L9-5oGBBT6awLef-Yt1NSQu253kG6essQHfj_pibNY5WpZdllM5/s320/WebViewDefaultBrowser.png" width="213" /></a><br />
<div style="text-align: left;">
</div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">If we want to be able to continue opening
in the <a href="http://developer.android.com/reference/android/webkit/WebView.html">WebView</a>,
here is the piece of code that would help. Basically we are writing out own
custom browser by extending the <a href="http://developer.android.com/reference/android/webkit/WebViewClient.html">WebViewClient</a>:</span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">private</span></b><span style="font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">class</span></b><span style="font-family: 'Courier New'; font-size: 10pt;">
WebViewSampleClient </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">extends</span></b><span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="background-attachment: initial; background-clip: initial; background-color: silver; background-image: initial; background-origin: initial;">WebViewClient</span>
{</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: #646464; font-family: 'Courier New'; font-size: 10pt;">@Override</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">public</span></b><span style="font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">boolean</span></b><span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="background-attachment: initial; background-clip: initial; background-color: silver; background-image: initial; background-origin: initial;">shouldOverrideUrlLoading</span>(WebView
view, String url) {</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> view.loadUrl(url); </span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">return</span></b><span style="font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">true</span></b><span style="font-family: 'Courier New'; font-size: 10pt;">;</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> }</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New'; font-size: 10pt; line-height: 115%;"> }</span></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New'; font-size: 10pt; line-height: 115%;"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">Here we are telling to load the passed URL
into the <a href="http://developer.android.com/reference/android/webkit/WebView.html">WebView</a>
by overriding the </span><span lang="EN-US" style="font-family: 'Courier New';">shoudlOverrideUrlLoading</span><span lang="EN-US"> method of the <a href="http://developer.android.com/reference/android/webkit/WebViewClient.html">WebViewClient</a>.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">After overriding the same, add another piece
of code into </span><span lang="EN-US" style="font-family: 'Courier New';">onCreate()</span><span lang="EN-US"> method:</span></div>
<div class="MsoNormal">
<span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt; line-height: 115%;">mWebView</span><span style="font-family: 'Courier New'; font-size: 10pt; line-height: 115%;">.setWebViewClient(</span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt; line-height: 115%;">new</span></b><span style="font-family: 'Courier New'; font-size: 10pt; line-height: 115%;"> WebViewSampleClient());</span></div>
<div class="MsoNormal">
<span lang="EN-US">after </span><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt; line-height: 115%;">mWebView</span><span style="font-family: 'Courier New'; font-size: 10pt; line-height: 115%;">.loadUrl(</span><span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt; line-height: 115%;">"http://10.0.2.2:8080/SampleWebServer/Welcome.html"</span><span style="font-family: 'Courier New'; font-size: 10pt; line-height: 115%;">);</span></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New'; font-size: 10pt; line-height: 115%;"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">Now when you click on the Second Page link,
the new HTML page gets invoked within the <a href="http://developer.android.com/reference/android/webkit/WebView.html">WebView</a>
as shown below:</span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgs-lH_zilO969XZHbB3cmGkhp-IJOQoYwHCRHguWbYAhVca7UXb28Ex1RnSNMdfGUyDZVra99X7jGqWBdzVfZGd8klaZmuQTtLtBd7Nh2KbONhpOjYkwvCyw-NkaUgTa1abz1b2qVht39k/s1600/WebViewCustomBrowser.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgs-lH_zilO969XZHbB3cmGkhp-IJOQoYwHCRHguWbYAhVca7UXb28Ex1RnSNMdfGUyDZVra99X7jGqWBdzVfZGd8klaZmuQTtLtBd7Nh2KbONhpOjYkwvCyw-NkaUgTa1abz1b2qVht39k/s320/WebViewCustomBrowser.png" width="213" /></a></div>
<div class="MsoNormal">
<span lang="EN-US"></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">From here, if you press a back button, you
will log out of the app, since <a href="http://developer.android.com/reference/android/webkit/WebView.html">WebView</a>
is one activity and the pages are all opened within the <a href="http://developer.android.com/reference/android/webkit/WebView.html">WebView</a>.
In order to override that behavior and you want to navigate back to the
HomePage within the <a href="http://developer.android.com/reference/android/webkit/WebView.html">WebView</a>.</span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: #646464; font-family: 'Courier New'; font-size: 10pt;">@Override</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">public</span></b><span style="font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">boolean</span></b><span style="font-family: 'Courier New'; font-size: 10pt;"> onKeyDown(</span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">int</span></b><span style="font-family: 'Courier New'; font-size: 10pt;"> keyCode,
KeyEvent event) {</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">if</span></b><span style="font-family: 'Courier New'; font-size: 10pt;"> ((keyCode == KeyEvent.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">KEYCODE_BACK</span></i><span style="font-family: 'Courier New'; font-size: 10pt;">) && </span><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">mWebView</span><span style="font-family: 'Courier New'; font-size: 10pt;">.canGoBack())
{</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">mWebView</span><span style="font-family: 'Courier New'; font-size: 10pt;">.goBack();</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">return</span></b><span style="font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">true</span></b><span style="font-family: 'Courier New'; font-size: 10pt;">;</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> }</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">return</span></b><span style="font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">super</span></b><span style="font-family: 'Courier New'; font-size: 10pt;">.onKeyDown(keyCode,
event);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New'; font-size: 10pt; line-height: 115%;"> }</span></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New'; font-size: 10pt; line-height: 115%;"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">The code is pretty self explanatory. When a
back button is clicked and there is something within the <a href="http://developer.android.com/reference/android/webkit/WebView.html">WebView</a>
that we can go back it, do it within the <a href="http://developer.android.com/reference/android/webkit/WebView.html">WebView</a>. Here is the <a href="http://www.mediafire.com/?03o5wv3nn65yybh">complete code for download.</a>
</span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">Last but not the least, I have also added </span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt; line-height: 115%;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt; line-height: 115%;">uses-permission</span><span style="font-family: 'Courier New'; font-size: 10pt; line-height: 115%;"> <span style="color: #7f007f;">android:name</span>=<i><span style="color: #2a00ff;">"android.permission.INTERNET"</span></i> <span style="color: teal;">/> </span></span><span lang="EN-US">into the AndroidManifest
file as this app will use the internet to invoke the http based URL. </span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">To create a Web Server and host HTML pages,
please <a href="http://saigeethamn.blogspot.com/2011/11/local-webserver-apache-tomcat.html">see this tutorial</a>.</span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">NOTE: any webserver running locally can be
accessed through http protocol using the IP address 127.0.0.1 or localhost or
the actual IP address which you get when you run IP address command at the
command prompt. However, within the emulator, the linux kernel takes the
localhost as 10.0.2.2. and hence you will see in the code above that this IP
address is used.</span></div>
<div class="MsoNormal">
<br /></div>
<br /><div class="blogger-post-footer"><script type="text/javascript"><!--
amazon_ad_tag = "saigstec-20"; amazon_ad_width = "728"; amazon_ad_height = "90";//--></script>
<script type="text/javascript" src="http://www.assoc-amazon.com/s/ads.js"></script></div>Saihttp://www.blogger.com/profile/12784084112335938233noreply@blogger.com12tag:blogger.com,1999:blog-2839017453780259099.post-20495953489552378172011-11-18T11:19:00.000+05:302011-11-18T11:19:59.064+05:30Android - conversion to dalvik format failed with error 1<span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;">Hi,</span><br />
<span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;">I am sure many of you may see this error at sometime or the other when you are developing in Android o Eclipse. Most times, I have found this work for me.</span><br />
<span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;">In Eclipse, select the project causing the error- go to the menu project -> properties -> java build path -> libraries and remove all jars including the android jars. </span><br />
<span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;">Then, right click the project, go to android tools -> fix project properties. Then, add back any other external jars you wanted to add to the build path following the same menu project -> properties -> java build path -> libraries. To ensure there are no errors due to missing libraries.</span><br />
<span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;">Then, do a 'clean' on menu project and build again. It should work.</span><br />
<span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;">My guess is that when an incompatible android jar is used to compile this error is thrown. There may be many other scenarios too that cause thsi error... you can add them below</span><div class="blogger-post-footer"><script type="text/javascript"><!--
amazon_ad_tag = "saigstec-20"; amazon_ad_width = "728"; amazon_ad_height = "90";//--></script>
<script type="text/javascript" src="http://www.assoc-amazon.com/s/ads.js"></script></div>Saihttp://www.blogger.com/profile/12784084112335938233noreply@blogger.com13tag:blogger.com,1999:blog-2839017453780259099.post-16330301946838292562011-11-14T13:08:00.001+05:302011-11-14T13:11:50.487+05:30Localhost Access in Android Emulator<span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;">This is a small tit-bit I discovered today:</span><br />
<span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;">If you want to access your localhost through the Android Emulator - you need to use the IP Address 10.0.2.2 unlike how we do on the web browsers on our desktops where we access the local host as 127.0.0.1 or 'localhost' itself.</span><br />
<span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;">This information is useful if for testing purposes you have locally installed a webserver and put a few HTML pages or if you have locally hosted web services - say REST Services that need to be invoked through a URL like this: http://localhost:8080/rest/hello, then, use the above mentioned IP address and you will be able to access your service or webpage through the emulator.</span><br />
<span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;">Or you could simple use your own IP address like 192.168.3.233 - whatever yours is. If you do a "ipconfig" in a windows command prompt, you will know what your IP address is. (one of the ways to find it out). However, there is one disadvantage with this method if your IP is allocated to you dynamically on your network. This will keep changing. In such a case, using 10.0.2.2 will be the equivalent of 127.0.0.1 which will not change for the localhost.</span><br />
<span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"><br /></span><br />
<span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;">Hope this helps.</span><div class="blogger-post-footer"><script type="text/javascript"><!--
amazon_ad_tag = "saigstec-20"; amazon_ad_width = "728"; amazon_ad_height = "90";//--></script>
<script type="text/javascript" src="http://www.assoc-amazon.com/s/ads.js"></script></div>Saihttp://www.blogger.com/profile/12784084112335938233noreply@blogger.com7tag:blogger.com,1999:blog-2839017453780259099.post-69374206629109967192011-06-23T11:14:00.000+05:302011-06-23T11:14:38.542+05:30Multiple Ways of Programming for AndroidThese seem to be more than one way to program for the Android devices.<br />
<br />
The first and the most common way is by using the Software Development Kit (SDK) using Java Syntax. This is what I have been talking about in all the earlier posts and tutorials.<br />
<br />
The other 3 interesting ways, I believe, are:<br />
2. Native Development Kit using C / C ++. This I am sure many are aware of and would be using to some extent. This is a little more closer to the OS, not running on top of the virtual Machine.<br />
3. RenderScript using C99 - used to write faster graphics code like the Google Books page turn animation etc.<br />
4. Android Scripting Layer using Python etc.<br />
<br />
Interesting options, right?<div class="blogger-post-footer"><script type="text/javascript"><!--
amazon_ad_tag = "saigstec-20"; amazon_ad_width = "728"; amazon_ad_height = "90";//--></script>
<script type="text/javascript" src="http://www.assoc-amazon.com/s/ads.js"></script></div>Saihttp://www.blogger.com/profile/12784084112335938233noreply@blogger.com22tag:blogger.com,1999:blog-2839017453780259099.post-13111370516374305042011-05-17T16:23:00.001+05:302011-12-08T15:09:17.432+05:30Contacts API 2.0 and above | Android Developer Tutorial<br />
<div class="MsoNormal">
<span lang="EN-US">Starting from Android 2.0 (API Level 5),
the Android platform provides an improved Contacts API for managing and
integrating contacts from multiple accounts and from other data sources. To
handle overlapping data from multiple sources, the contacts content provider
aggregates similar contacts and presents them to users as a single entity. This
article describes how to use the new API to manage (insert, update, delete,
view) contacts.</span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">The new Contacts API is defined in the </span><code><span lang="EN-US" style="font-size: 10pt; line-height: 115%;"><a href="http://developer.android.com/reference/android/provider/ContactsContract.html">android.provider.ContactsContract</a></span></code><span lang="EN-US"> and related classes. The older API is still supported, although
deprecated. </span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">We need to understand the underlying
structure of storage to better manipulate the contacts. We have three distinct
types of tables – Contacts, Raw Contacts and Data. </span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">All data related to a contact is stored in
this generic data table with each row telling what is the data it stores
through its MIME type. So we could have a Phone.CONTENT_ITEM_TYPE as the MIME
type of the data row, it contains Phone data. Similarly, if we have
Email.CONTENT_ITEM_TYPE as the row’s MIME type, then it stores email data. Like
this lot of data rows are associated with a single Raw Contact. </span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">Each Raw Contact refers to a specific
contact’s data coming from one single source – say, you gmail account or your
office Microsoft account. </span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">The Contact is the topmost in the hierarchy
which aggregates similar looking data from various sources into one single
contact – a very handy feature when you have redundant data coming about the
same contact from you various accounts – like a facebook account, orkut
account, yahoo account and goggle account.
So the hierarchy looks like this:</span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzGw41TPB9D7w7FAMoDEHcCS2_jWRfvhQRz1WnCXSBNuUloonbFhgJ-2JzSJENtaIDYr7lWZf1zIqdWf2bcQnGpOjNHu5-dqgMPCMG9HdjATFTAmUvOAjb7J-Ehxu7zSLGLlRaW987LxIJ/s1600/NewContacts.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="189" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzGw41TPB9D7w7FAMoDEHcCS2_jWRfvhQRz1WnCXSBNuUloonbFhgJ-2JzSJENtaIDYr7lWZf1zIqdWf2bcQnGpOjNHu5-dqgMPCMG9HdjATFTAmUvOAjb7J-Ehxu7zSLGLlRaW987LxIJ/s320/NewContacts.PNG" width="320" /></a></div>
<div class="MsoNormal">
<span lang="EN-US"></span></div>
<div class="MsoNormal">
<span lang="EN-US">So, when we want to insert a new contact,
we always insert a Raw Contact. When we want to update an existing contact, we
most often deal with the data tables which are accessible through a series of
CommonDataKind classes. Because this would be to update particular types of
data like phone or email. </span></div>
<div class="MsoNormal">
<span lang="EN-US">Coming to the example:</span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">I create an activity with four buttons to
View, Add, Modify and Delete Contacts.</span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> Button view =
(Button)findViewById(R.id.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">viewButton</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> Button add =
(Button)findViewById(R.id.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">createButton</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> Button modify =
(Button)findViewById(R.id.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">updateButton</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> Button delete =
(Button)findViewById(R.id.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">deleteButton</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> view.setOnClickListener(</span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">new</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> OnClickListener() {</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">public</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">void</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> onClick(View v){</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> displayContacts();</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> Log.<i>i</i>(</span><span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;">"NativeContentProvider"</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">, </span><span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;">"Completed Displaying Contact list"</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> }</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> });</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">On the click of each of the buttons I
invoke their respective methods: like </span><span lang="EN-US" style="font-family: 'Courier New';">displayContacts(</span><span lang="EN-US">), </span><span lang="EN-US" style="font-family: 'Courier New';">createContact(), updatecContact()</span><span lang="EN-US"> and </span><span lang="EN-US" style="font-family: 'Courier New';">deleteContact().</span><span lang="EN-US"> We will now see each of these methods.</span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMja5EauTFUIt55SLXIJMAPduH2cjT0RpBFB-odsOejTaC_DqAubADAjTmFQ352zwqa7IvelOb5aTmZ4e8Uniu1ZMrHYUaes_K4Jj0P3UoOwBdGxCbu0uXDm-pOsBNMjwbZwPrqVPM8vyI/s1600/NewContactsContentProvider.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMja5EauTFUIt55SLXIJMAPduH2cjT0RpBFB-odsOejTaC_DqAubADAjTmFQ352zwqa7IvelOb5aTmZ4e8Uniu1ZMrHYUaes_K4Jj0P3UoOwBdGxCbu0uXDm-pOsBNMjwbZwPrqVPM8vyI/s320/NewContactsContentProvider.PNG" width="311" /></a></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US"></span></div>
<div class="MsoNormal">
<span lang="EN-US" style="font-family: 'Courier New';">displayContacts()</span><span lang="EN-US"> is pretty straightforward. Access to each of the tables mentioned
above is through a content URI. I use the topmost level ‘Contacts’ URI to
iterate through all the existing contacts and display their names and phone
numbers (Toast them).</span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">We know Contacts is a </span><span lang="EN-US" style="font-family: 'Courier New';"><a href="http://developer.android.com/reference/android/content/ContentProvider.html">ContentProvider</a></span><span lang="EN-US"> and hence we need to query through a </span><span lang="EN-US" style="font-family: 'Courier New';"><a href="http://developer.android.com/reference/android/content/ContentResolver.html">ContentResolver</a></span><span lang="EN-US"> which returns all the data of the contacts.</span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">private</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">void</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">
displayContacts() {</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> ContentResolver
cr = getContentResolver();</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> Cursor cur =
cr.query(ContactsContract.Contacts.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">CONTENT_URI</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">,</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">null</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">, </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">null</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">, </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">null</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">, </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">null</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">if</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> (cur.getCount() > 0) {</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">while</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> (cur.moveToNext()) {</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> String
id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">_ID</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">));</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> String
name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">DISPLAY_NAME</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">));</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">if</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> (Integer.<i>parseInt</i>(cur.getString(</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;">
cur.getColumnIndex(ContactsContract.Contacts.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">HAS_PHONE_NUMBER</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">))) > 0) {</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> Cursor pCur = cr.query(</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> ContactsContract.CommonDataKinds.Phone.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">CONTENT_URI</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">, </span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">null</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">, </span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> ContactsContract.CommonDataKinds.Phone.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">CONTACT_ID</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> +</span><span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;">" =
?"</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">, </span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">new</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> String[]{id}, </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">null</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">while</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> (pCur.moveToNext()) {</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> String phoneNo =
pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">NUMBER</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">));</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> Toast.<i>makeText</i>(NativeContentProvider.</span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">this</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">, </span><span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;">"Name:
"</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> + name + </span><span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;">",
Phone No: "</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> + phoneNo, Toast.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">LENGTH_SHORT</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">).show();</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> } </span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> pCur.close();</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> }</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> }</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> }</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt; line-height: 115%;"> }<o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
I will try to briefly explain
the above method. Line 1 gets a handle
to the <span lang="EN-US" style="font-family: 'Courier New';"><a href="http://developer.android.com/reference/android/content/ContentResolver.html">ContentResolver</a></span>. Line 2 queries the Contacts URI (<span style="color: black; font-family: 'Courier New'; font-size: 10pt; line-height: 115%;">ContactsContract.Contacts.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt; line-height: 115%;">CONTENT_URI</span></i> ) without any mention of the specific columns or “where” clause of an
SQL query. Notice all the 4 parameters are null. This means that we are not
making any conditional query into the contacts table and hence all data is returned
into the cursor.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
Next, I check that the
cursor is not empty and iterate through the cursor data. I retrieve the <span style="font-family: 'Courier New';">_ID</span> and <span style="font-family: 'Courier New';">DISPLAY_NAME</span> from the Contacts and then, I check for the flag if the contact has a
phone number. This information is available in contacts table itself. But the Phone
number details are in the data tables. Hence after checking for the flag, I
query the <span style="font-family: 'Courier New';">CommonDataKings.Phone.CONTENT_URI</span> for the phone data of that specific ID. From
this new cursor named <span style="font-family: 'Courier New';">pCur</span>, I retrieve the Phone
Number. If there are multiple phone number for one contact, all of them will be
retrieved and toasted one after another.<o:p></o:p></div>
<div class="MsoNormal">
Now, let us see how to
create or insert a new contact. <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
In the <span style="font-family: 'Courier New';">createContact(</span>) method which is called when you click on the “Add
Contact” button, I first query to see if the hardcoded name “Sample Name”
already exists. If so, I toast a message stating the same. If not, then I get
into actually inserting the name along with a phone number. The first part of
the check you can view in the complete source code available for download. Only
the second part of inserting a contact is explained here. For this, we need to
use a <span lang="EN-US" style="font-family: 'Courier New';"><a href="http://developer.android.com/reference/android/content/ContentResolver.html">ContentResolver</a>
</span>always. <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
A <span lang="EN-US" style="font-family: 'Courier New';"><a href="http://developer.android.com/reference/android/content/ContentResolver.html">ContentResolver</a></span>provides an <span style="font-family: 'Courier New';">applyBatch(…)</span> method which takes an array of <span style="font-family: 'Courier New';"><a href="http://developer.android.com/reference/android/content/ContentProviderOperation.html">ContentProviderOperation</a></span> classes as a parameter. All the data built
into the <span style="font-family: 'Courier New';"><a href="http://developer.android.com/reference/android/content/ContentProviderOperation.html">ContentProviderOperations</a></span> are committed or inserted into the <span style="font-family: 'Courier New';"><a href="http://developer.android.com/reference/android/content/ContentProvider.html">ContentProvider</a></span> that we are working on. IN this case, the <span style="font-family: 'Courier New';"><a href="http://developer.android.com/reference/android/content/ContentProvider.html">ContentProvider</a></span> we are working on are Contacts and the
authority associated with the same is <span style="font-family: 'Courier New';">ContactsContract.<i>AUTHORITY<o:p></o:p></i></span></div>
<div class="MsoNormal">
<span style="font-family: 'Courier New';"><i><br /></i></span></div>
<div class="MsoNormal">
<span lang="EN-US">Here is the code for the same:</span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> ArrayList<ContentProviderOperation> ops = </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">new</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">
ArrayList<ContentProviderOperation>();</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> ops.add(ContentProviderOperation.<i>newInsert</i>(ContactsContract.RawContacts.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">CONTENT_URI</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">)</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;">
.withValue(ContactsContract.RawContacts.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">ACCOUNT_TYPE</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">, </span><span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;">"accountname@gmail.com"</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">)</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;">
.withValue(ContactsContract.RawContacts.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">ACCOUNT_NAME</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">, </span><span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;">"com.google"</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">)</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> .build());</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> ops.add(ContentProviderOperation.<i>newInsert</i>(ContactsContract.Data.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">CONTENT_URI</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">)</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;">
.withValueBackReference(ContactsContract.Data.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">RAW_CONTACT_ID</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">, 0)</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;">
.withValue(ContactsContract.Data.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">MIMETYPE</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">,</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;">
ContactsContract.CommonDataKinds.StructuredName.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">CONTENT_ITEM_TYPE</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">)</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;">
.withValue(ContactsContract.CommonDataKinds.StructuredName.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">DISPLAY_NAME</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">, name)</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> .build());</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> ops.add(ContentProviderOperation.<i>newInsert</i>(ContactsContract.Data.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">CONTENT_URI</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">)</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;">
.withValueBackReference(ContactsContract.Data.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">RAW_CONTACT_ID</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">, 0)</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;">
.withValue(ContactsContract.Data.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">MIMETYPE</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">,</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> ContactsContract.CommonDataKinds.Phone.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">CONTENT_ITEM_TYPE</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">)</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;">
.withValue(ContactsContract.CommonDataKinds.Phone.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">NUMBER</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">, phone)</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;">
.withValue(ContactsContract.CommonDataKinds.Phone.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">TYPE</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">, ContactsContract.CommonDataKinds.Phone.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">TYPE_HOME</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">)</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> .build());</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">try</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> {</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> cr.applyBatch(ContactsContract.</span><i><span style="background-attachment: initial; background-clip: initial; background-color: silver; background-image: initial; background-origin: initial; color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">AUTHORITY</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">, ops);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US">….</span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">In the first element in the </span><span lang="EN-US" style="font-family: 'Courier New';">ops</span><span lang="EN-US"> array,
I am setting the details of the account to which I want to add the contact. In
this case the gmail account type </span><span lang="EN-US" style="font-family: 'Courier New';">is <a href="mailto:accontname@gmail.com">accontname@gmail.com</a></span><span lang="EN-US"> and the account name is </span><span lang="EN-US" style="font-family: 'Courier New';">“com.google”.</span><span lang="EN-US"> The latter has to be unique
and hence it is recommended to use the internet URLs of the source of data. </span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">In the second element, I am adding the name
of the contact and in the third the phone data. You notice that I use .</span><span lang="EN-US" style="font-family: 'Courier New';">withValueBackReference(..)</span><span lang="EN-US"> as we still have not created the Raw contact and hence we do not
have the Id. The first row creates the id and hands over the id to the next
rows of data. </span></div>
<div class="MsoNormal">
<span lang="EN-US"></span></div>
<div class="MsoNormal">
<span lang="EN-US">This array ops is passed into the </span><span lang="EN-US" style="font-family: 'Courier New';"><a href="http://developer.android.com/reference/android/content/ContentResolver.html">ContentResolver</a>
</span><span lang="EN-US">and thus the data is inserted.</span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">For updating the phone number of an existing
contact, I again use the </span><span lang="EN-US" style="font-family: 'Courier New';"><a href="http://developer.android.com/reference/android/content/ContentResolver.html">ContentResolver</a>
</span><span lang="EN-US">with the </span><span style="font-family: 'Courier New';"><a href="http://developer.android.com/reference/android/content/ContentProviderOperation.html">ContentProviderOperation</a></span> <span lang="EN-US">array. However, now, I
pass the where clause and the parameters of the where clause – specifically indicating
that only the phone number of the “</span><span lang="EN-US" style="font-family: 'Courier New';">Sample Name”</span><span lang="EN-US"> contact has to be updated.</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> ops.add(ContentProviderOperation.<i>newUpdate</i>(ContactsContract.Data.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">CONTENT_URI</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">)</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> .withSelection(where, params)</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> .withValue(ContactsContract.CommonDataKinds.Phone.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">DATA</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">, phone)</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> .build());</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">Notice the .withSelection(where, params). The
where and params look like this:</span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> String where = ContactsContract.Data.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">DISPLAY_NAME</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> + </span><span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;">" = ? AND
"</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> + </span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> ContactsContract.Data.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">MIMETYPE</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> + </span><span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;">" = ? AND
"</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> +</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> String.<i>valueOf</i>(ContactsContract.CommonDataKinds.Phone.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">TYPE</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">) + </span><span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;">" = ?
"</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">;</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none; text-indent: .5in;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;">String[] params = </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">new</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> String[] {name,</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> ContactsContract.CommonDataKinds.Phone.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">CONTENT_ITEM_TYPE</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">,</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> String.<i>valueOf</i>(ContactsContract.CommonDataKinds.Phone.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">TYPE_HOME</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">)};</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">Delete too is done in a very similar manner
with no values but only the selection criteria is provided for which contact to
be deleted.</span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> ContentResolver
cr = getContentResolver();</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> String
where = ContactsContract.Data.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">DISPLAY_NAME</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> + </span><span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;">" = ? "</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">;</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> String[]
params = </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">new</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> String[]
{name};</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> ArrayList<ContentProviderOperation>
<span style="background-attachment: initial; background-clip: initial; background-color: yellow; background-image: initial; background-origin: initial;">ops</span> = </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">new</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">
ArrayList<ContentProviderOperation>();</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> <span style="background-attachment: initial; background-clip: initial; background-color: silver; background-image: initial; background-origin: initial;">ops</span>.add(ContentProviderOperation.<i>newDelete</i>(ContactsContract.RawContacts.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">CONTENT_URI</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">)</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> .withSelection(where, params)</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> .build());</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">try</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> {</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> cr.applyBatch(ContactsContract.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">AUTHORITY</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">, <span style="background-attachment: initial; background-clip: initial; background-color: silver; background-image: initial; background-origin: initial;">ops</span>);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> } </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">catch</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> (RemoteException e) {</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US">….</span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">The <a href="http://www.mediafire.com/file/1f43zmd1wcv590o/NewContentProviderSample2.2.zip">complete source code is downloadable here</a>.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">I really scouted the internet a lot to find
a comprehensive tutorial on the new Contacts Content Provider API but could not
find anything that easily. Hope this helps all who of you who are looking for
the same.</span></div>
<br />
NOTE: Many have been asking me questions on why the contacts that have just been added through this app are not visible in the phone contacts. All your contacts on phone are linked to your google account on the phone. However, t<span class="Apple-style-span" style="background-color: white; color: #333333; font-size: 14px; line-height: 18px;"><span class="Apple-style-span" style="font-family: inherit;"><span class="Apple-style-span" style="font-family: inherit;">h</span>e contacts from the above code have got added to psuedo google account and hence will not be visible directly. You search for the just added contact and you will be able to find it.</span></span><br />
<span class="Apple-style-span" style="background-color: white; color: #333333; font-size: 14px; line-height: 18px;"><span class="Apple-style-span" style="font-family: inherit;"><br /></span></span><br />
<span class="Apple-style-span" style="background-color: white; color: #333333; font-size: 14px; line-height: 18px;"><span class="Apple-style-span" style="font-family: inherit;">Hope this helps.</span></span><br />
<br />
<a href="http://www.blogger.com/"></a><span id="goog_705188481"></span><span id="goog_705188482"></span><div class="blogger-post-footer"><script type="text/javascript"><!--
amazon_ad_tag = "saigstec-20"; amazon_ad_width = "728"; amazon_ad_height = "90";//--></script>
<script type="text/javascript" src="http://www.assoc-amazon.com/s/ads.js"></script></div>Saihttp://www.blogger.com/profile/12784084112335938233noreply@blogger.com83tag:blogger.com,1999:blog-2839017453780259099.post-828212431696955052011-05-08T12:30:00.001+05:302011-05-08T12:31:37.401+05:30Context Menu | Android Developer Tutorial<br />
<div class="MsoNormal">
<span lang="EN-US">This is a follow up to the <a href="http://saigeethamn.blogspot.com/2011/05/options-menu-android-developer-tutorial.html">Options Menu Tutorial</a> shared earlier. </span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">To recap, the Context Menu is a floating
list of menu items that appears when a user touches and holds a particular item
displayed in the view, which has a menu associated with it.</span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">Going straight to the example, first I
create a <a href="http://developer.android.com/reference/android/widget/ListView.html">ListView</a>
with names of pens displayed. When one presses and holds one of the names for a
long time, the context menu appears as shown here:</span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBuOL6a3gwtIeEhB2jwORYBNKrzH1bkOPT-eMuvOqLAhkaY4zPWUeiaoMREP0DeL_I08ApsUi1SOxauaNJdKwzb9Jnf5Q-X23HOzObma5gma7_oR6YLfUOPSSu88J3SgB29cF-A6faoGJz/s1600/ContectMenu.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBuOL6a3gwtIeEhB2jwORYBNKrzH1bkOPT-eMuvOqLAhkaY4zPWUeiaoMREP0DeL_I08ApsUi1SOxauaNJdKwzb9Jnf5Q-X23HOzObma5gma7_oR6YLfUOPSSu88J3SgB29cF-A6faoGJz/s320/ContectMenu.PNG" width="221" /></a></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<v:shapetype coordsize="21600,21600" filled="f" id="_x0000_t75" o:preferrelative="t" o:spt="75" path="m@4@5l@4@11@9@11@9@5xe" stroked="f">
<v:stroke joinstyle="miter">
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0">
<v:f eqn="sum @0 1 0">
<v:f eqn="sum 0 0 @1">
<v:f eqn="prod @2 1 2">
<v:f eqn="prod @3 21600 pixelWidth">
<v:f eqn="prod @3 21600 pixelHeight">
<v:f eqn="sum @0 0 1">
<v:f eqn="prod @6 1 2">
<v:f eqn="prod @7 21600 pixelWidth">
<v:f eqn="sum @8 21600 0">
<v:f eqn="prod @7 21600 pixelHeight">
<v:f eqn="sum @10 21600 0">
</v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:formulas>
<v:path gradientshapeok="t" o:connecttype="rect" o:extrusionok="f">
<o:lock aspectratio="t" v:ext="edit">
</o:lock></v:path></v:stroke></v:shapetype><v:shape id="Picture_x0020_11" o:spid="_x0000_i1026" style="height: 297pt; mso-wrap-style: square; visibility: visible; width: 205.5pt;" type="#_x0000_t75">
<v:imagedata o:title="ContectMenu" src="file:///C:\DOCUME~1\gk70\LOCALS~1\Temp\msohtmlclip1\01\clip_image001.png">
</v:imagedata></v:shape></div>
<div class="MsoNormal">
<span lang="EN-US">And when you click on any of the context
menu shown above, the screen that appears is:</span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQ_nB7LMFGMdwQ8ZxSZg602ytK9DiEGeUi3Hgpaou2cGejKsst4NxZMksp42l0KhmWGaUnz0Q6zLVQSWFGLY9hepk4O-zrOp51oRxMPXhT3H8P9BU_RL7tKZ7IiH4jkp9l5YqY5VW_PkpH/s1600/ContectMenu1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQ_nB7LMFGMdwQ8ZxSZg602ytK9DiEGeUi3Hgpaou2cGejKsst4NxZMksp42l0KhmWGaUnz0Q6zLVQSWFGLY9hepk4O-zrOp51oRxMPXhT3H8P9BU_RL7tKZ7IiH4jkp9l5YqY5VW_PkpH/s1600/ContectMenu1.PNG" /></a></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<v:shape id="Picture_x0020_12" o:spid="_x0000_i1025" style="height: 181.5pt; mso-wrap-style: square; visibility: visible; width: 201.75pt;" type="#_x0000_t75">
<v:imagedata o:title="ContectMenu1" src="file:///C:\DOCUME~1\gk70\LOCALS~1\Temp\msohtmlclip1\01\clip_image002.png">
</v:imagedata></v:shape></div>
<div class="MsoNormal">
<span lang="EN-US">Let’s go to the code.</span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">First, the mundane step of creating a <a href="http://developer.android.com/reference/android/widget/ListView.html">Listview</a>
(you can see the <a href="http://saigeethamn.blogspot.com/2010/04/simple-listview-android-developer.html">ListView
tutorial</a> for more explanation on this). </span></div>
<div class="MsoNormal">
<span lang="EN-US">I create a class </span><span lang="EN-US" style="font-family: 'Courier New';">ShowContextMenu</span><span lang="EN-US">
extending the </span><span lang="EN-US" style="font-family: 'Courier New';"><a href="http://developer.android.com/reference/android/app/ListActivity.html">ListActivity</a></span><span lang="EN-US">. In its </span><span lang="EN-US" style="font-family: 'Courier New';">OnCreate(…)</span><span lang="EN-US"> method, I associate the </span><span lang="EN-US" style="font-family: 'Courier New';"><a href="http://developer.android.com/reference/android/widget/ListView.html">Listview</a></span><span lang="EN-US"> array with the </span><span lang="EN-US" style="font-family: 'Courier New';"><a href="http://developer.android.com/reference/android/widget/ListAdapter.html">ListAdapater</a></span><span lang="EN-US"> as shown here:</span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">public</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">class</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> ShowContextMenu </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">extends</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> ListActivity {</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;">/** Called
when the activity is first created. */</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: #646464; font-family: 'Courier New'; font-size: 10pt;">@</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">Override</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">public</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">void</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">
onCreate(Bundle savedInstanceState) {</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">super</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">.onCreate(savedInstanceState);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> <b style="mso-bidi-font-weight: normal;">setListAdapter(</b></span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">new</span></b><b style="mso-bidi-font-weight: normal;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> ArrayAdapter<String>(</span></b><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">this</span></b><b style="mso-bidi-font-weight: normal;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">,</span></b><b style="mso-bidi-font-weight: normal;"><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<b style="mso-bidi-font-weight: normal;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">
android.R.layout.simple_list_item_1,
getResources().getStringArray(R.array.</span></b><b style="mso-bidi-font-weight: normal;"><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">names</span></i></b><b style="mso-bidi-font-weight: normal;"><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">)));</span></b><b style="mso-bidi-font-weight: normal;"><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></b></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none; text-indent: .5in;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;">… <o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> }</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<h1 style="margin-left: 0in; mso-list: none; text-indent: 0in;">
<span lang="EN-US" style="color: windowtext; font-size: 11pt; font-weight: normal; line-height: 115%;"><span class="Apple-style-span" style="font-family: inherit;">Note that
instead of hard-coding the list items as string array within the class, I have followed
the best practice </span></span><span lang="EN-US" style="color: windowtext; font-size: 11pt; font-weight: normal; line-height: 115%;"><span class="Apple-style-span" style="font-family: inherit;">of externalizing the strings into a strings.xml resource
class. Hence I use </span></span><span lang="EN-US" style="color: windowtext; font-family: 'Courier New'; font-size: 11pt; font-weight: normal; line-height: 115%;">getResources().getStringArray(R.array.names)</span><span lang="EN-US" style="color: windowtext; font-family: Calibri, sans-serif; font-size: 11pt; font-weight: normal; line-height: 115%;"> </span><span lang="EN-US" style="color: windowtext; font-size: 11pt; font-weight: normal; line-height: 115%;"><span class="Apple-style-span" style="font-family: inherit;">to retrieve
the array of pen names that I want to display in the List. The </span></span><span lang="EN-US" style="color: windowtext; font-family: 'Courier New'; font-size: 11pt; font-weight: normal; line-height: 115%;">strings.xml</span><span lang="EN-US" style="color: windowtext; font-family: Calibri, sans-serif; font-size: 11pt; font-weight: normal; line-height: 115%;"> </span><span lang="EN-US" style="color: windowtext; font-size: 11pt; font-weight: normal; line-height: 115%;"><span class="Apple-style-span" style="font-family: inherit;">file in the
value folder has this entry:</span></span></h1>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">string-array</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: #7f007f;">name</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"names"</span></i><span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">item</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">MONT <u>Blanc</u></span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">item</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">item</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><u><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">Gucci</span></u><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">item</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">item</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">Parker</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">item</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">item</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">Sailor</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">item</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">item</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><u><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">Porsche</span></u><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> Design</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">item</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">item</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><u><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">Rotring</span></u><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">item</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">item</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><u><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">Sheaffer</span></u><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">item</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">item</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><u><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">Waterman</span></u><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">item</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">string-array</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">Once this </span><span lang="EN-US" style="font-family: 'Courier New';"><a href="http://developer.android.com/reference/android/widget/ListView.html">Listview</a></span><span lang="EN-US"> has been created, now we want to associate a </span><span lang="EN-US" style="font-family: 'Courier New';"><a href="http://developer.android.com/reference/android/view/ContextMenu.html">ContextMenu</a></span><span lang="EN-US"> with each of the rows in the </span><span lang="EN-US" style="font-family: 'Courier New';"><a href="http://developer.android.com/reference/android/widget/ListView.html">Listview</a></span><span lang="EN-US"> Item. i.e. is a user were to long-press one of the items, a menu
should appear. For this we add the following line as well in the </span><span lang="EN-US" style="font-family: 'Courier New';">onCreate(..)</span><span lang="EN-US"> method.</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;">registerForContextMenu(getListView());</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">But how do we create the </span><span lang="EN-US" style="font-family: 'Courier New';"><a href="http://developer.android.com/reference/android/view/ContextMenu.html">ContextMenu</a></span><span lang="EN-US">? Whenever the long-press happens, the </span><span lang="EN-US" style="font-family: 'Courier New';">onCreateContextMenu(…)</span><span lang="EN-US"> method is invoked. So,
we need to override this method as shown below:</span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">public</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">void</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">
onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">super</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">.onCreateContextMenu(menu, v, menuInfo);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> MenuInflater
inflater = getMenuInflater();</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> inflater.inflate(R.menu.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">context_menu</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">, menu);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> }</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">Here again, just as in <a href="http://saigeethamn.blogspot.com/2011/05/options-menu-android-developer-tutorial.html">Options
Menu tutorial</a>, I use a </span><span lang="EN-US" style="font-family: 'Courier New';"><a href="http://developer.android.com/reference/android/view/MenuInflater.html">MenuInflater</a></span><span lang="EN-US"> to create the context menu rather than do it programmatically. This
is certainly a best practice of keeping the concerns separated. The View and
the programming logic are kept separate as meant to be in Android Programming. The context menu consists of 4 items – </span><span lang="EN-US" style="font-family: 'Courier New';">Edit, Save, Delete, View</span><span lang="EN-US">. So, here is how it is defined in the </span><span lang="EN-US" style="font-family: 'Courier New';">context_menu.xml</span><span lang="EN-US"> in
the </span><span lang="EN-US" style="font-family: 'Courier New';">res/menu</span><span lang="EN-US"> folder:</span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">menu</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: #7f007f;">xmlns:android</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i><span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">item</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/edit"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: 'Courier New'; font-size: 10pt;">
<span style="color: #7f007f;">android:title</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@string/edit"</span></i> <span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">item</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/save"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: 'Courier New'; font-size: 10pt;">
<span style="color: #7f007f;">android:title</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@string/save"</span></i> <span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">item</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/delete"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: 'Courier New'; font-size: 10pt;">
<span style="color: #7f007f;">android:title</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@string/delete"</span></i> <span style="color: teal;">/></span><span style="color: black;"> </span><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">item</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/view"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: 'Courier New'; font-size: 10pt;">
<span style="color: #7f007f;">android:title</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@string/view"</span></i> <span style="color: teal;">/></span><span style="color: black;"> </span><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">menu</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;">></span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">I have an </span><span lang="EN-US" style="font-family: 'Courier New';">id</span><span lang="EN-US"> that is associated
with each of the menu items that uniquely identifies the menu item selected.
And I have a </span><span lang="EN-US" style="font-family: 'Courier New';">String</span><span lang="EN-US"> associated with it which is what is displayed on the Menu. </span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">Now that the context menu is created, how
to handle when the menu item is clicked? For this we need to override the </span><span lang="EN-US" style="font-family: 'Courier New';">onContextItemSelected(…)</span><span lang="EN-US"> method as shown below;</span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">public</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">boolean</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> onContextItemSelected(MenuItem item) {</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> AdapterContextMenuInfo
info = (AdapterContextMenuInfo) item.getMenuInfo();</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> String[]
names = getResources().getStringArray(R.array.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">names</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">switch</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">(item.getItemId()) {</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">case</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> R.id.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">edit</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">:</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> Toast.makeText(</span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">this</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">, </span><span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;">"You have
chosen the "</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> + getResources().getString(R.string.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">edit</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">) + </span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;">" context menu option for "</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> + names[(</span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">int</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">)info.id],</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> Toast.LENGTH_SHORT).show();</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">return</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">true</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">;</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> …………………..</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">default</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">:</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">return</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">super</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">.onContextItemSelected(item);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> }</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">This is the callback method invoked when a
context menu item is clicked. The callback get the reference to the clicked
menu item as the parameter item. </span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">I use the method </span><span lang="EN-US" style="font-family: 'Courier New';">item.getItemId()</span><span lang="EN-US"> to
retrieve the id of the item clicked. This is the same </span><span lang="EN-US" style="font-family: 'Courier New';">id</span><span lang="EN-US"> that is defined in
</span><span lang="EN-US" style="font-family: 'Courier New';">context_menu.xml</span><span lang="EN-US">. So, based on the </span><span lang="EN-US" style="font-family: 'Courier New';">id</span><span lang="EN-US">, I used a </span><span lang="EN-US" style="font-family: 'Courier New';">switch</span><span lang="EN-US"> statement to jump to the appropriate action. Here the action is
just to toast a message that tell which context menu was clicked for which ListView
item. How do I retrieve the ListView item clicked? </span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">Extra information about the menu is
returned by calling </span><span lang="EN-US" style="font-family: 'Courier New';">item.getMenuInfo().</span><span lang="EN-US"> Info.id would be the
ListView id. I use this id to retrieve the name of the pen as in </span><span style="color: black; font-family: 'Courier New'; font-size: 10pt; line-height: 115%;">names[(</span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt; line-height: 115%;">int</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt; line-height: 115%;">)info.id]<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt; line-height: 115%;"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">That is it. Do you want the complete code? <a href="http://www.mediafire.com/file/8g88m3wblhp0it5/ContextMenuExample%202.2.zip">Here
it is.</a> </span></div><div class="blogger-post-footer"><script type="text/javascript"><!--
amazon_ad_tag = "saigstec-20"; amazon_ad_width = "728"; amazon_ad_height = "90";//--></script>
<script type="text/javascript" src="http://www.assoc-amazon.com/s/ads.js"></script></div>Saihttp://www.blogger.com/profile/12784084112335938233noreply@blogger.com20tag:blogger.com,1999:blog-2839017453780259099.post-13751386755133600392011-05-08T11:56:00.000+05:302011-05-08T11:56:02.121+05:30Options Menu | Android Developer TutorialAlmost every application will need a menu in order to facilitate a user to perform actions on the application. In Android there are three types of menus possible.<br />
<br />
<div class="MsoNormal">
</div>
<ol>
<li>Options Menu</li>
<li><span lang="EN-US">Context Menu</span></li>
<li><span lang="EN-US"></span><span lang="EN-US">Sub Menu</span></li>
</ol>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<br /></div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US">The <b>Options menu</b> is the one that appears when a user touches the menu button on the mobile. This is something that is associated with an activity. In 3.0 and later, this is available in the Action Bar itself for quick access.</span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US"><br /></span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US">In this article, I am showing how to create an Options Menu for devices having Android 2.3 or below.</span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US"><br /></span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US">The <b>Context Menu</b> is a floating list of menu items that appears when a user touches and holds a particular item displayed in the view, which has a menu associated with it.</span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US"><br /></span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US">The Sub Menu is a floating list of menu items that appears when the user touches a menu item that contains a nested menu.</span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US"><br /></span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US">There are two ways of creating an Options Menu in your application. One is by instantiating the </span><span lang="EN-US" style="font-family: 'Courier New';"><a href="http://developer.android.com/reference/android/view/Menu.html">Menu</a></span><span lang="EN-US"> class and the other is by inflating a Menu from an XML menu resource. Based on best practices it is always better to define the Menu in an XML and inflate it in your code.</span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US"><br /></span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US">Now, let us start with the example.</span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US"><br /></span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US">I am going to just define 3 menu items in the XML. Inflate it in my code. And when a user clicks on any of the menu items, I just </span><span lang="EN-US" style="font-family: 'Courier New';"><a href="http://developer.android.com/reference/android/widget/Toast.html">Toast</a></span><span lang="EN-US"> a message on what has been clicked.</span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US"><br /></span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US">NOTE: This is as usual not a practically useful piece, but sticking to my style, I want to keep it as uncluttered and as simple as possible so that the learning happens easily. And the focus is only on what concept we are trying to learn.</span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US"><br /></span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US">So, here is my </span><span lang="EN-US" style="font-family: 'Courier New';">options_menu.xml</span><span lang="EN-US"> that is created in the </span><span lang="EN-US" style="font-family: 'Courier New';">res/menu</span><span lang="EN-US"> folder:</span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><br /></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><?</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">xml</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: #7f007f;">version</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1.0"</span></i> <span style="color: #7f007f;">encoding</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"utf-8"</span></i><span style="color: teal;">?></span><o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">menu</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: #7f007f;">xmlns:android</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i><span style="color: teal;">></span><o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">item</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/next"</span></i><o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: #7f007f;">android:icon</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@drawable/ic_next"</span></i><o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: #7f007f;">android:title</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@string/next"</span></i> <span style="color: teal;">/></span><o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">item</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/previous"</span></i><o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: #7f007f;">android:icon</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@drawable/ic_previous"</span></i><o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: #7f007f;">android:title</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@string/previous"</span></i> <span style="color: teal;">/></span><o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">item</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/list"</span></i><o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: #7f007f;">android:icon</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@drawable/ic_list"</span></i><o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: #7f007f;">android:title</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@string/list"</span></i> <span style="color: teal;">/></span><span style="color: black;"> </span><o:p></o:p></span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: teal; font-family: 'Courier New'; font-size: 10pt; line-height: 14px;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt; line-height: 14px;">menu</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt; line-height: 14px;">></span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US"><br /></span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US">You see that the </span><span lang="EN-US" style="font-family: 'Courier New';">Menu</span><span lang="EN-US"> root node consists of 3 </span><span lang="EN-US" style="font-family: 'Courier New';">item</span><span lang="EN-US"> leaf nodes. Each of the </span><span lang="EN-US" style="font-family: 'Courier New';">items</span><span lang="EN-US"> consists of an </span><span lang="EN-US" style="font-family: 'Courier New';">id</span><span lang="EN-US">, </span><span lang="EN-US" style="font-family: 'Courier New';">icon</span><span lang="EN-US"> and </span><span lang="EN-US" style="font-family: 'Courier New';">title</span><span lang="EN-US">. The resource </span><span lang="EN-US" style="font-family: 'Courier New';">id</span><span lang="EN-US"> is unique to that </span><span lang="EN-US" style="font-family: 'Courier New';">item</span><span lang="EN-US"> and it allows the application to recognize which item has been clicked by the user. The </span><span lang="EN-US" style="font-family: 'Courier New';">icon</span><span lang="EN-US"> is a drawable that should exist in the </span><span lang="EN-US" style="font-family: 'Courier New';">res/drawable</span><span lang="EN-US"> folder and is the one shown in the menu item. The </span><span lang="EN-US" style="font-family: 'Courier New';">string</span><span lang="EN-US"> is the item’s title.</span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US"><br /></span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US">The above assumes that you have three images </span><span lang="EN-US" style="font-family: 'Courier New';">ic_next, ic_previous </span><span lang="EN-US">and </span><span lang="EN-US" style="font-family: 'Courier New';">ic_list</span><span lang="EN-US"> copied into the </span><span lang="EN-US" style="font-family: 'Courier New';">drawable</span><span lang="EN-US"> folder. It goes without saying that these image sizes should be kept as small as possible.</span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US">Once this is ready, we will create a class called </span><span style="color: black; font-family: 'Courier New'; font-size: 10pt; line-height: 14px;">ViewOptionsMenu. </span><span lang="EN-US">It’s </span><span lang="EN-US" style="font-family: 'Courier New';">onCreate(…)</span><span lang="EN-US"> method would be a simple one calling the super method and displaying the content as shown below.</span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US"><br /></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">public</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">void</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> onCreate(Bundle savedInstanceState) {</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">super</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">.onCreate(savedInstanceState);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> setContentView(R.layout.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">main</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt; line-height: 14px;"> }<o:p></o:p></span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US"><br /></span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US">The </span><span lang="EN-US" style="font-family: 'Courier New';">main.xml</span><span lang="EN-US"> just shows the message: “</span><span lang="EN-US" style="font-family: 'Courier New';">Click on the Options Menu to view the available Menu Options</span><span lang="EN-US">”. This message as per the norm is defined in the </span><span lang="EN-US" style="font-family: 'Courier New';">strings.xml</span><span lang="EN-US"> file that exists in the </span><span lang="EN-US" style="font-family: 'Courier New';">res/values</span><span lang="EN-US"> folder. Here are the contents of the </span><span lang="EN-US" style="font-family: 'Courier New';">main.xml</span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><br /></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><?</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">xml</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: #7f007f;">version</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1.0"</span></i> <span style="color: #7f007f;">encoding</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"utf-8"</span></i><span style="color: teal;">?></span><o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">LinearLayout</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: #7f007f;">xmlns:android</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i><o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: #7f007f;">android:orientation</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"vertical"</span></i><o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fill_parent"</span></i><o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fill_parent"</span></i><o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: teal;">></span><o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"><</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;">TextView</span><span style="font-family: 'Courier New'; font-size: 10pt;"> <o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fill_parent"</span></i><o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i><o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: #7f007f;">android:text</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@string/welcome"</span></i><o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="font-family: 'Courier New'; font-size: 10pt;"> <span style="color: #7f007f;">android:textSize</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"20sp"</span></i> <span style="color: #7f007f;">android:textStyle</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"bold"</span></i> <span style="color: #7f007f;">android:capitalize</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"none"</span></i> <span style="color: #7f007f;">android:typeface</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"sans"</span></i><span style="color: teal;">/></span><o:p></o:p></span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: teal; font-family: 'Courier New'; font-size: 10pt; line-height: 14px;"></</span><span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt; line-height: 14px;">LinearLayout</span><span style="color: teal; font-family: 'Courier New'; font-size: 10pt; line-height: 14px;">><o:p></o:p></span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US"><br /></span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US">Now, I need to override the method: </span><span style="color: black; font-family: 'Courier New'; font-size: 10pt; line-height: 14px;">onCreateOptionsMenu(Menu menu). </span><span style="color: black; line-height: 18px;">This method is called by Android the first time the activity is loaded. This is so for Android 2.3 and below. Here is the code:<o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"><br /></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">public</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">boolean</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> onCreateOptionsMenu(Menu menu) {</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> MenuInflater inflater = getMenuInflater();</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> inflater.inflate(R.menu.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">options_menu</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">, menu);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">return</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">true</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">;</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt; line-height: 14px;"> }<o:p></o:p></span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US"><br /></span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US">This method is getting a handle to the </span><span lang="EN-US" style="font-family: 'Courier New';"><a href="http://developer.android.com/reference/android/view/MenuInflater.html">MenuInflater</a></span><span lang="EN-US"> and using it to inflate the options menu that we have defined earlier in </span><span lang="EN-US" style="font-family: 'Courier New';">options_menu.xml</span><span lang="EN-US"> in the </span><span lang="EN-US" style="font-family: 'Courier New';">res/menu</span><span lang="EN-US"> folder. That is it. The Menu is created. Isn’t is so simple?</span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US"><br /></span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US">Now, that the menu is created, how do we respond to the user when he clicks on the menu. This is done by overriding the </span><span style="color: black; font-family: 'Courier New'; font-size: 10pt; line-height: 14px;">onOptionsItemSelected(MenuItem item)</span><span style="color: black; line-height: 18px;"> method in the Activity itself as shown below:<o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"><br /></span></b></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">public</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">boolean</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> onOptionsItemSelected(MenuItem item) {</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">switch</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> (item.getItemId()) {</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">case</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> R.id.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">next</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">:</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> Toast.<i>makeText</i>(</span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">this</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">, </span><span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;">"You have chosen the "</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> + getResources().getString(R.string.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">next</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">) + </span><span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;">" menu option"</span><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">,</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> Toast.</span><i><span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;">LENGTH_SHORT</span></i><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">).show();</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">return</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">true</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">;</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">…</span></b><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">default</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">:</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
</div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in;">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">return</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;"> </span><b><span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;">super</span></b><span style="color: black; font-family: 'Courier New'; font-size: 10pt;">.onOptionsItemSelected(item);</span><span style="font-family: 'Courier New'; font-size: 10pt;"><o:p></o:p></span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span style="color: black; font-family: 'Courier New'; font-size: 10pt; line-height: 14px;"> }<o:p></o:p></span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US"><br /></span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US">Here, the Android system calls this method by passing a handle to the </span><span lang="EN-US" style="font-family: 'Courier New';"><a href="http://developer.android.com/reference/android/view/MenuItem.html">MenuItem</a></span><span lang="EN-US"> that has been clicked by the user. So, within this method, I check which item has been clicked by retrieving the item id through </span><span lang="EN-US" style="font-family: 'Courier New';">item.getItemId().</span><span lang="EN-US"> Then I use the </span><span lang="EN-US" style="font-family: 'Courier New';">switch</span><span lang="EN-US"> statement to take action based on the </span><span lang="EN-US" style="font-family: 'Courier New';">id</span><span lang="EN-US">. If it is </span><span lang="EN-US" style="font-family: 'Courier New';">R.id.next</span><span lang="EN-US"> that has been selected, then we toast a message that the “Next” menu option has been selected. In real apps, it is here that you can call the appropriate method that should take action according to the menu clicked.</span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US"><br /></span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US">Similarly I toast messages for “previous” as well as “list” menus. <a href="http://www.mediafire.com/file/xbjsevxhdcck9zk/OptionsMenuExample%202.2.zip">The complete code is downloadable here.</a></span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US"><br /></span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
See the images below for how the options
menu appears</div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US"></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span lang="EN-US"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTda5Uz8_NrXS6ny-IEhuIfrjfc3hmzpmNg1QJ503zgo5k_qcgqwpiHU4eYgl-8_P4v_yNmMDLKC1HUQb9BZ7ZLxh5TNpB67UAxGl_lBGv8APQ98b2kT7XFv-BUeyTBFCLbe3dg9tbiQEC/s1600/OptionsMenu.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="232" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTda5Uz8_NrXS6ny-IEhuIfrjfc3hmzpmNg1QJ503zgo5k_qcgqwpiHU4eYgl-8_P4v_yNmMDLKC1HUQb9BZ7ZLxh5TNpB67UAxGl_lBGv8APQ98b2kT7XFv-BUeyTBFCLbe3dg9tbiQEC/s320/OptionsMenu.PNG" width="320" /></a></span></div>
<div class="MsoNormal">
<span lang="EN-US"><span lang="EN-US"> </span>and what happens when you click on the
options menu:</span></div>
<div class="separator" style="clear: both; text-align: center;">
<span lang="EN-US"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGWDqybpFVCBH1uqoBQ_6j9ySCqCmT2WlMmK_7C1fIYqc5odA1_eCcbPBkSl6RVAVk_AdFlEflKGzii1hRq998Sqo8eDdsNeOtWn39HT-JKkp16SnHuoq5AD1sdZefRcQzLv9hq7ro6YMz/s1600/OptionsMenu1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGWDqybpFVCBH1uqoBQ_6j9ySCqCmT2WlMmK_7C1fIYqc5odA1_eCcbPBkSl6RVAVk_AdFlEflKGzii1hRq998Sqo8eDdsNeOtWn39HT-JKkp16SnHuoq5AD1sdZefRcQzLv9hq7ro6YMz/s320/OptionsMenu1.PNG" width="214" /></a></span></div>
<div class="MsoNormal">
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US"><span lang="EN-US">The whole of options menu works slightly differently for Android 3.0 and above.</span></span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US"><span lang="EN-US"><br /></span></span></div>
</div>
<div class="MsoNormal">
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US"><span lang="EN-US">And if you want to change the menu options, at runtime, you must override the </span><span lang="EN-US" style="font-family: 'Courier New';">onPrepareMenuOptions()</span><span lang="EN-US"> method. This is called by Android each time the user clicks on the menu. This is useful for enabling, disabling, adding or removing menu items based on the current state of your application. </span></span></div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US"><span lang="EN-US"><br /></span></span></div>
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;">
<span lang="EN-US"><span lang="EN-US"></span></span></div>
</div>
<br />
</div><div class="blogger-post-footer"><script type="text/javascript"><!--
amazon_ad_tag = "saigstec-20"; amazon_ad_width = "728"; amazon_ad_height = "90";//--></script>
<script type="text/javascript" src="http://www.assoc-amazon.com/s/ads.js"></script></div>Saihttp://www.blogger.com/profile/12784084112335938233noreply@blogger.com17tag:blogger.com,1999:blog-2839017453780259099.post-38580225759522258412011-04-18T14:54:00.000+05:302011-04-18T14:54:57.770+05:30Android Developers Blog: Can I use this Intent?<div>We all know that the loose coupling provided by Android through intents is one of its most powerful features. It makes it possible for us to mix and match the use of activities between various applications as though they all belong to one. </div><div><br /></div><div>However, when I want to invoke another application that has published an intent filter, I cannot always assume that the other application is available on the phone. So, I need to check its availability and then only enable the feature to call it. </div><div><br /></div><div>This is very well explained in the link: <a href="http://android-developers.blogspot.com/2009/01/can-i-use-this-intent.html">Android Developers Blog: Can I use this Intent?</a></div><div><br /></div><div class="blogger-post-footer"><script type="text/javascript"><!--
amazon_ad_tag = "saigstec-20"; amazon_ad_width = "728"; amazon_ad_height = "90";//--></script>
<script type="text/javascript" src="http://www.assoc-amazon.com/s/ads.js"></script></div>Saihttp://www.blogger.com/profile/12784084112335938233noreply@blogger.com1tag:blogger.com,1999:blog-2839017453780259099.post-14633016916286371522011-03-11T16:57:00.000+05:302011-03-11T16:57:56.334+05:30TabLayout or Tabbed View | Android Developer Tutorial<br />
<div class="MsoNormal">
This tutorial is about developing a
TabLayout <span style="mso-spacerun: yes;"> </span>/ tabs which is one of the
very important ways of providing the UI in Android.<span style="mso-spacerun: yes;"> </span>The default Contacts application uses this
layout.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">For creating a tab Layout, we need to look
at 3 new aspects: <a href="http://developer.android.com/reference/android/app/TabActivity.html">TabActivity</a>,
<a href="http://developer.android.com/reference/android/widget/TabHost.html">TabHost</a>
and <a href="http://developer.android.com/reference/android/widget/TabWidget.html">TabWidget</a>.
<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">Let us begin by looking at how we should
declare the layout xml. <span style="mso-spacerun: yes;"> </span>The root node
has to be a <a href="http://developer.android.com/reference/android/widget/TabHost.html">TabHost</a>.
What is a <a href="http://developer.android.com/reference/android/widget/TabHost.html">TabHost</a>
and why is it required? It is nothing but a container for the tabbed view we
want to create. It provides methods to add the tabs, remove them and to bring
focus to a specific tab etc.<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">Within this, we need to have a two objects:
<a href="http://developer.android.com/reference/android/widget/TabWidget.html">TabWidget</a>
and a <a href="http://developer.android.com/reference/android/widget/FrameLayout.html">FrameLayout</a>.
<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">The <a href="http://developer.android.com/reference/android/widget/TabWidget.html">TabWidget</a>
itself does not do much except contain a list of tab labels that exist within
the parent <a href="http://developer.android.com/reference/android/widget/TabHost.html">TabHost</a>.
<span style="mso-spacerun: yes;"> </span>Basically it is nothing but a set of
labels that the user clicks in order to select a specific tab. The actual
content of each tab is to be held by the 2<sup>nd</sup> object in the <a href="http://developer.android.com/reference/android/widget/TabHost.html">TabHost</a>
i.e. a <a href="http://developer.android.com/reference/android/widget/FrameLayout.html">FrameLayout</a>.
Hence both the <a href="http://developer.android.com/reference/android/widget/TabWidget.html">TabWidget</a>
and <a href="http://developer.android.com/reference/android/widget/FrameLayout.html">FrameLayout</a>
need to be present on each tab. And in order to align htme one after another,
we embed them into a <a href="http://developer.android.com/reference/android/widget/LinearLayout.html">LinearLayout</a>.
<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">Hence the layout XML would be like this:<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><br /></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><</span><span style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;">TabHost</span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 1;"> </span><span style="color: #7f007f;">xmlns:android</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 1;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@android:id/tabhost"</span></i>
<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 1;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fill_parent"</span></i>
<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 1;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fill_parent"</span></i>
<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 1;"> </span><span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><</span><span style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;">LinearLayout</span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 1;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@+id/LinearLayout01"</span></i>
<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 1;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fill_parent"</span></i>
<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 1;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fill_parent"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 1;"> </span><span style="color: #7f007f;">android:orientation</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"vertical"</span></i><span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><</span><span style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;">TabWidget</span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 1;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@android:id/tabs"</span></i>
<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 1;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fill_parent"</span></i>
<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 1;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"wrap_content"</span></i><span style="color: teal;">></</span><span style="color: #3f7f7f;">TabWidget</span><span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><</span><span style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;">FrameLayout</span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 1;"> </span><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@android:id/tabcontent"</span></i>
<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 1;"> </span><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fill_parent"</span></i>
<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 1;"> </span><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"fill_parent"</span></i><span style="color: teal;">></</span><span style="color: #3f7f7f;">FrameLayout</span><span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"></</span><span style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;">LinearLayout</span><span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;">></span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-GB;"></</span><span style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-GB;">TabHost</span><span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-GB;">></span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">Now, we will move on to the coding of
activities for a Tabbed Layout. <o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">In the application, I want to have 3 tabs.
So how do I do it? <o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">Each of the tabs can have either a View,
launch an activity by passing an intent or create a view dynamically by using <a href="http://developer.android.com/reference/android/widget/TabHost.TabContentFactory.html">TabHost.TabContentFactory</a>.
I have chosen to show only activities in all my tabs.<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">So, how many activities do you think we
need? 3? Sorry 4! There needs to be a main or the parent activity that would
display the whole tabbed view and one activity in each of the tabs.<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">Now let us look at developing the main
activity. This has to extend the <a href="http://developer.android.com/reference/android/app/TabActivity.html">TabActivity</a>.
<span style="mso-spacerun: yes;"> </span>This is no different from an Activity
except for the additional ability to handle multiple embedded activities or
views.<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">So here is the main class declaration:<o:p></o:p></span></div>
<div class="MsoNormal">
<b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-GB;"><br /></span></b></div>
<div class="MsoNormal">
<b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-GB;">public</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-GB;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-GB;">class</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-GB;"> TabLayoutSample </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-GB;">extends</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-GB;"> TabActivity {</span><span lang="EN-US"><o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">Let us see now, how to create the first
tab.<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">First, we need to get a handle to the <a href="http://developer.android.com/reference/android/widget/TabHost.html">TabHost</a>
that we have declared in the XML layout file, so that we can add tab activities
into it. Here is the code for the same:<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-GB;"><span style="mso-spacerun: yes;"><br /></span></span></div>
<div class="MsoNormal">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-GB;"><span style="mso-spacerun: yes;"> </span>TabHost tabHost = getTabHost();<span style="mso-spacerun: yes;"> </span></span><span style="color: #3f7f5f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-GB;">// The activity TabHost<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">Into this <a href="http://developer.android.com/reference/android/widget/TabHost.html">TabHost</a>,
we need to add the tab. How can we? <a href="http://developer.android.com/reference/android/widget/TabHost.html">TabHost</a>
provides an inner class called <a href="http://developer.android.com/reference/android/widget/TabHost.TabSpec.html">TabSpec</a>
that allows you to create a tab, populate its contents and add it as a tab to
the <a href="http://developer.android.com/reference/android/widget/TabHost.html">TabHost</a>.<span style="mso-spacerun: yes;"> </span>See how it is done:<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><br /></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;">TabHost.TabSpec spec;<span style="mso-spacerun: yes;"> </span><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: .5in; margin-right: 0in; margin-top: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: #3f7f5f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><br />
// Create an Intent to launch an Activity for the tab (to be reused)</span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><span style="mso-spacerun: yes;"> </span>intent = </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;">new</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"> Intent().setClass(</span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;">this</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;">, WelcomeActivity.</span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;">class</span></b><span style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;">);</span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #3f7f5f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;">// Initialize
a TabSpec for each tab and add it to the TabHost</span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><span style="mso-spacerun: yes;"> </span>spec = tabHost.newTabSpec(</span><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;">"welcome"</span><span style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;">).setIndicator(</span><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;">"Welcome"</span><span style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;">,</span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><span style="mso-spacerun: yes;">
</span>res.getDrawable(R.drawable.</span><i><span style="color: #0000c0; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;">tab_welcome</span></i><span style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;">))</span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><span style="mso-spacerun: yes;"> </span>.setContent(intent);</span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><span style="mso-spacerun: yes;"> </span>tabHost.addTab(spec);</span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><o:p></o:p></span></div>
<div class="MsoNormal" style="text-indent: .5in;">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">In the first line above, we are creating a
spec variable of type <a href="http://developer.android.com/reference/android/widget/TabHost.TabSpec.html">TabSpec</a>.
Then we are creating an intent that would be forming the content of the first
tab. Then, we associate it with the <a href="http://developer.android.com/reference/android/widget/TabHost.TabSpec.html">TabSpec</a>.<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">Since, each tab should have a tab
indicator, content and a tag to keep track of it, it is achieved through </span><span style="color: black; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-GB;">setIndicator</span><span lang="EN-US">(..) method. Even the
image that should be shown in the tab at the top is set through the same method’s
2<sup>nd</sup> parameter </span><span style="color: black; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-GB;">res</span><span lang="EN-US">.</span><span style="color: black; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-GB;">getDrawable</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10.0pt; line-height: 115%;">(R.Drawable.tab_welcome).</span><span lang="EN-US"> What is this and how did I set the image? <o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">This part is a long set of steps but very
easy to do. Create two images one in light color and one in dark color. Call
them as </span><span lang="EN-US" style="font-family: "Courier New";">welcome.png</span><span lang="EN-US"> and </span><span lang="EN-US" style="font-family: "Courier New";">welcome_sepia.png</span><span lang="EN-US">. Copy them into the </span><span lang="EN-US" style="font-family: "Courier New";">/res/drawable-mdpi </span><span lang="EN-US">folder.<span style="mso-spacerun: yes;"> </span>The, you need to create a </span><span lang="EN-US" style="font-family: "Courier New";">state-list drawable</span><span lang="EN-US"> that specifies which image to use for each tab state: <o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US"><br /></span></div>
<div class="MsoNormal">
<span lang="EN-US">[A </span><span lang="EN-US" style="font-family: "Courier New";">StateListDrawable</span><span lang="EN-US"> is
a drawable object defined in XML that uses a several different images to represent
the same graphic, depending on the state of the object. For example, a Button
widget can exist in one of several different states (pressed, focused, or neither)
and, using a state list drawable, you can provide a different background image
for each state.]<o:p></o:p></span></div>
<div class="MsoNormal">
<span style="mso-ansi-language: EN-GB;"><br /></span></div>
<div class="MsoNormal">
<span style="mso-ansi-language: EN-GB;">So, here is the </span><span style="font-family: "Courier New"; mso-ansi-language: EN-GB;">tab_welcome.xml</span><span style="mso-ansi-language: EN-GB;">: <o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><br /></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><?</span><span style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;">xml</span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"> <span style="color: #7f007f;">version</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"1.0"</span></i>
<span style="color: #7f007f;">encoding</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"UTF-8"</span></i><span style="color: teal;">?></span><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><</span><span style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;">selector</span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"> <span style="color: #7f007f;">xmlns:android</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"http://schemas.android.com/apk/res/android"</span></i><span style="color: teal;">></span><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><!-- When
selected, use grey --></span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><span style="mso-spacerun: yes;"> </span></span><span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><</span><span style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;">item</span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"> <span style="color: #7f007f;">android:drawable</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@drawable/welcome"</span></i><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><span style="mso-spacerun: yes;"> </span><span style="color: #7f007f;">android:state_selected</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"true"</span></i>
<span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><span style="mso-spacerun: yes;"> </span></span><span style="color: #3f5fbf; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><!-- When
not selected, use white--></span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><span style="mso-spacerun: yes;"> </span></span><span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"><</span><span style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;">item</span><span style="font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;"> <span style="color: #7f007f;">android:drawable</span><span style="color: black;">=</span><i><span style="color: #2a00ff;">"@drawable/welcome_sepia"</span></i>
<span style="color: teal;">/></span><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-GB;"></</span><span style="color: #3f7f7f; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-GB;">selector</span><span style="color: teal; font-family: "Courier New"; font-size: 10.0pt; line-height: 115%; mso-ansi-language: EN-GB;">></span><span style="mso-ansi-language: EN-GB;"><o:p></o:p></span></div>
<div class="MsoNormal">
<span style="mso-ansi-language: EN-GB;"><br /></span></div>
<div class="MsoNormal">
<span style="mso-ansi-language: EN-GB;">This XML is describing
which welcome image to show when the tab is selected and which to show when the
tab is not selected. <span style="mso-spacerun: yes;"> </span>This XML too needs
to be created in the same folder - </span><span lang="EN-US" style="font-family: "Courier New";">/res/drawable-mdpi.</span><span style="mso-ansi-language: EN-GB;"><o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="mso-ansi-language: EN-GB;"><br /></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="mso-ansi-language: EN-GB;">Once all of this is done, when </span><span style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;">setIndicator(</span><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;">"Welcome"</span><span style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;">,<span style="mso-spacerun: yes;">
</span>res.getDrawable(R.drawable.</span><i><span style="color: #0000c0; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;">tab_welcome</span></i><span style="color: black; font-family: "Courier New"; font-size: 10.0pt; mso-ansi-language: EN-GB;">))</span><span style="color: black; mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">is called, the image
associated with the tab is shown correctly based on the state.<o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<span style="color: black; mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">Then,
the last part of the tabSpec call is associating the activity that should be
shown in the content of the activity. For this, I have</span><span style="mso-ansi-language: EN-GB;"> created a new Intent which invokes an Activity
– ‘</span><span style="font-family: "Courier New"; mso-ansi-language: EN-GB;">WelcomeActivity.class’</span><span style="mso-ansi-language: EN-GB;">. <span style="mso-spacerun: yes;"> </span>this
implies that the </span><span style="font-family: "Courier New"; mso-ansi-language: EN-GB;">WelcomeActivity.class</span><span style="mso-ansi-language: EN-GB;"> is already
created and available. In this case, it just contains a welcome message to be
shown. <o:p></o:p></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: .0001pt; margin-bottom: 0in; mso-layout-grid-align: none; text-autospace: none;">
<br /></div>
<div class="MsoNormal">
<span style="mso-ansi-language: EN-GB;">Once such a spec is
created, I add it to the </span><span lang="EN-US"><a href="http://developer.android.com/reference/android/widget/TabHost.html">TabHost</a>
</span><span style="mso-ansi-language: EN-GB;">through the </span><span style="font-family: "Courier New"; mso-ansi-language: EN-GB;">addtab(…) </span><span style="mso-ansi-language: EN-GB;">method of the </span><span lang="EN-US"><a href="http://developer.android.com/reference/android/widget/TabHost.html">TabHost</a></span><span style="mso-ansi-language: EN-GB;">.<o:p></o:p></span></div>
<div class="MsoNormal">
<span lang="EN-US">I have repeated the above to show existing
“contacts” in the next tab and then the “top links” in the third tab. You can
get <a href="http://www.mediafire.com/file/0egl1sibd8xwghr/TabLayoutSample2.2.zip">the
complete code for the same here</a>.<o:p></o:p></span></div><div class="blogger-post-footer"><script type="text/javascript"><!--
amazon_ad_tag = "saigstec-20"; amazon_ad_width = "728"; amazon_ad_height = "90";//--></script>
<script type="text/javascript" src="http://www.assoc-amazon.com/s/ads.js"></script></div>Saihttp://www.blogger.com/profile/12784084112335938233noreply@blogger.com16tag:blogger.com,1999:blog-2839017453780259099.post-23421101148787273822011-02-18T15:44:00.000+05:302011-02-18T15:44:37.862+05:30ListView of Data from SQLiteDatabase - Android<span lang="EN-US">This is a next level tutorial where I am mixing two concepts – The <a href="http://developer.android.com/reference/android/widget/ListView.html">ListView</a> concept that is explicitly explained in the <a href="http://saigeethamn.blogspot.com/2010/04/simple-listview-android-developer.html">ListView Tutorial</a> and the <a href="http://saigeethamn.blogspot.com/2009/10/android-developer-tutorial-part-12.html">SQLiteDB concept in into own tutorial.</a> </span><br />
<div class="MsoNormal">
<br />
<span lang="EN-US">Here I am intending to query a database using a <a href="http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html">SQLiteDatabase</a> API. The results I obtain are in a <a href="http://developer.android.com/reference/android/database/Cursor.html">Cursor</a> object that I iterate and create an <a href="http://developer.android.com/reference/java/util/ArrayList.html">ArrayList</a> that is passed to the <a href="http://developer.android.com/reference/android/widget/ListView.html">ListView</a>. Let us see the steps involved in this exercise:</span></div>
<div class="MsoNormal">
<br />
<span lang="EN-US">In the</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10pt; line-height: 115%;"> onCreate(…) </span><span lang="EN-US">method I have 2 methods corresponding to the two steps described above:</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none; text-indent: 0.5in;">
<br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">openAndQueryDatabase();</span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-spacerun: yes;"> </span></span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-spacerun: yes;"> </span>displayResultList();</span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span style="color: black; mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">Let us see what each of them does:</span></div>
<div class="MsoNormal">
<br />
<span style="color: black; mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">Here is the first step:</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<br />
<b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">private</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">void</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"> openAndQueryDatabase() {</span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 2;"> </span></span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">try</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"> {</span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 3;"> </span>DBHelper dbHelper = </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">new</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"> DBHelper(</span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">this</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">.getApplicationContext());</span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 3;"> </span></span><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">newDB</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"> = dbHelper.getWritableDatabase();</span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 3;"> </span>Cursor c = </span><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">newDB</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">.rawQuery(</span><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">"SELECT FirstName, Age FROM "</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"> +</span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 1;"> </span><span style="mso-spacerun: yes;"> </span><span style="mso-tab-count: 3;"> </span></span><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">tableName</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"> +</span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 1;"> </span><span style="mso-spacerun: yes;"> </span><span style="mso-tab-count: 3;"> </span></span><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">" where Age > 10 LIMIT 4"</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">, </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">null</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">);</span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<br /></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 1;"> </span><span style="mso-spacerun: yes;"> </span><span style="mso-tab-count: 1;"> </span></span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">if</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"> (c != </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">null</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"> ) {</span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 1;"> </span><span style="mso-spacerun: yes;"> </span><span style="mso-tab-count: 2;"> </span></span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">if</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-spacerun: yes;"> </span>(c.moveToFirst()) {</span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 1;"> </span><span style="mso-spacerun: yes;"> </span><span style="mso-tab-count: 3;"> </span></span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">do</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"> {</span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 1;"> </span><span style="mso-spacerun: yes;"> </span><span style="mso-tab-count: 4;"> </span>String firstName = c.getString(c.getColumnIndex(</span><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">"FirstName"</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">));</span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 1;"> </span><span style="mso-spacerun: yes;"> </span><span style="mso-tab-count: 4;"> </span></span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">int</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"> age = c.getInt(c.getColumnIndex(</span><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">"Age"</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">));</span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 1;"> </span><span style="mso-spacerun: yes;"> </span><span style="mso-tab-count: 4;"> </span></span><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">results</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">.add(</span><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">"Name: "</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"> + firstName + </span><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">",Age: "</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"> + age);</span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 1;"> </span><span style="mso-spacerun: yes;"> </span><span style="mso-tab-count: 3;"> </span>}</span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">while</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"> (c.moveToNext());</span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 1;"> </span><span style="mso-spacerun: yes;"> </span><span style="mso-tab-count: 2;"> </span>} </span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 1;"> </span><span style="mso-spacerun: yes;"> </span><span style="mso-tab-count: 1;"> </span>}<span style="mso-tab-count: 3;"> </span></span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 2;"> </span>} </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">catch</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"> (SQLiteException se ) {</span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-spacerun: yes;"> </span><span style="mso-tab-count: 1;"> </span>Log.<i>e</i>(getClass().getSimpleName(), </span><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">"Could not create or Open the database"</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">);</span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-spacerun: yes;"> </span>} </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">finally</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"> {</span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-spacerun: yes;"> </span><span style="mso-tab-count: 1;"> </span></span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">if</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"> (</span><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">newDB</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"> != </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">null</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">) </span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-spacerun: yes;"> </span><span style="mso-tab-count: 2;"> </span></span><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">newDB</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">.execSQL(</span><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">"DELETE FROM "</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"> + </span><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">tableName</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">);</span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-spacerun: yes;"> </span><span style="mso-tab-count: 2;"> </span></span><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">newDB</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">.close();</span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-spacerun: yes;"> </span>}</span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<br /></div>
<div class="MsoNormal">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 1;"> </span>}<span style="mso-spacerun: yes;"> </span></span></div>
<div class="MsoNormal">
<br />
<span style="color: black; mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">Now, </span><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%; mso-ansi-language: EN-GB;">DBHelper</span><span style="color: black; font-size: 10pt; line-height: 115%; mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"> </span><span style="color: black; mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">is a class I have written extending the <a href="http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html">SQLiteOpenHelper</a> class. All that it does is create a database by name “sample”, create a table within it and insert values into the table. It does this if the database does not already exist. <span style="mso-spacerun: yes;"> </span>The table name is “Resource” and the columns in the table are Lastname, Firstname, Country, Age.</span></div>
<div class="MsoNormal">
<br />
<span style="color: black; mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">The code for this example can be<a href="http://www.mediafire.com/file/9t1blyl1wscdw6u/SQLiteDBListView%202.2.zip"> downloaded here</a> and you can look into the </span><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%; mso-ansi-language: EN-GB;">DBHelper</span><span style="color: black; font-size: 10pt; line-height: 115%; mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"> </span><span style="color: black; mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">code as well (which I do not want to elaborate here)</span></div>
<div class="MsoNormal">
<br />
<span style="color: black; mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">So, from the </span><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%; mso-ansi-language: EN-GB;">DBHelper</span><span style="color: black; font-size: 10pt; line-height: 115%; mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"> </span><span style="color: black; mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">class we get an open database which we call the </span><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%; mso-ansi-language: EN-GB;">newDB</span><span style="color: black; mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">. Using this handle, we query the table for values. To keep it simple, while retrieving values I have hard-coded the column names which need not be the case. So I run a </span><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%; mso-ansi-language: EN-GB;">rawQuery</span><span style="color: black; font-size: 10pt; line-height: 115%; mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"> </span><span style="color: black; mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">and get the results into a </span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10pt; line-height: 115%;"><a href="http://developer.android.com/reference/android/database/Cursor.html">Cursor</a></span><span style="color: black; mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">. </span></div>
<div class="MsoNormal">
<br />
<span style="color: black; mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">Next I iterate through the </span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10pt; line-height: 115%;"><a href="http://developer.android.com/reference/android/database/Cursor.html">Cursor</a></span><span style="color: black; mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">and populate the results into an </span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10pt; line-height: 115%;"><a href="http://developer.android.com/reference/java/util/ArrayList.html">ArrayList</a> </span><span style="color: black; mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">of Strings “</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%; mso-ansi-language: EN-GB;">result</span><span style="color: black; mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">”.<span style="mso-spacerun: yes;"> </span>In the </span><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%; mso-ansi-language: EN-GB;">finally</span><span style="color: black; font-size: 10pt; line-height: 115%; mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"> </span><span style="color: black; mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">block, I not only close the database but before that I delete all the entries inserted into the database by the </span><span style="color: black; font-family: "Courier New"; font-size: 10pt; line-height: 115%; mso-ansi-language: EN-GB;">DBHelper</span><span style="color: black; font-size: 10pt; line-height: 115%; mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"> </span><span style="color: black; mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">class just to clean up. </span></div>
<div class="MsoNormal">
<br />
<span style="color: black; mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">Next how do I display the results in a </span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10pt; line-height: 115%;"><a href="http://developer.android.com/reference/android/widget/ListView.html">ListView</a></span><span style="color: black; mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">. If you know </span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10pt; line-height: 115%;"><a href="http://developer.android.com/reference/android/widget/ListView.html">ListView</a></span><span style="color: black; mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">– how it works it is rather simple. Else you could look at the </span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10pt; line-height: 115%;"><a href="http://saigeethamn.blogspot.com/2010/04/simple-listview-android-developer.html">ListView<span lang="EN-GB" style="font-family: "Calibri", "sans-serif"; font-size: 11pt; line-height: 115%; mso-ansi-language: EN-GB; mso-ascii-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-hansi-theme-font: minor-latin;">Tutorial</span></a></span><span style="color: black; mso-ansi-language: EN-GB; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">. Here is the method:</span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<br />
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 1;"> </span></span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">private</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"> </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">void</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"> displayResultList() {</span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 2;"> </span>TextView tView = </span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">new</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"> TextView(</span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">this</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">);</span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-spacerun: yes;"> </span>tView.setText(</span><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">"This data is retrieved from the database and only 4 "</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"> +</span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-spacerun: yes;"> </span><span style="mso-tab-count: 2;"> </span></span><span style="color: #2a00ff; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">"of the results are displayed"</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">);</span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-spacerun: yes;"> </span>getListView().addHeaderView(tView);</span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-spacerun: yes;"> </span></span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-spacerun: yes;"> </span>setListAdapter(</span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">new</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"> ArrayAdapter<String>(</span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">this</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">,</span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-spacerun: yes;"> </span>android.R.layout.</span><i><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">simple_list_item_1</span></i><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">, </span><span style="color: #0000c0; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">results</span><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">));</span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-spacerun: yes;"> </span>getListView().setTextFilterEnabled(</span><b><span style="color: #7f0055; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">true</span></b><span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;">);</span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 2;"> </span></span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 0in; mso-layout-grid-align: none;">
<span style="color: black; font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"><span style="mso-tab-count: 1;"> </span>}</span><span style="font-family: "Courier New"; font-size: 10pt; mso-ansi-language: EN-GB;"></span></div>
<div class="MsoNormal">
<br />
<span lang="EN-US" style="font-size: 12pt; line-height: 115%; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">The only additional bit I have done here is to add a </span><span lang="EN-US" style="font-family: "Courier New";">HeaderView</span><span lang="EN-US" style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"> </span><span lang="EN-US" style="font-size: 12pt; line-height: 115%; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">(which is using the concept of <a href="http://saigeethamn.blogspot.com/2010/12/creating-android-ui-programmatically.html">programming UI explained in another tutorial</a>). </span></div>
<div class="MsoNormal">
<br />
<span lang="EN-US" style="font-size: 12pt; line-height: 115%; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;">I have written this tutorial based on some of the requests in my blog. Hope this helps.</span></div><div class="blogger-post-footer"><script type="text/javascript"><!--
amazon_ad_tag = "saigstec-20"; amazon_ad_width = "728"; amazon_ad_height = "90";//--></script>
<script type="text/javascript" src="http://www.assoc-amazon.com/s/ads.js"></script></div>Saihttp://www.blogger.com/profile/12784084112335938233noreply@blogger.com37tag:blogger.com,1999:blog-2839017453780259099.post-82877153597283546292011-02-01T16:23:00.001+05:302011-02-01T16:24:46.221+05:30Android Developers Blog: Android 3.0 Platform Preview and Updated SDK Tools<a href="http://android-developers.blogspot.com/2011/01/android-30-platform-preview-and-updated.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+blogspot%2FhsDu+%28Android+Developers+Blog%29">Android Developers Blog: Android 3.0 Platform Preview and Updated SDK Tools</a><br />
<div>
<br /></div>
<div>
Being in the domain of developing applications for large enterprises, what looks to me as interesting features of Android 3.0:</div>
<div>
1. Enhancements for the Enterprise such as encrypted storage and password expiration! </div>
<div>
2. And a UI Framework to suit larger screen devices.</div>
<div>
<br /></div>
<div>
Currently any enterprise that develops mobile applications has to duplicate its efforts towards developing and testing on each of the platforms like Android, Windows, Blackberry, iPhone etc. (Though I know there are a host of "write-once, deply on multi-platforms' options like <a href="http://www.appmobi.com/">AppMobi</a>, <a href="http://monotouch.net/">Monotouch</a>, <a href="http://www.anscamobile.com/">Corona from Anscamobile</a>, they need to mature a lot more). I hope this will help in consolidating development effort towards: "write once, run anywhere" for mobile devices.</div>
<div>
<br /></div>
<div>
I am looking at the Android market picking up rapidly and becoming the de-facto JVM equivalent in the mobile space...</div>
<div>
<br /></div>
<div>
How easy could life get with writing an app for one mobile and bingo! it works on all possible mobile devices that exist!! or at least majority of them! :)</div>
<div>
<br /></div>
<div>
<br /></div><div class="blogger-post-footer"><script type="text/javascript"><!--
amazon_ad_tag = "saigstec-20"; amazon_ad_width = "728"; amazon_ad_height = "90";//--></script>
<script type="text/javascript" src="http://www.assoc-amazon.com/s/ads.js"></script></div>Saihttp://www.blogger.com/profile/12784084112335938233noreply@blogger.com2