package Ġapp . alle ver . android . lib . core . helper Ċ Ċ import Ġandroidx . lifecycle . Lifecycle Owner Ċ import Ġjava . lang . ref . Weak Reference Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠAlle ver Ċ Ġ* Ċ Ġ* Ġ@ Author : ĠJ erry . Ċ Ġ* Ġ@ Date : Ġ 2 0 2 0 / 1 1 / 2 5 Ġ 1 0 Ċ Ġ* Ġ@ Desc : Ċ Ġ*/ Ċ object ĠLifecycle Helper Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġm Root Owner Wr : ĠWeak Reference < Lifecycle Owner >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Child Owner Wr : ĠWeak Reference < Lifecycle Owner >? Ġ= Ġnull ĊĠĠĠ Ġfun Ġpull Root Owner ( m Root Owner : ĠLifecycle Owner ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Root Owner Wr ?. clear () ĊĠĠĠĠĠĠĠ Ġm Root Owner Wr Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġm Root Owner Wr Ġ= ĠWeak Reference ( m Root Owner ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpull Child Owner ( m Child Owner : ĠLifecycle Owner ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Child Owner Wr ?. clear () ĊĠĠĠĠĠĠĠ Ġm Child Owner Wr Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġm Child Owner Wr Ġ= ĠWeak Reference ( m Child Owner ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġowner : ĠLifecycle Owner ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġif Ġ( null Ġ== Ġm Child Owner Wr ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Root Owner Wr ?. get () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġm Child Owner Wr ?. get () ĊĊĠĠĠ Ġfun Ġclear () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Child Owner Wr ?. clear () ĊĠĠĠĠĠĠĠ Ġm Child Owner Wr Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġm Root Owner Wr ?. clear () ĊĠĠĠĠĠĠĠ Ġm Root Owner Wr Ġ= Ġnull ĊĠĠĠ Ġ} Ċ }