package Ġcom . gw . mv vm . wan . ui . activity Ċ Ċ import Ġandroid . content . Clip Data Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġcat . ere za . custom activity on crash . Custom Activity On Crash Ċ import Ġcat . ere za . custom activity on crash . config . Ca oc Config Ċ import Ġcom . gw . mv vm . framework . base . view model . Empty ViewModel Ċ import Ġcom . gw . mv vm . framework . ext . utils . clipboard Manager Ċ import Ġcom . gw . mv vm . framework . ext . view . g one Ċ import Ġcom . gw . mv vm . framework . ext . view . onClick Ċ import Ġcom . gw . mv vm . wan . R Ċ import Ġcom . gw . mv vm . wan . databinding . Activity Crash Binding Ċ import Ġcom . gw . mv vm . wan . core . base . Base Activity Ċ import Ġsplit ties . resources . str Ċ import Ġsplit ties . toast . toast Ċ Ċ /** Ċ Ġ* Ġ å´ © æº ĥ é¡µéĿ¢ Ċ Ġ*/ Ċ class ĠCrash Activity Ġ: ĠBase Activity < Empty ViewModel , ĠActivity Crash Binding >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġlayout Id (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠR . layout . activity _ crash ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit View ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconfig : ĠCa oc Config ? Ġ= ĠCustom Activity On Crash . getConfig From Intent ( intent ) ĊĠĠĠĠĠĠĠ Ġif Ġ( config Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġconfig . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this . is Show Restart Button Ġ&& Ġthis . restart Activity Class Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Data Binding . btn Close . text Ġ= ĠgetString ( R . string . crash _ restart _ app ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Data Binding . btn Close . onClick Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCustom Activity On Crash . restart Application ( this @ Crash Activity , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Data Binding . btn Close . onClick Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCustom Activity On Crash . close Application ( this @ Crash Activity , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this . is Show Error Details ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Data Binding . btn Detail . onClick Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog : ĠAlertDialog Ġ= ĠAlertDialog . Builder ( this @ Crash Activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle ( R . string . crash _ error _ detail ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMessage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCustom Activity On Crash . getAll Error Details From Intent ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ Crash Activity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button ( R . string . text _ close , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Neutral Button ( R . string . text _ copy _ to _ clipboard ) Ġ{ Ġ_, Ġ_ Ġ-> Ġcopy Error To Clipboard () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Data Binding . btn Detail . g one () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Observer () Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcopy Error To Clipboard () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġerror Information Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCustom Activity On Crash . getAll Error Details From Intent ( this @ Crash Activity , Ġintent ) ĊĠĠĠĠĠĠĠ Ġval Ġclipboard Ġ= Ġclipboard Manager ĊĊĠĠĠĠĠĠĠ Ġ// Are Ġthere Ġany Ġdevices Ġwithout Ġclipboard ... ? ĊĠĠĠĠĠĠĠ Ġif Ġ( clipboard Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclip Ġ= ĠClip Data . new Plain Text ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstr ( R . string . crash _ error _ detail ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Information ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclipboard . set Primary Clip ( clip ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoast ( R . string . crash _ error _ detail _ copy ed ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Data () Ġ{ ĊĠĠĠ Ġ} Ċ }