package Ġcom . existing . next work . operator ĊĊ Ċ import Ġandroid . accounts . Network ErrorException Ċ import Ġandroid . os . Build Ċ Ċ import Ġcom . existing . next work . Build Config Ċ import Ġcom . existing . next work . exception . Next work Exception Ċ Ċ import Ġio . reactivex . Single Ċ import Ġio . reactivex . Single Source Ċ import Ġio . reactivex . functions . Function Ċ import Ġtim ber . log . Tim ber Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ãĢĮ ĠThe ĠK ha eng Ġ ãĢį on Ġ 1 6 ĠOct Ġ 2 0 1 7 Ġ:) Ċ Ġ*/ Ċ Ċ class ĠNext work LogError < T >( private Ġval Ġoverride Message : ĠString Ġ= Ġ"") Ġ: ĠFunction < Throwable , ĠSingle Source < T >> Ġ{ ĊĊĠĠĠ Ġ@ Throws ( Exception :: class ) ĊĠĠĠ Ġoverride ĊĠĠĠ Ġfun Ġapply ( throwable : ĠThrowable ): ĠSingle Source < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build Config . DEBUG ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . KIT K AT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( throwable Ġis ĠNext work Exception Ġ&& Ġthrowable . url Log . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrowable . add Sup pressed ( Network ErrorException ( throwable . url Log )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( override Message . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrowable . add Sup pressed ( Network ErrorException ( override Message )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( throwable Ġis ĠNext work Exception Ġ&& Ġthrowable . url Log . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠN Log . e ( throwable . url Log , Ġthrowable ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( override Message . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠN Log . e ( override Message , Ġthrowable ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . w (" Url Ġlog Ġis Ġempty .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠSingle . error ( throwable ) ĊĠĠĠ Ġ} Ċ } Ċ