diff --git a/66pw.jks b/66pw.jks
deleted file mode 100644
index 2667b79c6..000000000
Binary files a/66pw.jks and /dev/null differ
diff --git a/app/build.gradle b/app/build.gradle
index fe71f2a95..93fb7a839 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -172,7 +172,6 @@ android {
}
def Lombok = "1.18.10"
-def useFlutterAar = Boolean.parseBoolean(with_flutter_aar)
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar','*.aar'])
@@ -245,36 +244,19 @@ dependencies {
implementation 'com.meizu.flyme.internet:push-internal:4.1.0'
//oppo推送需要
implementation 'commons-codec:commons-codec:1.6'
-
- // xplan flutter module
- if (useFlutterAar) {
- implementation 'com.mango.flutter.xplan:flutter_release:1.0'
- } else {
- implementation project(path: ':flutter')
- implementation project(path: ':flutter_boost')
- }
-
+
api 'com.tencent.vasdolly:helper:3.0.3'
implementation "io.github.tencent:vap:2.0.24"
implementation 'com.github.mmin18:realtimeblurview:1.2.1'
}
-String storageUrl = System.env.FLUTTER_STORAGE_BASE_URL ?: "https://storage.googleapis.com"
-
repositories {
flatDir {
dirs 'aliyun-libs','com.huawei.agconnect'
}
mavenCentral()
- maven {
- url '../xplan-flutter/build/host/outputs/repo'
- }
-
- maven {
- url "$storageUrl/download.flutter.io"
- }
}
channel {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 69f7cbcb0..defcd88fe 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1161,10 +1161,6 @@
android:name=".ui.webview.TarotPayWebViewActivity"
android:theme="@style/dialog_web_view_activity" />
-
@@ -1172,23 +1168,6 @@
android:name=".ui.setting.ResetPasswordActivity"
android:screenOrientation="portrait" />
-
-
-
-
-
-
-
@@ -1248,9 +1227,6 @@
-
}
onParseIntent();
handleNimIntent();
- if (tempFragment instanceof FlutterFragment) {
- ((FlutterFragment) tempFragment).onNewIntent(intent);
- }
}
private void onParseIntent() {
@@ -464,9 +460,6 @@ public class MainActivity extends BaseMvpActivity
} catch (Exception e) {
e.printStackTrace();
}
- if (tempFragment instanceof FlutterFragment) {
- ((FlutterFragment) tempFragment).onBackPressed();
- }
}
@Subscribe(threadMode = ThreadMode.MAIN)
@@ -965,42 +958,4 @@ public class MainActivity extends BaseMvpActivity
StatusBarUtil.transparencyBar(this);
StatusBarUtil.StatusBarLightMode(this);
}
-
- @Override
- public void onPostResume() {
- super.onPostResume();
- if (tempFragment instanceof FlutterFragment) {
- ((FlutterFragment) tempFragment).onPostResume();
- }
- }
-
- @Override
- public void onRequestPermissionsResult(
- int requestCode,
- @NonNull String[] permissions,
- @NonNull int[] grantResults
- ) {
- if (tempFragment instanceof FlutterFragment) {
- tempFragment.onRequestPermissionsResult(
- requestCode,
- permissions,
- grantResults
- );
- }
- }
-
- @Override
- public void onUserLeaveHint() {
- if (tempFragment instanceof FlutterFragment) {
- ((FlutterFragment) tempFragment).onUserLeaveHint();
- }
- }
-
- @Override
- public void onTrimMemory(int level) {
- super.onTrimMemory(level);
- if (tempFragment instanceof FlutterFragment) {
- ((FlutterFragment) tempFragment).onTrimMemory(level);
- }
- }
}
diff --git a/app/src/main/java/com/yizhuan/erban/flutter/ChannelConstants.java b/app/src/main/java/com/yizhuan/erban/flutter/ChannelConstants.java
deleted file mode 100644
index e3a03175e..000000000
--- a/app/src/main/java/com/yizhuan/erban/flutter/ChannelConstants.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.yizhuan.erban.flutter;
-
-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";
- public static final String METHOD_NAME_GETENCODEPWD = "getEncodePwd";
- public static final String METHOD_NAME_NOTIFYSHOWINVITE = "notifyShowInvite";
-}
diff --git a/app/src/main/java/com/yizhuan/erban/flutter/RouterConstants.java b/app/src/main/java/com/yizhuan/erban/flutter/RouterConstants.java
deleted file mode 100644
index 01387df48..000000000
--- a/app/src/main/java/com/yizhuan/erban/flutter/RouterConstants.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.yizhuan.erban.flutter;
-
-public class RouterConstants {
- public static final String NATIVE_PAGE_CHARGE = "charge";
- public static final String NATIVE_PAGE_BIND = "bindGameAccount";
- public static final String NATIVE_PAGE_INVITE = "invite";
- public static final String NATIVE_PAGE_BIND_PAYMENT_PWD = "bindPaymentPwd";
- public static final String NATIVE_PAGE_BIND_ALIPAY = "bindAlipay";
- public static final String NATIVE_PAGE_WEBVIEW = "openWebview";
- public static final String NATIVE_PAGE_CHATROOM = "chatRoom";
-
- public static final String NATIVE_PAGE_ARG_WEBVIEW_URL = "webviewUrl";
- public static final String NATIVE_PAGE_ARG_CHATROOM_ID = "chatRoomID";
- public static final String NATIVE_PAGE_ARG_FROM_TYPE = "chatRoomFromType";
- public static final String NATIVE_PAGE_ARG_FROM_UID = "chatRoomFromUid";
- public static final String NATIVE_PAGE_ARG_FROM_NICK = "chatRoomFromNick";
-
- public static final String FLUTTER_PAGE_MAIN = "/";
- public static final String FLUTTER_PAGE_MAIN_DEBUG = "debug";
- public static final String FLUTTER_PAGE_SPLASH = "splash";
- public static final String FLUTTER_PAGE_MALL = "mall";
- public static final String FLUTTER_PAGE_RECORD = "quotaRecord";
- public static final String FLUTTER_PAGE_BAG = "bag";
- public static final String FLUTTER_PAGE_PERFORMANCE = "performance";
- public static final String FLUTTER_PAGE_MATCH_DETAIL = "matchDetail";
- public static final String FLUTTER_PAGE_PRIZE = "prize";
-
- public static final String FLUTTER_PAGE_ARG_MATCH_ID = "matchId";
-}
diff --git a/app/src/main/java/com/yizhuan/erban/flutter/XplanFlutterBoostCallback.java b/app/src/main/java/com/yizhuan/erban/flutter/XplanFlutterBoostCallback.java
deleted file mode 100644
index c8e013b83..000000000
--- a/app/src/main/java/com/yizhuan/erban/flutter/XplanFlutterBoostCallback.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package com.yizhuan.erban.flutter;
-
-import android.content.Context;
-import android.os.Build;
-
-import com.idlefish.flutterboost.FlutterBoost;
-import com.yizhuan.erban.application.XChatApplication;
-import com.yizhuan.erban.flutter.event.ShowInviteEvent;
-import com.yizhuan.xchat_android_constants.XChatConstants;
-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 com.yizhuan.xchat_android_library.utils.codec.DESUtils;
-
-import org.greenrobot.eventbus.EventBus;
-
-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 httpParams = new HashMap<>();
- httpParams.put("os", "android");
- httpParams.put("osVersion", Build.VERSION.RELEASE);
- httpParams.put("app", XChatConstants.APP_MARK);
- 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 headerParams = new HashMap<>();
- headerParams.put("pub_uid", String.valueOf(AuthModel.get().getCurrentUid()));
- headerParams.put("pub_ticket", AuthModel.get().getTicket());
- result.success(headerParams);
- } else if (call.method.equals(ChannelConstants.METHOD_NAME_GETENCODEPWD)) {
- try {
- result.success(DESUtils.DESAndBase64Encrypt(String.valueOf(call.arguments)));
- } catch (Exception e) {
- result.error("", "", null);
- }
- } else if (call.method.equals(ChannelConstants.METHOD_NAME_NOTIFYSHOWINVITE)) {
- EventBus.getDefault().post(new ShowInviteEvent(Boolean.valueOf(call.arguments.toString())));
- } else {
- result.notImplemented();
- }
- }));
- }
-}
diff --git a/app/src/main/java/com/yizhuan/erban/flutter/XplanFlutterBoostDelegate.java b/app/src/main/java/com/yizhuan/erban/flutter/XplanFlutterBoostDelegate.java
deleted file mode 100644
index f1a697e53..000000000
--- a/app/src/main/java/com/yizhuan/erban/flutter/XplanFlutterBoostDelegate.java
+++ /dev/null
@@ -1,102 +0,0 @@
-package com.yizhuan.erban.flutter;
-
-import android.content.Context;
-import android.content.Intent;
-
-import com.idlefish.flutterboost.FlutterBoost;
-import com.idlefish.flutterboost.FlutterBoostDelegate;
-import com.idlefish.flutterboost.containers.FlutterBoostActivity;
-import com.yizhuan.erban.avroom.activity.AVRoomActivity;
-import com.yizhuan.erban.ui.login.BindPhoneActivity;
-import com.yizhuan.erban.ui.pay.ChargeActivity;
-import com.yizhuan.erban.ui.setting.ModifyPwdActivity;
-import com.yizhuan.erban.ui.webview.CommonWebViewActivity;
-import com.yizhuan.erban.ui.withdraw.BinderAlipayActivity;
-import com.yizhuan.xchat_android_core.UriProvider;
-import com.yizhuan.xchat_android_core.statistic.StatisticManager;
-import com.yizhuan.xchat_android_core.statistic.StatisticModel;
-import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol;
-import com.yizhuan.xchat_android_core.user.UserModel;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import io.flutter.embedding.android.FlutterActivityLaunchConfigs;
-
-public class XplanFlutterBoostDelegate implements FlutterBoostDelegate {
- @Override
- public void pushNativeRoute(String pageName, Map arguments) {
- if (pageName == null) {
- return;
- }
- if (pageName.equals(RouterConstants.NATIVE_PAGE_CHARGE)) {
- ChargeActivity.start(FlutterBoost.instance().currentActivity());
- return;
- }
- if (pageName.equals(RouterConstants.NATIVE_PAGE_BIND)) {
- CommonWebViewActivity.start(FlutterBoost.instance().currentActivity(), UriProvider.getLinkAccountUrl());
- return;
- }
- if (pageName.equals(RouterConstants.NATIVE_PAGE_BIND_PAYMENT_PWD)) {
- Context context = FlutterBoost.instance().currentActivity();
- if (UserModel.get().getCacheLoginUserInfo().isBindPhone()) {
- ModifyPwdActivity.start(context, ModifyPwdActivity.PAY_PWD);
- } else {
- BindPhoneActivity.start(context);
- }
- return;
- }
- if (pageName.equals(RouterConstants.NATIVE_PAGE_BIND_ALIPAY)) {
- Context context = FlutterBoost.instance().currentActivity();
- if (UserModel.get().getCacheLoginUserInfo().isBindPhone()) {
- Intent intent = new Intent(context, BinderAlipayActivity.class);
- context.startActivity(intent);
- } else {
- BindPhoneActivity.start(context);
- }
- return;
- }
- if (pageName.equals(RouterConstants.NATIVE_PAGE_WEBVIEW)) {
- String url = (String) arguments.get(RouterConstants.NATIVE_PAGE_ARG_WEBVIEW_URL);
- if (url == null || url.isEmpty()) {
- return;
- }
- Context context = FlutterBoost.instance().currentActivity();
- Intent intent = new Intent(context, CommonWebViewActivity.class);
- intent.putExtra("url", url);
- intent.putExtra("from", "xplan_flutter");
- context.startActivity(intent);
- return;
- }
- if (pageName.equals(RouterConstants.NATIVE_PAGE_INVITE)) {
- CommonWebViewActivity.start(FlutterBoost.instance().currentActivity(), UriProvider.getGameShareUrl());
- return;
- }
- if (pageName.equals(RouterConstants.NATIVE_PAGE_CHATROOM)) {
- StatisticManager.Instance().onEvent(StatisticsProtocol.EVENT_OPERATIONAL_ROOM_SUCCESS, "赛事详情成功进入聊天室 ");
- long uid = Long.valueOf((Integer) arguments.get(RouterConstants.NATIVE_PAGE_ARG_CHATROOM_ID));
- int fromType = arguments.containsKey(RouterConstants.NATIVE_PAGE_ARG_FROM_TYPE) ?
- (Integer) arguments.get(RouterConstants.NATIVE_PAGE_ARG_FROM_TYPE) : 0;
- String fromUid = arguments.containsKey(RouterConstants.NATIVE_PAGE_ARG_FROM_UID) ?
- (String) arguments.get(RouterConstants.NATIVE_PAGE_ARG_FROM_UID) : "";
- String fromNick = arguments.containsKey(RouterConstants.NATIVE_PAGE_ARG_FROM_UID) ?
- (String) arguments.get(RouterConstants.NATIVE_PAGE_ARG_FROM_NICK) : "";
- AVRoomActivity.startForFromType(FlutterBoost.instance().currentActivity(), uid, fromType, fromNick, fromUid);
- return;
- }
- }
-
- @Override
- public void pushFlutterRoute(String pageName, String uniqueId, Map arguments) {
- if (arguments == null) {
- arguments = new HashMap<>();
- }
- 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);
- }
-}
diff --git a/app/src/main/java/com/yizhuan/erban/flutter/event/ShowInviteEvent.java b/app/src/main/java/com/yizhuan/erban/flutter/event/ShowInviteEvent.java
deleted file mode 100644
index 92c797ddf..000000000
--- a/app/src/main/java/com/yizhuan/erban/flutter/event/ShowInviteEvent.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.yizhuan.erban.flutter.event;
-
-public class ShowInviteEvent {
- public boolean mShowInvite;
-
- public ShowInviteEvent(boolean show) {
- mShowInvite = show;
- }
-}
diff --git a/app/src/main/java/com/yizhuan/erban/home/fragment/GameFragment.java b/app/src/main/java/com/yizhuan/erban/home/fragment/GameFragment.java
deleted file mode 100644
index c2e97a1e6..000000000
--- a/app/src/main/java/com/yizhuan/erban/home/fragment/GameFragment.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.yizhuan.erban.home.fragment;
-
-import androidx.annotation.Nullable;
-
-import com.idlefish.flutterboost.containers.FlutterBoostFragment;
-import com.yizhuan.erban.R;
-
-import io.flutter.embedding.android.DrawableSplashScreen;
-import io.flutter.embedding.android.SplashScreen;
-
-public class GameFragment extends FlutterBoostFragment {
-
- @Nullable
- @Override
- public SplashScreen provideSplashScreen() {
- return new DrawableSplashScreen(getResources().getDrawable(R.drawable.bg_flutter_splash));
- }
-
- @Override
- public void setUserVisibleHint(boolean isVisibleToUser) {
- try {
- super.setUserVisibleHint(isVisibleToUser);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-}
diff --git a/app/src/main/java/com/yizhuan/erban/ui/im/ImInitHelper.java b/app/src/main/java/com/yizhuan/erban/ui/im/ImInitHelper.java
index 280f0bb82..fc0678432 100644
--- a/app/src/main/java/com/yizhuan/erban/ui/im/ImInitHelper.java
+++ b/app/src/main/java/com/yizhuan/erban/ui/im/ImInitHelper.java
@@ -25,7 +25,6 @@ import com.yizhuan.erban.ui.im.chat.MsgViewHolderGift;
import com.yizhuan.erban.ui.im.chat.MsgViewHolderHello;
import com.yizhuan.erban.ui.im.chat.MsgViewHolderLevel;
import com.yizhuan.erban.ui.im.chat.MsgViewHolderLottery;
-import com.yizhuan.erban.ui.im.chat.MsgViewHolderMatch;
import com.yizhuan.erban.ui.im.chat.MsgViewHolderOnline;
import com.yizhuan.erban.ui.im.chat.MsgViewHolderRedPackage;
import com.yizhuan.erban.ui.im.chat.MsgViewHolderRedPacket;
@@ -159,9 +158,6 @@ public class ImInitHelper {
NimUIKit.registerMsgItemViewHolder(WorldDynamicAttachment.class, WorldDynamicShareViewHolder.class);
NimUIKit.registerMsgItemViewHolder(ChatHintAttachment.class, MsgViewHolderChatHint.class);
-
- NimUIKit.registerMsgItemViewHolder(MatchAttachment.class, MsgViewHolderMatch.class);
-
//技能卡
NimUIKit.registerMsgItemViewHolder(SkillMsgAttachment.class, MsgViewHolderSkill.class);
//CP
diff --git a/app/src/main/java/com/yizhuan/erban/ui/im/RouterHandler.java b/app/src/main/java/com/yizhuan/erban/ui/im/RouterHandler.java
index bc9b1f6bc..669a7e45f 100644
--- a/app/src/main/java/com/yizhuan/erban/ui/im/RouterHandler.java
+++ b/app/src/main/java/com/yizhuan/erban/ui/im/RouterHandler.java
@@ -38,7 +38,6 @@ import com.yizhuan.erban.ui.patriarch.PatriarchModeActivity;
import com.yizhuan.erban.ui.pay.ChargeActivity;
import com.yizhuan.erban.ui.setting.FeedbackActivity;
import com.yizhuan.erban.ui.setting.ModifyPwdActivity;
-import com.yizhuan.erban.ui.setting.ScheduleManageActivity;
import com.yizhuan.erban.ui.user.UserInfoActivity;
import com.yizhuan.erban.ui.webview.CommonWebViewActivity;
import com.yizhuan.erban.ui.withdraw.BinderAlipayActivity;
@@ -307,7 +306,6 @@ public class RouterHandler {
break;
case RouterType.SCHEDULE_MANAGE:
//赛程管理
- ScheduleManageActivity.Companion.start(context);
break;
case RouterType.VISITOR_LIST:
//访客记录
diff --git a/app/src/main/java/com/yizhuan/erban/ui/im/chat/MsgViewHolderMatch.java b/app/src/main/java/com/yizhuan/erban/ui/im/chat/MsgViewHolderMatch.java
deleted file mode 100644
index 6083aa581..000000000
--- a/app/src/main/java/com/yizhuan/erban/ui/im/chat/MsgViewHolderMatch.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package com.yizhuan.erban.ui.im.chat;
-
-import android.content.Intent;
-import android.widget.TextView;
-
-import com.idlefish.flutterboost.FlutterBoost;
-import com.netease.nim.uikit.business.session.viewholder.MsgViewHolderBase;
-import com.netease.nim.uikit.common.ui.recyclerview.adapter.BaseMultiItemFetchLoadAdapter;
-import com.netease.nimlib.sdk.msg.attachment.MsgAttachment;
-import com.yizhuan.erban.MainActivity;
-import com.yizhuan.erban.R;
-import com.yizhuan.erban.flutter.RouterConstants;
-import com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment;
-import com.yizhuan.xchat_android_core.im.custom.bean.MatchAttachment;
-
-import java.util.HashMap;
-
-/**
- * 文字消息holder
- *
- * @author jiahui
- * @date 2018/1/10
- */
-public class MsgViewHolderMatch extends MsgViewHolderBase {
- private TextView mTvMsg;
- private MatchAttachment matchAttachment;
-
- public MsgViewHolderMatch(BaseMultiItemFetchLoadAdapter adapter) {
- super(adapter);
- }
-
- @Override
- protected int getContentResId() {
- return R.layout.layout_msg_view_holder_match;
- }
-
- @Override
- protected void inflateContentView() {
- mTvMsg = findViewById(R.id.tv_msg);
- }
-
- @Override
- protected void bindContentView() {
- CharSequence text = "";
- MsgAttachment attachment = message.getAttachment();
- if (attachment instanceof MatchAttachment) {
- matchAttachment = (MatchAttachment) attachment;
- text = matchAttachment.getContent();
- }
- mTvMsg.setText(text);
- }
-
- @Override
- protected void onItemClick() {
- if (matchAttachment != null && matchAttachment.isNeedForwardToMatchDetail()) {
- HashMap args = new HashMap<>();
- args.put(RouterConstants.FLUTTER_PAGE_ARG_MATCH_ID, matchAttachment.getMatchId());
- FlutterBoost.instance().open(RouterConstants.FLUTTER_PAGE_MATCH_DETAIL, args);
- return;
- }
- if (matchAttachment != null && matchAttachment.getSecond() == CustomAttachment.CUSTOM_MSG_QUICK_DISMISS) {
- Intent intent = new Intent();
- intent.putExtra(MainActivity.GAME_TAB, true);
- MainActivity.start(context, intent);
- return;
- }
- }
-}
diff --git a/app/src/main/java/com/yizhuan/erban/ui/setting/LabActivity.java b/app/src/main/java/com/yizhuan/erban/ui/setting/LabActivity.java
index a5ab9bfc1..70bb5e772 100644
--- a/app/src/main/java/com/yizhuan/erban/ui/setting/LabActivity.java
+++ b/app/src/main/java/com/yizhuan/erban/ui/setting/LabActivity.java
@@ -5,16 +5,12 @@ import android.view.View;
import android.widget.RadioButton;
import android.widget.RadioGroup;
-import com.idlefish.flutterboost.FlutterBoost;
import com.yizhuan.erban.R;
import com.yizhuan.erban.base.BaseActivity;
import com.yizhuan.erban.ui.utils.ImageLoadKt;
-import com.yizhuan.xchat_android_core.DemoCache;
import com.yizhuan.xchat_android_core.Env;
import com.yizhuan.xchat_android_core.auth.AuthModel;
-import java.util.ArrayList;
-
/**
* Created by chenran on 2017/10/16.
@@ -25,7 +21,6 @@ public class LabActivity extends BaseActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lab);
- findViewById(R.id.rb_flutter_test).setOnClickListener(v -> FlutterBoost.instance().open("/", null));
findViewById(R.id.rb_vap_test).setOnClickListener(v ->
ImageLoadKt.loadAnim(
findViewById(R.id.anim_vap_test),
diff --git a/app/src/main/java/com/yizhuan/erban/ui/setting/ScheduleManageActivity.kt b/app/src/main/java/com/yizhuan/erban/ui/setting/ScheduleManageActivity.kt
deleted file mode 100644
index eae980181..000000000
--- a/app/src/main/java/com/yizhuan/erban/ui/setting/ScheduleManageActivity.kt
+++ /dev/null
@@ -1,46 +0,0 @@
-package com.yizhuan.erban.ui.setting
-
-import android.content.Context
-import android.content.Intent
-import android.view.View
-import com.idlefish.flutterboost.FlutterBoost
-import com.yizhuan.erban.R
-import com.yizhuan.erban.base.BaseBindingActivity
-import com.yizhuan.erban.databinding.ActivityScheduleManageBinding
-import com.yizhuan.erban.flutter.RouterConstants
-import com.yizhuan.erban.ui.webview.CommonWebViewActivity
-import com.yizhuan.xchat_android_core.UriProvider
-import com.yizhuan.xchat_android_library.annatation.ActLayoutRes
-
-@ActLayoutRes(R.layout.activity_schedule_manage)
-class ScheduleManageActivity : BaseBindingActivity() {
- override fun init() {
- initTitleBar("赛程管理")
- mBinding.click = this
- }
-
- override fun onClick(v: View) {
- super.onClick(v)
- when (v.id) {
- R.id.match_quota_record -> FlutterBoost.instance()
- .open(RouterConstants.FLUTTER_PAGE_RECORD, null)
- R.id.match_prize -> FlutterBoost.instance()
- .open(RouterConstants.FLUTTER_PAGE_PRIZE, null)
- R.id.match_performance -> FlutterBoost.instance()
- .open(RouterConstants.FLUTTER_PAGE_PERFORMANCE, null)
- R.id.match_bag -> FlutterBoost.instance().open(RouterConstants.FLUTTER_PAGE_BAG, null)
- R.id.match_mall -> FlutterBoost.instance().open(RouterConstants.FLUTTER_PAGE_MALL, null)
- R.id.tv_link_account -> CommonWebViewActivity.start(
- this,
- UriProvider.getLinkAccountUrl()
- )
- }
- }
-
- companion object {
- fun start(context: Context) {
- val intent = Intent(context, ScheduleManageActivity::class.java)
- context.startActivity(intent)
- }
- }
-}
\ No newline at end of file
diff --git a/packer-ng-2.0.0.jar b/packer-ng-2.0.0.jar
deleted file mode 100644
index 15d310836..000000000
Binary files a/packer-ng-2.0.0.jar and /dev/null differ
diff --git a/packer-ng-v2.py b/packer-ng-v2.py
deleted file mode 100644
index 70f6aa9cf..000000000
--- a/packer-ng-v2.py
+++ /dev/null
@@ -1,568 +0,0 @@
-# -*- coding: utf-8 -*-
-# @Author: mcxiaoke
-# @Date: 2017-06-06 14:03:18
-# @Last Modified by: mcxiaoke
-# @Last Modified time: 2017-06-22 17:26:29
-from __future__ import print_function
-import os
-import sys
-import mmap
-import struct
-import zipfile
-import logging
-import time
-
-logging.basicConfig(format='%(levelname)s:%(lineno)s: %(funcName)s() %(message)s',
- level=logging.ERROR)
-logger = logging.getLogger(__name__)
-
-AUTHOR = 'mcxiaoke'
-VERSION = '2.0.0'
-try:
- props = dict(line.strip().split('=') for line in
- open('../gradle.properties') if line.strip())
- VERSION = props.get('VERSION_NAME')
-except Exception as e:
- VERSION = '2.0.0'
-
-#####################################################################
-
-
-# ref: https://android.googlesource.com/platform/tools/apksig/+/master
-# ref: https://source.android.com/security/apksigning/v2
-
-ZIP_EOCD_REC_MIN_SIZE = 22
-ZIP_EOCD_REC_SIG = 0x06054b50
-ZIP_EOCD_CENTRAL_DIR_TOTAL_RECORD_COUNT_OFFSET = 10
-ZIP_EOCD_CENTRAL_DIR_SIZE_FIELD_OFFSET = 12
-ZIP_EOCD_CENTRAL_DIR_OFFSET_FIELD_OFFSET = 16
-ZIP_EOCD_COMMENT_LENGTH_FIELD_OFFSET = 20
-ZIP_EOCD_COMMENT_MIN_LENGTH = 0
-
-UINT16_MAX_VALUE = 0xffff # 65535
-
-BlOCK_MAX_SIZE = 0x100000 # 1m=1024k
-
-APK_SIG_BLOCK_MAGIC = 'APK Sig Block 42'
-APK_SIG_BLOCK_MAGIC_HI = 0x3234206b636f6c42
-APK_SIG_BLOCK_MAGIC_LO = 0x20676953204b5041
-APK_SIG_BLOCK_MIN_SIZE = 32
-APK_SIGNATURE_SCHEME_V2_BLOCK_ID = 0x7109871a
-
-# plugin channel key
-PLUGIN_CHANNEL_KEY = 'CHANNEL'
-# plugin block id
-PLUGIN_BLOCK_ID = 0x7a786b21
-# plugin block magic
-PLUGIN_BLOCK_MAGIC = 'Packer Ng Sig V2'
-
-SEP_KV = '∘'
-SEP_LINE = '∙'
-
-#####################################################################
-
-
-class ZipFormatException(Exception):
- '''ZipFormatException'''
- pass
-
-
-class SignatureNotFoundException(Exception):
- '''SignatureNotFoundException'''
- pass
-
-
-class MagicNotFoundException(Exception):
- '''MagicNotFoundException'''
- pass
-
-#####################################################################
-
-
-class ByteDecoder(object):
- '''
- byte array decoder
- https://docs.python.org/2/library/struct.html
- '''
-
- def __init__(self, buf, littleEndian=True):
- self.buf = buf
- self.sign = '<' if littleEndian else '>'
-
- def getShort(self, offset=0):
- return struct.unpack('{}h'.format(self.sign),
- self.buf[offset:offset + 2])[0]
-
- def getUShort(self, offset=0):
- return struct.unpack('{}H'.format(self.sign),
- self.buf[offset:offset + 2])[0]
-
- def getInt(self, offset=0):
- return struct.unpack('{}i'.format(self.sign),
- self.buf[offset:offset + 4])[0]
-
- def getUInt(self, offset=0):
- return struct.unpack('{}I'.format(self.sign),
- self.buf[offset:offset + 4])[0]
-
- def getLong(self, offset=0):
- return struct.unpack('{}q'.format(self.sign),
- self.buf[offset:offset + 8])[0]
-
- def getULong(self, offset=0):
- return struct.unpack('{}Q'.format(self.sign),
- self.buf[offset:offset + 8])[0]
-
- def getFloat(self, offset=0):
- return struct.unpack('{}f'.format(self.sign),
- self.buf[offset:offset + 4])[0]
-
- def getDouble(self, offset=0):
- return struct.unpack('{}d'.format(self.sign),
- self.buf[offset:offset + 8])[0]
-
- def getChars(self, offset=0, size=16):
- return struct.unpack('{}{}'.format(self.sign, 's' * size),
- self.buf[offset:offset + size])
-
-#####################################################################
-
-
-class ZipSections(object):
- '''
- long centralDirectoryOffset,
- long centralDirectorySizeBytes,
- int centralDirectoryRecordCount,
- long eocdOffset,
- ByteBuffer eocd
- '''
-
- def __init__(self, cdStartOffset,
- cdSizeBytes,
- cdRecordCount,
- eocdOffset,
- eocd):
- self.cdStartOffset = cdStartOffset
- self.cdSizeBytes = cdSizeBytes
- self.cdRecordCount = cdRecordCount
- self.eocdOffset = eocdOffset
- self.eocd = eocd
-
-#####################################################################
-
-
-def parseValues(content):
- '''
- PLUGIN BLOCK LAYOUT
- OFFSET DATA TYPE DESCRIPTION
- @+0 magic string magic string 16 bytes
- @+16 payload length payload length int 4 bytes
- @+20 payload payload data bytes
- @-4 payload length same as @+16 4 bytes
- '''
- magicLen = len(PLUGIN_BLOCK_MAGIC)
- logger.debug('content:%s', content)
- if not content or len(content) < magicLen + 4 * 2:
- return None
- content = content[magicLen + 4: -4]
- values = dict(line.split(SEP_KV)
- for line in content.split(SEP_LINE) if line.strip())
- logger.debug('values:%s', values)
- return values
-
-
-def createMap(apk):
- with open(apk, "rb") as f:
- size = os.path.getsize(apk)
- offset = max(0, size - BlOCK_MAX_SIZE)
- length = min(size, BlOCK_MAX_SIZE)
- offset = offset - offset % mmap.PAGESIZE
- logger.debug('file size=%s', size)
- logger.debug('file offset=%s', offset)
- return mmap.mmap(f.fileno(),
- length=length,
- offset=offset,
- access=mmap.ACCESS_READ)
-
-
-def findBlockByPluginMagic(apk):
- mm = createMap(apk)
- magicLen = len(PLUGIN_BLOCK_MAGIC)
- start = mm.rfind(PLUGIN_BLOCK_MAGIC)
- if start == -1:
- return None
- d = ByteDecoder(mm)
- logger.debug('magic start offset=%s', start)
- magic = ''.join(d.getChars(start, magicLen))
- logger.debug('magic start string=%s', magic)
- payloadLen = d.getInt(start + magicLen)
- logger.debug('magic payloadLen1=%s', payloadLen)
-
- end = start + magicLen + 4 + payloadLen + 4
- logger.debug('magic end offset=%s', end)
- logger.debug('magic payloadLen2=%s', d.getInt(end - 4))
-
- block = mm[start:end]
- mm.close()
- return block
-
-
-def findBlockBySigningMagic(apk):
- # search APK Signing Block Magic words
- signingBlock = findBySigningMagic(apk)
- if signingBlock:
- return parseApkSigningBlock(signingBlock, PLUGIN_BLOCK_ID)
-
-
-def findBlockByZipSections(apk):
- # find zip centralDirectory, then find apkSigningBlock
- signingBlock = findByZipSections(apk)
- if signingBlock:
- return parseApkSigningBlock(signingBlock, PLUGIN_BLOCK_ID)
-
-
-def findBySigningMagic(apk):
- # findApkSigningBlockUsingSigningMagic
- mm = createMap(apk)
- index = mm.rfind(APK_SIG_BLOCK_MAGIC)
- if index == -1:
- raise MagicNotFoundException(
- 'APK Signing Block Magic not found')
- d = ByteDecoder(mm)
- logger.debug('magic index=%s', index)
- logger.debug('magic string=%s', ''.join(d.getChars(index, 16)))
- bEnd = index + 16
- logger.debug('block end=%s', bEnd)
- bSize = d.getLong(bEnd - 24) + 8
- logger.debug('block size=%s', bSize)
- bStart = bEnd - bSize
- logger.debug('block start=%s', bStart)
- block = mm[bStart:bEnd]
- mm.close()
- return block
-
-
-def findByZipSections(apk):
- # findApkSigningBlockUsingZipSections
- with open(apk, "rb") as f:
- mm = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ)
- sections = findZipSections(mm)
-
- centralDirStartOffset = sections.cdStartOffset
- centralDirEndOffset = centralDirStartOffset + sections.cdSizeBytes
- eocdStartOffset = sections.eocdOffset
- logger.debug('centralDirStartOffset:%s', centralDirStartOffset)
- logger.debug('centralDirEndOffset:%s', centralDirEndOffset)
- logger.debug('eocdStartOffset:%s', eocdStartOffset)
- if centralDirEndOffset != eocdStartOffset:
- raise SignatureNotFoundException(
- "ZIP Central Directory is not "
- "immediately followed by "
- "End of Central Directory. CD end: {} eocd start: {}"
- .format(centralDirEndOffset, eocdStartOffset))
- if centralDirStartOffset < APK_SIG_BLOCK_MIN_SIZE:
- raise SignatureNotFoundException(
- "APK too small for APK Signing Block. "
- "ZIP Central Directory offset:{} "
- .format(centralDirStartOffset))
-
- fStart = centralDirStartOffset - 24
- mStart = centralDirStartOffset - 16
- fEnd = centralDirStartOffset
- logger.debug('fStart:%s', fStart)
- logger.debug('mStart:%s', mStart)
- logger.debug('fEnd:%s', fEnd)
- footer = mm[fStart:fEnd]
- footerSize = len(footer)
- # logger.debug('footer:%s',to_hex(footer))
- fd = ByteDecoder(footer)
- magic = ''.join(fd.getChars(8, 16))
- # logger.debug('magic str:%s', magic)
- lo = fd.getLong(8)
- hi = fd.getLong(16)
- logger.debug('magic lo:%s', hex(lo))
- logger.debug('magic hi:%s', hex(hi))
-
- if magic != APK_SIG_BLOCK_MAGIC:
- raise SignatureNotFoundException(
- "No APK Signing Block before ZIP Central Directory")
- # if lo != APK_SIG_BLOCK_MAGIC_LO or hi != APK_SIG_BLOCK_MAGIC_HI:
- # raise SignatureNotFoundException(
- # "No APK Signing Block before ZIP Central Directory")
-
- apkSigBlockSizeInFooter = fd.getLong(0)
- logger.debug('apkSigBlockSizeInFooter:%s', apkSigBlockSizeInFooter)
-
- if apkSigBlockSizeInFooter < footerSize or \
- apkSigBlockSizeInFooter > sys.maxsize - 8:
- raise SignatureNotFoundException(
- "APK Signing Block size out of range: {}"
- .format(apkSigBlockSizeInFooter))
-
- totalSize = apkSigBlockSizeInFooter + 8
- logger.debug('totalSize:%s', totalSize)
- apkSigBlockOffset = centralDirStartOffset - totalSize
- logger.debug('apkSigBlockOffset:%s', apkSigBlockOffset)
-
- if apkSigBlockOffset < 0:
- raise SignatureNotFoundException(
- "APK Signing Block offset out of range: " + apkSigBlockOffset)
-
- apkSigBlock = mm[apkSigBlockOffset:apkSigBlockOffset + 8]
- # logger.debug('apkSigBlock:%s', to_hex(apkSigBlock))
- apkSigBlockSizeInHeader = ByteDecoder(apkSigBlock).getLong(0)
- logger.debug('apkSigBlockSizeInHeader:%s', apkSigBlockSizeInHeader)
-
- if apkSigBlockSizeInHeader != apkSigBlockSizeInFooter:
- raise SignatureNotFoundException(
- "APK Signing Block sizes in header and"
- "footer do not match: {} vs {}"
- .format(apkSigBlockSizeInHeader, apkSigBlockSizeInFooter))
-
- block = mm[apkSigBlockOffset:apkSigBlockOffset + totalSize]
- mm.close()
- return block
-
-
-def parseApkSigningBlock(block, blockId):
- # parseApkSigningBlock
- if not block or not blockId:
- return None
- '''
- // APK Signing Block
- // FORMAT:
- // OFFSET DATA TYPE DESCRIPTION
- // * @+0 bytes uint64: size in bytes(excluding this field)
- // * @+8 bytes payload
- // * @-24 bytes uint64: size in bytes(same as the one above)
- // * @-16 bytes uint128: magic
- '''
- totalSize = len(block)
- bd0 = ByteDecoder(block)
- blockSizeInHeader = bd0.getULong(0)
- logger.debug('blockSizeInHeader:%s', blockSizeInHeader)
- blockSizeInFooter = bd0.getULong(totalSize - 24)
- logger.debug('blockSizeInFooter:%s', blockSizeInFooter)
- # slice only payload
- block = block[8:-24]
- bd = ByteDecoder(block)
- size = len(block)
- logger.debug('payloadSize:%s', size)
-
- entryCount = 0
- position = 0
- signingBlock = None
- channelBlock = None
- while position < size:
- entryCount += 1
- logger.debug('entryCount:%s', entryCount)
- if size - position < 8:
- raise SignatureNotFoundException(
- "Insufficient data to read size "
- "of APK Signing Block entry: {}"
- .format(entryCount))
- lenLong = bd.getLong(position)
- logger.debug('lenLong:%s', lenLong)
- position += 8
- if lenLong < 4 or lenLong > sys.maxsize - 8:
- raise SignatureNotFoundException(
- "APK Signing Block entry #{} size out of range: {}"
- .format(entryCount, lenLong))
- nextEntryPos = position + lenLong
- logger.debug('nextEntryPos:%s', nextEntryPos)
- if nextEntryPos > size:
- SignatureNotFoundException(
- "APK Signing Block entry #{}, available: {}"
- .format(entryCount, (size - position)))
- sid = bd.getInt(position)
- logger.debug('blockId:%s', hex(sid))
- position += 4
- if sid == APK_SIGNATURE_SCHEME_V2_BLOCK_ID:
- logger.debug('found signingBlock')
- signingBlock = block[position:position + lenLong - 4]
- signingBlockSize = len(signingBlock)
- logger.debug('signingBlockSize:%s', signingBlockSize)
- # logger.debug('signingBlockHex:%s', to_hex(signingBlock[0:32]))
- elif sid == blockId:
- logger.debug('found pluginBlock')
- pluginBlock = block[position:position + lenLong - 4]
- pluginBlockSize = len(pluginBlock)
- logger.debug('pluginBlockSize:%s', pluginBlockSize)
- logger.debug('pluginBlock:%s', pluginBlock)
- # logger.debug('pluginBlockHex:%s', to_hex(pluginBlock))
- return pluginBlock
- else:
- logger.debug('found unknown block:%s', hex(sid))
- position = nextEntryPos
-
-
-def findZipSections(mm):
- eocd = findEocdRecord(mm)
- if not eocd:
- raise ZipFormatException(
- "ZIP End of Central Directory record not found")
- eocdOffset, eocdBuf = eocd
- ed = ByteDecoder(eocdBuf)
- # logger.debug('eocdBuf:%s', to_hex(eocdBuf))
- cdStartOffset = ed.getUInt(ZIP_EOCD_CENTRAL_DIR_OFFSET_FIELD_OFFSET)
- logger.debug('cdStartOffset:%s', cdStartOffset)
- if cdStartOffset > eocdOffset:
- raise ZipFormatException(
- "ZIP Central Directory start offset out of range: {}"
- ". ZIP End of Central Directory offset: {}"
- .format(cdStartOffset, eocdOffset))
- cdSizeBytes = ed.getUInt(ZIP_EOCD_CENTRAL_DIR_SIZE_FIELD_OFFSET)
- logger.debug('cdSizeBytes:%s', cdSizeBytes)
- cdEndOffset = cdStartOffset + cdSizeBytes
- logger.debug('cdEndOffset:%s', cdEndOffset)
- if cdEndOffset > eocdOffset:
- raise ZipFormatException(
- "ZIP Central Directory overlaps with End of Central Directory"
- ". CD end: {}, EoCD start: {}"
- .format(cdEndOffset, eocdOffset))
- cdRecordCount = ed.getUShort(
- ZIP_EOCD_CENTRAL_DIR_TOTAL_RECORD_COUNT_OFFSET)
- logger.debug('cdRecordCount:%s', cdRecordCount)
- sections = ZipSections(cdStartOffset,
- cdSizeBytes,
- cdRecordCount,
- eocdOffset,
- eocdBuf)
- return sections
-
-
-def findEocdRecord(mm):
- fileSize = mm.size()
- logger.debug('fileSize:%s', fileSize)
- if fileSize < ZIP_EOCD_REC_MIN_SIZE:
- return None
-
- # 99.99% of APKs have a zero-length comment field
- maxCommentSize = min(UINT16_MAX_VALUE, fileSize - ZIP_EOCD_REC_MIN_SIZE)
- maxEocdSize = ZIP_EOCD_REC_MIN_SIZE + maxCommentSize
- logger.debug('maxCommentSize:%s', maxCommentSize)
- logger.debug('maxEocdSize:%s', maxEocdSize)
- bufOffsetInFile = fileSize - maxEocdSize
- logger.debug('bufOffsetInFile:%s', bufOffsetInFile)
- buf = mm[bufOffsetInFile:bufOffsetInFile + maxEocdSize]
- # logger.debug('buf:%s',to_hex(buf))
- eocdOffsetInBuf = findEocdStartOffset(buf)
- logger.debug('eocdOffsetInBuf:%s', eocdOffsetInBuf)
- if eocdOffsetInBuf != -1:
- return bufOffsetInFile + eocdOffsetInBuf, buf[eocdOffsetInBuf:]
-
-
-def findEocdStartOffset(buf):
- archiveSize = len(buf)
- logger.debug('archiveSize:%s', archiveSize)
- maxCommentLength = min(
- archiveSize - ZIP_EOCD_REC_MIN_SIZE, UINT16_MAX_VALUE)
- logger.debug('maxCommentLength:%s', maxCommentLength)
- eocdEmptyCommentStartPos = archiveSize - ZIP_EOCD_REC_MIN_SIZE
- logger.debug('eocdEmptyCommentStartPos:%s',
- eocdEmptyCommentStartPos)
- expectedCommentLength = 0
- eocdOffsetInBuf = -1
- while expectedCommentLength <= maxCommentLength:
- eocdStartPos = eocdEmptyCommentStartPos - expectedCommentLength
- logger.debug('expectedCommentLength:%s', expectedCommentLength)
- # logger.debug('eocdStartPos:%s', eocdStartPos)
- seg = ByteDecoder(buf).getInt(eocdStartPos)
- logger.debug('seg:%s', hex(seg))
- if seg == ZIP_EOCD_REC_SIG:
- actualCommentLength = ByteDecoder(buf).getUShort(
- eocdStartPos + ZIP_EOCD_COMMENT_LENGTH_FIELD_OFFSET)
- logger.debug('actualCommentLength:%s', actualCommentLength)
- if actualCommentLength == expectedCommentLength:
- logger.debug('found eocdStartPos:%s', eocdStartPos)
- return eocdStartPos
- expectedCommentLength += 1
- return -1
-
-
-#####################################################################
-
-
-def timeit(method):
-
- def timed(*args, **kw):
- ts = time.time() * 1000
- result = method(*args, **kw)
- te = time.time() * 1000
-
- print('%s() executed in %.2f msec' % (method.__name__, te - ts))
- return result
-
- return timed
-
-
-def to_hex(s):
- return " ".join("{:02x}".format(ord(c)) for c in s) if s else ""
-
-
-def getChannel(apk):
- apk = os.path.abspath(apk)
- logger.debug('apk:%s', apk)
- try:
- zp = zipfile.ZipFile(apk)
- zp.testzip()
- content = findBlockByZipSections(apk)
- values = parseValues(content)
- if values:
- channel = values.get(PLUGIN_CHANNEL_KEY)
- logger.debug('channel:%s', channel)
- return channel
- else:
- logger.debug('channel not found')
- except Exception as e:
- logger.error('%s: %s', type(e).__name__, e)
-
-
-def showInfo(apk):
- try:
- from apkinfo import APK
- info = APK(apk)
- print('Package: \t{}'.format(info.get_package()))
- print('Version: \t{}'.format(info.get_version_name()))
- print('Build: \t\t{}'.format(info.get_version_code()))
- print('File: \t\t{}'.format(os.path.basename(apk)))
- print('Size: \t\t{}'.format(os.path.getsize(apk)))
- except Exception as e:
- pass
-
-
-def main():
- logger.debug('AUTHOR:%s', AUTHOR)
- logger.debug('VERSION:%s', VERSION)
- prog = os.path.basename(sys.argv[0])
- if len(sys.argv) < 2:
- print('Usage: {} app.apk'.format(prog))
- sys.exit(1)
- apk = os.path.abspath(sys.argv[1])
- if os.path.isdir(apk):
- files = getListFiles(apk)
- for each in files:
- showChannel(each)
- elif os.path.isfile(apk):
- showChannel(apk)
-
-def showChannel(apk):
- print("\n")
- channel = getChannel(apk)
- print('Channel: \t{}'.format(channel))
- showInfo(apk)
-
-def getListFiles(path):
- ret = []
- for root, dirs, files in os.walk(path):
- # print(root)
- # print(dirs)
- # print(files)
- for filepath in files:
- # print(filepath)
- ret.append(os.path.join(root, filepath))
- return ret
-
-
-if __name__ == '__main__':
- main()
diff --git a/qx.jks b/qx.jks
deleted file mode 100644
index 661b81eaa..000000000
Binary files a/qx.jks and /dev/null differ
diff --git a/settings.gradle b/settings.gradle
index 4d9dcb241..f3f53c728 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -3,9 +3,3 @@ include ':trtc_release'
include ':core'
include ':library'
include ':nim_uikit'
-// 添加 flutter module 依赖
-if (!Boolean.parseBoolean(with_flutter_aar)){
- setBinding(new Binding([gradle: this]))
- evaluate(new File(settingsDir,
- '/xplan-flutter/.android/include_flutter.groovy'))
-}