package Ġcom . fo ss f reak s . free zet hem . adapters čĊč Ċ import Ġandroid . annotation . Suppress Lint č Ċ import Ġandroid . content . Context č Ċ import Ġandroid . content . pm . Application Info č Ċ import Ġandroid . content . pm . Package Info č Ċ import Ġandroid . content . pm . PackageManager č Ċ import Ġandroid . graphics . drawable . Drawable č Ċ import Ġandroid . os . Build č Ċ import Ġandroid . util . Log č Ċ import Ġandroid . view . LayoutInflater č Ċ import Ġandroid . view . View č Ċ import Ġandroid . view . ViewGroup č Ċ import Ġandroid . widget . ImageView č Ċ import Ġandroid . widget . Toast č Ċ import Ġandroidx . constraint layout . widget . Constraint Layout č Ċ import Ġandroidx . core . widget . ImageView Compat č Ċ import Ġandroidx . fragment . app . FragmentManager č Ċ import Ġandroidx . recyclerview . widget . RecyclerView č Ċ import Ġcom . fo ss f reak s . free zet hem . R č Ċ import Ġcom . google . android . material . checkbox . Material CheckBox č Ċ import Ġcom . google . android . material . text view . Material TextView čĊč Ċ class ĠApp List RecyclerView Adapter ( čĊĠĠĠ Ġprivate Ġval ĠlistOf Applications : Mutable List < Package Info >) Ġ: ĠRecyclerView . Adapter < App List RecyclerView Adapter . App List Holder > (){ čĊĠĠĠ Ġinner Ġclass ĠApp List Holder ( item View Ġ: ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ){ čĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġconstraint View Ġ: ĠConstraint Layout čĊĠĠĠĠĠĠĠ Ġlateinit Ġvar ĠappName Ġ: ĠMaterial TextView čĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġapp PackageName Ġ: ĠMaterial TextView čĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġapp Type Ġ: ĠMaterial TextView čĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġapp Icon Ġ: ĠImageView čĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġis Checked To Freeze Ġ: ĠMaterial CheckBox čĊĠĠĠĠĠĠĠ Ġfun Ġinit Holder (){ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġconstraint View Ġ= ĠitemView . findViewById ( R . id . freeze Item Layout ) čĊĠĠĠĠĠĠĠĠĠĠĠ ĠappName Ġ= ĠitemView . findViewById ( R . id . appName TextView ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Type Ġ= ĠitemView . findViewById ( R . id . type Of app TextView ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp PackageName Ġ= ĠitemView . findViewById ( R . id . packag ename TextView ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Icon Ġ= ĠitemView . findViewById ( R . id . app Icon ImageView ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Checked To Freeze Ġ= ĠitemView . findViewById ( R . id . is Added Freeze Check ) čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠApp List Holder Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn ĠApp List Holder ( LayoutInflater . from ( parent . context ). inflate ( R . layout . app _ item , parent , false )) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn ĠlistOf Applications . size čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠApp List Holder , Ġposition : ĠInt ) Ġ{ čĊĠĠĠĠĠĠĠ Ġholder . init Holder () čĊĠĠĠĠĠĠĠ Ġval Ġpackage Manager Ġ= Ġholder . item View . context . package Manager čĊĠĠĠĠĠĠĠ Ġholder . appName . text Ġ= ĠlistOf Applications [ position ]. application Info . load Label ( package Manager ) čĊĠĠĠĠĠĠĠ Ġholder . app PackageName . text Ġ= ĠlistOf Applications [ position ]. packageName čĊĠĠĠĠĠĠĠ Ġholder . app Type . text Ġ= Ġif ( is System App ( listOf Applications [ position ])) Ġ" System Ġapp " Ġelse Ġ" User Ġapp " čĊĠĠĠĠĠĠĠ Ġholder . app Icon . setImage Drawable ( listOf Applications [ position ]. application Info . load Icon ( package Manager )) čĊĠĠĠĠĠĠĠ Ġholder . isChecked To Freeze . setOn Checked ChangeListener Ġ{ Ġ_, Ġis Checked Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( isChecked ){ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( holder . item View . context , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf Applications [ position ]. application Info . source Dir , ĠToast . LENGTH _ SHORT ). show () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( holder . item View . context , Ġ" No ", ĠToast . LENGTH _ SHORT ). show () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġis System App ( package Info : ĠPackage Info ): ĠBoolean Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Info . application Info . source Dir . contains ("/ system ") Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Info . application Info . source Dir . contains ("/ vendor ") Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Info . application Info . source Dir . contains ("/ product ") Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Info . application Info . source Dir . contains ("/ data ") Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġpackage Info . application Info . source Dir . contains ("/ od m ") čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} č Ċ }