package Ġcom . ms ub . self check . ui čĊč Ċ import Ġandroid . annotation . Suppress Lint č Ċ import Ġandroid . app . Activity č Ċ import Ġandroid . app . AlertDialog č Ċ import Ġandroid . app . Dialog č Ċ import Ġandroid . content . Context . POWER _ SERVICE č Ċ import Ġandroid . content . DialogInterface č Ċ import Ġandroid . content . Intent č Ċ import Ġandroid . net . Uri č Ċ import Ġandroid . os . Build č Ċ import Ġandroid . os . Bundle č Ċ import Ġandroid . os . Power Manager č Ċ import Ġandroid . provider . Settings č Ċ import Ġandroid . util . Log č Ċ import Ġandroid . view . LayoutInflater č Ċ import Ġandroid . view . View č Ċ import Ġandroid . view . ViewGroup č Ċ import Ġandroid . widget . Button č Ċ import Ġandroidx . annotation . Requires Api č Ċ import Ġandroidx . fragment . app . Fragment č Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager č Ċ import Ġandroidx . recyclerview . widget . RecyclerView č Ċ import Ġcom . ms ub . self check . My Service č Ċ import Ġcom . ms ub . self check . R č Ċ import Ġcom . ms ub . self check . recyclerview . My Adapter čĊč Ċ class ĠHome Fragment Ġ: ĠFragment () Ġ{ čĊĠĠĠ Ġ@ Suppress Lint (" Battery Life ") čĊĠĠĠ Ġ@ Requires Api ( Build . VERSION _ CODES . M ) čĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( čĊĠĠĠĠĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, čĊĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? čĊĠĠĠ Ġ): ĠView ? Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġroot Ġ= Ġinflater . inflate ( R . layout . home , Ġcontainer , Ġfalse ) čĊĠĠĠĠĠĠĠ Ġval Ġre cycler v = root . findViewById < RecyclerView >( R . id . recycler v ) čĊĠĠĠĠĠĠĠ Ġval Ġstart btn = root . findViewById < Button >( R . id . start btn ) čĊĠĠĠĠĠĠĠ Ġval Ġstop btn = root . findViewById < Button >( R . id . quit btn ) čĊĠĠĠĠĠĠĠ Ġstart btn . setOnClickListener Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif (! (( activity ?. getSystem Service ( POWER _ SERVICE ) Ġas ĠPower Manager ). is Ign oring Battery Optim izations ( activity ?. packageName ))) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( activity ). apply Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Message (" ìłķ ìĥģ ìłģìĿ¸ Ġìķ ± ĠìĤ¬ìļ© ìĿĦ ĠìľĦíķ´ Ġë°° íĦ° ë¦¬ ĠìĤ¬ìļ© ëŁ ī Ġìµľ ìłģ íĻĶ Ġëª© ë¡Ŀ ìĹĲìĦľ Ġìłľ ìĻ¸ Ġíķ©ëĭĪëĭ¤ .") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Cancel able ( false ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Positive Button (" íĻ ķ ìĿ¸ ", ĠDialog Interface . OnClickListener Ġ{ Ġ_, Ġ_ Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent (). apply Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Action ( Settings . ACTION _ REQUEST _ IGNORE _ B ATTER Y _ OPTIMI Z ATIONS ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetData ( Uri . parse (" package :"+ activity ?. packageName )) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. show () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( get time () ==" no Ġtime ") Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( activity ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle (" ìĦ ¤ ìłķ ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMessage (" ìĭľ ê°Ħ Ġíĥ Ń ìĹĲìĦľ Ġìĭľê°Ħ ìĿĦ Ġë ¨ ¼ ìłĢ ĠìĦ¤ìłķ íķ´ ì£¼ ìĦ¸ìļĶ .") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button (" íĻ ķ ìĿ¸ ", ĠDialog Interface . OnClickListener Ġ{ Ġdialog Interface , Ġid Ġ-> Ġ{ }}) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. start Service ( Intent ( activity , ĠMy Service :: class . java )) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( activity ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle (" ìĻ Ħ ë£Į ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMessage (" ìĭľ ìŀĳ ëĲĺ ìĹĪ ìĬµëĭĪëĭ¤ .") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button (" íĻ ķ ìĿ¸ ", ĠDialog Interface . OnClickListener Ġ{ Ġdialog Interface , Ġid Ġ-> Ġ{ }}) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġstop btn . setOnClickListener Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. stop Service ( Intent ( activity , ĠMy Service :: class . java )) čĊĠĠĠĠĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( activity ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle (" ìĻ Ħ ë£Į ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMessage (" ì¢ ħ ë£Į ëĲĺ ìĹĪ ìĬµëĭĪëĭ¤ .") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button (" íĻ ķ ìĿ¸ ", ĠDialog Interface . OnClickListener Ġ{ Ġdialog Interface , Ġid Ġ-> Ġ{ }}) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġval Ġdatas = getData () čĊĠĠĠĠĠĠĠ Ġif ( datas ! ="") Ġre cycler v . adapter = My Adapter ( datas . split ("\ n "). sub List ( 0 , Ġdatas . split ("\ n "). size - 1 ), Ġactivity , Ġre cycler v ) čĊĠĠĠĠĠĠĠ Ġelse Ġre cycler v . adapter = My Adapter ( listOf (), Ġactivity , Ġre cycler v ) čĊĠĠĠĠĠĠĠ Ġre cycler v . layout Manager = Linear LayoutManager ( activity ) čĊĠĠĠĠĠĠĠ Ġreturn Ġroot čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun ĠgetData (): String Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġactivity ?. get SharedPreferences (" info ", ĠActivity . MODE _ PRIVATE )?. getString (" users ", Ġ"") Ġ?: Ġ"" čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġget time (): String Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġactivity ?. get SharedPreferences (" info ", ĠActivity . MODE _ PRIVATE )?. getString (" time ", Ġ" no Ġtime ") Ġ?: Ġ" no Ġtime " čĊĠĠĠ Ġ} č Ċ }