package Ġcom . github . ze ck son . le de qual izer Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . bluetooth . Bluetooth Adapter Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Handler Ċ import Ġandroid . os . Message Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . view .* Ċ import Ġandroid . view . input method . Editor Info Ċ import Ġandroid . widget .* Ċ import Ġcom . github . ze ck son . activity . Device List Activity Ċ import Ġcom . github . ze ck son . le de qual izer . common . logger . Log Ċ Ċ private Ġval ĠT EMPL ATES Ġ= ĠarrayOf (" black ", Ġ" red ", Ġ" green ", Ġ" blue ", Ġ" the ater White ", Ġ" the ater Red ", Ġ" the ater Blue ", ĊĠĠĠĠĠĠĠ Ġ" rain bow ", Ġ" rain bow Cycle ", Ġ" the ater Ch ase Rain bow ", Ġ" pulse White ", Ġ" rain bow Fade 2 White ", ĊĠĠĠĠĠĠĠ Ġ" white Over Rain bow ", Ġ" full White ") Ċ Ċ /** Ċ Ġ* ĠThis Ġfragment Ġcontrols ĠBluetooth Ġto Ġcommunicate Ġwith Ġother Ġdevices . Ċ Ġ*/ Ċ class ĠLED Templates Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġ// ĠLayout ĠViews ĊĠĠĠ Ġprivate Ġvar Ġm Templates ListView : ĠListView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Out EditText : ĠEditText ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar ĠmCurrent Device : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Send Button : ĠButton ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠName Ġof Ġthe Ġconnected Ġdevice ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġm Connected Device Name : ĠString ? Ġ= Ġnull ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠString Ġbuffer Ġfor Ġoutgoing Ġmessages ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġm Out StringBuffer : ĠStringBuffer ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠLocal ĠBluetooth Ġadapter ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġm Bluetooth Adapter : ĠBluetooth Adapter ? Ġ= Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMember Ġobject Ġfor Ġthe Ġchat Ġservices ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġm Service : ĠBluetooth Service ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġset Has Options Menu ( true ) ĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġlocal ĠBluetooth Ġadapter ĊĠĠĠĠĠĠĠ Ġm Bluetooth Adapter Ġ= ĠBluetooth Adapter . getDefault Adapter () ĊĊĠĠĠĠĠĠĠ Ġ// ĠIf Ġthe Ġadapter Ġis Ġnull , Ġthen ĠBluetooth Ġis Ġnot Ġsupported ĊĠĠĠĠĠĠĠ Ġif Ġ( m Bluetooth Adapter Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactivity Ġ= Ġactivity ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( activity , Ġ" Bluetooth Ġis Ġnot Ġavailable ", ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . finish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĠĠĠĠĠĠĠ Ġ// In Ġcase Ġwe Ġare Ġrunning Ġon Ġemulator ĊĠĠĠĠĠĠĠ Ġif Ġ( m Bluetooth Adapter Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( activity , Ġ" Bluetooth Ġadapter Ġis Ġnot Ġfound Ġor Ġforbidden ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Bluetooth Service () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ(! m Bluetooth Adapter !!. isEnabled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIf ĠBT Ġis Ġnot Ġon , Ġrequest Ġthat Ġit Ġbe Ġenabled . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġsetup Chat () Ġwill Ġthen Ġbe Ġcalled Ġduring Ġon Activity Result ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġenable Intent Ġ= ĠIntent ( Bluetooth Adapter . ACTION _ REQUEST _ ENABLE ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity For Result ( enable Intent , ĠREQUEST _ ENABLE _ BT ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( m Service Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠOtherwise , Ġsetup Ġthe Ġchat Ġsession ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Bluetooth Service () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġif Ġ( m Service Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Service !!. stop () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater ?, Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater !!. inflate ( R . layout . fragment _ led _ templates , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView ?, ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Templates ListView Ġ= Ġview !!. findViewById ( R . id .` templates `) Ġas ĠListView ĊĠĠĠĠĠĠĠ Ġm Out EditText Ġ= Ġview . findViewById ( R . id . edit _ text _ out ) Ġas ĠEditText ĊĠĠĠĠĠĠĠ Ġm Send Button Ġ= Ġview . findViewById ( R . id . button _ send ) Ġas ĠButton ĊĠĠĠĠĠĠĠ ĠmCurrent Device Ġ= Ġview . findViewById ( R . id . selected _ device ) Ġas ĠTextView ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġup Ġthe ĠUI Ġand Ġbackground Ġoperations Ġfor Ġchat . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġsetup Bluetooth Service () Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" setup BT Service () ") ĊĊĠĠĠĠĠĠĠ Ġ// ĠInitialize Ġthe Ġarray Ġadapter Ġfor Ġthe Ġconversation Ġthread ĊĠĠĠĠĠĠĠ Ġval Ġtemplate Adapter Ġ= ĠArray Adapter < String >( activity , ĠR . layout . template _ name , ĠT EMPL ATES ) ĊĊĠĠĠĠĠĠĠ Ġm Templates ListView !!. adapter Ġ= Ġtemplate Adapter ĊĊĠĠĠĠĠĠĠ Ġm Templates ListView !!. on ItemClickListener Ġ= Ġobject Ġ: ĠAdapter View . On ItemClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Click ( parent : ĠAdapter View < *> ?, Ġview : ĠView ?, Ġposition : ĠInt , Ġid : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtemplate Ġ= ĠT EMPL ATES [ position ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsendMessage ( template Ġ+ Ġ"# ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠInitialize Ġthe Ġcompose Ġfield Ġwith Ġa Ġlistener Ġfor Ġthe Ġreturn Ġkey ĊĠĠĠĠĠĠĠ Ġm Out EditText !!. setOn Editor ActionListener ( m Write Listener ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠInitialize Ġthe Ġsend Ġbutton Ġwith Ġa Ġlistener Ġthat Ġfor Ġclick Ġevents ĊĠĠĠĠĠĠĠ Ġm Send Button !!. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSend Ġa Ġmessage Ġusing Ġcontent Ġof Ġthe Ġedit Ġtext Ġwidget ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġview ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( null Ġ!= Ġview ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠtextView Ġ= Ġview . findViewById ( R . id . edit _ text _ out ) Ġas ĠTextView ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠtextView . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsendMessage ( message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠInitialize Ġthe ĠBluetooth Service Ġto Ġperform Ġbluetooth Ġconnections ĊĠĠĠĠĠĠĠ Ġm Service Ġ= ĠBluetooth Service ( activity , Ġm Handler ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠInitialize Ġthe Ġbuffer Ġfor Ġoutgoing Ġmessages ĊĠĠĠĠĠĠĠ Ġm Out StringBuffer Ġ= ĠStringBuffer ("") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMakes Ġthis Ġdevice Ġdiscover able . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġensure Discover able () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Bluetooth Adapter !!. scan Mode Ġ!= ĠBluetooth Adapter . SCAN _ MODE _ CONNECT ABLE _ DIS COVER ABLE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdiscover able Intent Ġ= ĠIntent ( Bluetooth Adapter . ACTION _ REQUEST _ DIS COVER ABLE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdiscover able Intent . putExtra ( Bluetooth Adapter . EXTRA _ DIS COVER ABLE _ DURATION , Ġ 3 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( discover able Intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSends Ġa Ġmessage . ĊĊĠĠĠĠ Ġ* Ġ@ param Ġmessage ĠA Ġstring Ġof Ġtext Ġto Ġsend . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠsendMessage ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠCheck Ġthat Ġwe 're Ġactually Ġconnected Ġbefore Ġtrying Ġanything ĊĊĠĠĠĠĠĠĠ Ġ// ĠCheck Ġthat Ġthere 's Ġactually Ġsomething Ġto Ġsend ĊĠĠĠĠĠĠĠ Ġif Ġ( message . length Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠGet Ġthe Ġmessage Ġbytes Ġand Ġtell Ġthe ĠBluetooth Service Ġto Ġwrite ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Service !!. sendMessage To Current Device ( message ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠReset Ġout Ġstring Ġbuffer Ġto Ġzero Ġand Ġclear Ġthe Ġedit Ġtext Ġfield ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Out StringBuffer !!. set Length ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Out EditText !!. setText ( m Out StringBuffer ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġaction Ġlistener Ġfor Ġthe ĠEditText Ġwidget , Ġto Ġlisten Ġfor Ġthe Ġreturn Ġkey ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġm Write Listener Ġ= ĠTextView . On Editor ActionListener Ġ{ Ġview , Ġaction Id , Ġevent Ġ-> ĊĠĠĠĠĠĠĠ Ġ// ĠIf Ġthe Ġaction Ġis Ġa Ġkey - up Ġevent Ġon Ġthe Ġreturn Ġkey , Ġsend Ġthe Ġmessage ĊĠĠĠĠĠĠĠ Ġif Ġ( action Id Ġ== ĠEditor Info . IME _ NULL Ġ&& Ġevent . action Ġ== ĠKeyEvent . ACTION _ UP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġview . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsendMessage ( message ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe ĠHandler Ġthat Ġgets Ġinformation Ġback Ġfrom Ġthe ĠBluetooth Service ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġm Handler Ġ= Ġobject Ġ: ĠHandler () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle Message ( msg : ĠMessage ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactivity Ġ= Ġactivity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( msg . what ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConstants . DEVICE _ SELECTED Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġsave Ġthe Ġconnected Ġdevice 's Ġname ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Connected Device Name Ġ= Ġmsg . data . getString ( Constants . DEVICE _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( null Ġ!= Ġactivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġ" Connected Ġto Ġ" Ġ+ Ġm Connected Device Name !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( activity , Ġmessage , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmCurrent Device !!. text Ġ= Ġmessage ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConstants . MESSAGE _ TO AST Ġ-> Ġif Ġ( null Ġ!= Ġactivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( activity , Ġmsg . data . getString ( Constants . TO AST ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( data Ġ== Ġnull ) Ġreturn ĊĠĠĠĠĠĠĠ Ġwhen Ġ( request Code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠREQUEST _ CONNECT _ DEVICE _ SECURE Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠWhen ĠDevice List Activity Ġreturns Ġwith Ġa Ġdevice Ġto Ġconnect ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ== ĠActivity . RESULT _ OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconnect Device ( data , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠREQUEST _ CONNECT _ DEVICE _ IN SECURE Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠWhen ĠDevice List Activity Ġreturns Ġwith Ġa Ġdevice Ġto Ġconnect ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ== ĠActivity . RESULT _ OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconnect Device ( data , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠREQUEST _ ENABLE _ BT Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠWhen Ġthe Ġrequest Ġto Ġenable ĠBluetooth Ġreturns ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ== ĠActivity . RESULT _ OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠBluetooth Ġis Ġnow Ġenabled , Ġso Ġset Ġup Ġa Ġchat Ġsession ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetup Bluetooth Service () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠUser Ġdid Ġnot Ġenable ĠBluetooth Ġor Ġan Ġerror Ġoccurred ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" BT Ġnot Ġenabled ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( activity , ĠR . string . bt _ not _ enabled _ le aving , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . finish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠEst ablish Ġconnection Ġwith Ġother Ġdiv ice ĊĊĠĠĠĠ Ġ* Ġ@ param Ġdata ĠĠ ĠAn Ġ[ Intent ] Ġwith Ġ[ Device List Activity . EXTRA _ DEVICE _ ADDRESS ] Ġextra . ĊĠĠĠĠ Ġ* Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġsecure ĠSocket ĠSecurity Ġtype Ġ- ĠSecure Ġ( true ) Ġ, ĠIn secure Ġ( false ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġconnect Device ( data : ĠIntent , Ġsecure : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġthe Ġdevice ĠMAC Ġaddress ĊĠĠĠĠĠĠĠ Ġval Ġaddress Ġ= Ġdata . extras . getString ( Device List Activity . EXTRA _ DEVICE _ ADDRESS ) ĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġthe ĠBluetooth Device Ġobject ĊĠĠĠĠĠĠĠ ĠLog . i ( TAG , Ġ" Connecting Ġto Ġdevice Ġby Ġ$ address ") ĊĊĠĠĠĠĠĠĠ Ġm Service !!. select Device ( m Bluetooth Adapter !!. get Remote Device ( address )); ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ?, Ġinflater : ĠMenu Inflater ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġinflater !!. inflate ( R . menu . bluetooth _ chat , Ġmenu ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item !!. itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . secure _ connect _ scan Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠLaunch Ġthe ĠDevice List Activity Ġto Ġsee Ġdevices Ġand Ġdo Ġscan ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġserver Intent Ġ= ĠIntent ( activity , ĠDevice List Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity For Result ( server Intent , ĠREQUEST _ CONNECT _ DEVICE _ SECURE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . in secure _ connect _ scan Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠLaunch Ġthe ĠDevice List Activity Ġto Ġsee Ġdevices Ġand Ġdo Ġscan ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġserver Intent Ġ= ĠIntent ( activity , ĠDevice List Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity For Result ( server Intent , ĠREQUEST _ CONNECT _ DEVICE _ IN SECURE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . discover able Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠEnsure Ġthis Ġdevice Ġis Ġdiscover able Ġby Ġothers ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġensure Discover able () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTAG Ġ= Ġ" LED Templates Fragment " ĊĊĠĠĠĠĠĠĠ Ġ// ĠIntent Ġrequest Ġcodes ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠREQUEST _ CONNECT _ DEVICE _ SECURE Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠREQUEST _ CONNECT _ DEVICE _ IN SECURE Ġ= Ġ 2 ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠREQUEST _ ENABLE _ BT Ġ= Ġ 3 ĊĠĠĠ Ġ} Ċ Ċ } Ċ