分裂flutter_boost;flutter channel增加网络参数获取
This commit is contained in:
@@ -5,7 +5,6 @@ import android.annotation.TargetApi;
|
||||
import android.app.ActivityManager;
|
||||
import android.app.Application;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.graphics.Color;
|
||||
@@ -25,8 +24,6 @@ import com.bumptech.glide.request.target.ViewTarget;
|
||||
import com.coorchice.library.utils.LogUtils;
|
||||
import com.huawei.hms.support.common.ActivityMgr;
|
||||
import com.idlefish.flutterboost.FlutterBoost;
|
||||
import com.idlefish.flutterboost.FlutterBoostDelegate;
|
||||
import com.idlefish.flutterboost.containers.FlutterBoostActivity;
|
||||
import com.ishumei.smantifraud.SmAntiFraud;
|
||||
import com.llew.huawei.verifier.LoadedApkHuaWei;
|
||||
import com.microquation.linkedme.android.LinkedME;
|
||||
@@ -62,11 +59,11 @@ import com.yizhuan.erban.MiddleActivity;
|
||||
import com.yizhuan.erban.NimMiddleActivity;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.flutter.ChannelConstants;
|
||||
import com.yizhuan.erban.flutter.RouterConstants;
|
||||
import com.yizhuan.erban.flutter.XplanFlutterBoostCallback;
|
||||
import com.yizhuan.erban.flutter.XplanFlutterBoostDelegate;
|
||||
import com.yizhuan.erban.module_hall.HallDataManager;
|
||||
import com.yizhuan.erban.radish.wallet.RadishWalletManager;
|
||||
import com.yizhuan.erban.reciever.ConnectiveChangedReceiver;
|
||||
import com.yizhuan.erban.ui.pay.ChargeActivity;
|
||||
import com.yizhuan.erban.utils.PushMessageHandler;
|
||||
import com.yizhuan.xchat_android_constants.XChatConstants;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
@@ -110,11 +107,9 @@ import com.yizhuan.xchat_android_library.utils.config.BasicConfig;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
import io.flutter.embedding.android.FlutterActivityLaunchConfigs;
|
||||
import io.flutter.plugin.common.MethodChannel;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.plugins.RxJavaPlugins;
|
||||
@@ -147,9 +142,6 @@ public class XChatApplication extends Application {
|
||||
private static XChatApplication instance;
|
||||
private RefWatcher mRefWatcher;
|
||||
|
||||
private MethodChannel mMethodChannel;
|
||||
|
||||
|
||||
private static String oaid;
|
||||
private static boolean isSupportOaid=false;
|
||||
private static int errorCode;
|
||||
@@ -262,43 +254,7 @@ public class XChatApplication extends Application {
|
||||
}
|
||||
dealHuaWeiCrash();
|
||||
|
||||
FlutterBoost.instance().setup(this, new FlutterBoostDelegate() {
|
||||
|
||||
@Override
|
||||
public void pushNativeRoute(String pageName, HashMap<String, String> arguments) {
|
||||
if (pageName == null) {
|
||||
return;
|
||||
}
|
||||
if (pageName.equals(RouterConstants.NATIVE_PAGE_CHARGE)) {
|
||||
ChargeActivity.start(FlutterBoost.instance().currentActivity());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void pushFlutterRoute(String pageName, String uniqueId, HashMap<String, String> arguments) {
|
||||
Intent intent = new FlutterBoostActivity.CachedEngineIntentBuilder(FlutterBoostActivity.class, FlutterBoost.ENGINE_ID)
|
||||
.backgroundMode(FlutterActivityLaunchConfigs.BackgroundMode.opaque)
|
||||
.destroyEngineWithActivity(false)
|
||||
.url(pageName)
|
||||
.urlParams(arguments)
|
||||
.build(FlutterBoost.instance().currentActivity());
|
||||
FlutterBoost.instance().currentActivity().startActivity(intent);
|
||||
}
|
||||
}, engine -> {
|
||||
mMethodChannel = new MethodChannel(engine.getDartExecutor(), ChannelConstants.CHANNEL_NAME);
|
||||
mMethodChannel.setMethodCallHandler(((call, result) -> {
|
||||
if (call.method.equals(ChannelConstants.METHOD_NAME_GETDIAMOND)) {
|
||||
PayModel.get().getWalletInfo()
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(walletInfo -> {
|
||||
result.success(walletInfo.diamonds);
|
||||
});
|
||||
} else {
|
||||
result.notImplemented();
|
||||
}
|
||||
}));
|
||||
});
|
||||
FlutterBoost.instance().setup(this, new XplanFlutterBoostDelegate(), new XplanFlutterBoostCallback());
|
||||
|
||||
LogUtils.d("init time = " +(System.currentTimeMillis() - startTime) +"ms");
|
||||
}
|
||||
|
@@ -4,4 +4,6 @@ public class ChannelConstants {
|
||||
public static final String CHANNEL_NAME = "com.mango.flutter.xplan";
|
||||
|
||||
public static final String METHOD_NAME_GETDIAMOND = "getDiamond";
|
||||
public static final String METHOD_NAME_GETDEVICEINFO = "getDeviceInfo";
|
||||
public static final String METHOD_NAME_GETAUTH = "getAuth";
|
||||
}
|
||||
|
@@ -0,0 +1,65 @@
|
||||
package com.yizhuan.erban.flutter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Build;
|
||||
import android.util.ArrayMap;
|
||||
|
||||
import com.idlefish.flutterboost.FlutterBoost;
|
||||
import com.yizhuan.erban.application.XChatApplication;
|
||||
import com.yizhuan.xchat_android_core.auth.AuthModel;
|
||||
import com.yizhuan.xchat_android_core.pay.PayModel;
|
||||
import com.yizhuan.xchat_android_library.utils.AppMetaDataUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.AppUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.DeviceUuidFactory;
|
||||
import com.yizhuan.xchat_android_library.utils.SystemUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.VersionUtil;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import io.flutter.embedding.engine.FlutterEngine;
|
||||
import io.flutter.plugin.common.MethodChannel;
|
||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.schedulers.Schedulers;
|
||||
|
||||
public class XplanFlutterBoostCallback implements FlutterBoost.Callback {
|
||||
|
||||
private MethodChannel mMethodChannel;
|
||||
|
||||
@Override
|
||||
public void onStart(FlutterEngine engine) {
|
||||
Context context = XChatApplication.instance();
|
||||
|
||||
mMethodChannel = new MethodChannel(engine.getDartExecutor(), ChannelConstants.CHANNEL_NAME);
|
||||
mMethodChannel.setMethodCallHandler(((call, result) -> {
|
||||
if (call.method.equals(ChannelConstants.METHOD_NAME_GETDIAMOND)) {
|
||||
PayModel.get().getWalletInfo()
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(walletInfo -> {
|
||||
result.success(walletInfo.diamonds);
|
||||
});
|
||||
} else if (call.method.equals(ChannelConstants.METHOD_NAME_GETDEVICEINFO)) {
|
||||
Map<String, String> httpParams = new HashMap<>();
|
||||
httpParams.put("os", "android");
|
||||
httpParams.put("osVersion", Build.VERSION.RELEASE);
|
||||
httpParams.put("app", "yinyou");
|
||||
httpParams.put("ispType", String.valueOf(SystemUtils.getIspType(context)));
|
||||
httpParams.put("netType", String.valueOf(SystemUtils.getNetworkType(context)));
|
||||
httpParams.put("model", SystemUtils.getPhoneModel());
|
||||
httpParams.put("appVersion", VersionUtil.getLocalName(context));
|
||||
httpParams.put("appVersionCode", String.valueOf(AppUtils.getVersionCode(context)));
|
||||
httpParams.put("deviceId", DeviceUuidFactory.getDeviceId(context));
|
||||
httpParams.put("channel", AppMetaDataUtil.getChannelID());
|
||||
result.success(httpParams);
|
||||
} else if (call.method.equals(ChannelConstants.METHOD_NAME_GETAUTH)) {
|
||||
Map<String, String> headerParams = new HashMap<>();
|
||||
headerParams.put("pub_uid", String.valueOf(AuthModel.get().getCurrentUid()));
|
||||
headerParams.put("pub_ticket", AuthModel.get().getTicket());
|
||||
result.success(headerParams);
|
||||
} else {
|
||||
result.notImplemented();
|
||||
}
|
||||
}));
|
||||
}
|
||||
}
|
@@ -0,0 +1,35 @@
|
||||
package com.yizhuan.erban.flutter;
|
||||
|
||||
import android.content.Intent;
|
||||
|
||||
import com.idlefish.flutterboost.FlutterBoost;
|
||||
import com.idlefish.flutterboost.FlutterBoostDelegate;
|
||||
import com.idlefish.flutterboost.containers.FlutterBoostActivity;
|
||||
import com.yizhuan.erban.ui.pay.ChargeActivity;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import io.flutter.embedding.android.FlutterActivityLaunchConfigs;
|
||||
|
||||
public class XplanFlutterBoostDelegate implements FlutterBoostDelegate {
|
||||
@Override
|
||||
public void pushNativeRoute(String pageName, HashMap<String, String> arguments) {
|
||||
if (pageName == null) {
|
||||
return;
|
||||
}
|
||||
if (pageName.equals(RouterConstants.NATIVE_PAGE_CHARGE)) {
|
||||
ChargeActivity.start(FlutterBoost.instance().currentActivity());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void pushFlutterRoute(String pageName, String uniqueId, HashMap<String, String> arguments) {
|
||||
Intent intent = new FlutterBoostActivity.CachedEngineIntentBuilder(FlutterBoostActivity.class, FlutterBoost.ENGINE_ID)
|
||||
.backgroundMode(FlutterActivityLaunchConfigs.BackgroundMode.opaque)
|
||||
.destroyEngineWithActivity(false)
|
||||
.url(pageName)
|
||||
.urlParams(arguments)
|
||||
.build(FlutterBoost.instance().currentActivity());
|
||||
FlutterBoost.instance().currentActivity().startActivity(intent);
|
||||
}
|
||||
}
|
Submodule xplan-flutter updated: dfb698e835...f5f080b236
Reference in New Issue
Block a user