This commit is contained in:
wangcongtao
2020-12-08 14:08:53 +08:00
840 changed files with 31903 additions and 11168 deletions

View File

@@ -21,9 +21,12 @@ import com.mogo.commons.network.Constants;
import com.mogo.commons.network.ParamsUtil;
import com.mogo.commons.network.X509TrustManagerImpl;
import com.mogo.commons.storage.SpStorage;
import com.mogo.httpdns.IMogoHttpDns;
import com.mogo.httpdns.MogoHttpDnsHandler;
import com.mogo.utils.ThreadPoolService;
import com.mogo.utils.TipToast;
import com.mogo.utils.network.NetConfig;
import com.mogo.utils.storage.SharedPrefsMgr;
import java.security.SecureRandom;
import java.util.Map;
@@ -39,7 +42,7 @@ import okhttp3.Request;
* <p>
* 描述
*/
public class AbsMogoApplication extends Application {
public abstract class AbsMogoApplication extends Application {
private static final String TAG = "AbsMogoApplication";
@@ -53,12 +56,22 @@ public class AbsMogoApplication extends Application {
public void onCreate() {
super.onCreate();
sApp = this;
initARouter();
if ( shouldInit() ) {
init();
}
}
protected boolean shouldInit(){
private void initARouter() {
ARouter.init( sApp );
// 初始化 arouter
if ( DebugConfig.isDebug() ) {
ARouter.openDebug();
ARouter.openLog();
}
}
protected boolean shouldInit() {
return true;
}
@@ -68,34 +81,29 @@ public class AbsMogoApplication extends Application {
}
private void syncInit() {
// 初始化 arouter
if ( DebugConfig.isDebug() ) {
ARouter.openDebug();
ARouter.openLog();
}
ARouter.init( sApp );
TipToast.init( this, ( ( context, message, tipDrawable ) -> {
if ( TextUtils.isEmpty( message ) ) {
return null;
}
View contentView;
if(tipDrawable==null) {
contentView = LayoutInflater.from(context).inflate(R.layout.module_commons_layout_toast, null);
TextView txt = contentView.findViewById(R.id.module_commons_toast_msg);
txt.setText(message);
}else{
if ( tipDrawable == null ) {
contentView = LayoutInflater.from( context ).inflate( R.layout.module_commons_layout_toast, null );
TextView txt = contentView.findViewById( R.id.module_commons_toast_msg );
txt.setText( message );
} else {
// 有图片,使用带图片的布局,当前只实现了左侧图片
contentView = LayoutInflater.from(context).inflate(R.layout.module_commons_layout_toast_with_left_drawable, null);
TextView txt = contentView.findViewById(R.id.module_commons_toast_msg);
ImageView img = contentView.findViewById(R.id.module_commons_toast_left_drawable);
img.setImageDrawable(tipDrawable.getDrawable());
contentView = LayoutInflater.from( context ).inflate( R.layout.module_commons_layout_toast_with_left_drawable, null );
TextView txt = contentView.findViewById( R.id.module_commons_toast_msg );
ImageView img = contentView.findViewById( R.id.module_commons_toast_left_drawable );
img.setImageDrawable( tipDrawable.getDrawable() );
ViewGroup.LayoutParams params = img.getLayoutParams();
params.width = tipDrawable.getWidth();
params.height = tipDrawable.getHeight();
txt.setText(message);
txt.setText( message );
}
return contentView;
} ) );
DebugConfig.setUseCustomMap( SharedPrefsMgr.getInstance( this ).getBoolean( "useCustomMap", false ) );
}
/**
@@ -122,7 +130,7 @@ public class AbsMogoApplication extends Application {
} );
}
protected void asyncInitImpl(){
protected void asyncInitImpl() {
}
@@ -134,6 +142,8 @@ public class AbsMogoApplication extends Application {
} catch ( Exception e ) {
}
IMogoHttpDns dns = MogoHttpDnsHandler.getHttpDnsApi();
NetConfig.instance().setSignaturePrefix( Constants.SIGN_PREFIX )
.setPublicParams( ParamsUtil.getStaticParams() )
.setHostnameVerifier( new AllAllowedHostnameVerifier() )
@@ -145,6 +155,7 @@ public class AbsMogoApplication extends Application {
.build();
return chain.proceed( request );
} )
.setHttpDns( dns.dns() )
.setLoggable( DebugConfig.isDebug() );
}
}

View File

@@ -81,6 +81,15 @@ public class DebugConfig {
private static int sCarMachineType = CAR_MACHINE_TYPE_SELF_INNOVATE;
/**
* 西迪obu
*/
public static final int OBU_TYPE_CIDI = 1;
/**
* 华砺智行obu
*/
public static final int OBU_TYPE_HUALI = 2;
/**
* 获取网络环境类型
*
@@ -100,7 +109,7 @@ public class DebugConfig {
* {@link #NET_MODE_DEMO}
* {@link #NET_MODE_RELEASE}
*/
public static void setNetMode( int netMode ) {
public static void setNetMode(int netMode) {
DebugConfig.sNetMode = netMode;
}
@@ -113,7 +122,7 @@ public class DebugConfig {
return sLaunchLocationService;
}
public static void setLaunchLocationService( boolean launchLocationService ) {
public static void setLaunchLocationService(boolean launchLocationService) {
DebugConfig.sLaunchLocationService = launchLocationService;
}
@@ -126,7 +135,7 @@ public class DebugConfig {
return sUseCustomNavi;
}
public static void setUseCustomNavi( boolean sUseCustomNavi ) {
public static void setUseCustomNavi(boolean sUseCustomNavi) {
DebugConfig.sUseCustomNavi = sUseCustomNavi;
}
@@ -135,7 +144,7 @@ public class DebugConfig {
*
* @param type {@link #CAR_MACHINE_TYPE_SELF_INNOVATE} {@link #CAR_MACHINE_TYPE_BYD}
*/
public static void setCarMachineType( int type ) {
public static void setCarMachineType(int type) {
sCarMachineType = type;
}
@@ -157,7 +166,7 @@ public class DebugConfig {
return sIsLauncher;
}
public static void setLauncher( boolean isLauncher ) {
public static void setLauncher(boolean isLauncher) {
DebugConfig.sIsLauncher = isLauncher;
}
@@ -167,10 +176,19 @@ public class DebugConfig {
return sRequestOnlineCarData;
}
public static void setRequestOnlineCarData( boolean sRequestOnlineCarData ) {
public static void setRequestOnlineCarData(boolean sRequestOnlineCarData) {
DebugConfig.sRequestOnlineCarData = sRequestOnlineCarData;
}
public static boolean sUseCustomMap = true;
public static boolean isUseCustomMap() {
return sUseCustomMap;
}
public static void setUseCustomMap( boolean sUseCustomMap ) {
DebugConfig.sUseCustomMap = sUseCustomMap;
}
/**
* 是否支持临时激活小智
*/
@@ -232,6 +250,23 @@ public class DebugConfig {
DebugConfig.sRoadEventAnimated = sRoadEventAnimated;
}
private static boolean sLoadGuideModule = false;
public static void setLoadGuideModule(boolean sLoadGuideModule) {
DebugConfig.sLoadGuideModule = sLoadGuideModule;
}
public static boolean isLoadGuideModule() {
return sLoadGuideModule;
}
private static String SP_GUIDE = "SP_GUIDE_2020_09_09";
public static String getSpGuide() {
return SP_GUIDE;
}
private static boolean isSkinSupported = false;
public static void setSkinSupported( boolean isSkinSupported ) {
@@ -281,6 +316,16 @@ public class DebugConfig {
return isSupportLauncherCardRefreshStrategy;
}
private static int obuType = OBU_TYPE_HUALI;
public static int getObuType() {
return obuType;
}
public static void setObuType(int type) {
obuType = type;
}
/**
* 是否需要刷新个人信息
*/

View File

@@ -33,12 +33,12 @@ public abstract class MvpFragment<V extends IView, P extends Presenter<V>> exten
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
if ( mRootView == null ) {
mRootView = inflater.inflate( getLayoutId(), container, false );
if (mRootView == null) {
mRootView = inflater.inflate(getLayoutId(), container, false);
} else {
ViewGroup viewGroup = ( ViewGroup ) mRootView.getParent();
if ( viewGroup != null ) {
viewGroup.removeView( mRootView );
ViewGroup viewGroup = (ViewGroup) mRootView.getParent();
if (viewGroup != null) {
viewGroup.removeView(mRootView);
}
}
return mRootView;

View File

@@ -0,0 +1,149 @@
package com.mogo.commons.utils;
import java.text.DecimalFormat;
/**
* 莫顿编码
*
* @author linyang
* @since 2020.07.09
*/
public class MortonCode {
/**
* morton 转 经纬度 时的中间常量
*/
private static final long NDS_180_DEGREES = 0x7fffffff;
/**
* morton 转 经纬度 时的中间常量
*/
private static final long NDS_360_DEGREES = 4294967295L;
/**
* morton 转 经纬度 时的中间常量
*/
private static final long NDS_90_DEGREES = 0x3fffffff;
/**
* 经纬度转 morton 时的中间常量
*/
private static final double RULE_MORTON = Math.pow( 2, 32 ) / 360;
/**
* morton 转 经纬度 时的中间常量
*/
private static final double RULE_MORTON_TO_LONLAT = 360.0 / Math.pow( 2, 32 );
/**
* @param lon
* @param lat
* @return
*/
public static long wrapEncodeMorton( Double lon, Double lat ) {
DecimalFormat decimalFormat = new DecimalFormat( "#.######" );
return encodeMorton( Double.valueOf( decimalFormat.format( lon ) ),
Double.valueOf( decimalFormat.format( lat ) ) );
}
/**
* 编码 morton code
*
* @param lon
* @param lat
* @return
*/
public static long encodeMorton( Double lon, Double lat ) {
Long bit = 1L;
long mortonCode = 0L;
long x = ( long ) ( lon * RULE_MORTON );
long y = ( long ) ( lat * RULE_MORTON );
if ( y < 0 ) {
y += 0x7FFFFFFF;
}
y = y << 1;
for ( int i = 0; i < 32; i++ ) {
// x-part
mortonCode = mortonCode | ( x & bit );
x = x << 1;
bit = bit << 1;
// y-part
mortonCode = mortonCode | ( y & bit );
y = y << 1;
bit = bit << 1;
}
return mortonCode;
}
/**
* 将莫顿码解码为坐标
*
* @param mortonCode
* @return
*/
public static double[] decodeMorton( long mortonCode ) {
long[] midPoint = mortonCodeToCoord( mortonCode );
normalizeCoord( midPoint );
double[] point = new double[2];
// 将经纬度长整数转化为 浮点类型
point[0] = midPoint[0] * RULE_MORTON_TO_LONLAT;
point[1] = midPoint[1] * RULE_MORTON_TO_LONLAT;
return point;
}
/**
* 莫顿码分别拆解为 编码后的经纬度长整数
*
* @param mortonCode
* @return
*/
private static long[] mortonCodeToCoord( long mortonCode ) {
long bit = 1L;
long[] longPoint = new long[2];
for ( int i = 0; i < 32; i++ ) {
longPoint[0] |= mortonCode & bit;
mortonCode >>= 1;
longPoint[1] |= mortonCode & bit;
bit <<= 1;
}
return longPoint;
}
/**
* 对编码后的经纬度长整数进行解码
*
* @param midPoint
*/
private static void normalizeCoord( long[] midPoint ) {
// if x > 180 degrees, then subtract 360 degrees
if ( midPoint[0] > NDS_180_DEGREES ) {
midPoint[0] -=
NDS_360_DEGREES + 1; // add 1 because 0 must be counted as well
} else if ( midPoint[0] < -NDS_180_DEGREES ) // if x < 180 , x += 360
{
midPoint[0] +=
NDS_360_DEGREES + 1; // add 1 because 0 must be counted as well
}
// if y > 90 degrees, then subtract 180 degrees
if ( midPoint[1] > NDS_90_DEGREES ) {
midPoint[1] -=
NDS_180_DEGREES + 1; // add 1 because 0 must be counted as well
} else if ( midPoint[1] < -NDS_90_DEGREES ) // if y < 90, y += 180
{
midPoint[1] +=
NDS_180_DEGREES + 1; // add 1 because 0 must be counted as well
}
return;
}
public static void main( String[] args ) {
System.out.println( encodeMorton( 116.39584, 39.98152 ) );
}
}