package Ġcom . k ier on qu inn . app . t apt ap . activities Ċ Ċ import Ġandroid . animation . Value Animator Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . res . Configuration Ċ import Ġandroid . hardware . Sensor Manager Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . navigation . Nav Controller Ċ import Ġandroidx . navigation . Nav Destination Ċ import Ġandroidx . navigation . find Nav Controller Ċ import Ġcom . k ier on qu inn . app . t apt ap . R Ċ import Ġcom . k ier on qu inn . app . t apt ap . activities . equipment .* Ċ import Ġcom . k ier on qu inn . app . t apt ap . ais peak . TT S Ċ import Ġcom . k ier on qu inn . app . t apt ap . fragments . Base Fragment Ċ import Ġcom . k ier on qu inn . app . t apt ap . sensor . Im u Sensor Ċ import Ġcom . k ier on qu inn . app . t apt ap . utils . Bluetooth Service Ċ import Ġcom . k ier on qu inn . app . t apt ap . utils . animate Color Change Ċ import Ġcom . k ier on qu inn . app . t apt ap . utils . animate Elevation Change Ċ import Ġcom . k ier on qu inn . app . t apt ap . utils . dip Ċ import Ġdev . chr is ban es . in setter . In setter Ċ import Ġdev . chr is ban es . in setter . apply System Window Insets To Padding Ċ import Ġkotlinx . android . synt hetic . main . activity _ settings .* Ċ import Ġkotlin . concurrent . thread Ċ Ċ var Ġm Bluetooth Ġ= ĠBluetooth Service () Ċ // IM U Ċ late init Ġvar Ġ Ġmis user Ġ: ĠI mu Sensor Ċ Ċ class ĠSettings Activity Ġ: ĠAppCompatActivity (), ĠNav Controller . On Destination Changed Listener Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġstring Two Ġ: ĠString Ġ= Ġ" è¯· ä»İ ç¬¬äºĮ ä¸ª ä½įç½® æĮĩ ç¤º è®¾å¤ĩ ä½įç½® å¹¶ Tap ĠT ap " ĊĠĠĠ Ġprivate Ġvar Ġcalibration Success Ġ: ĠString Ġ= Ġ" æłĩ å®ļ æĪĲåĬŁ ï¼ģ " ĊĠĠĠ Ġprivate Ġvar Ġcalibration Failed Ġ: ĠString Ġ= Ġ" æłĩ å®ļ å¤±è´¥ ï¼Į è¯· ä»İ ç¬¬ä¸Ģä¸ª ä½įç½® æĮĩ ç¤º è®¾å¤ĩ ä½įç½® å¹¶ Tap ĠT ap ï¼ģ " ĊĠĠĠ Ġprivate Ġval Ġis Light Theme ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġresources . configuration . ui Mode . and ( Configuration . UI _ MODE _ N IGHT _ MASK ) Ġ!= ĠConfiguration . UI _ MODE _ N IGHT _ YES ĊĊĠĠĠ Ġprivate Ġval Ġnav Controller Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġfind Nav Controller ( R . id . nav _ host _ fragment ) ĊĠĠĠ Ġ} Ċ Ċ // ĠĠĠ Ġ// åĪĿå§ĭåĮĸ åıĺéĩı Ċ // ĠĠĠ Ġcompanion Ġobject Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġvar Ġmy UUID : ĠUUID Ġ= ĠUUID . fromString (" 0 0 0 0 1 1 0 1 - 0 0 0 0 - 1 0 0 0 - 8 0 0 0 - 0 0 8 0 5 F 9 B 3 4 FB ") Ċ // ĠĠĠĠĠĠĠ Ġvar Ġm Bluetooth Socket : ĠBluetooth Socket ? Ġ= Ġnull Ċ // ĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġm Bluetooth Adapter : ĠBluetooth Adapter Ċ // ĠĠĠĠĠĠĠ Ġvar Ġis Blue Connected : ĠBoolean Ġ= Ġfalse Ċ // ĠĠĠĠĠĠĠ Ġconst Ġval ĠMESSAGE _ RECEIVE _ TAG Ġ= Ġ 1 1 1 Ċ // ĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġblue Address : ĠString Ċ // ĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġblue Name : ĠString Ċ // ĠĠĠĠĠĠĠ Ġprivate Ġval ĠB UNDLE _ RECEIVE _ DATA Ġ= Ġ" Receive Data " Ċ // ĠĠĠĠĠĠĠ Ġprivate Ġval ĠTAG Ġ= Ġ" Blue Device Activity " Ċ // Ċ // ĠĠĠĠĠĠĠ Ġ// è®¾ç½® åıĳéĢģ åĴĮ æİ¥æĶ¶ çļĦ åŃĹç¬¦ ç¼ĸçłģ æł¼å¼ı Ċ // ĠĠĠĠĠĠĠ Ġprivate Ġval ĠEN CODING _ FORMAT Ġ= Ġ" GB K " Ċ // ĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ settings ) ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( toolbar ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Home As Up Indicator ( R . drawable . ic _ back ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġnav Controller . add On Destination Changed Listener ( this ) ĊĠĠĠĠĠĠĠ ĠIn setter . set Edge To Edge System Ui Flags ( window . decor View , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġif Ġ( is Light Theme ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . decor View . system Ui Visibility Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . decor View . system Ui Visibility . or ( View . SYSTEM _ UI _ FLAG _ LIGHT _ STATUS _ BAR ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. or ( View . SYSTEM _ UI _ FLAG _ LIGHT _ NAV IG ATION _ BAR ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtoolbar . apply System Window Insets To Padding ( top Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġset Toolbar Elevation Enabled ( false ) ĊĊĠĠĠĠĠĠĠ Ġ// IM U ĊĠĠĠĠĠĠĠ Ġvar Ġsensor Manager Ġ: ĠSensor Manager Ġ= Ġget System Service ( SENSOR _ SERVICE ) Ġas ĠSensor Manager ĊĠĠĠĠĠĠĠ Ġmis user Ġ= ĠI mu Sensor ( sensor Manager ) ĊĠĠĠĠĠĠĠ Ġmis user . init () ĊĊĠĠĠĠĠĠĠ Ġ// èİ·åıĸ èĵĿ çī Ļ è®¾å¤ĩ çļĦ åĲįåŃĹ åĴĮ åľ°åĿĢ ĊĠĠĠĠĠĠĠ Ġm Bluetooth . blue Address Ġ= Ġintent . getString Extra ( MainActivity . BLUE _ ADDRESS ) !! ĊĠĠĠĠĠĠĠ Ġm Bluetooth . blue Name Ġ= Ġintent . getString Extra ( MainActivity . BLUE _ NAME ) !! ĊĊĠĠĠĠĠĠĠ Ġm Bluetooth . fun Start Blue Client Connect () ĊĠĠĠĠĠĠĠ Ġ// æīĵå¼Ģ èĵĿ çī Ļ æİ¥æĶ¶ æ¶Īæģ¯ ĊĊĠĠĠĠĠĠĠ Ġm Bluetooth . fun Blue Client Start Receive () ĊĊĠĠĠĠĠĠĠ Ġreceive Action () ĊĊĠĠĠĠĠĠĠ Ġ// çĤ¹åĩ» åıĳéĢģ æ¶Īæģ¯ Ċ // ĠĠĠĠĠĠĠ Ġval Ġstring Buffer Ġ= ĠStringBuffer () Ċ // ĠĠĠĠĠĠĠ Ġvar ĠtoString Ġ= Ġ" hello " Ċ //// ĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( check _ blue _ add _ newline . isChecked ) Ġ{ Ċ //// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtoString Ġ+= Ġ"\ r \ n " Ċ //// ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( is Blue Connected ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġstring Buffer . append (" åıĳéĢģ çļĦ æ¶Īæģ¯ :" Ġ+ ĠtoString ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġstring Buffer . toString ()) " APP 1 " Ċ // ĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġstring Buffer . append (" åıĳéĢģ å¤±è´¥ ï¼Į èĵĿ çī Ļ è¿ŀæİ¥ å·²ç»ı æĸŃ å¼Ģ ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġstring Buffer . toString ()) Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Destination Changed ( controller : ĠNav Controller , Ġdestination : ĠNav Destination , Ġarguments : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġtoolbar _ title ?. text Ġ= Ġdestination . label ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġis Toolbar Elevation Enabled Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġtoolbar Color Animation : ĠValue Animator ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtoolbar Elevation Animation : ĠValue Animator ? Ġ= Ġnull ĊĊĊĊĠĠĠ Ġfun Ġset Toolbar Elevation Enabled ( enabled : ĠBoolean ){ ĊĠĠĠĠĠĠĠ Ġif ( enabled Ġ== Ġis Toolbar Elevation Enabled ) Ġreturn ĊĠĠĠĠĠĠĠ Ġis Toolbar Elevation Enabled Ġ= Ġenabled ĊĠĠĠĠĠĠĠ Ġval Ġtoolbar Color Ġ= Ġif ( enabled ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( this , ĠR . color . toolbar Color ) ĊĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( this , ĠR . color . window Background ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġelevation Ġ= Ġif ( enabled ) Ġdip ( 8 ). toFloat () Ġelse Ġ 0 f ĊĠĠĠĠĠĠĠ Ġval Ġinitial Before Color Ġ= Ġif ( toolbar Color Animation Ġ== Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( this , ĠR . color . toolbar Color ) ĊĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtoolbar Color Animation ?. cancel () ĊĠĠĠĠĠĠĠ Ġtoolbar Elevation Animation ?. cancel () ĊĠĠĠĠĠĠĠ Ġtoolbar Color Animation Ġ= Ġtoolbar . animate Color Change ( before Color Ġ= Ġinitial Before Color , Ġafter Color Ġ= Ġtoolbar Color ) ĊĠĠĠĠĠĠĠ Ġtoolbar Elevation Animation Ġ= Ġtoolbar . animate Elevation Change ( elevation ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġreceive Action (){ ĊĠĠĠĠĠĠĠ Ġthread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( true ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( m Bluetooth . getMessage Ġ!= Ġ""){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( m Bluetooth . getMessage ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" tele vision " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// èİ·åıĸ intent å¯¹è±¡ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . set Class ( this , Ġtele vision :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġèİ·åıĸ class æĺ¯ ä½¿çĶ¨ :: åıį å°Ħ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Bluetooth . getMessage Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" air condition er " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// èİ·åıĸ intent å¯¹è±¡ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . set Class ( this , Ġair Condition er :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġèİ·åıĸ class æĺ¯ ä½¿çĶ¨ :: åıį å°Ħ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Bluetooth . getMessage Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" audio " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// èİ·åıĸ intent å¯¹è±¡ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . set Class ( this , Ġaudio :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġèİ·åıĸ class æĺ¯ ä½¿çĶ¨ :: åıį å°Ħ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Bluetooth . getMessage Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" fan " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// èİ·åıĸ intent å¯¹è±¡ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . set Class ( this , Ġfan :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġèİ·åıĸ class æĺ¯ ä½¿çĶ¨ :: åıį å°Ħ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Bluetooth . getMessage Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" sw eeper " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// èİ·åıĸ intent å¯¹è±¡ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . set Class ( this , Ġsw eeper :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġèİ·åıĸ class æĺ¯ ä½¿çĶ¨ :: åıį å°Ħ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Bluetooth . getMessage Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" a " Ġ-> { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠT TS ( this , Ġstring Two , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Bluetooth . getMessage Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Bluetooth . start calibration Ġ= Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" b " Ġ-> { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠT TS ( this , Ġcalibration Success , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Bluetooth . getMessage Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Bluetooth . start calibration Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" c " Ġ-> { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠT TS ( this , Ġcalibration Failed , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Bluetooth . getMessage Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Bluetooth . start calibration Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen ( item ?. itemId ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . id . home Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav Controller . navigate Up () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnav Host Fragment Ġ= Ġsupport FragmentManager . find Fragment ById ( R . id . nav _ host _ fragment ) ĊĠĠĠĠĠĠĠ Ġif Ġ( nav Host Fragment ?. child FragmentManager Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Fragment Ġ= Ġnav Host Fragment . child FragmentManager . fragments [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġ( current Fragment Ġas ? ĠBase Fragment )?. on Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġtrue ) Ġsuper . on Back Pressed () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }