package Ġjmp 0 . app . interceptor . m td Ċ Ċ import Ġjmp 0 . app . Dbg Context Ċ import Ġjmp 0 . app . mock . Method Manager Ċ Ċ /** Ċ Ġ* Ġ@ author Ġjmp 0 Ġ< jmp 0 @ qq . com > Ċ Ġ* ĠCreate Ġon Ġ 2 0 2 2 / 3 / 8 Ċ Ġ*/ Ċ // called Ġfrom Ġhook ed Ġnative Ġmethod Ċ object ĠCall Bridge Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġif Ġit Ġis Ġsystem Ġtry Ġto Ġuse Ġimpl / system / class ĊĠĠĠĠ Ġ* Ġif Ġit Ġis Ġandroid Ġtry Ġto Ġuse Ġimpl / android / class ĊĠĠĠĠ Ġ* Ġelse Ġpass Ġto Ġuser ĊĠĠĠĠ Ġ* Ġand Ġcheck Ġnative Ġtype Ġand Ġimplementation ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġnative Called ( uuid : String , className : String , func Name : String , signature : String , var arg Ġparam : Any ?): Any ? { ĊĠĠĠĠĠĠĠ Ġval Ġsig Ġ= Ġ"$ className .$ func Name $ signature " ĊĠĠĠĠĠĠĠ Ġval Ġcallback Ġ= ĠD bg Context . get Native CallBack ( uuid ) ?: throw ĠException (" callback Ġno Ġfound !! ") ĊĠĠĠĠĠĠĠ Ġ// find Ġimplement Ġmethod Ġand Ġ ivo ke ĊĠĠĠĠĠĠĠ Ġval Ġimpl Method Ġ= ĠMethod Manager . getInstance ( uuid ). get Native ( sig ) ĊĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġif Ġ( impl Method != null ) Ġ Ġimpl Method . invoke ( null , uuid ,* param ) ĊĊĠĠĠĠĠĠĠ Ġelse Ġcallback . native Called ( uuid , className , func Name , signature , param ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! implemented ) Ġthrow ĠNative Method Not Implement Exception ( sig ) Ġ}. result ĊĠĠĠĠĠĠĠ Ġreturn Ġres ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġmethod Called ( uuid : ĠString , ĠclassName : ĠString , Ġfunc Name : ĠString , Ġsignature : ĠString , Ġvar arg Ġparam : ĠAny ?): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsig Ġ= Ġ"$ className .$ func Name $ signature " ĊĠĠĠĠĠĠĠ Ġval Ġcallback Ġ= ĠD bg Context . get Native CallBack ( uuid ) ?: throw ĠException (" callback Ġno Ġfound !! ") ĊĠĠĠĠĠĠĠ Ġ// find Ġimplement Ġmethod Ġand Ġ ivo ke ĊĠĠĠĠĠĠĠ Ġval Ġimpl Method Ġ= ĠMethod Manager . getInstance ( uuid ). getMethod Map ()[ sig ] ĊĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġif Ġ( impl Method != null ) Ġ Ġimpl Method . invoke ( null , uuid ,* param ) ĊĠĠĠĠĠĠĠ Ġelse Ġcallback . method Called ( uuid , className , Ġfunc Name , signature , Ġparam ) ĊĠĠĠĠĠĠĠ Ġreturn Ġres ĊĠĠĠ Ġ} Ċ Ċ }