package Ġcom . web add ict ed . kotlin project . view . device info Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . content . res . Configuration Ċ import Ġandroid . net . Connectivity Manager Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . Html Ċ import Ġandroidx . databinding . ViewData Binding Ċ import Ġcom . web add ict ed . kotlin project . R Ċ import Ġcom . web add ict ed . kotlin project . databinding . Frm Dev Feature Binding Ċ import Ġcom . web add ict ed . kotlin project . view . base . Base Fragment Ċ Ċ class ĠDevice Features Frm Ġ: ĠBase Fragment ( R . layout . frm _ dev _ feature ) Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Binding : ĠF rm Dev Feature Binding ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠTAG Ġ= ĠDevice Features Frm :: class . qualified Name ĊĠĠĠĠĠĠĠ Ġfun ĠgetInstance ( bundle : ĠBundle ): ĠDevice Features Frm Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= ĠDevice Features Frm () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . arguments Ġ= Ġbundle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfragment ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun Ġon Bind To ( binding : ĠView Data Binding ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Binding Ġ= Ġbinding Ġas ĠF rm Dev Feature Binding ĊĠĠĠĠĠĠĠ Ġget Device Features () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Device Features () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtxt Color : ĠString Ġ= Ġif Ġ(( resources . configuration . ui Mode Ġand ĠConfiguration . UI _ MODE _ N IGHT _ MASK ) Ġ== ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConfiguration . UI _ MODE _ N IGHT _ NO ĊĠĠĠĠĠĠĠ Ġ) Ġ"# 0 0 0 0 0 0 " ĊĠĠĠĠĠĠĠ Ġelse Ġ"# FFFFFF " ĊĠĠĠĠĠĠĠ Ġval Ġconn Manager Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. getSystem Service ( Context . CONNECT IVITY _ SERVICE ) Ġas ĠConnect ivity Manager ĊĠĠĠĠĠĠĠ Ġval Ġm Wifi Ġ= Ġconn Manager . get Network Info ( Connectivity Manager . TYPE _ WIFI ) ĊĠĠĠĠĠĠĠ Ġval Ġpackage Manager Ġ= Ġactivity ?. package Manager ĊĠĠĠĠĠĠĠ Ġval Ġfeature Info Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" < font Ġcolor ="$ txt Color "> Wifi Ġ: Ġ</ font >${ get Availability ( m Wifi !!. is Available )} < br >< font Ġcolor ="$ txt Color "> WIFI ĠDirect Ġ: Ġ</ font >${ get Availability ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Manager ?. has System Feature ( PackageManager . FEATURE _ WIFI _ DIRECT ) !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)} < br >< font Ġcolor ="$ txt Color "> Bluetooth Ġ: Ġ</ font >${ get Availability ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Manager . has System Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . FEATURE _ BL U ETO OTH ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)} < br >< font Ġcolor ="$ txt Color "> Bluetooth ĠLE Ġ: Ġ</ font >${ get Availability ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Manager . has System Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . FEATURE _ BL U ETO OTH _ LE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)} < br >< font Ġcolor ="$ txt Color "> GPS Ġ: Ġ</ font >${ get Availability ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Manager . has System Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . FEATURE _ LOCATION _ GPS ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)} < br >< font Ġcolor ="$ txt Color "> Camera ĠFlash Ġ: Ġ</ font >${ get Availability ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Manager . has System Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . FEATURE _ CAMERA _ FLASH ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)} < br >< font Ġcolor ="$ txt Color "> Camera ĠFront Ġ: Ġ</ font >${ get Availability ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Manager . has System Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . FEATURE _ CAMERA _ FRONT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)} < br >< font Ġcolor ="$ txt Color "> Micro phone Ġ: Ġ</ font >${ get Availability ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Manager . has System Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . FEATURE _ MICRO PHONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)} < br >< font Ġcolor ="$ txt Color "> N FC Ġ: Ġ</ font >${ get Availability ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Manager . has System Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . FEATURE _ N FC ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)} < br >< font Ġcolor ="$ txt Color "> USB ĠHost Ġ: Ġ</ font >${ get Availability ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Manager . has System Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . FEATURE _ USB _ HOST ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)} < br >< font Ġcolor ="$ txt Color "> USB ĠAccess ory Ġ: Ġ</ font >${ get Availability ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Manager . has System Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . FEATURE _ USB _ ACCESS ORY ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)} < br >< font Ġcolor ="$ txt Color "> Mult it ouch Ġ: Ġ</ font >${ get Availability ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Manager . has System Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . FEATURE _ TO UCH SCREEN _ MULT IT OU CH ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)} < br >< font Ġcolor ="$ txt Color "> Audio Ġlow - latency Ġ: Ġ</ font >${ get Availability ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Manager . has System Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . FEATURE _ AUDIO _ LOW _ LAT ENCY ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)} < br >< font Ġcolor ="$ txt Color "> Audio ĠOutput Ġ: Ġ</ font >${ get Availability ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Manager . has System Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . FEATURE _ AUDIO _ OUTPUT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)} < br >< font Ġcolor ="$ txt Color "> Prof essional ĠAudio Ġ: Ġ</ font >${ get Availability ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Manager . has System Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . FEATURE _ AUDIO _ PRO ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)} < br >< font Ġcolor ="$ txt Color "> Consumer ĠIR Ġ: Ġ</ font >${ get Availability ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Manager . has System Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . FEATURE _ CON SUM ER _ IR ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)} < br >< font Ġcolor ="$ txt Color "> Gamepad ĠSupport Ġ: Ġ</ font >${ get Availability ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Manager . has System Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . FEATURE _ GAME PAD ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)} < br >< font Ġcolor ="$ txt Color "> HI FI ĠSensor Ġ: Ġ</ font >${ get Availability ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Manager . has System Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . FEATURE _ HI FI _ S ENS ORS ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)} < br >< font Ġcolor ="$ txt Color "> Print ing Ġ: Ġ</ font >${ get Availability ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Manager . has System Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . FEATURE _ PRINT ING ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)} < br >< font Ġcolor ="$ txt Color "> CD MA Ġ: Ġ</ font >${ get Availability ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Manager . has System Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . FEATURE _ TELE PHONY _ CD MA ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)} < br >< font Ġcolor ="$ txt Color "> G SM Ġ: Ġ</ font >${ get Availability ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Manager . has System Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . FEATURE _ TELE PHONY _ G SM ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)} < br >< font Ġcolor ="$ txt Color "> F inger - print Ġ: Ġ</ font >${ get Availability ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Manager . has System Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . FEATURE _ F ING ER PRINT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)} < br >< font Ġcolor ="$ txt Color "> App ĠWidget s Ġ: Ġ</ font >${ get Availability ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Manager . has System Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . FEATURE _ APP _ WIDGET S ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)} < br >< font Ġcolor ="$ txt Color "> S IP Ġ: Ġ</ font >${ get Availability ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Manager . has System Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . FEATURE _ S IP ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)} < br >< font Ġcolor ="$ txt Color "> S IP Ġbased ĠV O IP Ġ: Ġ</ font >${ get Availability ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Manager . has System Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . FEATURE _ S IP _ VO IP ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)} < br >< font Ġcolor ="$ txt Color "> Micro phone Ġ: Ġ</ font >${ get Availability ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Manager . has System Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . FEATURE _ MICRO PHONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)} < br >< font Ġcolor ="$ txt Color "> Micro phone Ġ: Ġ</ font >${ get Availability ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Manager . has System Feature ( PackageManager . FEATURE _ MICRO PHONE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)} < br >< font Ġcolor ="$ txt Color "> Micro phone Ġ: Ġ</ font >${ get Availability ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Manager . has System Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . FEATURE _ MICRO PHONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)} < br >< font Ġcolor ="$ txt Color "> Micro phone Ġ: Ġ</ font >${ get Availability ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Manager . has System Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . FEATURE _ MICRO PHONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)} < br >< font Ġcolor ="$ txt Color "> Micro phone Ġ: Ġ</ font >${ get Availability ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Manager . has System Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . FEATURE _ MICRO PHONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)} < br > """ ĊĠĠĠĠĠĠĠ Ġm Binding . txt Device Feature . text Ġ= ĠHtml . from Html ( feature Info , ĠHtml . FROM _ HTML _ MODE _ LEG ACY ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Availability ( available : ĠBoolean ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( available ) Ġ" Available " ĊĠĠĠĠĠĠĠ Ġelse Ġ" Not ĠSupported " ĊĠĠĠ Ġ} Ċ } Ċ