/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 7 - 2 0 1 9 ĠDi ep DT Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . one vn . browser . legacy . speed dial . view Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . graphics . Bitmap Factory Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . MenuItem Ċ import Ġcom . one vn . browser . bookmark . view . Bookmark Activity Ċ import Ġcom . one vn . browser . core . utility . extensions . get Bitmap Ċ import Ġcom . one vn . browser . legacy . R Ċ import Ġcom . one vn . browser . legacy . history . Browser History Activity Ċ import Ġcom . one vn . browser . legacy . speed dial . Speed Dial Ċ import Ġcom . one vn . browser . legacy . speed dial . Web Icon Ċ import Ġcom . one vn . browser . legacy . utils . app info . App Info Ċ import Ġcom . one vn . browser . legacy . utils . app info . Application List Fragment Ċ import Ġcom . one vn . browser . legacy . utils . app info . Short Cut List Fragment Ċ import Ġcom . one vn . browser . legacy . utils . stack . Single Stack Ċ import Ġcom . one vn . browser . ui . app . Theme Activity Ċ Ċ class ĠSpeed Dial Setting Activity Ġ: ĠTheme Activity (), ĠSpeed Dial Edit CallBack , Ġandroidx . fragment . app . FragmentManager . On Back Stack Changed Listener , ĠSpeed Dial Setting Activity Fragment . On Speed Dial Add Listener , ĠSpeed Dial Setting Activity Edit Fragment . Go Back Controller , ĠApplication List Fragment . On App Select Listener , ĠShort Cut List Fragment . On Short Cut Select Listener Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġspeed Dial Stack Ġ= Ġobject Ġ: ĠSingle Stack < Speed Dial >() Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġprocess Item ( item : ĠSpeed Dial ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgo Edit ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . fragment _ base ) ĊĊĠĠĠĠĠĠĠ Ġsupport FragmentManager . add On Back Stack Changed Listener ( this ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( savedInstanceState Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ( R . id . container , ĠSpeed Dial Setting Activity Fragment (), Ġ" main ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. commit () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( intent Ġ!= Ġnull Ġ&& ĠACTION _ ADD _ SPEED _ DI AL Ġ== Ġintent . action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġintent . getString Extra ( Intent . EXTRA _ TITLE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġintent . getString Extra ( Intent . EXTRA _ TEXT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġicon Ġ= Ġintent . get Parcelable Extra < Bitmap >( EXTRA _ ICON ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspeed Dial Stack . addItem ( Speed Dial ( url , Ġtitle , ĠWeb Icon . create Icon OrNull ( icon ), Ġtrue )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġshould Display Home Up () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġgo Back (): ĠBoolean Ġ= Ġsupport FragmentManager . pop Back Stack Immediate () ĊĊĠĠĠ Ġoverride Ġfun Ġgo Edit ( speed Dial : ĠSpeed Dial ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsupport FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addTo Back Stack ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ( R . id . container , ĠSpeed Dial Setting Activity Edit Fragment . newInstance ( speed Dial )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. commit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd From Bookmark () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠBook mark Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ Ġaction Ġ= ĠIntent . ACTION _ P ICK Ġ} ĊĠĠĠĠĠĠĠ ĠstartActivity For Result ( intent , ĠRESULT _ REQUEST _ BOOK MARK ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd From History () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠBrowser History Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ Ġaction Ġ= ĠIntent . ACTION _ P ICK Ġ} ĊĠĠĠĠĠĠĠ ĠstartActivity For Result ( intent , ĠRESULT _ REQUEST _ HISTORY ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd From App List () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= ĠIntent ( Intent . ACTION _ MAIN ). apply Ġ{ Ġadd Category ( Intent . CATEGORY _ LA UNCH ER ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġsupport FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addTo Back Stack ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ( R . id . container , ĠApplication List Fragment . newInstance ( target )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. commit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd From Short Cut List () Ġ{ ĊĠĠĠĠĠĠĠ Ġsupport FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addTo Back Stack ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ( R . id . container , ĠShort Cut List Fragment ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. commit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" DE PREC ATION ") ĊĠĠĠ Ġoverride Ġfun Ġon Short Cut Selected ( data : ĠIntent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġgo Back () ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= Ġdata . get Parcelable Extra < Intent >( Intent . EXTRA _ SHORT CUT _ INT ENT ) ĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġdata . getString Extra ( Intent . EXTRA _ SHORT CUT _ NAME ) ĊĠĠĠĠĠĠĠ Ġvar Ġicon : ĠBitmap ? Ġ= Ġdata . get Parcelable Extra ( Intent . EXTRA _ SHORT CUT _ ICON ) ĊĠĠĠĠĠĠĠ Ġif Ġ( icon Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġicon Res Ġ= Ġdata . get Parcelable Extra < Intent . Shortcut Icon Resource >( Intent . EXTRA _ SHORT CUT _ ICON _ RESOURCE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( icon Res Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġforeign Resources Ġ= Ġpackage Manager . getResources For Application ( icon Res . packageName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġforeign Resources . getIdentifier ( icon Res . resourceName , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Ġ= ĠBitmap Factory . decode Resource ( foreign Resources , Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠPackage Manager . Name NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( icon Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcomponent Ġ= Ġintent . component ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( component Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdrawable Ġ= Ġpackage Manager . getApplication Icon ( component . packageName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon Ġ= Ġdrawable . get Bitmap () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠPackage Manager . Name NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġweb Icon Ġ= ĠWeb Icon . create Icon OrNull ( icon ) ĊĊĠĠĠĠĠĠĠ Ġval Ġspeed Dial Ġ= ĠSpeed Dial ( intent . to Uri ( Intent . URI _ INT ENT _ SCHEME ), Ġname , Ġweb Icon , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġspeed Dial Stack . addItem ( speed Dial ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon App Selected ( type : ĠInt , Ġapp Info : ĠApp Info ) Ġ{ ĊĠĠĠĠĠĠĠ Ġgo Back () ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent () ĊĠĠĠĠĠĠĠ Ġintent . set ClassName ( app Info . packageName , Ġapp Info . className ) ĊĠĠĠĠĠĠĠ Ġval Ġweb Icon Ġ= ĠWeb Icon . create Icon ( app Info . icon . get Bitmap ()) ĊĠĠĠĠĠĠĠ Ġval Ġspeed Dial Ġ= ĠSpeed Dial ( intent . to Uri ( Intent . URI _ INT ENT _ SCHEME ), Ġapp Info . appName , Ġweb Icon , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġspeed Dial Stack . addItem ( speed Dial ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( request Code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRESULT _ REQUEST _ BOOK MARK , ĠRESULT _ REQUEST _ HISTORY Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ!= ĠActivity . RESULT _ OK Ġ|| Ġdata Ġ== Ġnull ) Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġdata . getString Extra ( Intent . EXTRA _ TITLE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġdata . getString Extra ( Intent . EXTRA _ TEXT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġicon Ġ= Ġdata . get ByteArray Extra ( Intent . EXTRA _ STREAM ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspeed Dial Ġ= Ġif Ġ( icon Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSpeed Dial ( url , Ġtitle ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSpeed Dial ( url , Ġtitle , ĠWeb Icon ( icon ), Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspeed Dial Stack . addItem ( speed Dial ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Edited ( speed Dial : ĠSpeed Dial ) Ġ{ ĊĠĠĠĠĠĠĠ Ġgo Back () ĊĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= Ġsupport FragmentManager . find Fragment By Tag (" main ") ĊĠĠĠĠĠĠĠ Ġif Ġ( fragment Ġis ĠSpeed Dial Edit CallBack ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . on Edited ( speed Dial ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . id . home Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshould Display Home Up () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcan Back Ġ= Ġsupport FragmentManager . back Stack Entry Count Ġ== Ġ 0 ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. set Display Home As Up Enabled ( can Back ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġspeed Dial Stack . on Pause () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġspeed Dial Stack . on Resume () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Stack Changed () Ġ{ ĊĠĠĠĠĠĠĠ Ġshould Display Home Up () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠACTION _ ADD _ SPEED _ DI AL Ġ= Ġ" com . one vn . browser . legacy . speed dial . view . Speed Dial Setting Activity . add _ speed _ dial " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEX TRA _ ICON Ġ= ĠACTION _ ADD _ SPEED _ DI AL Ġ+ Ġ". icon " ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠRESULT _ REQUEST _ BOOK MARK Ġ= Ġ 1 0 0 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠRESULT _ REQUEST _ HISTORY Ġ= Ġ 1 0 1 ĊĠĠĠ Ġ} Ċ } Ċ