package Ġcom . example . te ach om atic 3 0 0 0 . ui . classes Ċ Ċ import Ġandroid . app . AlertDialog Ċ import Ġandroid . content . DialogInterface Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . InputType Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget .* Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . example . te ach om atic 3 0 0 0 . R Ċ import Ġcom . example . te ach om atic 3 0 0 0 . database . Data Base Helper Ċ import Ġcom . example . te ach om atic 3 0 0 0 . models . Class Model Ċ import Ġjava . lang . Exception Ċ import Ġjava . util .* Ċ Ċ class ĠClasses Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġclass List : ĠListView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġclass Database : ĠData Base Helper ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġclass ListAdapter : ĠArray Adapter < String > ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtext ClassName : ĠEditText ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġroot : ĠView ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĊĠĠĠĠĠĠĠ Ġroot Ġ= Ġinflater . inflate ( R . layout . fragment _ classes , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġval Ġbutton Add Class : ĠButton Ġ= Ġroot . findViewById ( R . id . button _ add _ class ) ĊĠĠĠĠĠĠĠ Ġtext ClassName Ġ= Ġroot . findViewById ( R . id . text _ class _ name ) ĊĠĠĠĠĠĠĠ Ġclass List Ġ= Ġroot . findViewById ( R . id . class _ list ) ĊĠĠĠĠĠĠĠ Ġclass Database Ġ= ĠData Base Helper ( root . context ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġupdate Class List (){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ListAdapter Ġ= ĠArray Adapter ( root . context , Ġandroid . R . layout . simple _ list _ item _ 1 , Ġclass Database . get Classes ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass List . adapter Ġ= Ġclass ListAdapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext ClassName . text . clear () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġupdate Class List () ĊĊĠĠĠĠĠĠĠ Ġbutton Add Class . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( text ClassName . text . isEmpty () Ġ|| Ġtext ClassName . text . length Ġ> Ġ 2 5 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( root . context , R . string . error _ text _ length _ 2 5 5 , Toast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ setOnClickListener ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠclassName Ġ= ĠString ( text ClassName . text . toString (). toByteArray (), Ġcharset (" UTF - 8 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclass Model Ġ= ĠClass Model ( 0 , ĠclassName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsuccess Ġ= Ġclass Database . addClass ( class Model ) Ġ// implement Ġin Ġdb Helper ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif (! success ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( root . context , R . string . error _ add _ class , Toast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcatch Ġ( exception : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( root . context , R . string . error _ add _ class , Toast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Class List () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġclass List . setOn ItemClickListener Ġ{ Ġparent , Ġview , Ġposition , Ġid Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclass _ info Ġ= Ġparent . getItem At Position ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclass _ parts Ġ= Ġclass _ info . toString (). split (" Ġ"). to Typed Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclass _ id Ġ= Ġclass _ parts [ 0 ] ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( root . context , ĠClass Details :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra (" class _ id ", Ġclass _ id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġclass List . setOn Item Long ClickListener Ġ{ Ġparent , Ġview , Ġposition , Ġid Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpop Ġ= ĠPopup Menu ( root . context , Ġview ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpop . inflate ( R . menu . popup _ edit _ class _ name ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpop . setOn MenuItem ClickListener ( PopupMenu . On MenuItem ClickListener Ġ{ Ġitem : ĠMenuItem ? Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( item !!. itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . popup _ edit Ġ-> Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder : ĠAlertDialog . Builder Ġ= Ġandroid . app . AlertDialog . Builder ( root . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . setTitle ( R . string . class _ edit _ text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinput Ġ= ĠEditText ( root . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinput . set Hint ( R . string . class _ edit _ hint ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinput . input Type Ġ= ĠInput Type . TYPE _ CLASS _ TEXT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . setView ( input ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . set Positive Button ( R . string . save , ĠDialog Interface . OnClickListener Ġ{ Ġdialog , Ġwhich Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( input . text . isNotEmpty () Ġ&& Ġinput . text . length Ġ<= Ġ 2 5 5 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew _ class _ name Ġ= Ġinput . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclass _ info Ġ= Ġparent . getItem At Position ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclass _ parts Ġ= Ġclass _ info . toString (). split (" Ġ"). to Typed Array () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclass _ id Ġ= Ġclass _ parts [ 0 ]. toInt () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclass Database . change ClassName ( class _ id , Ġnew _ class _ name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Class List () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( root . context , R . string . class _ edit _ success , Toast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( root . context , R . string . class _ edit _ cancel , Toast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . set Negative Button ( R . string . cancel , ĠDialog Interface . OnClickListener Ġ{ Ġdialog , Ġwhich Ġ-> Ġdialog . cancel () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( root . context , R . string . class _ edit _ cancel , Toast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ On MenuItem ClickListener ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpop . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ setOn Item Long ClickListener ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġroot ĊĠĠĠ Ġ} ĊĊ Ċ }