package Ġopen ho ang nc . browser . activity Ċ Ċ import Ġandroid . Manifest Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . app .* Ċ import Ġandroid . content .* Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . database . Cursor Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . media . MediaPlayer Ċ import Ġandroid . media . MediaPlayer . On Completion Listener Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Environment Ċ import Ġandroid . os . Handler Ċ import Ġandroid . print . Print Attributes Ċ import Ġandroid . print . Print Manager Ċ import Ġandroid . text . Editable Ċ import Ġandroid . text . Text Watcher Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . KeyEvent Ċ import Ġandroid . view . Motion Event Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . input method . Editor Info Ċ import Ġandroid . view . input method . Input Method Manager Ċ import Ġandroid . webkit . Cookie Manager Ċ import Ġandroid . webkit . URL Util Ċ import Ġandroid . webkit . Value Callback Ċ import Ġandroid . webkit . Web Chrome Client . Custom View Callback Ċ import Ġandroid . webkit . WebView Ċ import Ġandroid . webkit . WebView . Hit TestResult Ċ import Ġandroid . widget .* Ċ import Ġandroid . widget . Adapter View . On ItemClickListener Ċ import Ġandroid . widget . Adapter View . On Item Long ClickListener Ċ import Ġandroid . widget . TextView . On Editor ActionListener Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . core . app . Notification Compat Ċ import Ġandroidx . preference . Preference Manager Ċ import Ġcom . google . android . material . bottom sheet . Bottom Sheet Behavior Ċ import Ġcom . google . android . material . bottom sheet . Bottom Sheet Behavior . Bottom Sheet Callback Ċ import Ġcom . google . android . material . bottom sheet . Bottom Sheet Dialog Ċ import Ġcom . google . android . material . floating action button . Floating ActionButton Ċ import Ġcom . mob app home . ma h encrypt orlib . MA H Encrypt or Ċ import Ġopen ho ang nc . browser . N inja . R Ċ import Ġopen ho ang nc . browser . browser .* Ċ import Ġopen ho ang nc . browser . database . Bookmark List Ċ import Ġopen ho ang nc . browser . database . Record Ċ import Ġopen ho ang nc . browser . database . Record Action Ċ import Ġopen ho ang nc . browser . service . Clear Service Ċ import Ġopen ho ang nc . browser . task . Screenshot Task Ċ import Ġopen ho ang nc . browser . unit . Browser Unit Ċ import Ġopen ho ang nc . browser . unit . Helper Unit Ċ import Ġopen ho ang nc . browser . unit . Intent Unit Ċ import Ġopen ho ang nc . browser . unit . View Unit Ċ import Ġopen ho ang nc . browser . view .* Ċ import Ġjava . io . File Ċ import Ġjava . util .* Ċ import Ġkotlin . math . floor Ċ Ċ class ĠBrowser Activity Ġ: ĠAppCompatActivity (), ĠBrowser Controller , ĠView . OnClickListener Ġ{ ĊĠĠĠ Ġ// ĠMen us ĊĠĠĠ Ġprivate Ġvar Ġmenu _ tab Preview : ĠLinearLayout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmenu _ new Tab Open : ĠLinearLayout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmenu _ close Tab : ĠLinearLayout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmenu _ quit : ĠLinearLayout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmenu _ share Screenshot : ĠLinearLayout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmenu _ share Link : ĠLinearLayout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmenu _ share PDF : ĠLinearLayout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmenu _ open With : ĠLinearLayout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmenu _ search Site : ĠLinearLayout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmenu _ settings : ĠLinearLayout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmenu _ download : ĠLinearLayout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmenu _ save Screenshot : ĠLinearLayout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmenu _ save Bookmark : ĠLinearLayout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmenu _ save PDF : ĠLinearLayout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmenu _ save Start : ĠLinearLayout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmenu _ file Manager : ĠLinearLayout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmenu _ fav : ĠLinearLayout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmenu _ sc : ĠLinearLayout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmenu _ open Fav : ĠLinearLayout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmenu _ share CP : ĠLinearLayout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġfloat Button _ tab View : ĠView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġfloat Button _ save View : ĠView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġfloat Button _ share View : ĠView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġfloat Button _ more View : ĠView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġfab _ tab : ĠImage Button ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġfab _ share : ĠImage Button ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġfab _ save : ĠImage Button ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġfab _ more : ĠImage Button ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtab _ plus : ĠImage Button ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtab _ plus _ bottom : ĠImage Button ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġadapter : ĠAdapter _ Record ? Ġ= Ġnull ĊĊĠĠĠ Ġ// ĠViews ĊĠĠĠ Ġprivate Ġvar Ġsearch Up : ĠImage Button ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġsearch Down : ĠImage Button ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġsearch Cancel : ĠImage Button ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġom ni box Refresh : ĠImage Button ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġom ni box Overflow : ĠImage Button ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġom ni box Overview : ĠImage Button ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġopen _ start Page : ĠImage Button ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġopen _ bookmark : ĠImage Button ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġopen _ history : ĠImage Button ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġopen _ menu : ĠImage Button ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġfab _ image Button Nav : ĠFloating ActionButton ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġinput Box : ĠAuto Complete TextView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar ĠprogressBar : ĠProgress Bar ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġsearch Box : ĠEditText ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġbottom Sheet Dialog : ĠBottom Sheet Dialog ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġbottom Sheet Dialog _ Over View : ĠBottom Sheet Dialog ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġn inja WebView : ĠN inja WebView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar ĠlistView : ĠListView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġom ni box Title : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġdialog Title : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġgrid View : ĠGrid View ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġcustom View : ĠView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġvideo View : ĠVideo View ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtab _ ScrollView : ĠHorizontal ScrollView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġoverview _ top : ĠLinearLayout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġoverview _ top Buttons : ĠLinearLayout ? Ġ= Ġnull ĊĊĠĠĠ Ġ// ĠLayout s ĊĠĠĠ Ġprivate Ġvar Ġapp Bar : ĠRelative Layout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġom ni box : ĠRelative Layout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġsearch Panel : ĠRelative Layout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġcontent Frame : ĠFrame Layout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġtab _ container : ĠLinearLayout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġfullscreen Holder : ĠFrame Layout ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġopen _ start Page View : ĠView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġopen _ bookmark View : ĠView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġopen _ history View : ĠView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġoverview _ title Icons _ start View : ĠView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġoverview _ title Icons _ bookmarks View : ĠView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġoverview _ title Icons _ history View : ĠView ? Ġ= Ġnull ĊĊĠĠĠ Ġ// ĠO thers ĊĠĠĠ Ġprivate Ġvar Ġtitle : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġurl : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġover View Tab : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġdownload Receiver : ĠBroadcast Receiver ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Behavior : ĠBottom Sheet Behavior < *> ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġactivity : ĠActivity ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġcontext : ĠContext ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġsp : ĠSharedPreferences ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm ah Encrypt or : ĠM AH Encrypt or ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġjava Hosts : ĠJavascript ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġcookie Hosts : ĠCookie ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġad Block : ĠAd Block ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġgrid Adapter : ĠGrid Adapter ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġfun Ġprepare Record (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠwebView Ġ= Ġcurrent Album Controller Ġas ĠN inja WebView ? ĊĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= ĠwebView ?. title ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= ĠwebView ?. url ĊĠĠĠĠĠĠĠ Ġreturn Ġ( title Ġ== Ġnull Ġ|| Ġtitle . isEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġurl Ġ== Ġnull Ġ|| Ġurl . isEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġurl . startsWith ( Browser Unit . URL _ SCHEME _ AB OUT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġurl . startsWith ( Browser Unit . URL _ SCHEME _ MAIL _ TO ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġurl . startsWith ( Browser Unit . URL _ SCHEME _ INT ENT )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġoriginal Orientation Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġdim en 1 5 6 dp Ġ= Ġ 0 f ĊĠĠĠ Ġprivate Ġvar Ġdim en 1 1 7 dp Ġ= Ġ 0 f ĊĠĠĠ Ġprivate Ġvar Ġsearch On Site Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġon Pause Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġcustom View Callback : ĠCustom View Callback ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar ĠfilePath Callback : ĠValue Callback < Array < Uri >> ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġcurrent Album Controller : ĠAlbum Controller ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm FilePath Callback : ĠValue Callback < Array < Uri >> ? Ġ= Ġnull ĊĊĠĠĠ Ġ// ĠClasses ĊĠĠĠ Ġprivate Ġinner Ġclass ĠVideo Completion Listener Ġ: ĠOn Completion Listener , ĊĠĠĠĠĠĠĠ ĠMedia Player . OnError Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( mp : ĠMedia Player , Ġwhat : ĠInt , Ġextra : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Completion ( mp : ĠMedia Player ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Hide Custom View () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠOverrides ĊĠĠĠ Ġpublic Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġ// AppCompat Delegate . set Compat Vector From Resources Enabled ( true ); ĊĠĠĠĠĠĠĠ ĠWebView . enable Slow Whole Document Draw () ĊĠĠĠĠĠĠĠ Ġ// Strict Mode . Vm Policy . Builder Ġbuilder Ġ= Ġnew ĠStrict Mode . Vm Policy . Builder (); Ċ // Strict Mode . set Vm Policy ( builder . build ()); ĊĠĠĠĠĠĠĠ Ġcontext Ġ= Ġthis @ Browser Activity ĊĠĠĠĠĠĠĠ Ġactivity Ġ= Ġthis @ Browser Activity ĊĠĠĠĠĠĠĠ Ġsp Ġ= ĠPreference Manager . getDefault SharedPreferences ( context ) ĊĠĠĠĠĠĠĠ Ġsp ?. edit ()?. put Int (" restart _ changed ", Ġ 0 )?. apply () ĊĠĠĠĠĠĠĠ Ġsp ?. edit ()?. put Boolean (" pdf _ create ", Ġfalse )?. commit () ĊĠĠĠĠĠĠĠ ĠHelper Unit . apply Theme ( context !! ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getString (" saved _ key _ ok ", Ġ" no ") Ġ== Ġ" no ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchars Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" abcdefgh ijkl mnopqrst uvw xyz ABCDEF GH IJ KL MN OP Q RST UV W XYZ 1 2 3 4 5 6 7 8 9 0 ! Â§ $ % & / () = ?; :_ - ., + # * <> ". toCharArray () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsb Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrandom Ġ= ĠRandom () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 2 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġc Ġ= Ġchars [ random . nextInt ( chars . size )] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ( c ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Locale . getDefault (). country Ġ== Ġ" CN ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. putString ( getString ( R . string . sp _ search _ engine ), Ġ" 2 ") ?. apply () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. putString (" saved _ key ", Ġsb . toString ()) ?. apply () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. putString (" saved _ key _ ok ", Ġ" yes ") ?. apply () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. putString (" setting _ gesture _ tb _ up ", Ġ" 0 8 ") ?. apply () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. putString (" setting _ gesture _ tb _ down ", Ġ" 0 1 ") ?. apply () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. putString (" setting _ gesture _ tb _ left ", Ġ" 0 7 ") ?. apply () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. putString (" setting _ gesture _ tb _ right ", Ġ" 0 6 ") ?. apply () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. putString (" setting _ gesture _ nav _ up ", Ġ" 0 4 ") ?. apply () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. putString (" setting _ gesture _ nav _ down ", Ġ" 0 5 ") ?. apply () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. putString (" setting _ gesture _ nav _ left ", Ġ" 0 3 ") ?. apply () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. putString (" setting _ gesture _ nav _ right ", Ġ" 0 2 ") ?. apply () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. put Boolean ( getString ( R . string . sp _ location ), Ġfalse )?. apply () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm ah Encrypt or Ġ= ĠM AH Encrypt or . newInstance ( sp ?. getString (" saved _ key ", Ġ"")) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcontent Frame Ġ= ĠfindViewById ( R . id . main _ content ) ĊĠĠĠĠĠĠĠ Ġapp Bar Ġ= ĠfindViewById ( R . id . app Bar ) ĊĠĠĠĠĠĠĠ Ġdim en 1 5 6 dp Ġ= Ġresources . get Dimension Pixel Size ( R . dim en . layout _ width _ 1 5 6 dp ). toFloat () ĊĠĠĠĠĠĠĠ Ġdim en 1 1 7 dp Ġ= Ġresources . get Dimension Pixel Size ( R . dim en . layout _ height _ 1 1 7 dp ). toFloat () ĊĠĠĠĠĠĠĠ Ġinit Om ni box () ĊĠĠĠĠĠĠĠ Ġinit Search Panel () ĊĠĠĠĠĠĠĠ Ġinit Overview () ĊĠĠĠĠĠĠĠ ĠAd Block ( context ) Ġ// ĠFor ĠAd Block Ġcold Ġboot ĊĠĠĠĠĠĠĠ ĠJavascript ( context ) ĊĠĠĠĠĠĠĠ ĠCookie ( context ) ĊĠĠĠĠĠĠĠ Ġdownload Receiver Ġ= Ġobject Ġ: ĠBroadcast Receiver () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Receive ( context : ĠContext ?, Ġintent : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog Ġ= ĠBottom Sheet Dialog ( context !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog View Ġ= ĠView . inflate ( context , ĠR . layout . dialog _ action , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠtextView Ġ= Ġdialog View . findViewById < TextView >( R . id . dialog _ text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . setText ( R . string . toast _ download Complete ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction _ ok Ġ= Ġdialog View . findViewById < Button >( R . id . action _ ok ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction _ ok . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( Download Manager . ACTION _ VIEW _ DOWNLOAD S )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction _ cancel Ġ= Ġdialog View . findViewById < Button >( R . id . action _ cancel ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction _ cancel . setOnClickListener Ġ{ Ġhide Bottom Sheet Dialog () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. set ContentView ( dialog View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHelper Unit . set Bottom Sheet Behavior ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBottom Sheet Behavior . STATE _ EXP AN DED ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġfilter Ġ= ĠIntent Filter ( Download Manager . ACTION _ DOWNLOAD _ COMPLETE ) ĊĠĠĠĠĠĠĠ Ġregister Receiver ( download Receiver , Ġfilter ) ĊĠĠĠĠĠĠĠ Ġdispatch Intent ( intent ) ĊĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean (" start _ tab Start ", Ġfalse ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Overview () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHandler (). post Delayed ({ Ġm Behavior ?. state Ġ= ĠBottom Sheet Behavior . STATE _ EXP AN DED Ġ}, Ġ 2 5 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ!= ĠINPUT _ FILE _ REQUEST _ CODE Ġ|| Ġm FilePath Callback Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvar Ġresults : ĠArray < Uri >? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ// ĠCheck Ġthat Ġthe Ġresponse Ġis Ġa Ġgood Ġone ĊĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ== ĠActivity . RESULT _ OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( data Ġ!= Ġnull ) Ġ{ Ġ// ĠIf Ġthere Ġis Ġnot Ġdata , Ġthen Ġwe Ġmay Ġhave Ġtaken Ġa Ġphoto ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata String Ġ= Ġdata . data String ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( data String Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresults Ġ= ĠarrayOf ( Uri . parse ( data String )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm FilePath Callback ?. on Receive Value ( results ) ĊĠĠĠĠĠĠĠ Ġm FilePath Callback Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon New Intent ( intent : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on New Intent ( intent ) ĊĠĠĠĠĠĠĠ Ġset Intent ( intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġon Pause Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getInt (" restart _ changed ", Ġ 1 ) Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. put Int (" restart _ changed ", Ġ 0 )?. apply () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠBottom Sheet Dialog ( context !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog View Ġ= ĠView . inflate ( context , ĠR . layout . dialog _ action , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠtextView Ġ= Ġdialog View . findViewById < TextView >( R . id . dialog _ text ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . setText ( R . string . toast _ restart ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction _ ok Ġ= Ġdialog View . findViewById < Button >( R . id . action _ ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction _ ok . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . cancel () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Destroy () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction _ cancel Ġ= Ġdialog View . findViewById < Button >( R . id . action _ cancel ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction _ cancel . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . cancel () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . set ContentView ( dialog View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . show () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHelper Unit . set Bottom Sheet Behavior ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBottom Sheet Behavior . STATE _ EXP AN DED ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdispatch Intent ( intent ) ĊĠĠĠĠĠĠĠ Ġupdate Om ni box () ĊĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean (" pdf _ create ", Ġfalse ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. put Boolean (" pdf _ create ", Ġfalse )?. commit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean (" pdf _ share ", Ġfalse ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. put Boolean (" pdf _ share ", Ġfalse )?. commit () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( Download Manager . ACTION _ VIEW _ DOWNLOAD S )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog Ġ= ĠBottom Sheet Dialog ( context !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog View Ġ= ĠView . inflate ( context , ĠR . layout . dialog _ action , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠtextView Ġ= Ġdialog View . findViewById < TextView >( R . id . dialog _ text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . setText ( R . string . toast _ download Complete ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction _ ok Ġ= Ġdialog View . findViewById < Button >( R . id . action _ ok ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction _ ok . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( Download Manager . ACTION _ VIEW _ DOWNLOAD S )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction _ cancel Ġ= Ġdialog View . findViewById < Button >( R . id . action _ cancel ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction _ cancel . setOnClickListener Ġ{ Ġhide Bottom Sheet Dialog () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. set ContentView ( dialog View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHelper Unit . set Bottom Sheet Behavior ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBottom Sheet Behavior . STATE _ EXP AN DED ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean ( getString ( R . string . sp _ clear _ quit ), Ġfalse ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġto Clear Service Ġ= ĠIntent ( this , ĠClear Service :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Service ( to Clear Service ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠBrowser Container . clear () ĊĠĠĠĠĠĠĠ Ġunregister Receiver ( download Receiver ) ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon KeyDown ( keyCode : ĠInt , Ġevent : ĠKeyEvent ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( keyCode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKeyEvent . KEYCODE _ MENU Ġ-> Ġreturn Ġshow Overflow () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKeyEvent . KEYCODE _ BACK Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Keyboard ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Overview () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( fullscreen Holder Ġ!= Ġnull Ġ|| Ġcustom View Ġ!= Ġnull Ġ|| Ġvideo View Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġon Hide Custom View () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( om ni box ?. visibility Ġ== ĠView . GONE Ġ&& Ġsp ?. getBoolean ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" sp _ toolbar Show ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Om ni box () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ninja WebView ?. can Go Back () !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġn inja WebView ?. go Back () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremove Album ( current Album Controller ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Synchron ized ĊĠĠĠ Ġoverride Ġfun Ġshow Album ( controller : ĠAlbum Controller ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( current Album Controller Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Album Controller ?. deactivate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġav Ġ= Ġcontroller Ġas ĠView ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Frame ?. removeAll Views () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Frame ?. addView ( av ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Frame ?. removeAll Views () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Frame ?. addView ( controller Ġas ĠView ?) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcurrent Album Controller Ġ= Ġcontroller ĊĠĠĠĠĠĠĠ Ġcurrent Album Controller ?. activate () ĊĠĠĠĠĠĠĠ Ġupdate Om ni box () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate Auto Complete () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġaction Ġ= ĠRecord Action ( this ) ĊĠĠĠĠĠĠĠ Ġaction . open ( false ) ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġaction . list Entries ( activity , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġaction . close () ĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠComplete Adapter ( this , ĠR . layout . complete _ item , Ġlist ) ĊĠĠĠĠĠĠĠ Ġinput Box ?. setAdapter ( adapter ) ĊĠĠĠĠĠĠĠ Ġadapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġinput Box ?. threshold Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġinput Box ?. dropDown Vertical Offset Ġ= Ġ- 1 6 ĊĠĠĠĠĠĠĠ Ġinput Box ?. dropDown Width Ġ= ĠView Unit . getWindow Width ( this ) ĊĠĠĠĠĠĠĠ Ġinput Box ?. on ItemClickListener Ġ= ĠOn ItemClickListener Ġ{ Ġparent , Ġview , Ġposition , Ġid Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ( view . findViewById < View >( R . id . complete _ item _ url ) Ġas ĠTextView ). text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Album ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Keyboard ( activity ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Overview () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverview _ top ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġoverview _ top Buttons ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġm Behavior ?. state Ġ= ĠBottom Sheet Behavior . STATE _ COLL AP SED ĊĠĠĠĠĠĠĠ Ġif Ġ( current Album Controller Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Album Controller ?. deactivate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Album Controller ?. activate () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( current Album Controller Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Album Controller ?. deactivate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Album Controller ?. activate () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbottom Sheet Dialog _ Over View ?. show () ĊĠĠĠĠĠĠĠ ĠHandler (). post Delayed ({ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtab _ ScrollView ?. smooth Scroll To ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Album Controller ?. album View ?. left !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}, Ġ 2 5 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhide Overview () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( bottom Sheet Dialog _ Over View Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog _ Over View ?. cancel () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhide Bottom Sheet Dialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( bottom Sheet Dialog Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. cancel () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġaction Ġ= ĠRecord Action ( context ) ĊĠĠĠĠĠĠĠ Ġn inja WebView Ġ= Ġcurrent Album Controller Ġas ĠN inja WebView ? ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġn inja WebView ?. title ?. trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġn inja WebView ?. url ?. trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwhen Ġ( v ?. id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . tab _ plus , ĠR . id . tab _ plus _ bottom , ĠR . id . menu _ new Tab Open Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Overview () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Album ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . app _ name ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. getString (" favorite URL ", Ġ" https :// github . com / sco ute - d ich / browser "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . menu _ close Tab Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremove Album ( current Album Controller ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . menu _ tab Preview Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Overview () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . menu _ quit Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdouble T aps Quit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . menu _ share Screenshot Ġ-> Ġif Ġ( Build . VERSION . SDK _ INT Ġ< Ġ 2 9 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhas WRITE _ EXTERNAL _ STORAGE Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Self Permission ( Manifest . permission . WRITE _ EXTERNAL _ STORAGE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( has WRITE _ EXTERNAL _ STORAGE Ġ!= ĠPackage Manager . PERMISSION _ GRAN TED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHelper Unit . grant Permissions Storage ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. put Int (" screenshot ", Ġ 1 )?. apply () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠScreen shot Task ( context , Ġn inja WebView ). execute () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. put Int (" screenshot ", Ġ 1 )?. apply () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠScreen shot Task ( context , Ġn inja WebView ). execute () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . menu _ share Link Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( prepare Record ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠN inja Toast . show ( context , ĠgetString ( R . string . toast _ share _ failed )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent Unit . share ( context , Ġtitle , Ġurl ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . menu _ share PDF Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint PDF ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . menu _ open With Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Intent . ACTION _ VIEW ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . data Ġ= ĠUri . parse ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcho oser Ġ= ĠIntent . create Chooser ( intent , ĠgetString ( R . string . menu _ open _ with )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( cho oser ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . menu _ save Screenshot Ġ-> Ġif Ġ( Build . VERSION . SDK _ INT Ġ< Ġ 2 9 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhas WRITE _ EXTERNAL _ STORAGE Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Self Permission ( Manifest . permission . WRITE _ EXTERNAL _ STORAGE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( has WRITE _ EXTERNAL _ STORAGE Ġ!= ĠPackage Manager . PERMISSION _ GRAN TED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHelper Unit . grant Permissions Storage ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. put Int (" screenshot ", Ġ 0 )?. apply () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠScreen shot Task ( context , Ġn inja WebView ). execute () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. put Int (" screenshot ", Ġ 0 )?. apply () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠScreen shot Task ( context , Ġn inja WebView ). execute () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . menu _ save Bookmark Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm ah Encrypt or Ġ= ĠM AH Encrypt or . newInstance ( sp ?. getString (" saved _ key ", Ġ"")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġencrypted _ userName Ġ= Ġm ah Encrypt or . encode ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġencrypted _ user PW Ġ= Ġm ah Encrypt or . encode ("") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdb Ġ= ĠBook mark List ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb . open () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( db . is Exist ( url )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠN inja Toast . show ( context , ĠR . string . toast _ new Title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb . insert ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHelper Unit . sec String ( ninja WebView ?. title !! ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġencrypted _ userName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġencrypted _ user PW , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠN inja Toast . show ( context , ĠR . string . toast _ edit _ successful ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Bookmark List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb . close () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠN inja Toast . show ( context , ĠR . string . toast _ error ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . menu _ save Start Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction . open ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( action . check Grid Item ( url )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠN inja Toast . show ( context , ĠgetString ( R . string . toast _ already _ exist _ in _ home )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcounter Ġ= Ġsp ?. getInt (" counter ", Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcounter Ġ= Ġcounter ?. plus ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. put Int (" counter ", Ġcounter !! )?. commit () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbitmap Ġ= ĠView Unit . capture ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġn inja WebView , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdim en 1 5 6 dp , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdim en 1 1 7 dp , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBitmap . Config . ARGB _ 8 8 8 8 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfilename Ġ= Ġcounter . toString () Ġ+ ĠBrowser Unit . SUFFIX _ PNG ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Album Ġ= ĠGrid Item ( title , Ġurl , Ġfilename , Ġcounter !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Browser Unit . bitmap 2 File ( context , Ġbitmap , Ġfilename ) Ġ&& Ġaction . add Grid Item ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Album ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠN inja Toast . show ( context , ĠgetString ( R . string . toast _ add _ to _ home _ successful )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠN inja Toast . show ( context , ĠgetString ( R . string . toast _ add _ to _ home _ failed )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . menu _ search Site Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Keyboard ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Search Panel () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . context Link _ save As Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint PDF ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . menu _ settings Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsettings Ġ= ĠIntent ( this @ Browser Activity , ĠSettings Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( settings ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . menu _ file Manager Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent 2 Ġ= ĠIntent ( Intent . ACTION _ VIEW ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent 2 . type Ġ= Ġ"* /* " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent 2 . flags Ġ= ĠIntent . FLAG _ ACTIVITY _ NEW _ TASK ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ?. startActivity ( intent 2 , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . menu _ download Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( Download Manager . ACTION _ VIEW _ DOWNLOAD S )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . float Button _ tab Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ new Tab Open ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ close Tab ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ tab Preview ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ quit ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ share Screenshot ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ share Link ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ share PDF ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ open With ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ save Screenshot ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ save Bookmark ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ save PDF ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ save Start ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfloat Button _ tab View ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfloat Button _ save View ?. visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfloat Button _ share View ?. visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfloat Button _ more View ?. visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ search Site ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ file Manager ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ settings ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ download ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ fav ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ sc ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ open Fav ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ share CP ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . float Button _ share Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ new Tab Open ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ close Tab ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ tab Preview ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ quit ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ share Screenshot ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ share Link ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ share PDF ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ open With ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ save Screenshot ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ save Bookmark ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ save PDF ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ save Start ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfloat Button _ tab View ?. visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfloat Button _ save View ?. visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfloat Button _ share View ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfloat Button _ more View ?. visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ search Site ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ file Manager ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ settings ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ download ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ fav ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ sc ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ open Fav ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ share CP ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . float Button _ save Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ new Tab Open ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ close Tab ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ tab Preview ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ quit ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ share Screenshot ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ share Link ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ share PDF ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ open With ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ save Screenshot ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ save Bookmark ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ save PDF ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ save Start ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ search Site ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ file Manager ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfloat Button _ tab View ?. visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfloat Button _ save View ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfloat Button _ share View ?. visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfloat Button _ more View ?. visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ settings ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ download ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ fav ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ sc ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ open Fav ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ share CP ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . float Button _ more Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ new Tab Open ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ close Tab ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ tab Preview ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ quit ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ share Screenshot ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ share Link ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ share PDF ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ open With ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ save Screenshot ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ save Bookmark ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ save PDF ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ save Start ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfloat Button _ tab View ?. visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfloat Button _ save View ?. visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfloat Button _ share View ?. visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfloat Button _ more View ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ settings ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ search Site ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ file Manager ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ download ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ fav ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ sc ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ open Fav ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu _ share CP ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . om ni box _ overview Ġ-> Ġshow Overview () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . om ni box _ refresh Ġ-> Ġif Ġ( url Ġ!= Ġnull Ġ&& Ġn inja WebView ?. is Load Finish !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! url ?. startsWith (" https :// ") !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog Ġ= ĠBottom Sheet Dialog ( context !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog View Ġ= ĠView . inflate ( context , ĠR . layout . dialog _ action , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠtextView Ġ= Ġdialog View . findViewById < TextView >( R . id . dialog _ text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . setText ( R . string . toast _ un sec ured ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction _ ok Ġ= Ġdialog View . findViewById < Button >( R . id . action _ ok ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction _ ok . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġn inja WebView ?. load Url ( url ?. replace (" http :// ", Ġ" https :// ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction _ cancel 2 Ġ= Ġdialog View . findViewById < Button >( R . id . action _ cancel ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction _ cancel 2 . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġn inja WebView ?. reload () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. set ContentView ( dialog View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHelper Unit . set Bottom Sheet Behavior ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBottom Sheet Behavior . STATE _ EXP AN DED ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġn inja WebView ?. reload () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( url Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtext Ġ= ĠgetString ( R . string . toast _ load _ error ) Ġ+ Ġ": Ġ" Ġ+ Ġurl ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠN inja Toast . show ( context , Ġtext ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġn inja WebView ?. stop Loading () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠMethods ĊĠĠĠ Ġprivate Ġfun Ġprint PDF ( share : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( share ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. put Boolean (" pdf _ share ", Ġtrue )?. commit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. put Boolean (" pdf _ share ", Ġfalse )?. commit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= ĠHelper Unit . fileName ( ninja WebView ?. url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprint Manager Ġ= Ġget System Service ( Context . PRINT _ SERVICE ) Ġas ĠPrint Manager ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprint Adapter Ġ= Ġn inja WebView ?. create Print Document Adapter ( title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprint Manager ?. print ( title , Ġprint Adapter !! , ĠPrint Attributes . Builder (). build ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. put Boolean (" pdf _ create ", Ġtrue )?. commit () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠN inja Toast . show ( context , ĠR . string . toast _ error ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. put Boolean (" pdf _ create ", Ġfalse )?. commit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdispatch Intent ( intent : ĠIntent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġaction Ġ= Ġintent . action ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġintent . getString Extra ( Intent . EXTRA _ TEXT ) ĊĠĠĠĠĠĠĠ Ġif Ġ( "" Ġ== Ġaction ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i ( Content Values . TAG , Ġ" res umed ĠBO X ĠBrowser ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( intent . action Ġ!= Ġnull Ġ&& Ġintent . action Ġ== ĠIntent . ACTION _ WEB _ SEARCH ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Album ( null , Ġintent . getString Extra ( Search Manager . QUERY ), Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( filePath Callback Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfilePath Callback Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ(" sc _ history " Ġ== Ġaction ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Album ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. getString (" favorite URL ", Ġ" https :// github . com / sco ute - d ich / browser "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Overview () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHandler (). post Delayed ({ Ġopen _ history ?. perform Click () Ġ}, Ġ 2 5 0 ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ(" sc _ bookmark " Ġ== Ġaction ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Album ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. getString (" favorite URL ", Ġ" https :// github . com / sco ute - d ich / browser "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Overview () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHandler (). post Delayed ({ Ġopen _ bookmark ?. perform Click () Ġ}, Ġ 2 5 0 ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ(" sc _ start Page " Ġ== Ġaction ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Album ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. getString (" favorite URL ", Ġ" https :// github . com / sco ute - d ich / browser "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Overview () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHandler (). post Delayed ({ Ġopen _ start Page ?. perform Click () Ġ}, Ġ 2 5 0 ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( Intent . ACTION _ SEND Ġ== Ġaction ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Album ( null , Ġurl , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! on Pause ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Album ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. getString (" favorite URL ", Ġ" https :// github . com / sco ute - d ich / browser "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġget Intent (). action Ġ= Ġ"" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Click ableView Accessibility ") ĊĠĠĠ Ġprivate Ġfun Ġinit Om ni box () Ġ{ ĊĠĠĠĠĠĠĠ Ġom ni box Ġ= ĠfindViewById ( R . id . main _ om ni box ) ĊĠĠĠĠĠĠĠ Ġinput Box Ġ= ĠfindViewById ( R . id . main _ om ni box _ input ) ĊĠĠĠĠĠĠĠ Ġom ni box Refresh Ġ= ĠfindViewById ( R . id . om ni box _ refresh ) ĊĠĠĠĠĠĠĠ Ġom ni box Overview Ġ= ĠfindViewById ( R . id . om ni box _ overview ) ĊĠĠĠĠĠĠĠ Ġom ni box Overflow Ġ= ĠfindViewById ( R . id . om ni box _ overflow ) ĊĠĠĠĠĠĠĠ Ġom ni box Title Ġ= ĠfindViewById ( R . id . om ni box _ title ) ĊĠĠĠĠĠĠĠ ĠprogressBar Ġ= ĠfindViewById ( R . id . main _ progress _ bar ) ĊĠĠĠĠĠĠĠ Ġval Ġnav _ position Ġ= Ġsp ?. getString (" nav _ position ", Ġ" 0 ") ĊĠĠĠĠĠĠĠ Ġfab _ image Button Nav Ġ= Ġwhen Ġ( nav _ position ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 " Ġ-> ĠfindViewById ( R . id . fab _ image Button Nav _ left ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 2 " Ġ-> ĠfindViewById ( R . id . fab _ image Button Nav _ center ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠfindViewById ( R . id . fab _ image Button Nav _ right ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfab _ image Button Nav ?. setOn Long ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow _ dialog Fast Toggle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġom ni box Overflow ?. setOn Long ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow _ dialog Fast Toggle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfab _ image Button Nav ?. setOnClickListener Ġ{ Ġshow Overflow () Ġ} ĊĠĠĠĠĠĠĠ Ġom ni box Overflow ?. setOnClickListener Ġ{ Ġshow Overflow () Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean (" sp _ gest ures _ use ", Ġtrue ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfab _ image Button Nav ?. setOn Touch Listener ( object Ġ: ĠSw ipe Touch Listener ( context ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Swipe Top () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperform Gesture (" setting _ gesture _ nav _ up ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Swipe Bottom () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperform Gesture (" setting _ gesture _ nav _ down ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Swipe Right () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperform Gesture (" setting _ gesture _ nav _ right ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Swipe Left () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperform Gesture (" setting _ gesture _ nav _ left ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġom ni box Overflow ?. setOn Touch Listener ( object Ġ: ĠSw ipe Touch Listener ( context ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Swipe Top () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperform Gesture (" setting _ gesture _ nav _ up ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Swipe Bottom () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperform Gesture (" setting _ gesture _ nav _ down ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Swipe Right () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperform Gesture (" setting _ gesture _ nav _ right ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Swipe Left () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperform Gesture (" setting _ gesture _ nav _ left ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Box ?. setOn Touch Listener ( object Ġ: ĠSw ipe Touch Listener ( context ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Swipe Top () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperform Gesture (" setting _ gesture _ tb _ up ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Swipe Bottom () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperform Gesture (" setting _ gesture _ tb _ down ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Swipe Right () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperform Gesture (" setting _ gesture _ tb _ right ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Swipe Left () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperform Gesture (" setting _ gesture _ tb _ left ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġinput Box ?. setOn Editor ActionListener ( On Editor ActionListener Ġ{ Ġv , Ġaction Id , Ġevent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġquery Ġ= Ġinput Box ?. text . toString (). trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( query . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠN inja Toast . show ( context , ĠgetString ( R . string . toast _ input _ empty )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ On Editor ActionListener Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Album ( query ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Om ni box () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġinput Box ?. setOn Focus ChangeListener Ġ{ Ġv , Ġhas Focus Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( input Box ?. has Focus () !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġn inja WebView ?. stop Loading () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinput Box ?. setText ( ninja WebView ?. url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHandler (). post Delayed ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġom ni box Title ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinput Box ?. request Focus () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinput Box ?. setSelection ( 0 , Ġinput Box ?. text . toString (). length ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ 2 5 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġom ni box Title ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġom ni box Title ?. text Ġ= Ġn inja WebView ?. title ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Keyboard ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġupdate Auto Complete () ĊĠĠĠĠĠĠĠ Ġom ni box Refresh ?. setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġom ni box Overview ?. setOnClickListener ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġperform Gesture ( gesture : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgesture Action Ġ= Ġsp ?. getString ( gesture , Ġ" 0 ") ĊĠĠĠĠĠĠĠ Ġval Ġcontroller : ĠAlbum Controller ? ĊĠĠĠĠĠĠĠ Ġn inja WebView Ġ= Ġcurrent Album Controller Ġas ĠN inja WebView ? ĊĠĠĠĠĠĠĠ Ġwhen Ġ( gesture Action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 1 " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 2 " Ġ-> Ġif Ġ( ninja WebView ?. can Go Forward () !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġn inja WebView ?. go Forward () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠN inja Toast . show ( context , ĠR . string . toast _ webview _ forward ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 3 " Ġ-> Ġif Ġ( ninja WebView ?. can Go Back () !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġn inja WebView ?. go Back () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremove Album ( current Album Controller ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 4 " Ġ-> Ġn inja WebView ?. page Up ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 5 " Ġ-> Ġn inja WebView ?. page Down ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 6 " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontroller Ġ= Ġnext Album Controller ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Album ( controller ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 7 " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontroller Ġ= Ġnext Album Controller ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Album ( controller ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 8 " Ġ-> Ġshow Overview () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 9 " Ġ-> Ġadd Album ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . app _ name ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. getString (" favorite URL ", Ġ" https :// github . com / sco ute - d ich / browser "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 0 " Ġ-> Ġremove Album ( current Album Controller ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Click ableView Accessibility ") ĊĠĠĠ Ġprivate Ġfun Ġinit Overview () Ġ{ ĊĠĠĠĠĠĠĠ Ġbottom Sheet Dialog _ Over View Ġ= ĠBottom Sheet Dialog ( context !! ) ĊĠĠĠĠĠĠĠ Ġval Ġdialog View Ġ= ĠView . inflate ( context , ĠR . layout . dialog _ over iew , Ġnull ) ĊĠĠĠĠĠĠĠ Ġopen _ start Page Ġ= Ġdialog View . findViewById ( R . id . open _ new Tab _ 2 ) ĊĠĠĠĠĠĠĠ Ġopen _ bookmark Ġ= Ġdialog View . findViewById ( R . id . open _ bookmark _ 2 ) ĊĠĠĠĠĠĠĠ Ġopen _ history Ġ= Ġdialog View . findViewById ( R . id . open _ history _ 2 ) ĊĠĠĠĠĠĠĠ Ġopen _ menu Ġ= Ġdialog View . findViewById ( R . id . open _ menu ) ĊĠĠĠĠĠĠĠ Ġtab _ container Ġ= Ġdialog View . findViewById ( R . id . tab _ container ) ĊĠĠĠĠĠĠĠ Ġtab _ plus Ġ= Ġdialog View . findViewById ( R . id . tab _ plus ) ĊĠĠĠĠĠĠĠ Ġtab _ plus ?. setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġtab _ plus _ bottom Ġ= Ġdialog View . findViewById ( R . id . tab _ plus _ bottom ) ĊĠĠĠĠĠĠĠ Ġtab _ plus _ bottom ?. setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġtab _ ScrollView Ġ= Ġdialog View . findViewById ( R . id . tab _ ScrollView ) ĊĠĠĠĠĠĠĠ Ġoverview _ top Ġ= Ġdialog View . findViewById ( R . id . overview _ top ) ĊĠĠĠĠĠĠĠ Ġoverview _ top Buttons Ġ= Ġdialog View . findViewById ( R . id . overview _ top Buttons ) ĊĠĠĠĠĠĠĠ ĠlistView Ġ= Ġdialog View . findViewById ( R . id . home _ list _ 2 ) ĊĠĠĠĠĠĠĠ Ġopen _ start Page View Ġ= Ġdialog View . findViewById ( R . id . open _ new Tab View ) ĊĠĠĠĠĠĠĠ Ġopen _ bookmark View Ġ= Ġdialog View . findViewById ( R . id . open _ bookmark View ) ĊĠĠĠĠĠĠĠ Ġopen _ history View Ġ= Ġdialog View . findViewById ( R . id . open _ history View ) ĊĠĠĠĠĠĠĠ Ġoverview _ title Icons _ start View Ġ= Ġdialog View . findViewById ( R . id . overview _ title Icons _ start View ) ĊĠĠĠĠĠĠĠ Ġoverview _ title Icons _ bookmarks View Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View . findViewById ( R . id . overview _ title Icons _ bookmarks View ) ĊĠĠĠĠĠĠĠ Ġoverview _ title Icons _ history View Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View . findViewById ( R . id . overview _ title Icons _ history View ) ĊĠĠĠĠĠĠĠ Ġgrid View Ġ= Ġdialog View . findViewById ( R . id . home _ grid _ 2 ) ĊĠĠĠĠĠĠĠ Ġval Ġoverview _ title Icons _ start Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View . findViewById < Image Button >( R . id . overview _ title Icons _ start ) ĊĠĠĠĠĠĠĠ Ġval Ġoverview _ title Icons _ bookmarks Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View . findViewById < Image Button >( R . id . overview _ title Icons _ bookmarks ) ĊĠĠĠĠĠĠĠ Ġval Ġoverview _ title Icons _ history Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View . findViewById < Image Button >( R . id . overview _ title Icons _ history ) ĊĠĠĠĠĠĠĠ Ġ// Ġallow Ġscrolling Ġin ĠlistView Ġwithout Ġclosing Ġthe Ġbottom Sheet Dialog ĊĠĠĠĠĠĠĠ ĠlistView ?. setOn Touch Listener Ġ{ Ġv , Ġevent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction Ġ= Ġevent . action ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( action Ġ== ĠMotion Event . ACTION _ DOWN ) Ġ{ Ġ// ĠDis allow ĠNested ScrollView Ġto Ġintercept Ġtouch Ġevents . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( list View ?. can Scroll Vert ically (- 1 ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv . parent . request Dis allow Intercept Touch Event ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠHandle ĠListView Ġtouch Ġevents . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv . on Touch Event ( event ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġgrid View ?. setOn Touch Listener Ġ{ Ġv , Ġevent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction Ġ= Ġevent . action ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( action Ġ== ĠMotion Event . ACTION _ DOWN ) Ġ{ Ġ// ĠDis allow ĠNested ScrollView Ġto Ġintercept Ġtouch Ġevents . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( grid View ?. can Scroll Vert ically (- 1 ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv . parent . request Dis allow Intercept Touch Event ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠHandle ĠListView Ġtouch Ġevents . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv . on Touch Event ( event ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġopen _ menu ?. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog Ġ= ĠBottom Sheet Dialog ( context !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog View Ġ= ĠView . inflate ( context , ĠR . layout . dialog _ menu _ overview , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbookmark _ sort Ġ= Ġdialog View . findViewById < LinearLayout >( R . id . bookmark _ sort ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbookmark _ filter Ġ= Ġdialog View . findViewById < LinearLayout >( R . id . bookmark _ filter ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( over View Tab Ġ== ĠgetString ( R . string . album _ title _ bookmarks )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbookmark _ filter . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbookmark _ sort . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( over View Tab Ġ== ĠgetString ( R . string . album _ title _ home )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbookmark _ filter . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbookmark _ sort . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( over View Tab Ġ== ĠgetString ( R . string . album _ title _ history )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbookmark _ filter . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbookmark _ sort . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbookmark _ filter . setOnClickListener Ġ{ Ġshow _ dialog Filter () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbookmark _ sort . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog Ġ= ĠBottom Sheet Dialog ( context !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog View Ġ= ĠView . inflate ( context , ĠR . layout . dialog _ bookmark _ sort , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog _ sort Name Ġ= Ġdialog View . findViewById < LinearLayout >( R . id . dialog _ sort Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbookmark _ sort _ tv Ġ= Ġdialog View . findViewById < TextView >( R . id . bookmark _ sort _ tv ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( over View Tab Ġ== ĠgetString ( R . string . album _ title _ bookmarks )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbookmark _ sort _ tv . text Ġ= Ġresources . getString ( R . string . dialog _ sort Icon ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( over View Tab Ġ== ĠgetString ( R . string . album _ title _ home )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbookmark _ sort _ tv . text Ġ= Ġresources . getString ( R . string . dialog _ sort Date ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog _ sort Name . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( over View Tab Ġ== ĠgetString ( R . string . album _ title _ bookmarks )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. putString (" sort DB B ", Ġ" title ") ?. apply () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Bookmark List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( over View Tab Ġ== ĠgetString ( R . string . album _ title _ home )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. putString (" sort _ start Site ", Ġ" title ") ?. apply () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen _ start Page ?. perform Click () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog _ sort Icon Ġ= Ġdialog View . findViewById < LinearLayout >( R . id . dialog _ sort Icon ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog _ sort Icon . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( over View Tab Ġ== ĠgetString ( R . string . album _ title _ bookmarks )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. putString (" sort DB B ", Ġ" icon ") ?. apply () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Bookmark List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( over View Tab Ġ== ĠgetString ( R . string . album _ title _ home )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. putString (" sort _ start Site ", Ġ" ordinal ") ?. apply () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen _ start Page ?. perform Click () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. set ContentView ( dialog View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHelper Unit . set Bottom Sheet Behavior ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBottom Sheet Behavior . STATE _ EXP AN DED ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtv _ delete Ġ= Ġdialog View . findViewById < LinearLayout >( R . id . tv _ delete ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ delete . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog Ġ= ĠBottom Sheet Dialog ( context !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog View 3 Ġ= ĠView . inflate ( context , ĠR . layout . dialog _ action , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠtextView Ġ= Ġdialog View 3 . findViewById < TextView >( R . id . dialog _ text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . setText ( R . string . hint _ database ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction _ ok Ġ= Ġdialog View 3 . findViewById < Button >( R . id . action _ ok ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction _ ok . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( over View Tab Ġ== ĠgetString ( R . string . album _ title _ home )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBrowser Unit . clear Home ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen _ start Page ?. perform Click () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( over View Tab Ġ== ĠgetString ( R . string . album _ title _ bookmarks )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠEnvironment . getData Directory () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbook marks Path _ app Ġ= Ġ"// data //$ packageName // databases // pass _ DB _ v 0 1 . db " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbookmark File _ app Ġ= ĠFile ( data , Ġbook marks Path _ app ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBrowser Unit . delete Dir ( bookmark File _ app ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen _ bookmark ?. perform Click () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( over View Tab Ġ== ĠgetString ( R . string . album _ title _ history )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBrowser Unit . clear History ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen _ history ?. perform Click () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction _ cancel Ġ= Ġdialog View 3 . findViewById < Button >( R . id . action _ cancel ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction _ cancel . setOnClickListener Ġ{ Ġhide Bottom Sheet Dialog () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. set ContentView ( dialog View 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHelper Unit . set Bottom Sheet Behavior ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View 3 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBottom Sheet Behavior . STATE _ EXP AN DED ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. set ContentView ( dialog View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. show () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHelper Unit . set Bottom Sheet Behavior ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBottom Sheet Behavior . STATE _ EXP AN DED ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbottom Sheet Dialog _ Over View ?. set ContentView ( dialog View ) ĊĠĠĠĠĠĠĠ Ġm Behavior Ġ= ĠBottom Sheet Behavior . from ( dialog View . parent Ġas ĠView ) ĊĠĠĠĠĠĠĠ Ġval Ġpeek Height Ġ= ĠMath . round ( 2 0 0 Ġ* Ġresources . display Metrics . density ) ĊĠĠĠĠĠĠĠ Ġm Behavior ?. peek Height Ġ= Ġpeek Height ĊĠĠĠĠĠĠĠ Ġm Behavior ?. add Bottom Sheet Callback ( object Ġ: ĠBottom Sheet Callback () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon StateChanged ( bottom Sheet : ĠView , ĠnewState : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( newState Ġ== ĠBottom Sheet Behavior . STATE _ HIDDEN ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Overview () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( newState Ġ== ĠBottom Sheet Behavior . STATE _ EXP AN DED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( over View Tab Ġ== ĠgetString ( R . string . album _ title _ bookmarks )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Bookmark List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( over View Tab Ġ== ĠgetString ( R . string . album _ title _ home )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen _ start Page ?. perform Click () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean (" over View _ hide ", Ġtrue ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverview _ top ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverview _ top Buttons ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean (" over View _ hide ", Ġtrue ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverview _ top ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverview _ top Buttons ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Slide ( bottom Sheet : ĠView , Ġslide Offset : ĠFloat ) Ġ{} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġopen _ start Page ?. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Behavior ?. state Ġ= ĠBottom Sheet Behavior . STATE _ EXP AN DED ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrid View ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistView ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen _ start Page View ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen _ bookmark View ?. visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen _ history View ?. visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverview _ title Icons _ start View ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverview _ title Icons _ bookmarks View ?. visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverview _ title Icons _ history View ?. visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġover View Tab Ġ= ĠgetString ( R . string . album _ title _ home ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction Ġ= ĠRecord Action ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction . open ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgrid List Ġ= Ġaction . list Grid ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrid Adapter Ġ= ĠGrid Adapter ( context , Ġgrid List ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrid View ?. adapter Ġ= Ġgrid Adapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrid Adapter ?. notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrid View ?. setOn ItemClickListener Ġ{ Ġ_, Ġ_, Ġposition , Ġid Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Album ( grid List [ position ]. url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Overview () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrid View ?. setOn Item Long ClickListener Ġ{ Ġparent , Ġview , Ġposition , Ġid Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow ContextMenu List ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrid List [ position ]. title , Ġgrid List [ position ]. url , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , Ġnull , Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , Ġnull , Ġnull , Ġnull , Ġgrid List [ position ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġopen _ bookmark ?. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Behavior ?. state Ġ= ĠBottom Sheet Behavior . STATE _ EXP AN DED ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrid View ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistView ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen _ start Page View ?. visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen _ bookmark View ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen _ history View ?. visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverview _ title Icons _ start View ?. visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverview _ title Icons _ bookmarks View ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverview _ title Icons _ history View ?. visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġover View Tab Ġ= ĠgetString ( R . string . album _ title _ bookmarks ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. putString (" filter _ bookmarks ", Ġ" 0 0 ") ?. apply () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit Bookmark List () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġopen _ bookmark ?. setOn Long ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow _ dialog Filter () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġopen _ history ?. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Behavior ?. state Ġ= ĠBottom Sheet Behavior . STATE _ EXP AN DED ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrid View ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistView ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen _ start Page View ?. visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen _ bookmark View ?. visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen _ history View ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverview _ title Icons _ start View ?. visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverview _ title Icons _ bookmarks View ?. visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverview _ title Icons _ history View ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġover View Tab Ġ= ĠgetString ( R . string . album _ title _ history ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction Ġ= ĠRecord Action ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction . open ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist : ĠMutable List < Record >? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist Ġ= Ġaction . list Entries ( activity , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= ĠAdapter _ Record ( context , Ġlist ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistView ?. adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter ?. notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistView ?. setOn ItemClickListener Ġ{ Ġparent , Ġview , Ġposition , Ġid Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Album ( list [ position ]. url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Overview () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistView ?. setOn Item Long ClickListener Ġ{ Ġparent , Ġview , Ġposition , Ġid Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow ContextMenu List ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist [ position ]. title , Ġlist [ position ]. url , Ġadapter , Ġlist , Ġposition , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġoverview _ title Icons _ start . setOnClickListener Ġ{ Ġopen _ start Page ?. perform Click () Ġ} ĊĠĠĠĠĠĠĠ Ġoverview _ title Icons _ bookmarks . setOnClickListener Ġ{ Ġopen _ bookmark ?. perform Click () Ġ} ĊĠĠĠĠĠĠĠ Ġoverview _ title Icons _ bookmarks . setOn Long ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( over View Tab Ġ!= ĠgetString ( R . string . album _ title _ bookmarks )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen _ bookmark ?. perform Click () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow _ dialog Filter () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġoverview _ title Icons _ history . setOnClickListener Ġ{ Ġopen _ history ?. perform Click () Ġ} ĊĠĠĠĠĠĠĠ Ġwhen Ġ( Objects . requireNonNull ( sp ?. getString (" start _ tab ", Ġ" 0 "))) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 3 " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverview _ top ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen _ bookmark ?. perform Click () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 4 " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverview _ top ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen _ history ?. perform Click () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverview _ top ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen _ start Page ?. perform Click () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Search Panel () Ġ{ ĊĠĠĠĠĠĠĠ Ġsearch Panel Ġ= ĠfindViewById ( R . id . main _ search _ panel ) ĊĠĠĠĠĠĠĠ Ġsearch Box Ġ= ĠfindViewById ( R . id . main _ search _ box ) ĊĠĠĠĠĠĠĠ Ġsearch Up Ġ= ĠfindViewById ( R . id . main _ search _ up ) ĊĠĠĠĠĠĠĠ Ġsearch Down Ġ= ĠfindViewById ( R . id . main _ search _ down ) ĊĠĠĠĠĠĠĠ Ġsearch Cancel Ġ= ĠfindViewById ( R . id . main _ search _ cancel ) ĊĠĠĠĠĠĠĠ Ġsearch Box ?. add TextChanged Listener ( object Ġ: ĠText Watcher Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbefore TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġcount : ĠInt , Ġafter : ĠInt ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġbefore : ĠInt , Ġcount : ĠInt ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( s : ĠEdit able ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( current Album Controller Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( current Album Controller Ġas ĠN inja WebView ). findAll Async ( s . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġsearch Box ?. setOn Editor ActionListener ( On Editor ActionListener Ġ{ Ġv , Ġaction Id , Ġevent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( action Id Ġ!= ĠEditor Info . IME _ ACTION _ DONE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ On Editor ActionListener Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( search Box ?. text . toString (). isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠN inja Toast . show ( context , ĠgetString ( R . string . toast _ input _ empty )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ On Editor ActionListener Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġsearch Up ?. setOnClickListener ( View . OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġquery Ġ= Ġsearch Box ?. text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( query . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠN inja Toast . show ( context , ĠgetString ( R . string . toast _ input _ empty )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ OnClickListener ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Keyboard ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( current Album Controller Ġas ĠN inja WebView ?) ?. find Next ( false ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġsearch Down ?. setOnClickListener ( View . OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġquery Ġ= Ġsearch Box ?. text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( query . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠN inja Toast . show ( context , ĠgetString ( R . string . toast _ input _ empty )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ OnClickListener ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Keyboard ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( current Album Controller Ġas ĠN inja WebView ?) ?. find Next ( true ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġsearch Cancel ?. setOnClickListener Ġ{ Ġhide Search Panel () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Bookmark List () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdb Ġ= ĠBook mark List ( context ) ĊĠĠĠĠĠĠĠ Ġval Ġrow : ĠCursor ? ĊĠĠĠĠĠĠĠ Ġdb . open () ĊĠĠĠĠĠĠĠ Ġval Ġlayout Style Ġ= ĠR . layout . list _ item _ bookmark ĊĠĠĠĠĠĠĠ Ġval Ġxml _ id Ġ= Ġint ArrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . record _ item _ title ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġcolumn Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" pass _ title " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġsearch Ġ= Ġsp ?. getString (" filter _ bookmarks ", Ġ" 0 0 ") ĊĠĠĠĠĠĠĠ Ġrow Ġ= Ġif Ġ( search !! Ġ== Ġ" 0 0 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb . fetch All Data ( activity ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb . fetch Data By Filter ( search , Ġ" pass _ creation ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġadapter : ĠSimple Cursor Adapter Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠSimple Cursor Adapter ( context , Ġlayout Style , Ġrow , Ġcolumn , Ġxml _ id , Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget View ( position : ĠInt , ĠconvertView : ĠView , Ġparent : ĠViewGroup ): ĠView Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrow Ġ= ĠlistView ?. getItem At Position ( position ) Ġas ĠCursor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbook marks _ icon Ġ= Ġrow . getString ( row . getColumnIndex OrThrow (" pass _ creation ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv Ġ= Ġsuper . getView ( position , ĠconvertView , Ġparent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġiv _ icon Ġ= Ġv . findViewById < ImageView >( R . id . ib _ icon ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHelper Unit . switch Icon ( activity , Ġbook marks _ icon , Ġ" pass _ creation ", Ġiv _ icon ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrow . close () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġv ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠlistView ?. adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ ĠlistView ?. on ItemClickListener Ġ= ĠOn ItemClickListener Ġ{ Ġadapter View , Ġview , Ġposition , Ġid Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpass _ content Ġ= Ġrow ?. getString ( row . getColumnIndex OrThrow (" pass _ content ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpass _ icon Ġ= Ġrow ?. getString ( row . getColumnIndex OrThrow (" pass _ icon ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpass _ attachment Ġ= Ġrow ?. getString ( row . getColumnIndex OrThrow (" pass _ attachment ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Album ( pass _ content ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoast _ login ( pass _ icon !! , Ġpass _ attachment !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Overview () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠlistView ?. on Item Long ClickListener Ġ= ĠOn Item Long ClickListener Ġ{ Ġparent , Ġview , Ġposition , Ġid Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrow Ġ= ĠlistView ?. getItem At Position ( position ) Ġas ĠCursor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ_ id Ġ= Ġrow . getString ( row . getColumnIndex OrThrow ("_ id ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpass _ title Ġ= Ġrow . getString ( row . getColumnIndex OrThrow (" pass _ title ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpass _ content Ġ= Ġrow . getString ( row . getColumnIndex OrThrow (" pass _ content ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpass _ icon Ġ= Ġrow . getString ( row . getColumnIndex OrThrow (" pass _ icon ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpass _ attachment Ġ= Ġrow . getString ( row . getColumnIndex OrThrow (" pass _ attachment ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpass _ creation Ġ= Ġrow . getString ( row . getColumnIndex OrThrow (" pass _ creation ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow ContextMenu List ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpass _ title , Ġpass _ content , Ġnull , Ġnull , Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpass _ icon , Ġpass _ attachment , Ġ_ id , Ġpass _ creation , Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrow . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrow ?. close () ĊĠĠĠĠĠĠĠ Ġdb . close () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow _ dialog Fast Toggle () Ġ{ ĊĠĠĠĠĠĠĠ Ġbottom Sheet Dialog Ġ= ĠBottom Sheet Dialog ( context !! ) ĊĠĠĠĠĠĠĠ Ġval Ġdialog View Ġ= ĠView . inflate ( context , ĠR . layout . dialog _ toggle , Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġsw _ java Ġ= Ġdialog View . findViewById < CheckBox >( R . id . switch _ js ) ĊĠĠĠĠĠĠĠ Ġval Ġwhite List _ js Ġ= Ġdialog View . findViewById < Image Button >( R . id . image Button _ js ) ĊĠĠĠĠĠĠĠ Ġval Ġsw _ ad Block Ġ= Ġdialog View . findViewById < CheckBox >( R . id . switch _ ad Block ) ĊĠĠĠĠĠĠĠ Ġval Ġwhite List _ ab Ġ= Ġdialog View . findViewById < Image Button >( R . id . image Button _ ab ) ĊĠĠĠĠĠĠĠ Ġval Ġsw _ cookie Ġ= Ġdialog View . findViewById < CheckBox >( R . id . switch _ cookie ) ĊĠĠĠĠĠĠĠ Ġval Ġwhitelist _ cookie Ġ= Ġdialog View . findViewById < Image Button >( R . id . image Button _ cookie ) ĊĠĠĠĠĠĠĠ Ġval Ġdialog _ title Ġ= Ġdialog View . findViewById < TextView >( R . id . dialog _ title ) ĊĠĠĠĠĠĠĠ Ġdialog _ title . text Ġ= ĠHelper Unit . domain ( ninja WebView ?. url ) ĊĠĠĠĠĠĠĠ Ġjava Hosts Ġ= ĠJavascript ( context ) ĊĠĠĠĠĠĠĠ Ġcookie Hosts Ġ= ĠCookie ( context ) ĊĠĠĠĠĠĠĠ Ġad Block Ġ= ĠAd Block ( context ) ĊĠĠĠĠĠĠĠ Ġn inja WebView Ġ= Ġcurrent Album Controller Ġas ĠN inja WebView ? ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġn inja WebView ?. url ĊĠĠĠĠĠĠĠ Ġsw _ java . isChecked Ġ= Ġsp ?. getBoolean ( getString ( R . string . sp _ javascript ), Ġtrue ) !! ĊĠĠĠĠĠĠĠ Ġsw _ ad Block . isChecked Ġ= Ġsp ?. getBoolean ( getString ( R . string . sp _ ad _ block ), Ġtrue ) !! ĊĠĠĠĠĠĠĠ Ġsw _ cookie . isChecked Ġ= Ġsp ?. getBoolean ( getString ( R . string . sp _ cookies ), Ġtrue ) !! ĊĠĠĠĠĠĠĠ Ġif Ġ( java Hosts ?. is White ( url ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhite List _ js . setImage Resource ( R . drawable . check _ green ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhite List _ js . setImage Resource ( R . drawable . ic _ action _ close _ red ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( cookie Hosts ?. is White ( url ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhitelist _ cookie . setImage Resource ( R . drawable . check _ green ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhitelist _ cookie . setImage Resource ( R . drawable . ic _ action _ close _ red ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( ad Block ?. is White ( url ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhite List _ ab . setImage Resource ( R . drawable . check _ green ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhite List _ ab . setImage Resource ( R . drawable . ic _ action _ close _ red ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwhite List _ js . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( java Hosts ?. is White ( ninja WebView ?. url ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhite List _ js . setImage Resource ( R . drawable . ic _ action _ close _ red ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjava Hosts ?. remove Domain ( Helper Unit . domain ( url )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhite List _ js . setImage Resource ( R . drawable . check _ green ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjava Hosts ?. add Domain ( Helper Unit . domain ( url )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwhitelist _ cookie . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cookie Hosts ?. is White ( ninja WebView ?. url ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhitelist _ cookie . setImage Resource ( R . drawable . ic _ action _ close _ red ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcookie Hosts ?. remove Domain ( Helper Unit . domain ( url )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhitelist _ cookie . setImage Resource ( R . drawable . check _ green ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcookie Hosts ?. add Domain ( Helper Unit . domain ( url )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġwhite List _ ab . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ad Block ?. is White ( ninja WebView ?. url ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhite List _ ab . setImage Resource ( R . drawable . ic _ action _ close _ red ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġad Block ?. remove Domain ( Helper Unit . domain ( url )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhite List _ ab . setImage Resource ( R . drawable . check _ green ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġad Block ?. add Domain ( Helper Unit . domain ( url )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsw _ java . setOn Checked ChangeListener Ġ{ Ġ_, Ġis Checked Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( isChecked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. put Boolean ( getString ( R . string . sp _ javascript ), Ġtrue )?. commit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. put Boolean ( getString ( R . string . sp _ javascript ), Ġfalse )?. commit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsw _ ad Block . setOn Checked ChangeListener Ġ{ Ġbutton View , Ġis Checked Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( isChecked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. put Boolean ( getString ( R . string . sp _ ad _ block ), Ġtrue )?. commit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. put Boolean ( getString ( R . string . sp _ ad _ block ), Ġfalse )?. commit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsw _ cookie . setOn Checked ChangeListener Ġ{ Ġbutton View , Ġis Checked Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( isChecked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. put Boolean ( getString ( R . string . sp _ cookies ), Ġtrue )?. commit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. put Boolean ( getString ( R . string . sp _ cookies ), Ġfalse )?. commit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġtoggle History Ġ= Ġdialog View . findViewById < Image Button >( R . id . toggle _ history ) ĊĠĠĠĠĠĠĠ Ġval Ġtoggle History View Ġ= Ġdialog View . findViewById < View >( R . id . toggle _ history View ) ĊĠĠĠĠĠĠĠ Ġval Ġtoggle Location Ġ= Ġdialog View . findViewById < Image Button >( R . id . toggle _ location ) ĊĠĠĠĠĠĠĠ Ġval Ġtoggle Location View Ġ= Ġdialog View . findViewById < View >( R . id . toggle _ location View ) ĊĠĠĠĠĠĠĠ Ġval Ġtoggle Images Ġ= Ġdialog View . findViewById < Image Button >( R . id . toggle _ images ) ĊĠĠĠĠĠĠĠ Ġval Ġtoggle Images View Ġ= Ġdialog View . findViewById < View >( R . id . toggle _ images View ) ĊĠĠĠĠĠĠĠ Ġval Ġtoggle Remote Ġ= Ġdialog View . findViewById < Image Button >( R . id . toggle _ remote ) ĊĠĠĠĠĠĠĠ Ġval Ġtoggle Remote View Ġ= Ġdialog View . findViewById < View >( R . id . toggle _ remote View ) ĊĠĠĠĠĠĠĠ Ġval Ġtoggle Invert Ġ= Ġdialog View . findViewById < Image Button >( R . id . toggle _ invert ) ĊĠĠĠĠĠĠĠ Ġval Ġtoggle Invert View Ġ= Ġdialog View . findViewById < View >( R . id . toggle _ invert View ) ĊĠĠĠĠĠĠĠ Ġval Ġtoggle Font Ġ= Ġdialog View . findViewById < Image Button >( R . id . toggle _ font ) ĊĠĠĠĠĠĠĠ Ġtoggle Font . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. cancel () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠSettings Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean (" save History ", Ġfalse ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle History View . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle History View . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtoggle History . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean (" save History ", Ġfalse ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle History View . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. put Boolean (" save History ", Ġfalse )?. commit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle History View . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. put Boolean (" save History ", Ġtrue )?. commit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean ( getString ( R . string . sp _ location ), Ġfalse ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Location View . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Location View . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtoggle Location . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean ( getString ( R . string . sp _ location ), Ġfalse ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Location View . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. put Boolean ( getString ( R . string . sp _ location ), Ġfalse )?. commit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Location View . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. put Boolean ( getString ( R . string . sp _ location ), Ġtrue )?. commit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean ( getString ( R . string . sp _ images ), Ġtrue ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Images View . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Images View . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtoggle Images . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean ( getString ( R . string . sp _ images ), Ġtrue ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Images View . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. put Boolean ( getString ( R . string . sp _ images ), Ġfalse )?. commit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Images View . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. put Boolean ( getString ( R . string . sp _ images ), Ġtrue )?. commit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean (" sp _ remote ", Ġtrue ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Remote View . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Remote View . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtoggle Remote . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean (" sp _ remote ", Ġtrue ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Remote View . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. put Boolean (" sp _ remote ", Ġfalse )?. commit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Remote View . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. put Boolean (" sp _ remote ", Ġtrue )?. commit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean (" sp _ invert ", Ġfalse ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Invert View . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Invert View . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtoggle Invert . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean (" sp _ invert ", Ġfalse ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Invert View . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. put Boolean (" sp _ invert ", Ġfalse )?. commit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Invert View . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. put Boolean (" sp _ invert ", Ġtrue )?. commit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHelper Unit . init Rendering ( content Frame ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġbut _ OK Ġ= Ġdialog View . findViewById < Button >( R . id . action _ ok ) ĊĠĠĠĠĠĠĠ Ġbut _ OK . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ninja WebView Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġn inja WebView ?. init Preferences () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġn inja WebView ?. reload () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġaction _ cancel Ġ= Ġdialog View . findViewById < Button >( R . id . action _ cancel ) ĊĠĠĠĠĠĠĠ Ġaction _ cancel . setOnClickListener Ġ{ Ġhide Bottom Sheet Dialog () Ġ} ĊĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. set ContentView ( dialog View ) ĊĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. show () ĊĠĠĠĠĠĠĠ ĠHelper Unit . set Bottom Sheet Behavior ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog !! , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBottom Sheet Behavior . STATE _ EXP AN DED ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtoast _ login ( userName : ĠString , Ġpass Word : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdecrypted _ userName Ġ= Ġm ah Encrypt or ?. decode ( userName ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdecrypted _ user PW Ġ= Ġm ah Encrypt or ?. decode ( pass Word ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclipboard Ġ= Ġ( getSystem Service ( Context . CLIP BOARD _ SERVICE ) Ġas ĠClip board Manager ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġun Copy : ĠBroadcast Receiver Ġ= Ġobject Ġ: ĠBroadcast Receiver () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Receive ( context : ĠContext ?, Ġintent : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclip Ġ= ĠClip Data . new Plain Text (" text ", Ġdecrypted _ userName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclipboard . set Primary Clip ( clip ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠN inja Toast . show ( context , ĠR . string . toast _ copy _ successful ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpw Copy : ĠBroadcast Receiver Ġ= Ġobject Ġ: ĠBroadcast Receiver () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Receive ( context : ĠContext ?, Ġintent : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclip Ġ= ĠClip Data . new Plain Text (" text ", Ġdecrypted _ user PW ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclipboard . set Primary Clip ( clip ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠN inja Toast . show ( context , ĠR . string . toast _ copy _ successful ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Filter Ġ= ĠIntent Filter (" un Copy ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Receiver ( un Copy , Ġintent Filter ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcopy Ġ= ĠIntent (" un Copy ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcopy UN Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPending Intent . get Broadcast ( context , Ġ 0 , Ġcopy , ĠPending Intent . FLAG _ CANCEL _ CURRENT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Filter 2 Ġ= ĠIntent Filter (" pw Copy ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister Receiver ( pw Copy , Ġintent Filter 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcopy 2 Ġ= ĠIntent (" pw Copy ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcopy PW Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPending Intent . get Broadcast ( context , Ġ 1 , Ġcopy 2 , ĠPending Intent . FLAG _ CANCEL _ CURRENT ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Notification Manager Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( getSystem Service ( Context . NOTIFICATION _ SERVICE ) Ġas ĠNotification Manager ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder : ĠNotification Compat . Builder Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠCHAN NEL _ ID Ġ= Ġ" browser _ not " Ġ// ĠThe Ġid Ġof Ġthe Ġchannel . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname : ĠCharSequence Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . app _ name ) Ġ// ĠThe Ġuser - visible Ġname Ġof Ġthe Ġchannel . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Channel Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotification Channel ( CHANNEL _ ID , Ġname , ĠNotification Manager . IMPORT ANCE _ HIGH ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Notification Manager . create Notification Channel ( m Channel ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotification Compat . Builder ( context !! , ĠCHAN NEL _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction _ UN Ġ= ĠNotification Compat . Action . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . icon _ earth , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . toast _ title Confirm _ paste UN ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcopy UN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction _ PW Ġ= ĠNotification Compat . Action . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . drawable . icon _ earth , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . toast _ title Confirm _ paste PW ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcopy PW ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġn Ġ= Ġbuilder ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Category ( Notification . CATEGORY _ MESSAGE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Small Icon ( R . drawable . ic _ notification _ ninja ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Title ( getString ( R . string . app _ name )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setContent Text ( getString ( R . string . toast _ title Confirm _ paste )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setColor ( resources . getColor ( R . color . color Accent )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setAuto Cancel ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Priority ( Notification . PRIORITY _ HIGH ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set V ibrate ( Long Array ( 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addAction ( action _ UN ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addAction ( action _ PW ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnotification Manager Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( getSystem Service ( Context . NOTIFICATION _ SERVICE ) Ġas ĠNotification Manager ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( de crypted _ userName ?. length !! Ġ> Ġ 0 Ġ|| Ġdecrypted _ user PW ?. length !! Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotification Manager . notify ( 0 , Ġn ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠN inja Toast . show ( context , ĠR . string . toast _ error ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Synchron ized ĊĠĠĠ Ġprivate Ġfun Ġadd Album ( title : ĠString ?, Ġurl : ĠString ?, Ġforeground : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġn inja WebView Ġ= ĠN inja WebView ( context ) ĊĠĠĠĠĠĠĠ Ġn inja WebView ?. set Browser Controller ( this ) ĊĠĠĠĠĠĠĠ Ġn inja WebView ?. album Title Ġ= Ġtitle ĊĠĠĠĠĠĠĠ ĠView Unit . bound ( context , Ġn inja WebView !! ) ĊĠĠĠĠĠĠĠ Ġval Ġalbum View Ġ= Ġn inja WebView ?. album View ĊĠĠĠĠĠĠĠ Ġif Ġ( current Album Controller Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġindex Ġ= ĠBrowser Container . indexOf ( current Album Controller ) Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBrowser Container . add ( ninja WebView !! , Ġindex ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtab _ container ?. addView ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalbum View , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLinearLayout . LayoutParams . WRAP _ CONTENT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLinearLayout . LayoutParams . WRAP _ CONTENT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBrowser Container . add ( ninja WebView !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtab _ container ?. addView ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalbum View , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLinearLayout . LayoutParams . WRAP _ CONTENT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLinearLayout . LayoutParams . WRAP _ CONTENT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! foreground ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView Unit . bound ( context , Ġn inja WebView !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġn inja WebView ?. load Url ( url !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġn inja WebView ?. deactivate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Om ni box () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Album ( ninja WebView ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( url Ġ!= Ġnull Ġ&& Ġ! url . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġn inja WebView ?. load Url ( url ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Synchron ized ĊĠĠĠ Ġprivate Ġfun Ġupdate Album ( url : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġ( current Album Controller Ġas ĠN inja WebView ?) ?. load Url ( url !! ) ĊĠĠĠĠĠĠĠ Ġupdate Om ni box () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġclose Tab Confirmation ( ok Action : ĠRunnable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! sp ?. getBoolean (" sp _ close _ tab _ confirm ", Ġfalse ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġok Action . run () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog Ġ= ĠBottom Sheet Dialog ( context !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog View Ġ= ĠView . inflate ( context , ĠR . layout . dialog _ action , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠtextView Ġ= Ġdialog View . findViewById < TextView >( R . id . dialog _ text ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . setText ( R . string . toast _ close _ tab ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction Ok Ġ= Ġdialog View . findViewById < Button >( R . id . action _ ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction Ok . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġok Action . run () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction Cancel Ġ= Ġdialog View . findViewById < Button >( R . id . action _ cancel ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction Cancel . setOnClickListener Ġ{ Ġhide Bottom Sheet Dialog () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. set ContentView ( dialog View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. show () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHelper Unit . set Bottom Sheet Behavior ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBottom Sheet Behavior . STATE _ EXP AN DED ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Synchron ized ĊĠĠĠ Ġoverride Ġfun Ġremove Album ( controller : ĠAlbum Controller ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Browser Container . size () Ġ<= Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! sp ?. getBoolean (" sp _ re open Last Tab ", Ġfalse ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdouble T aps Quit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Album ( sp ?. getString (" favorite URL ", Ġ" https :// github . com / sco ute - d ich / browser ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Overview () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclose Tab Confirmation ( Runnable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtab _ container ?. remove View ( controller ?. album View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġindex Ġ= ĠBrowser Container . indexOf ( controller ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBrowser Container . remove ( controller ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( index Ġ>= ĠBrowser Container . size ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindex Ġ= ĠBrowser Container . size () Ġ- Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Album ( Browser Container . get ( index )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Om ni box () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( ninja WebView Ġ=== Ġcurrent Album Controller ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġom ni box Title ?. text Ġ= Ġn inja WebView ?. title ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġn inja WebView Ġ= Ġcurrent Album Controller Ġas ĠN inja WebView ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Progress ( ninja WebView ?. progress !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġscroll Change () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean (" hide Toolbar ", Ġtrue ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġn inja WebView ?. setOn Scroll ChangeListener Ġ{ Ġv , Ġscroll X , Ġscroll Y , Ġold Scroll X , Ġold Scroll Y Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġheight Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfloor ( ninja WebView ?. content Height !! Ġ* Ġn inja WebView ?. resources ?. display Metrics ?. density ?. toDouble () !! ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠwebView Height Ġ= Ġn inja WebView ?. height ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcutoff Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight Ġ- ĠwebView Height !! Ġ- Ġ 1 1 2 Ġ* ĠMath . round ( resources . display Metrics . density ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( scroll Y Ġin Ġold Scroll Y Ġ+ Ġ 1 .. cutoff ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Om ni box () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( scroll Y Ġ< Ġold Scroll Y ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Om ni box () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Synchron ized ĊĠĠĠ Ġoverride Ġfun Ġupdate Progress ( progress : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠprogressBar ?. progress Ġ= Ġprogress ĊĠĠĠĠĠĠĠ Ġupdate Om ni box () ĊĠĠĠĠĠĠĠ Ġupdate Auto Complete () ĊĠĠĠĠĠĠĠ Ġscroll Change () ĊĠĠĠĠĠĠĠ ĠHelper Unit . init Rendering ( content Frame ) ĊĠĠĠĠĠĠĠ Ġn inja WebView ?. request Focus () ĊĠĠĠĠĠĠĠ Ġif Ġ( progress Ġ< ĠBrowser Unit . PROGRESS _ MAX ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Refresh ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Refresh ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Refresh ( running : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( running ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġom ni box Refresh ?. setImage Resource ( R . drawable . icon _ close ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ninja WebView ?. url ?. contains (" https :// ") !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġom ni box Refresh ?. setImage Resource ( R . drawable . icon _ refresh ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġom ni box Refresh ?. setImage Resource ( R . drawable . icon _ alert ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġom ni box Refresh ?. setImage Resource ( R . drawable . icon _ refresh ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow FileChooser ( filePath Callback : ĠValue Callback < Array < Uri >> ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m FilePath Callback Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm FilePath Callback ?. on Receive Value ( null ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm FilePath Callback Ġ= ĠfilePath Callback ĊĠĠĠĠĠĠĠ Ġval Ġcontent Selection Intent Ġ= ĠIntent ( Intent . ACTION _ GET _ CONTENT ) ĊĠĠĠĠĠĠĠ Ġcontent Selection Intent . add Category ( Intent . CATEGORY _ OP ENABLE ) ĊĠĠĠĠĠĠĠ Ġcontent Selection Intent . type Ġ= Ġ"* /* " ĊĠĠĠĠĠĠĠ Ġval Ġcho oser Intent Ġ= ĠIntent ( Intent . ACTION _ CH OO SER ) ĊĠĠĠĠĠĠĠ Ġcho oser Intent . putExtra ( Intent . EXTRA _ INT ENT , Ġcontent Selection Intent ) ĊĠĠĠĠĠĠĠ ĠstartActivity For Result ( cho oser Intent , ĠINPUT _ FILE _ REQUEST _ CODE ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Show Custom View ( view : ĠView ?, Ġcallback : ĠCustom View Callback ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( view Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( custom View Ġ!= Ġnull Ġ&& Ġcallback Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . on Custom View Hidden () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcustom View Ġ= Ġview ĊĠĠĠĠĠĠĠ Ġoriginal Orientation Ġ= Ġrequested Orientation ĊĠĠĠĠĠĠĠ Ġfullscreen Holder Ġ= ĠFrame Layout ( context !! ) ĊĠĠĠĠĠĠĠ Ġfullscreen Holder ?. addView ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcustom View , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFrame Layout . LayoutParams ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFrame Layout . LayoutParams . MATCH _ PARENT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFrame Layout . LayoutParams . MATCH _ PARENT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġdecor View Ġ= Ġwindow . decor View Ġas ĠFrame Layout ĊĠĠĠĠĠĠĠ Ġdecor View . addView ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfullscreen Holder , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFrame Layout . LayoutParams ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFrame Layout . LayoutParams . MATCH _ PARENT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFrame Layout . LayoutParams . MATCH _ PARENT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġcustom View ?. keep Screen On Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ( current Album Controller Ġas ĠView ?) ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġset Custom Fullscreen ( true ) ĊĠĠĠĠĠĠĠ Ġif Ġ( view Ġis ĠFrame Layout ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( view . focused Child Ġis ĠVideo View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvideo View Ġ= Ġview . focused Child Ġas ĠVideo View ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvideo View ?. setOn Error Listener ( Video Completion Listener ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvideo View ?. setOn Completion Listener ( Video Completion Listener ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcustom View Callback Ġ= Ġcallback ĊĠĠĠĠĠĠĠ Ġ// ĠTODO : Ġcheck Ġrequested Orientation ĊĠĠĠĠĠĠĠ Ġ// Ġrequested Orientation Ġ= ĠActivity Info . SCREEN _ OR IENTATION _ LAND SC APE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Hide Custom View (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( custom View Ġ== Ġnull Ġ|| Ġcustom View Callback Ġ== Ġnull Ġ|| Ġcurrent Album Controller Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġdecor View Ġ= Ġwindow . decor View Ġas ĠFrame Layout ĊĠĠĠĠĠĠĠ Ġdecor View . remove View ( fullscreen Holder ) ĊĠĠĠĠĠĠĠ Ġcustom View ?. keep Screen On Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ( current Album Controller Ġas ĠView ). visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġset Custom Fullscreen ( false ) ĊĠĠĠĠĠĠĠ Ġfullscreen Holder Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġcustom View Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġif Ġ( video View Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvideo View ?. setOn Error Listener ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvideo View ?. setOn Completion Listener ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvideo View Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrequested Orientation Ġ= Ġoriginal Orientation ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow _ context Menu _ link ( url : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġbottom Sheet Dialog Ġ= ĠBottom Sheet Dialog ( context !! ) ĊĠĠĠĠĠĠĠ Ġval Ġdialog View Ġ= ĠView . inflate ( context , ĠR . layout . dialog _ menu _ context _ link , Ġnull ) ĊĠĠĠĠĠĠĠ Ġdialog Title Ġ= Ġdialog View . findViewById ( R . id . dialog _ title ) ĊĠĠĠĠĠĠĠ Ġdialog Title ?. text Ġ= Ġurl ĊĠĠĠĠĠĠĠ Ġval Ġcontext Link New Tab Ġ= Ġdialog View . findViewById < LinearLayout >( R . id . context Link _ new Tab ) ĊĠĠĠĠĠĠĠ Ġcontext Link New Tab . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Album ( getString ( R . string . app _ name ), Ġurl , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠN inja Toast . show ( context , ĠgetString ( R . string . toast _ new _ tab _ successful )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġcontext Link Share Link Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View . findViewById < LinearLayout >( R . id . context Link __ share Link ) ĊĠĠĠĠĠĠĠ Ġcontext Link Share Link . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( prepare Record ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠN inja Toast . show ( context , ĠgetString ( R . string . toast _ share _ failed )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent Unit . share ( context , Ġ"", Ġurl ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġcontext Link Open With Ġ= Ġdialog View . findViewById < LinearLayout >( R . id . context Link _ open With ) ĊĠĠĠĠĠĠĠ Ġcontext Link Open With . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Intent . ACTION _ VIEW ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . data Ġ= ĠUri . parse ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcho oser Ġ= ĠIntent . create Chooser ( intent , ĠgetString ( R . string . menu _ open _ with )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( cho oser ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġcontext Link New Tab Open Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View . findViewById < LinearLayout >( R . id . context Link _ new Tab Open ) ĊĠĠĠĠĠĠĠ Ġcontext Link New Tab Open . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Album ( getString ( R . string . app _ name ), Ġurl , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġcontext Link Save As Ġ= Ġdialog View . findViewById < LinearLayout >( R . id . context Link _ save As ) ĊĠĠĠĠĠĠĠ Ġcontext Link Save As . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠAlertDialog . Builder ( context !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog View Ġ= ĠView . inflate ( context , ĠR . layout . dialog _ edit _ extension , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġedit Title Ġ= Ġdialog View . findViewById < EditText >( R . id . dialog _ edit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġedit Extension Ġ= Ġdialog View . findViewById < EditText >( R . id . dialog _ edit _ extension ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfilename Ġ= ĠURL Util . guess FileName ( url , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit Title . set Hint ( R . string . dialog _ title _ hint ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit Title . setText ( Helper Unit . fileName ( ninja WebView ?. url )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġextension Ġ= Ġfilename . substring ( filename . lastIndexOf (". ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( extension . length Ġ<= Ġ 8 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit Extension . setText ( extension ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . setView ( dialog View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . setTitle ( R . string . menu _ edit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . set Positive Button ( R . string . app _ ok ) Ġ{ Ġdialog , Ġwhich Button Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġedit Title . text . toString (). trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġextension Ġ= Ġedit Extension . text . toString (). trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfilename Ġ= Ġtitle Ġ+ Ġextension ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( title . isEmpty () Ġ|| Ġextension . isEmpty () Ġ|| Ġ! extension . startsWith (". ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠN inja Toast . show ( context , ĠgetString ( R . string . toast _ input _ empty )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ< Ġ 2 9 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhas Write External Storage Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Self Permission ( Manifest . permission . WRITE _ EXTERNAL _ STORAGE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( has Write External Storage Ġ!= ĠPackage Manager . PERMISSION _ GRAN TED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHelper Unit . grant Permissions Storage ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsource Ġ= ĠUri . parse ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠDownload Manager . Request ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . add Request Header ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Cookie ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCookie Manager . getInstance (). get Cookie ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . set Notification Visibility ( Download Manager . Request . VIS IBILITY _ VISIBLE _ NOTIFY _ COMPLETED ) Ġ// Notify Ġclient Ġonce Ġdownload Ġis Ġcompleted ! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . set Destination In External Public Dir ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEnvironment . DIRECTORY _ DOWNLOAD S , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilename ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdm Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( getSystem Service ( Context . DOWNLOAD _ SERVICE ) Ġas ĠDownload Manager ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdm . enqueue ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Keyboard ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsource Ġ= ĠUri . parse ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠDownload Manager . Request ( source ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . add Request Header ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Cookie ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCookie Manager . getInstance (). get Cookie ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . set Notification Visibility ( Download Manager . Request . VIS IBILITY _ VISIBLE _ NOTIFY _ COMPLETED ) Ġ// Notify Ġclient Ġonce Ġdownload Ġis Ġcompleted ! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . set Destination In External Public Dir ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEnvironment . DIRECTORY _ DOWNLOAD S , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilename ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdm Ġ= Ġ( getSystem Service ( Context . DOWNLOAD _ SERVICE ) Ġas ĠDownload Manager ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdm . enqueue ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Keyboard ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . set Negative Button ( R . string . app _ cancel ) Ġ{ Ġdialog , Ġwhich Button Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . cancel () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Keyboard ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= Ġbuilder . create () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. set ContentView ( dialog View ) ĊĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. show () ĊĠĠĠĠĠĠĠ ĠHelper Unit . set Bottom Sheet Behavior ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog !! , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBottom Sheet Behavior . STATE _ EXP AN DED ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Long Press ( url : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġn inja WebView ?. hit TestResult ĊĠĠĠĠĠĠĠ Ġif Ġ( url Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow _ context Menu _ link ( url ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( result Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result . type Ġ== ĠHit TestResult . IMAGE _ TYPE Ġ|| Ġresult . type Ġ== ĠHit TestResult . SRC _ IMAGE _ AN CH OR _ TYPE Ġ|| Ġresult . type Ġ== ĠHit TestResult . SRC _ AN CH OR _ TYPE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow _ context Menu _ link ( result . extra ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdouble T aps Quit () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! sp ?. getBoolean (" sp _ close _ browser _ confirm ", Ġtrue ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog Ġ= ĠBottom Sheet Dialog ( context !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog View Ġ= ĠView . inflate ( context , ĠR . layout . dialog _ action , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠtextView Ġ= Ġdialog View . findViewById < TextView >( R . id . dialog _ text ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . setText ( R . string . toast _ quit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction _ ok Ġ= Ġdialog View . findViewById < Button >( R . id . action _ ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction _ ok . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction _ cancel Ġ= Ġdialog View . findViewById < Button >( R . id . action _ cancel ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction _ cancel . setOnClickListener Ġ{ Ġhide Bottom Sheet Dialog () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. set ContentView ( dialog View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. show () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHelper Unit . set Bottom Sheet Behavior ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBottom Sheet Behavior . STATE _ EXP AN DED ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Restricted Api ") ĊĠĠĠ Ġprivate Ġfun Ġshow Om ni box () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! search On Site ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfab _ image Button Nav ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsearch Panel ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġom ni box ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġom ni box Title ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Bar ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Keyboard ( activity ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Restricted Api ") ĊĠĠĠ Ġprivate Ġfun Ġhide Om ni box () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! search On Site ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfab _ image Button Nav ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsearch Panel ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġom ni box ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġom ni box Title ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Bar ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhide Search Panel () Ġ{ ĊĠĠĠĠĠĠĠ Ġsearch On Site Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġsearch Box ?. setText ("") ĊĠĠĠĠĠĠĠ Ġshow Om ni box () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Restricted Api ") ĊĠĠĠ Ġprivate Ġfun Ġshow Search Panel () Ġ{ ĊĠĠĠĠĠĠĠ Ġsearch On Site Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġfab _ image Button Nav ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġom ni box ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġsearch Panel ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġom ni box Title ?. visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġapp Bar ?. visibility Ġ= ĠView . VISIBLE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Overflow (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġbottom Sheet Dialog Ġ= ĠBottom Sheet Dialog ( context !! ) ĊĠĠĠĠĠĠĠ Ġval Ġdialog View Ġ= ĠView . inflate ( context , ĠR . layout . dialog _ menu , Ġnull ) ĊĠĠĠĠĠĠĠ Ġfab _ tab Ġ= Ġdialog View . findViewById ( R . id . float Button _ tab ) ĊĠĠĠĠĠĠĠ Ġfab _ tab ?. setOnClickListener ( this @ Browser Activity ) ĊĠĠĠĠĠĠĠ Ġfab _ share Ġ= Ġdialog View . findViewById ( R . id . float Button _ share ) ĊĠĠĠĠĠĠĠ Ġfab _ share ?. setOnClickListener ( this @ Browser Activity ) ĊĠĠĠĠĠĠĠ Ġfab _ save Ġ= Ġdialog View . findViewById ( R . id . float Button _ save ) ĊĠĠĠĠĠĠĠ Ġfab _ save ?. setOnClickListener ( this @ Browser Activity ) ĊĠĠĠĠĠĠĠ Ġfab _ more Ġ= Ġdialog View . findViewById ( R . id . float Button _ more ) ĊĠĠĠĠĠĠĠ Ġfab _ more ?. setOnClickListener ( this @ Browser Activity ) ĊĠĠĠĠĠĠĠ Ġfloat Button _ tab View Ġ= Ġdialog View . findViewById ( R . id . float Button _ tab View ) ĊĠĠĠĠĠĠĠ Ġfloat Button _ save View Ġ= Ġdialog View . findViewById ( R . id . float Button _ save View ) ĊĠĠĠĠĠĠĠ Ġfloat Button _ share View Ġ= Ġdialog View . findViewById ( R . id . float Button _ share View ) ĊĠĠĠĠĠĠĠ Ġfloat Button _ more View Ġ= Ġdialog View . findViewById ( R . id . float Button _ more View ) ĊĠĠĠĠĠĠĠ Ġdialog Title Ġ= Ġdialog View . findViewById ( R . id . dialog _ title ) ĊĠĠĠĠĠĠĠ Ġdialog Title ?. text Ġ= Ġn inja WebView ?. title ĊĠĠĠĠĠĠĠ Ġmenu _ new Tab Open Ġ= Ġdialog View . findViewById ( R . id . menu _ new Tab Open ) ĊĠĠĠĠĠĠĠ Ġmenu _ new Tab Open ?. setOnClickListener ( this @ Browser Activity ) ĊĠĠĠĠĠĠĠ Ġmenu _ close Tab Ġ= Ġdialog View . findViewById ( R . id . menu _ close Tab ) ĊĠĠĠĠĠĠĠ Ġmenu _ close Tab ?. setOnClickListener ( this @ Browser Activity ) ĊĠĠĠĠĠĠĠ Ġmenu _ tab Preview Ġ= Ġdialog View . findViewById ( R . id . menu _ tab Preview ) ĊĠĠĠĠĠĠĠ Ġmenu _ tab Preview ?. setOnClickListener ( this @ Browser Activity ) ĊĠĠĠĠĠĠĠ Ġmenu _ quit Ġ= Ġdialog View . findViewById ( R . id . menu _ quit ) ĊĠĠĠĠĠĠĠ Ġmenu _ quit ?. setOnClickListener ( this @ Browser Activity ) ĊĠĠĠĠĠĠĠ Ġmenu _ share Screenshot Ġ= Ġdialog View . findViewById ( R . id . menu _ share Screenshot ) ĊĠĠĠĠĠĠĠ Ġmenu _ share Screenshot ?. setOnClickListener ( this @ Browser Activity ) ĊĠĠĠĠĠĠĠ Ġmenu _ share Link Ġ= Ġdialog View . findViewById ( R . id . menu _ share Link ) ĊĠĠĠĠĠĠĠ Ġmenu _ share Link ?. setOnClickListener ( this @ Browser Activity ) ĊĠĠĠĠĠĠĠ Ġmenu _ share PDF Ġ= Ġdialog View . findViewById ( R . id . menu _ share PDF ) ĊĠĠĠĠĠĠĠ Ġmenu _ share PDF ?. setOnClickListener ( this @ Browser Activity ) ĊĠĠĠĠĠĠĠ Ġmenu _ open With Ġ= Ġdialog View . findViewById ( R . id . menu _ open With ) ĊĠĠĠĠĠĠĠ Ġmenu _ open With ?. setOnClickListener ( this @ Browser Activity ) ĊĠĠĠĠĠĠĠ Ġmenu _ save Screenshot Ġ= Ġdialog View . findViewById ( R . id . menu _ save Screenshot ) ĊĠĠĠĠĠĠĠ Ġmenu _ save Screenshot ?. setOnClickListener ( this @ Browser Activity ) ĊĠĠĠĠĠĠĠ Ġmenu _ save Bookmark Ġ= Ġdialog View . findViewById ( R . id . menu _ save Bookmark ) ĊĠĠĠĠĠĠĠ Ġmenu _ save Bookmark ?. setOnClickListener ( this @ Browser Activity ) ĊĠĠĠĠĠĠĠ Ġmenu _ save PDF Ġ= Ġdialog View . findViewById ( R . id . context Link _ save As ) ĊĠĠĠĠĠĠĠ Ġmenu _ save PDF ?. setOnClickListener ( this @ Browser Activity ) ĊĠĠĠĠĠĠĠ Ġmenu _ save Start Ġ= Ġdialog View . findViewById ( R . id . menu _ save Start ) ĊĠĠĠĠĠĠĠ Ġmenu _ save Start ?. setOnClickListener ( this @ Browser Activity ) ĊĠĠĠĠĠĠĠ Ġmenu _ search Site Ġ= Ġdialog View . findViewById ( R . id . menu _ search Site ) ĊĠĠĠĠĠĠĠ Ġmenu _ search Site ?. setOnClickListener ( this @ Browser Activity ) ĊĠĠĠĠĠĠĠ Ġmenu _ settings Ġ= Ġdialog View . findViewById ( R . id . menu _ settings ) ĊĠĠĠĠĠĠĠ Ġmenu _ settings ?. setOnClickListener ( this @ Browser Activity ) ĊĠĠĠĠĠĠĠ Ġmenu _ download Ġ= Ġdialog View . findViewById ( R . id . menu _ download ) ĊĠĠĠĠĠĠĠ Ġmenu _ download ?. setOnClickListener ( this @ Browser Activity ) ĊĠĠĠĠĠĠĠ Ġmenu _ file Manager Ġ= Ġdialog View . findViewById ( R . id . menu _ file Manager ) ĊĠĠĠĠĠĠĠ Ġmenu _ file Manager ?. setOnClickListener ( this @ Browser Activity ) ĊĠĠĠĠĠĠĠ Ġmenu _ share CP Ġ= Ġdialog View . findViewById ( R . id . menu _ share Clipboard ) ĊĠĠĠĠĠĠĠ Ġmenu _ share CP ?. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclipboard Ġ= Ġget System Service ( Context . CLIP BOARD _ SERVICE ) Ġas ĠClip board Manager ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclip Ġ= ĠClip Data . new Plain Text (" text ", Ġurl ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclipboard ?. set Primary Clip ( clip ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠN inja Toast . show ( context , ĠR . string . toast _ copy _ successful ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmenu _ open Fav Ġ= Ġdialog View . findViewById ( R . id . menu _ open Fav ) ĊĠĠĠĠĠĠĠ Ġmenu _ open Fav ?. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Album ( sp ?. getString (" favorite URL ", Ġ" https :// github . com / sco ute - d ich / browser ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmenu _ sc Ġ= Ġdialog View . findViewById ( R . id . menu _ sc ) ĊĠĠĠĠĠĠĠ Ġmenu _ sc ?. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHelper Unit . create Shortcut ( context , Ġn inja WebView ?. title , Ġn inja WebView ?. url ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmenu _ fav Ġ= Ġdialog View . findViewById ( R . id . menu _ fav ) ĊĠĠĠĠĠĠĠ Ġmenu _ fav ?. setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHelper Unit . set Favorite ( context , Ġurl ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. set ContentView ( dialog View ) ĊĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. show () ĊĠĠĠĠĠĠĠ ĠHelper Unit . set Bottom Sheet Behavior ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog !! , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBottom Sheet Behavior . STATE _ EXP AN DED ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow ContextMenu List ( ĊĠĠĠĠĠĠĠ Ġtitle : ĠString ?, Ġurl : ĠString ?, ĊĠĠĠĠĠĠĠ Ġadapter Record : ĠAdapter _ Record ?, Ġrecord List : ĠMutable List < Record > ?, Ġlocation : ĠInt , ĊĠĠĠĠĠĠĠ ĠuserName : ĠString ?, Ġuser PW : ĠString ?, Ġ_ id : ĠString ?, Ġpass _ creation : ĠString ?, ĊĠĠĠĠĠĠĠ Ġgrid Item : ĠGrid Item ? ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbottom Sheet Dialog Ġ= ĠBottom Sheet Dialog ( context !! ) ĊĠĠĠĠĠĠĠ Ġval Ġdialog View Ġ= ĠView . inflate ( context , ĠR . layout . dialog _ menu _ context _ list , Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġdb Ġ= ĠBook mark List ( context ) ĊĠĠĠĠĠĠĠ Ġdb . open () ĊĠĠĠĠĠĠĠ Ġval Ġcontext List Edit Ġ= Ġdialog View . findViewById < LinearLayout >( R . id . menu _ context List _ edit ) ĊĠĠĠĠĠĠĠ Ġval Ġcontext List Fav Ġ= Ġdialog View . findViewById < LinearLayout >( R . id . menu _ context List _ fav ) ĊĠĠĠĠĠĠĠ Ġval Ġcontext List Sc Ġ= Ġdialog View . findViewById < LinearLayout >( R . id . menu _ context Link _ sc ) ĊĠĠĠĠĠĠĠ Ġval Ġcontext List New Tab Ġ= Ġdialog View . findViewById < LinearLayout >( R . id . menu _ context List _ new Tab ) ĊĠĠĠĠĠĠĠ Ġval Ġcontext List New Tab Open Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View . findViewById < LinearLayout >( R . id . menu _ context List _ new Tab Open ) ĊĠĠĠĠĠĠĠ Ġval Ġcontext List Delete Ġ= Ġdialog View . findViewById < LinearLayout >( R . id . menu _ context List _ delete ) ĊĠĠĠĠĠĠĠ Ġif Ġ( over View Tab Ġ== ĠgetString ( R . string . album _ title _ history )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext List Edit . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext List Edit . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcontext List Fav . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHelper Unit . set Favorite ( context , Ġurl ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcontext List Sc . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHelper Unit . create Shortcut ( context , Ġtitle , Ġurl ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcontext List New Tab . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Album ( getString ( R . string . app _ name ), Ġurl , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠN inja Toast . show ( context , ĠgetString ( R . string . toast _ new _ tab _ successful )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcontext List New Tab Open . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Album ( getString ( R . string . app _ name ), Ġurl , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Overview () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcontext List Delete . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog Ġ= ĠBottom Sheet Dialog ( context !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog View Ġ= ĠView . inflate ( context , ĠR . layout . dialog _ action , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠtextView Ġ= Ġdialog View . findViewById < TextView >( R . id . dialog _ text ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtextView . setText ( R . string . toast _ title Confirm _ delete ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction _ ok Ġ= Ġdialog View . findViewById < Button >( R . id . action _ ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction _ ok . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( over View Tab Ġ== ĠgetString ( R . string . album _ title _ home )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction Ġ= ĠRecord Action ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction . open ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction . delete Grid Item ( grid Item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction . close () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelete File ( grid Item ?. filename ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen _ start Page ?. perform Click () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( over View Tab Ġ== ĠgetString ( R . string . album _ title _ bookmarks )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb . delete (_ id ?. toInt () !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Bookmark List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( over View Tab Ġ== ĠgetString ( R . string . album _ title _ history )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrecord Ġ= Ġrecord List ! ![ location ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction Ġ= ĠRecord Action ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction . open ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction . delete History Item ( record ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction . close () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrecord List . remove At ( location ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Record ?. notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Auto Complete () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction _ cancel Ġ= Ġdialog View . findViewById < Button >( R . id . action _ cancel ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction _ cancel . setOnClickListener Ġ{ Ġhide Bottom Sheet Dialog () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. set ContentView ( dialog View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. show () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHelper Unit . set Bottom Sheet Behavior ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBottom Sheet Behavior . STATE _ EXP AN DED ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcontext List Edit . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( over View Tab Ġ== ĠgetString ( R . string . album _ title _ home )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog Ġ= ĠBottom Sheet Dialog ( context !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog View Ġ= ĠView . inflate ( context , ĠR . layout . dialog _ edit _ title , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġedit Text Ġ= Ġdialog View . findViewById < EditText >( R . id . dialog _ edit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit Text . set Hint ( R . string . dialog _ title _ hint ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit Text . setText ( title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction _ ok Ġ= Ġdialog View . findViewById < Button >( R . id . action _ ok ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction _ ok . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġedit Text . text . toString (). trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( text . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠN inja Toast . show ( context , ĠgetString ( R . string . toast _ input _ empty )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction Ġ= ĠRecord Action ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction . open ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrid Item ?. title Ġ= Ġtext ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction . update Grid Item ( grid Item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction . close () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Keyboard ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen _ start Page ?. perform Click () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction _ cancel Ġ= Ġdialog View . findViewById < Button >( R . id . action _ cancel ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction _ cancel . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Keyboard ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. set ContentView ( dialog View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHelper Unit . set Bottom Sheet Behavior ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBottom Sheet Behavior . STATE _ EXP AN DED ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( over View Tab Ġ== ĠgetString ( R . string . album _ title _ bookmarks )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog Ġ= ĠBottom Sheet Dialog ( context !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog View Ġ= ĠView . inflate ( context , ĠR . layout . dialog _ edit _ bookmark , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpass _ title ET Ġ= Ġdialog View . findViewById < EditText >( R . id . pass _ title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpass _ userName ET Ġ= Ġdialog View . findViewById < EditText >( R . id . pass _ userName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpass _ user PW ET Ġ= Ġdialog View . findViewById < EditText >( R . id . pass _ user PW ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpass _ UR LET Ġ= Ġdialog View . findViewById < EditText >( R . id . pass _ url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġib _ icon Ġ= Ġdialog View . findViewById < ImageView >( R . id . ib _ icon ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdecrypted _ userName Ġ= Ġm ah Encrypt or ?. decode ( userName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdecrypted _ user PW Ġ= Ġm ah Encrypt or ?. decode ( user PW ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpass _ title ET . setText ( title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpass _ userName ET . setText ( de crypted _ userName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpass _ user PW ET . setText ( de crypted _ user PW ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpass _ UR LET . setText ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction _ ok Ġ= Ġdialog View . findViewById < Button >( R . id . action _ ok ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction _ ok . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinput _ pass _ title Ġ= Ġpass _ title ET . text . toString (). trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinput _ pass _ url Ġ= Ġpass _ UR LET . text . toString (). trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġencrypted _ userName Ġ= Ġm ah Encrypt or ?. encode ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpass _ userName ET . text . toString (). trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġencrypted _ user PW Ġ= Ġm ah Encrypt or ?. encode ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpass _ user PW ET . text . toString (). trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb . update ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ id ?. toInt () !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHelper Unit . sec String ( input _ pass _ title ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHelper Unit . sec String ( input _ pass _ url ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHelper Unit . sec String ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġencrypted _ userName !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHelper Unit . sec String ( encrypted _ user PW !! ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpass _ creation ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Bookmark List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Keyboard ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠN inja Toast . show ( context , ĠR . string . toast _ error ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction _ cancel Ġ= Ġdialog View . findViewById < Button >( R . id . action _ cancel ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction _ cancel . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Keyboard ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHelper Unit . switch Icon ( activity , Ġpass _ creation , Ġ" pass _ creation ", Ġib _ icon ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. set ContentView ( dialog View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHelper Unit . set Bottom Sheet Behavior ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBottom Sheet Behavior . STATE _ EXP AN DED ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġib _ icon . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinput _ pass _ title Ġ= Ġpass _ title ET . text . toString (). trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinput _ pass _ url Ġ= Ġpass _ UR LET . text . toString (). trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġencrypted _ userName Ġ= Ġm ah Encrypt or ?. encode ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpass _ userName ET . text . toString (). trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġencrypted _ user PW Ġ= Ġm ah Encrypt or ?. encode ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpass _ user PW ET . text . toString (). trim Ġ{ Ġit Ġ<= Ġ' Ġ' Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Keyboard ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog Ġ= ĠBottom Sheet Dialog ( context !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog View Ġ= ĠView . inflate ( context , ĠR . layout . dialog _ edit _ icon , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgrid Ġ= Ġdialog View . findViewById < GridView >( R . id . grid _ filter ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Album _ 0 1 Ġ= ĠGrid Item _ filter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. getString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" icon _ 0 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getString ( R . string . color _ red ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), Ġresources . get Drawable ( R . drawable . circle _ red _ big ), Ġ" 0 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Album _ 0 2 Ġ= ĠGrid Item _ filter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. getString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" icon _ 0 2 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getString ( R . string . color _ pink ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . get Drawable ( R . drawable . circle _ pink _ big ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 2 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Album _ 0 3 Ġ= ĠGrid Item _ filter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. getString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" icon _ 0 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getString ( R . string . color _ purple ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . get Drawable ( R . drawable . circle _ purple _ big ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 3 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Album _ 0 4 Ġ= ĠGrid Item _ filter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. getString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" icon _ 0 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getString ( R . string . color _ blue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . get Drawable ( R . drawable . circle _ blue _ big ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 4 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Album _ 0 5 Ġ= ĠGrid Item _ filter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. getString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" icon _ 0 5 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getString ( R . string . color _ teal ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . get Drawable ( R . drawable . circle _ teal _ big ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 5 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Album _ 0 6 Ġ= ĠGrid Item _ filter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. getString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" icon _ 0 6 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getString ( R . string . color _ green ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . get Drawable ( R . drawable . circle _ green _ big ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 6 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Album _ 0 7 Ġ= ĠGrid Item _ filter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. getString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" icon _ 0 7 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getString ( R . string . color _ lime ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . get Drawable ( R . drawable . circle _ lime _ big ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 7 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Album _ 0 8 Ġ= ĠGrid Item _ filter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. getString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" icon _ 0 8 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getString ( R . string . color _ yellow ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . get Drawable ( R . drawable . circle _ yellow _ big ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 8 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Album _ 0 9 Ġ= ĠGrid Item _ filter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. getString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" icon _ 0 9 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getString ( R . string . color _ orange ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . get Drawable ( R . drawable . circle _ orange _ big ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 9 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Album _ 1 0 Ġ= ĠGrid Item _ filter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. getString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" icon _ 1 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getString ( R . string . color _ brown ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . get Drawable ( R . drawable . circle _ brown _ big ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 0 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Album _ 1 1 Ġ= ĠGrid Item _ filter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. getString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" icon _ 1 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . getString ( R . string . color _ grey ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresources . get Drawable ( R . drawable . circle _ grey _ big ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgrid List : ĠMutable List < Grid Item _ filter > Ġ= ĠLinkedList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean (" filter _ 0 1 ", Ġtrue ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrid List . add ( grid List . size , Ġitem Album _ 0 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean (" filter _ 0 2 ", Ġtrue ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrid List . add ( grid List . size , Ġitem Album _ 0 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean (" filter _ 0 3 ", Ġtrue ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrid List . add ( grid List . size , Ġitem Album _ 0 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean (" filter _ 0 4 ", Ġtrue ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrid List . add ( grid List . size , Ġitem Album _ 0 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean (" filter _ 0 5 ", Ġtrue ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrid List . add ( grid List . size , Ġitem Album _ 0 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean (" filter _ 0 6 ", Ġtrue ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrid List . add ( grid List . size , Ġitem Album _ 0 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean (" filter _ 0 7 ", Ġtrue ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrid List . add ( grid List . size , Ġitem Album _ 0 7 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean (" filter _ 0 8 ", Ġtrue ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrid List . add ( grid List . size , Ġitem Album _ 0 8 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean (" filter _ 0 9 ", Ġtrue ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrid List . add ( grid List . size , Ġitem Album _ 0 9 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean (" filter _ 1 0 ", Ġtrue ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrid List . add ( grid List . size , Ġitem Album _ 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean (" filter _ 1 1 ", Ġtrue ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrid List . add ( grid List . size , Ġitem Album _ 1 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgrid Adapter Ġ= ĠGrid Adapter _ filter ( context , Ġgrid List ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrid . adapter Ġ= Ġgrid Adapter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrid Adapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrid . on ItemClickListener Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOn ItemClickListener Ġ{ Ġparent , Ġview , Ġposition , Ġid Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb . update ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ id ?. toInt () !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHelper Unit . sec String ( input _ pass _ title ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHelper Unit . sec String ( input _ pass _ url ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHelper Unit . sec String ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġencrypted _ userName !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHelper Unit . sec String ( encrypted _ user PW !! ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrid List [ position ]. ordinal ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Bookmark List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. set ContentView ( dialog View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHelper Unit . set Bottom Sheet Behavior ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBottom Sheet Behavior . STATE _ EXP AN DED ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠN inja Toast . show ( context , ĠR . string . toast _ error ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠN inja Toast . show ( context , ĠR . string . toast _ error ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. set ContentView ( dialog View ) ĊĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. show () ĊĠĠĠĠĠĠĠ ĠHelper Unit . set Bottom Sheet Behavior ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog !! , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBottom Sheet Behavior . STATE _ EXP AN DED ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġdb . close () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow _ dialog Filter () Ġ{ ĊĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠ Ġopen _ bookmark ?. perform Click () ĊĠĠĠĠĠĠĠ Ġbottom Sheet Dialog Ġ= ĠBottom Sheet Dialog ( context !! ) ĊĠĠĠĠĠĠĠ Ġval Ġdialog View Ġ= ĠView . inflate ( context , ĠR . layout . dialog _ edit _ icon , Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġgrid Ġ= Ġdialog View . findViewById < GridView >( R . id . grid _ filter ) ĊĠĠĠĠĠĠĠ Ġval Ġitem Album _ 0 1 Ġ= ĠGrid Item _ filter ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. getString (" icon _ 0 1 ", Ġresources . getString ( R . string . color _ red )), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources . get Drawable ( R . drawable . circle _ red _ big ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 1 " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġitem Album _ 0 2 Ġ= ĠGrid Item _ filter ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. getString (" icon _ 0 2 ", Ġresources . getString ( R . string . color _ pink )), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources . get Drawable ( R . drawable . circle _ pink _ big ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 2 " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġitem Album _ 0 3 Ġ= ĠGrid Item _ filter ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. getString (" icon _ 0 3 ", Ġresources . getString ( R . string . color _ purple )), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources . get Drawable ( R . drawable . circle _ purple _ big ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 3 " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġitem Album _ 0 4 Ġ= ĠGrid Item _ filter ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. getString (" icon _ 0 4 ", Ġresources . getString ( R . string . color _ blue )), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources . get Drawable ( R . drawable . circle _ blue _ big ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 4 " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġitem Album _ 0 5 Ġ= ĠGrid Item _ filter ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. getString (" icon _ 0 5 ", Ġresources . getString ( R . string . color _ teal )), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources . get Drawable ( R . drawable . circle _ teal _ big ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 5 " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġitem Album _ 0 6 Ġ= ĠGrid Item _ filter ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. getString (" icon _ 0 6 ", Ġresources . getString ( R . string . color _ green )), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources . get Drawable ( R . drawable . circle _ green _ big ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 6 " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġitem Album _ 0 7 Ġ= ĠGrid Item _ filter ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. getString (" icon _ 0 7 ", Ġresources . getString ( R . string . color _ lime )), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources . get Drawable ( R . drawable . circle _ lime _ big ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 7 " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġitem Album _ 0 8 Ġ= ĠGrid Item _ filter ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. getString (" icon _ 0 8 ", Ġresources . getString ( R . string . color _ yellow )), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources . get Drawable ( R . drawable . circle _ yellow _ big ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 8 " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġitem Album _ 0 9 Ġ= ĠGrid Item _ filter ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. getString (" icon _ 0 9 ", Ġresources . getString ( R . string . color _ orange )), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources . get Drawable ( R . drawable . circle _ orange _ big ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 0 9 " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġitem Album _ 1 0 Ġ= ĠGrid Item _ filter ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. getString (" icon _ 1 0 ", Ġresources . getString ( R . string . color _ brown )), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources . get Drawable ( R . drawable . circle _ brown _ big ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 0 " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġitem Album _ 1 1 Ġ= ĠGrid Item _ filter ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. getString (" icon _ 1 1 ", Ġresources . getString ( R . string . color _ grey )), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources . get Drawable ( R . drawable . circle _ grey _ big ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 1 " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġgrid List : ĠMutable List < Grid Item _ filter > Ġ= ĠLinkedList () ĊĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean (" filter _ 0 1 ", Ġtrue ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrid List . add ( grid List . size , Ġitem Album _ 0 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean (" filter _ 0 2 ", Ġtrue ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrid List . add ( grid List . size , Ġitem Album _ 0 2 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean (" filter _ 0 3 ", Ġtrue ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrid List . add ( grid List . size , Ġitem Album _ 0 3 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean (" filter _ 0 4 ", Ġtrue ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrid List . add ( grid List . size , Ġitem Album _ 0 4 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean (" filter _ 0 5 ", Ġtrue ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrid List . add ( grid List . size , Ġitem Album _ 0 5 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean (" filter _ 0 6 ", Ġtrue ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrid List . add ( grid List . size , Ġitem Album _ 0 6 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean (" filter _ 0 7 ", Ġtrue ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrid List . add ( grid List . size , Ġitem Album _ 0 7 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean (" filter _ 0 8 ", Ġtrue ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrid List . add ( grid List . size , Ġitem Album _ 0 8 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean (" filter _ 0 9 ", Ġtrue ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrid List . add ( grid List . size , Ġitem Album _ 0 9 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean (" filter _ 1 0 ", Ġtrue ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrid List . add ( grid List . size , Ġitem Album _ 1 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( sp ?. getBoolean (" filter _ 1 1 ", Ġtrue ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgrid List . add ( grid List . size , Ġitem Album _ 1 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġgrid Adapter Ġ= ĠGrid Adapter _ filter ( context , Ġgrid List ) ĊĠĠĠĠĠĠĠ Ġgrid . adapter Ġ= Ġgrid Adapter ĊĠĠĠĠĠĠĠ Ġgrid Adapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġgrid . on ItemClickListener Ġ= ĠOn ItemClickListener Ġ{ Ġparent , Ġview , Ġposition , Ġid Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsp ?. edit ()?. putString (" filter _ bookmarks ", Ġgrid List [ position ]. ordinal )?. apply () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit Bookmark List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhide Bottom Sheet Dialog () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. set ContentView ( dialog View ) ĊĠĠĠĠĠĠĠ Ġbottom Sheet Dialog ?. show () ĊĠĠĠĠĠĠĠ ĠHelper Unit . set Bottom Sheet Behavior ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog !! , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBottom Sheet Behavior . STATE _ EXP AN DED ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Custom Fullscreen ( fullscreen : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdecor View Ġ= Ġwindow . decor View ĊĠĠĠĠĠĠĠ Ġif Ġ( fullscreen ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdecor View . system Ui Visibility Ġ= Ġ( View . SYSTEM _ UI _ FLAG _ LAYOUT _ ST ABLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġor ĠView . SYSTEM _ UI _ FLAG _ LAYOUT _ HIDE _ NAV IG ATION ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġor ĠView . SYSTEM _ UI _ FLAG _ LAYOUT _ FULL SCREEN ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġor ĠView . SYSTEM _ UI _ FLAG _ HIDE _ NAV IG ATION Ġ// Ġhide Ġnav Ġbar ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġor ĠView . SYSTEM _ UI _ FLAG _ FULL SCREEN Ġ// Ġhide Ġstatus Ġbar ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġor ĠView . SYSTEM _ UI _ FLAG _ IM MER SIVE _ STICK Y ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdecor View . system Ui Visibility Ġ= ĠView . SYSTEM _ UI _ FLAG _ VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġnext Album Controller ( next : ĠBoolean ): ĠAlbum Controller ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Browser Container . size () Ġ<= Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcurrent Album Controller ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= ĠBrowser Container . list () ĊĠĠĠĠĠĠĠ Ġvar Ġindex Ġ= Ġlist . indexOf ( current Album Controller ) ĊĠĠĠĠĠĠĠ Ġif Ġ( next ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( index Ġ>= Ġlist . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindex Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex -- ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( index Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindex Ġ= Ġlist . size Ġ- Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġlist [ index ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠINPUT _ FILE _ REQUEST _ CODE Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġhide Keyboard ( activity : ĠActivity ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimm Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. getSystem Service ( Activity . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Find Ġthe Ġcurrently Ġfocused Ġview , Ġso Ġwe Ġcan Ġgrab Ġthe Ġcorrect Ġwindow Ġtoken Ġfrom Ġit . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġview Ġ= Ġactivity ?. current Focus ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// If Ġno Ġview Ġcurrently Ġhas Ġfocus , Ġcreate Ġa Ġnew Ġone , Ġjust Ġso Ġwe Ġcan Ġgrab Ġa Ġwindow Ġtoken Ġfrom Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( view Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Ġ= ĠView ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimm ?. hide Soft Input From Window ( view . window Token , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }