package Ġcom . is lam vers ity . settings . licenses Ċ Ċ import Ġcom . is lam vers ity . core . Flow Block Ċ import Ġcom . is lam vers ity . core . m vi . Base Presenter Ċ import Ġcom . is lam vers ity . core . m vi . Base State Ċ import Ġcom . is lam vers ity . core . m vi . M vi Processor Ċ import Ġcom . is lam vers ity . core . not OfType Ċ import Ġcom . is lam vers ity . core . of Type Ċ import Ġkotlinx . coroutines . flow . take Ċ Ċ class ĠLicense s Presenter ( ĊĠĠĠ Ġprocessor : ĠM vi Processor < License s Intent , ĠLicense s Result > Ċ ) Ġ: ĠBase Presenter < License s Intent , ĠLicense s State , ĠLicense s Result >( ĊĠĠĠ Ġprocessor , ĊĠĠĠ ĠLicense s State . idle () Ċ ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġfilter Intent (): ĠList < Flow Block < License s Intent , ĠLicense s Intent >> Ġ= ĊĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġof Type < License s Intent . Initial >(). take ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnot OfType ( License s Intent . Initial :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun Ġreduce ( pre State : ĠLicense s State , Ġresult : ĠLicense s Result ): ĠLicense s State Ġ= ĊĠĠĠĠĠĠĠ Ġwhen Ġ( result ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLicense s Result . Last Stable Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpre State . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbase Ġ= ĠBase State . stable () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLicense s Result . Error Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpre State . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbase Ġ= ĠBase State . with Error ( result . err ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLicense s Result . License s List Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpre State . copy ( licenses Ġ= Ġresult . list ) ĊĠĠĠĠĠĠĠ Ġ} Ċ }