bugfix: UI-859

This commit is contained in:
wangcongtao
2020-07-23 16:28:48 +08:00
parent 88a500be59
commit 8bdd11c480
34 changed files with 3167 additions and 28 deletions

View File

@@ -2,6 +2,7 @@ package com.mogo.launcher;
import android.content.Context;
import android.content.Intent;
import android.text.TextUtils;
import android.util.Log;
import com.alibaba.android.arouter.launcher.ARouter;
@@ -9,6 +10,7 @@ import com.auto.zhidao.logsdk.CrashSystem;
import com.bytedance.boost_multidex.BoostMultiDex;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.commons.network.Utils;
import com.mogo.commons.storage.SpStorage;
import com.mogo.module.authorize.authprovider.invoke.AuthorizeConstant;
import com.mogo.module.carchatting.card.CallChatConstant;
@@ -97,28 +99,53 @@ public class MogoApplication extends AbsMogoApplication {
@Override
protected void init() {
super.init();
UiThreadHandler.postDelayed( () -> {
final IMogoServiceApis apis = ARouter.getInstance().navigation( IMogoServiceApis.class );
apis.getSocketManagerApi( getApplicationContext() ).init( getApplicationContext(), DebugConfig.getSocketAppId() );
apis.getPassportManagerApi().requestTicket( new IMogoTicketCallback() {
@Override
public void onSuccess( String ticket ) {
Logger.d( TAG, "ticket = %s", ticket );
SpStorage.setTicket( ticket );
}
prepareBaseService();
}
@Override
public void onError( int code, String msg ) {
Logger.w( TAG, "code = %s, msg = %s", code, msg );
}
} );
apis.getLocationInfoApi().start();
apis.getMapServiceApi().getSingletonLocationClient( getApplicationContext() ).addLocationListener( location -> {
apis.getLocationInfoApi().provideLocation( location );
} );
/**
* 基础服务passport、location、socket
*/
private void prepareBaseService(){
UiThreadHandler.postDelayed( ()->{
final IMogoServiceApis apis = ARouter.getInstance().navigation( IMogoServiceApis.class );
// 第三方平台的sn是服务端生成的所以必须在返回后才能开启
if ( TextUtils.isEmpty( Utils.getSn() ) ) {
preparePassportEnvironment( apis, ()->{
prepareSocketAndLocationServices( apis );
} );
} else {
preparePassportEnvironment( apis, null );
prepareSocketAndLocationServices( apis );
}
}, 2_000L );
}
private void preparePassportEnvironment( IMogoServiceApis apis, Runnable after ) {
apis.getPassportManagerApi().requestTicket( new IMogoTicketCallback() {
@Override
public void onSuccess( String ticket ) {
Logger.d( TAG, "ticket = %s", ticket );
SpStorage.setTicket( ticket );
if ( after != null ) {
after.run();
}
}
@Override
public void onError( int code, String msg ) {
Logger.w( TAG, "code = %s, msg = %s", code, msg );
}
} );
}
private void prepareSocketAndLocationServices(IMogoServiceApis apis){
apis.getSocketManagerApi( getApplicationContext() ).init( getApplicationContext(), DebugConfig.getSocketAppId() );
apis.getLocationInfoApi().start();
apis.getMapServiceApi().getSingletonLocationClient( getApplicationContext() ).addLocationListener( location -> {
apis.getLocationInfoApi().provideLocation( location );
} );
}
@Override
protected void attachBaseContext( Context base ) {
super.attachBaseContext( base );