package Ġcom . fl am yo ad . ts uk iv iew er . ui . home . tags Ċ Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . fragment . app . Dialog Fragment Ċ import Ġandroidx . fragment . app . activity ViewModels Ċ import Ġcom . fl am yo ad . ts uk iv iew er . model . Tag Sorting Mode Ċ Ċ private Ġconst Ġval ĠC HO S EN _ MODE _ STRING Ġ= Ġ" CH OS EN _ MODE _ STRING " Ċ Ċ class ĠTag Sorting Dialog : ĠDialog Fragment () Ġ{ ĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠD ou jin Tags ViewModel Ġby Ġactivity ViewModels () ĊĊĠĠĠ Ġprivate Ġvar Ġchosen Mode Ġ= ĠTag Sorting Mode . NAME _ ASC ENDING ĊĊĠĠĠ Ġoverride Ġfun Ġon Save InstanceState ( out State : ĠBundle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Save InstanceState ( out State ) ĊĠĠĠĠĠĠĠ Ġout State . putString ( CH OS EN _ MODE _ STRING , Ġchosen Mode . toString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Dialog ( savedInstanceState : ĠBundle ?): ĠDialog Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠAlertDialog . Builder ( require Context ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġchoice List Ġ= ĠTag Sorting Mode . values () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġmode Ġ-> Ġmode . getDescription () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Typed Array () Ġ// Ġchar [] ĊĊĠĠĠĠĠĠĠ Ġ// ĠT icks Ġthe Ġsorting Ġmode Ġapplied Ġfor Ġthe Ġlist ĊĠĠĠĠĠĠĠ Ġchosen Mode Ġ= ĠviewModel . getCurrent Mode () ĊĊĠĠĠĠĠĠĠ Ġ// ĠIf Ġscreen Ġis Ġrotated Ġwhile Ġdialog Ġis Ġstill Ġactive , Ġrestore Ġthe Ġchoice Ġchosen Ġby Ġthe Ġuser . ĊĠĠĠĠĠĠĠ Ġ// ĠAt Ġthis Ġpoint , Ġthe Ġsorting Ġmode Ġchosen Ġin Ġthe Ġdialog Ġhas Ġnot Ġbeen Ġapplied Ġto Ġthe Ġlist Ġyet . ĊĠĠĠĠĠĠĠ Ġif Ġ( savedInstanceState Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= ĠsavedInstanceState . getString ( CH OS EN _ MODE _ STRING ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( name Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchosen Mode Ġ= ĠTag Sorting Mode . valueOf ( name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġchoice Ġ= Ġchoice List . indexOf ( chosen Mode . getDescription ()) ĊĊĠĠĠĠĠĠĠ Ġbuilder . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetTitle (" Sort Ġby ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Single Choice Items ( choice List , Ġchoice ) Ġ{ Ġdialog , Ġwhich Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmode Ġ= ĠTag Sorting Mode . from Description ( choice List [ which ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchosen Mode Ġ= Ġmode ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Positive Button (" Ok ") Ġ{ Ġdialog , Ġwhich Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . set Sorting Mode ( chosen Mode ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Negative Button (" Return ") Ġ{ Ġdialog Ġ, Ġwhich Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġbuilder . create () ĊĠĠĠ Ġ} Ċ }