package Ġcom . p anda . p da . app . operation . q ms . quality _ problem _ record Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . KeyEvent Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . input method . Editor Info Ċ import Ġandroid . widget . EditText Ċ import Ġandroidx . annotation . String Res Ċ import Ġandroidx . fragment . app . activity ViewModels Ċ import Ġandroidx . view binding . View Binding Ċ import Ġby . kir ich 1 4 0 9 . view binding delegate . view Binding Ċ import Ġcom . jak ew h art on . r xb ind ing 4 . view . click s Ċ import Ġcom . p anda . p da . app . R Ċ import Ġcom . p anda . p da . app . base . Base Fragment Ċ import Ġcom . p anda . p da . app . base . ret rofit . Web Client Ċ import Ġcom . p anda . p da . app . common . adapter . Common View Binding Adapter Ċ import Ġcom . p anda . p da . app . databinding . Fragment Quality Problem Record Binding Ċ import Ġcom . p anda . p da . app . databinding . Frame Empty View Binding Ċ import Ġcom . p anda . p da . app . databinding . Item Quality Problem Record Binding Ċ import Ġcom . p anda . p da . app . operation . q ms . Quality ViewModel Ċ import Ġcom . p anda . p da . app . operation . q ms . data . Quality Api Ċ import Ġcom . p anda . p da . app . operation . q ms . data . model . Quality Problem Record Model Ċ import Ġcom . trello . rx lifecycle 4 . kotlin . bind To Lifecycle Ċ import Ġio . reactivex . rx java 3 . core . Single Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ class ĠQuality Problem Record Fragment Ġ: ĊĠĠĠ ĠBase Fragment ( R . layout . fragment _ quality _ problem _ record ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġview Binding Ġby Ġview Binding < Fragment Quality Problem Record Binding >() ĊĊĠĠĠ Ġprivate Ġval ĠviewModel Ġby Ġactivity ViewModels < Quality ViewModel >() ĊĊĠĠĠ Ġprivate Ġval Ġitem ListAdapter Ġby Ġlazy Ġ{ Ġcreate Adapter () Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġview Binding . common Layout ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrv TaskList . adapter Ġ= Ġitem ListAdapter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġswipe . setOn Refresh Listener Ġ{ Ġrefresh Data () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop AppBar . setTitle ( title Res Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop AppBar . set Navigation OnClickListener Ġ{ Ġnav Back Listener ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġet Search Bar . set Hint ( search Bar Hint Res Id Ġ?: ĠR . string . common _ search _ bar _ hint ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġet Search Bar . setOn Editor ActionListener Ġ{ Ġedit Text , Ġaction Id , Ġevent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( action Id Ġ== ĠEditor Info . IME _ ACTION _ DONE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Searching () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( event . keyCode Ġ== ĠKeyEvent . KEYCODE _ ENTER ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Searching () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( edit Text Ġas ĠEditText ). selectAll () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġview Binding . floating ActionButton . click s () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. bind To Lifecycle ( require View ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Record () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Record () Ġ{ ĊĠĠĠĠĠĠĠ Ġnav Controller . navigate ( R . id . action _ quality Problem Record Fragment _ to _ problem Record Edit Fragment ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġrefresh Data () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcreate Adapter (): ĠCommon View Binding Adapter < Item Quality Problem Record Binding , ĠQuality Problem Record Model > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġobject Ġ: ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCommon View Binding Adapter < Item Quality Problem Record Binding , ĠQuality Problem Record Model >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcreate Binding ( parent : ĠViewGroup ): ĠItem Quality Problem Record Binding Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠItem Quality Problem Record Binding . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcreate Empty View Binding ( parent : ĠViewGroup ): ĠView Binding ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠFrame Empty View Binding . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder WithData ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder : ĠView Binding Holder , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata : ĠQuality Problem Record Model , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition : ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View Binding . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Product Info . text Ġ= ĠgetString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . desc _ and _ code _ formatter , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . product Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ data . product Bar Code } Ġ${ data . product Code }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Quality Problem Info . text Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . desc _ and _ code _ formatter , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . occ urrence Place , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . problem Code ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Follower . text Ġ= Ġdata . trace User ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Inspect Task Code . text Ġ= Ġdata . quality Code Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Quality Scheme . text Ġ= Ġdata . quality Solution Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv Quality Result . text Ġ= Ġdata . con clusion ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbtn Action Edit . click s () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. throttle First ( 5 0 0 , ĠTimeUnit . MILLISECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. bind To Lifecycle ( holder . item View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ Ġedit Record ( data ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot . click s () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. throttle First ( 5 0 0 , ĠTimeUnit . MILLISECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. bind To Lifecycle ( holder . item View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ Ġshow Record Detail ( data ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Record Detail ( data : ĠQuality Problem Record Model ) Ġ{ ĊĠĠĠĠĠĠĠ ĠSingle . zip ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWeb Client . request ( Quality Api :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. p da Q ms Quality Problem Get ById Get ( data . id ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWeb Client . request ( Quality Api :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. p da Q ms Common Operator List Get ( data . taskId ) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġdetail , Ġrecord Ġ-> ĠPair ( detail , Ġrecord ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. bind To Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . problem Record Detail Data . post Value ( it . first ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . quality Detail Record Data . post Value ( it . second ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav Controller . navigate ( R . id . action _ quality Problem Record Fragment _ to _ problem Detail Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġedit Record ( data : ĠQuality Problem Record Model ) Ġ{ ĊĠĠĠĠĠĠĠ ĠWeb Client . request ( Quality Api :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. p da Q ms Quality Problem Get ById Get ( data . id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. bind To Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav Controller . navigate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ quality Problem Record Fragment _ to _ problem Record Edit Fragment , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProblem Record Edit Fragment . DETAIL _ KEY , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProblem Record Edit Fragment . get Problem Record Json Adapter (). toJson ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{}) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ get : String Res ĊĠĠĠ Ġval Ġtitle Res Id Ġ= ĠR . string . quality _ problem _ record ĊĊĠĠĠ Ġ@ get : String Res ĊĠĠĠ Ġval Ġsearch Bar Hint Res Id : ĠInt ? Ġ= Ġnull ĊĊĊĠĠĠ Ġprivate Ġfun Ġon Searching () Ġ{ ĊĠĠĠĠĠĠĠ Ġrefresh Data () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrefresh Data () Ġ{ ĊĠĠĠĠĠĠĠ ĠWeb Client . request ( Quality Api :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. p da Q ms Quality Problem ListBy Page Get ( view Binding . common Layout . et Search Bar . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. bind To Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem ListAdapter . refresh Data ( it . data List ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Binding . common Layout . swipe . is Refresh ing Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{}) ĊĠĠĠ Ġ} Ċ }