package Ġcom . town wang . y ao hu o . di Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroid . content . Context Ċ import Ġcom . google . gson . Gson Builder Ċ import Ġcom . tencent . bug ly . beta . Beta Ċ import Ġcom . town wang . y ao hu o . Build Config Ċ import Ġcom . town wang . y ao hu o . api . Api Ċ import Ġcom . town wang . y ao hu o . di . factory . Document Converter Factory Ċ import Ġcom . town wang . y ao hu o . di . interceptor . Add Cookies Interceptor Ċ import Ġcom . town wang . y ao hu o . di . interceptor . Net Cookies Interceptor Ċ import Ġcom . town wang . y ao hu o . di . interceptor . Save Cookies Interceptor Ċ import Ġcom . town wang . y ao hu o . repo . Repo Ċ // import Ġcom . town wang . y ao hu o . repo . db . Api Cache DB Ċ import Ġcom . town wang . y ao hu o . ui . fragment . pub . details . Pub Details Model Ċ import Ġcom . town wang . y ao hu o . ui . fragment . home . Home Model Ċ import Ġcom . town wang . y ao hu o . ui . fragment . login . Login Model Ċ import Ġcom . town wang . y ao hu o . ui . fragment . me . Me Model Ċ import Ġcom . town wang . y ao hu o . ui . fragment . msg . Msg Model Ċ import Ġcom . town wang . y ao hu o . ui . fragment . msg . details . Msg Details Model Ċ import Ġcom . town wang . y ao hu o . ui . fragment . pub . Pub ListModel Ċ import Ġcom . town wang . y ao hu o . ui . fragment . search . Search Model Ċ import Ġcom . town wang . y ao hu o . ui . fragment . send . Send Model Ċ import Ġcom . town wang . y ao hu o . ui . fragment . send . Upload File Model Ċ import Ġcom . town wang . y ao hu o . ui . fragment . splash . Splash Model Ċ import Ġcom . town wang . y ao hu o . ui . fragment . theme . Theme Model Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġorg . k oin . android x . view model . dsl . viewModel Ċ import Ġorg . k oin . core . qual ifier . named Ċ import Ġorg . k oin . dsl . module Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ import Ġjava . text . DateFormat Ċ import Ġjava . util . concurrent . TimeUnit ĊĊ Ċ private Ġval Ġnet Module Ġ= Ġmodule Ġ{ ĊĠĠĠ Ġsingle Ġ{ ĊĠĠĠĠĠĠĠ ĠGson Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. serialize Null s () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set DateFormat ( DateFormat . LONG ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Pretty Print ing () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsingle Ġ{ ĊĠĠĠĠĠĠĠ ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( Build Config . BASE _ Y AO HU O _ URL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( Ok HttpClient . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . proceed ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . request (). newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. retry On Connection Failure ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. connect Timeout ( 1 0 , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. read Timeout ( 2 0 , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. write Timeout ( 2 0 , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( Net Cookies Interceptor ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( Http Logging Interceptor (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlevel Ġ= ĠHttp Logging Interceptor . Level . BODY ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( Add Cookies Interceptor ( get ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( Save Cookies Interceptor ( get ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Document Converter Factory ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGson Converter Factory . create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGson Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Len ient () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĠĠĠ Ġsingle Ġ{ ĊĠĠĠĠĠĠĠ Ġget < Ret rofit >(). create ( Api :: class . java ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġsingle Ġ{ ĊĠĠĠĠĠĠĠ ĠBeta . init ( get (), Ġfalse ) ĊĠĠĠ Ġ} Ċ } Ċ private Ġval Ġstorage Module Ġ= Ġmodule Ġ{ Ċ // ĠĠĠ Ġsingle Ġ{ Ċ // ĠĠĠĠĠĠĠ ĠRoom . database Builder ( get (), ĠApi Cache DB :: class . java , Ġ" persist . db ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Migrations ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠMigration ( 1 , Ġ 2 ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġmigrate ( database : ĠSupport SQLite Database ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase . exec SQL (" ALTER ĠTABLE ĠUserInfo ĠADD ĠCOLUMN Ġ` id ` ĠTEXT ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠMigration ( 2 , Ġ 3 ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġmigrate ( database : ĠSupport SQLite Database ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase . exec SQL (" DROP ĠTABLE ĠIF ĠEXISTS ĠUserInfo ") Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġsingle Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġget < Api Cache DB >(). api Cache DAO () Ċ // ĠĠĠ Ġ} ĊĠĠĠ Ġsingle ( named (" config ")) Ġ{ ĊĠĠĠĠĠĠĠ Ġget < Application >(). get SharedPreferences (" config ", ĠContext . MODE _ PRIVATE ) ĊĠĠĠ Ġ} Ċ } Ċ private Ġval Ġrepo Module Ġ= Ġmodule Ġ{ ĊĠĠĠ Ġsingle Ġ{ ĠRepo ( get ()) Ġ} Ċ } Ċ private Ġval ĠviewModel Module Ġ= Ġmodule Ġ{ ĊĠĠĠ ĠviewModel Ġ{ ĠPub ListModel ( get ()) Ġ} ĊĠĠĠ ĠviewModel Ġ{ ĠSearch Model ( get ()) Ġ} ĊĠĠĠ ĠviewModel Ġ{ ĠLogin Model ( get ()) Ġ} ĊĠĠĠ ĠviewModel Ġ{ ĠTheme Model () Ġ} ĊĠĠĠ ĠviewModel Ġ{ ĠPub Details Model ( get ()) Ġ} ĊĠĠĠ ĠviewModel Ġ{ ĠSpl ash Model ( get ()) Ġ} ĊĠĠĠ ĠviewModel Ġ{ ĠMe Model ( get ()) Ġ} ĊĠĠĠ ĠviewModel Ġ{ ĠHome Model ( get ()) Ġ} ĊĠĠĠ ĠviewModel Ġ{ ĠSend Model ( get ()) Ġ} ĊĠĠĠ ĠviewModel Ġ{ ĠMsg Model ( get ()) Ġ} ĊĠĠĠ ĠviewModel Ġ{ ĠUpload File Model ( get ()) Ġ} ĊĠĠĠ ĠviewModel Ġ{ ĠMsg Details Model ( get ()) Ġ} Ċ Ċ } Ċ Ċ val Ġk oin Modules Ġ= ĠviewModel Module Ġ+ Ġrepo Module Ġ+ Ġnet Module