package Ġio . ship book . ship book sdk . Models Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . pm . Application Info Ċ import Ġandroid . os . Build Ċ import Ġandroid . provider . Settings Ċ import Ġio . ship book . ship book sdk . Networking . Session Manager Ċ import Ġio . ship book . ship book sdk . Ship Book Ċ import Ġio . ship book . ship book sdk . Util . Date Helper Ċ import Ġio . ship book . ship book sdk . Util . to Standard String Ċ import Ġorg . json . JSONObject Ċ import Ġjava . util .* Ċ Ċ /** Ċ * Ċ * ĠCreated Ġby ĠE lish a ĠS tern gold Ġon Ġ 1 2 / 0 2 / 2 0 1 8 . Ċ * ĠCopyright ĠÂ© Ġ 2 0 1 8 ĠShip Book ĠLtd . ĠAll Ġrights Ġreserved . Ċ * Ċ */ Ċ Ċ @ Suppress Lint (" Hardware Ids ") Ċ internal Ġdata Ġclass ĠLogin ( ĊĠĠĠĠĠĠĠ Ġval ĠappId : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġapp Key : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġos : ĠString Ġ= Ġ" android ", ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠ Ġval Ġbundle Identifier : ĠString ĊĠĠĠĠĠĠĠ Ġval ĠappName : ĠString Ġ= ĠSession Manager . app Context !!. application Info . process Name , ĊĠĠĠĠĠĠĠ Ġval Ġud id : ĠString Ġ= ĠSettings . Secure . getString ( Session Manager . app Context !!. content Resolver , ĠSettings . Secure . ANDROID _ ID ) Ġ?: Ġ" test _ device ", ĊĠĠĠĠĠĠĠ Ġval Ġtime : ĠDate Ġ= ĠDate (), ĊĠĠĠĠĠĠĠ Ġvar Ġdevice Time : ĠDate Ġ= Ġtime , ĊĠĠĠĠĠĠĠ Ġval Ġos Version : ĠString Ġ= ĠBuild . VERSION . RELEASE Ġ?: Ġ"", Ġ// Ġ"" Ġfor Ġtesting ĊĠĠĠĠĠĠĠ Ġvar Ġapp Version : ĠString Ġ= Ġ"", ĊĠĠĠĠĠĠĠ Ġvar Ġapp Version Code : ĠInt Ġ= Ġ- 1 , ĊĠĠĠĠĠĠĠ Ġval Ġsdk Version : ĠString Ġ= Ġ" 1 . 6 . 1 ", ĊĠĠĠĠĠĠĠ Ġval Ġsdk Version Code : ĠInt Ġ= Ġ 1 , ĊĠĠĠĠĠĠĠ Ġval Ġmanufacturer : ĠString Ġ= ĠBuild . MAN U FACT UR ER Ġ?: Ġ"", Ġ// Ġ"" Ġfor Ġtesting ĊĠĠĠĠĠĠĠ Ġval Ġdevice Model : ĠString Ġ= ĠBuild . MODEL Ġ?: Ġ"", Ġ// Ġ"" Ġfor Ġtesting ĊĠĠĠĠĠĠĠ Ġval Ġdevice Name : ĠString Ġ= ĠBuild . DEVICE Ġ?: Ġ"", Ġ// Ġ"" Ġfor Ġtesting ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠ Ġvar Ġad vertisement Id : ĠString ? Ġ= Ġnil ĊĠĠĠĠĠĠĠ Ġval Ġlanguage : ĠString Ġ= ĠLocale . getDefault (). language , ĊĠĠĠĠĠĠĠ Ġval Ġis Debug : ĠBoolean Ġ= Ġ( 0 Ġ!= Ġ( Session Manager . app Context !!. application Info . flags . and ( Application Info . FLAG _ DEBUG G ABLE ))), ĊĠĠĠĠĠĠĠ Ġval Ġis Obfuscated : ĠBoolean Ġ= Ġ! Ship Book :: class . java . name . equals (" io . ship book . ship book sdk . Ship Book "), ĊĠĠĠĠĠĠĠ Ġvar Ġuser : ĠUser ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ): ĠBase Obj Ġ{ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( app Version Ġ== Ġ"") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠSession Manager . app Context !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp Info Ġ= Ġcontext . package Manager . get Package Info ( context . packageName , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Version Ġ= Ġp Info . version Name Ġ?: Ġ"" Ġ// Ġin Ġtest Ġit Ġis Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . P ) Ġapp Version Code Ġ= Ġp Info . long Version Code . toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" DE PREC ATION ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Version Code Ġ= Ġp Info . version Code ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcreate ( json : ĠJSONObject ): ĠLogin Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠappId Ġ= Ġjson . opt String (" appId ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapp Key Ġ= Ġjson . opt String (" app Key ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġos Ġ= Ġjson . opt String (" os ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠ Ġval Ġbundle Identifier : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠappName Ġ= Ġjson . opt String (" appName ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġud id Ġ= Ġjson . opt String (" ud id ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtime Ġ= ĠDate Helper . create Date Standard ( json . opt String (" time ")) !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdevice Time Ġ= ĠDate Helper . create Date Standard ( json . opt String (" device Time ")) !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġos Version Ġ= Ġjson . opt String (" os Version ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapp Version Ġ= Ġjson . opt String (" app Version ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapp Version Code Ġ= Ġjson . getInt (" app Version Code ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsdk Version Ġ= Ġjson . opt String (" sdk Version ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsdk Version Code Ġ= Ġjson . getInt (" sdk Version Code ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmanufacturer Ġ= Ġjson . opt String (" manufacturer ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdevice Model Ġ= Ġjson . opt String (" device Model ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdevice Name Ġ= Ġjson . opt String (" device Name ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠ Ġvar Ġad vertisement Id : ĠString ? Ġ= Ġnil ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlanguage Ġ= Ġjson . opt String (" language ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Debug Ġ= Ġjson . getBoolean (" isDebug ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Obfuscated Ġ= Ġjson . getBoolean (" is Obfuscated ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser Ġ= Ġif Ġ( json . has (" user ")) ĠUser . create ( json . opt JSONObject (" user ")) Ġelse Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠLogin ( appId , Ġapp Key , Ġos , ĠappName , Ġud id , Ġtime , Ġdevice Time , Ġos Version , Ġapp Version , Ġapp Version Code , Ġsdk Version , Ġsdk Version Code , Ġmanufacturer , Ġdevice Model , Ġdevice Name , Ġlanguage , Ġis Debug , Ġis Obfuscated , Ġuser ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoJson (): ĠJSONObject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= ĠJSONObject () ĊĠĠĠĠĠĠĠ Ġjson . put (" appId ", ĠappId ) ĊĠĠĠĠĠĠĠ Ġjson . put (" app Key ", Ġapp Key ) ĊĠĠĠĠĠĠĠ Ġjson . put (" os ", Ġos ) ĊĠĠĠĠĠĠĠ Ġjson . put (" appName ", ĠappName ) ĊĠĠĠĠĠĠĠ Ġjson . put (" ud id ", Ġud id ) ĊĠĠĠĠĠĠĠ Ġjson . put (" time ", Ġtime . to Standard String ()) ĊĠĠĠĠĠĠĠ Ġjson . put (" device Time ", Ġdevice Time . to Standard String ()) ĊĠĠĠĠĠĠĠ Ġjson . put (" os Version ", Ġos Version ) ĊĠĠĠĠĠĠĠ Ġjson . put (" app Version ", Ġapp Version ) ĊĠĠĠĠĠĠĠ Ġjson . put (" app Version Code ", Ġapp Version Code ) ĊĠĠĠĠĠĠĠ Ġjson . put (" sdk Version ", Ġsdk Version ) ĊĠĠĠĠĠĠĠ Ġjson . put (" sdk Version Code ", Ġsdk Version Code ) ĊĠĠĠĠĠĠĠ Ġjson . put (" manufacturer ", Ġmanufacturer ) ĊĠĠĠĠĠĠĠ Ġjson . put (" device Model ", Ġdevice Model ) ĊĠĠĠĠĠĠĠ Ġjson . put (" device Name ", Ġdevice Name ) ĊĠĠĠĠĠĠĠ Ġjson . put (" language ", Ġlanguage ) ĊĠĠĠĠĠĠĠ Ġjson . put (" isDebug ", Ġis Debug ) ĊĠĠĠĠĠĠĠ Ġjson . put (" is Obfuscated ", Ġis Obfuscated ) ĊĠĠĠĠĠĠĠ Ġjson . put Opt (" user ", Ġuser ?. toJson ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġjson ĊĠĠĠ Ġ} Ċ } Ċ