package Ġcom . example . android . h ilt . ui . logs . use case Ċ Ċ import Ġcom . example . android . h ilt . datasource . logs . Logger DataSource Ċ import Ġcom . example . android . h ilt . datasource . model . Log Ċ import Ġcom . example . android . h ilt . di . qual ifier . InMemory Logger Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠGet In Mem Logs UseCase Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġ@ InMemory Logger Ġval Ġlogger DataSource : ĠLogger DataSource Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġexecute ( callback : Ġ( List < Log >) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠRotate Ġthe Ġscreen , Ġyou Ġwill Ġsee Ġlogger DataSource Ġwill Ġbe Ġpersisted Ġbecause Ġthey Ġare Ġscoped Ġto ĊĠĠĠĠĠĠĠ Ġ// ĠActivity Ret ained Scoped , ĊĠĠĠĠĠĠĠ Ġ// ĠAlso Ġnote : Ġif Ġyou Ġgo Ġback Ġand Ġforth , Ġthe Ġsame ĠDataSource Ġis Ġstill Ġsurv ived , Ġbecause Ġit Ġis ĊĠĠĠĠĠĠĠ Ġ// Ġtied Ġto ĠRet ained Activity Scoped Ġ( ViewModel ). ĊĠĠĠĠĠĠĠ Ġandroid . util . Log . d (" UseCase H ilt ", Ġ" DataSource : Ġ$ logger DataSource ") ĊĠĠĠĠĠĠĠ Ġreturn Ġlogger DataSource . getAll Logs ( callback ) ĊĠĠĠ Ġ} Ċ } Ċ