package Ġcom . d awn . sample . pkg . feature . domain . use case Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroidx . lifecycle . Default Lifecycle Observer Ċ import Ġandroidx . lifecycle . Lifecycle Owner Ċ import Ġcom . d awn . base . Data Result Ċ import Ġcom . d awn . base . log . L Ċ import Ġcom . d awn . domain . use case . UseCase Ċ import Ġcom . d awn . sample . pkg . feature . data . entity . Download File Ċ import Ġcom . d awn . sample . pkg . feature . repository . impl . Wan Android Repository Ċ Ċ /** Ċ Ġ* Ġ@ author Ġ: ĠLee Zh ao X ing Ċ Ġ* Ġ@ date ĠĠ Ġ: Ġ 2 0 2 1 / 1 0 / 2 6 Ċ Ġ* Ġ@ desc ĠĠ Ġ: Ċ Ġ*/ Ċ class ĠCan Be Stopped UseCase Ġ: ĠUse Case < Can Be Stopped UseCase . Inner Request Value , ĠCan Be Stopped UseCase . Inner Response Value >() ĊĠĠĠ Ġ, Default Lifecycle Observer Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġdownload File Ġ= ĠDownload File () ĊĠĠĠ Ġprivate Ġval Ġrepository Ġ= ĠW an Android Repository () ĊĊĠĠĠ Ġclass ĠInner Request Value Ġ: ĠRequest Values Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠInner Response Value ( val Ġdata Result : ĠData Result < Download File >) Ġ: ĠResponse Value Ġ{ ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġexecute UseCase ( request Values : ĠInner Request Value ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// è®¿éĹ® æķ°æį® å±Ĥ èµĦæºĲ ï¼Į åľ¨ ĠUse Case Ġä¸Ń å¤ĦçĲĨ å¸¦ åı« åģľ æĢ§ è´¨ çļĦ ä¸ļåĬ¡ ĊĠĠĠĠĠĠĠ Ġrepository . down Load File ( download File , Ġobject Ġ: ĠDownload File . Down Load Result Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Result ( download File : ĠData Result < Download File >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuse Case Callback . on Success ( Inner Response Value ( download File )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Stop ( owner : ĠLifecycle Owner ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( request Values != null ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdownload File . process Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdownload File . for give Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdownload File . file Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuse Case Callback . onError () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }