admin
2022-05-06 da620c6334f99535e0748555ae75feed368cf8b4
功能完善
24个文件已修改
4个文件已添加
563 ■■■■ 已修改文件
android/app/src/main/AndroidManifest.xml 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
android/app/src/main/java/com/yeshi/makemoney/video/app/ui/MainActivity.java 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
android/app/src/main/java/com/yeshi/makemoney/video/app/ui/SplashActivity.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
android/app/src/main/java/com/yeshi/makemoney/video/app/ui/main/DYNewsFragment.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
android/app/src/main/java/com/yeshi/makemoney/video/app/ui/main/FlutterTeamFragment.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
android/app/src/main/java/com/yeshi/makemoney/video/app/ui/main/HomeFragment.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
android/app/src/main/java/com/yeshi/makemoney/video/app/ui/main/MineFragment.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
android/app/src/main/java/com/yeshi/makemoney/video/app/ui/main/TeamFragment.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
android/app/src/main/java/com/yeshi/makemoney/video/app/utils/AppConfigUtil.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
android/app/src/main/java/com/yeshi/makemoney/video/app/utils/Constant.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
android/app/src/main/java/com/yeshi/makemoney/video/app/utils/SettingUtil.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
android/app/src/main/java/com/yeshi/makemoney/video/app/utils/ui/JumpPageUtil.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
android/app/src/main/java/com/yeshi/makemoney/video/app/utils/videos/DrawVideoHBManager.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
android/app/src/main/res/drawable-xxhdpi/icon_app_page_notify.png 补丁 | 查看 | 原始文档 | blame | 历史
android/app/src/main/res/layout/fragment_home.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
android/app/src/main/res/layout/fragment_news.xml 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
android/app/src/main/res/layout/fragment_team.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flutter_module/lib/api/http.dart 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
flutter_module/lib/api/user_api.dart 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
flutter_module/lib/main.dart 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flutter_module/lib/ui/common/browser.dart 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
flutter_module/lib/ui/mine/about_us.dart 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flutter_module/lib/ui/mine/balance.dart 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flutter_module/lib/ui/mine/settings.dart 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flutter_module/lib/ui/mine/team.dart 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flutter_module/lib/ui/task.dart 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flutter_module/lib/ui/widget/ad_express.dart 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
flutter_module/lib/utils/ui_constant.dart 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
android/app/src/main/AndroidManifest.xml
@@ -8,6 +8,7 @@
    <permission
        android:name="${applicationId}.permission.JPUSH_MESSAGE"
        android:protectionLevel="signature" />
    <uses-permission android:name="${applicationId}.permission.JPUSH_MESSAGE" />
    <uses-permission android:name="android.permission.VIBRATE" /><!--振动器权限,JPUSH支持通知开启振动功能,小米推送必须-->
@@ -30,7 +31,8 @@
        <activity
            android:name=".app.ui.SplashActivity"
            android:label="@string/app_name">
            android:label="@string/app_name"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
@@ -42,9 +44,17 @@
            android:name=".app.ui.MainActivity"
            android:configChanges="keyboard|orientation|screenSize"
            android:exported="true"
            android:launchMode="singleTask"></activity>
            android:launchMode="singleTask"
            android:screenOrientation="portrait"></activity>
        <activity
            android:name=".app.ui.common.SimpleBrowserActivity"
            android:exported="true"
            android:launchMode="singleTask"
            android:screenOrientation="portrait"></activity>
        <activity
            android:screenOrientation="portrait"
            android:name=".wxapi.WXEntryActivity"
            android:exported="true"
            android:label="@string/app_name"
android/app/src/main/java/com/yeshi/makemoney/video/app/ui/MainActivity.java
@@ -27,9 +27,11 @@
import com.yeshi.makemoney.video.app.push.PushOpenClickActivity;
import com.yeshi.makemoney.video.app.ui.dialog.ExitDialog;
import com.yeshi.makemoney.video.app.ui.main.DYNewsFragment;
import com.yeshi.makemoney.video.app.ui.main.FlutterTeamFragment;
import com.yeshi.makemoney.video.app.ui.main.HomeFragment;
import com.yeshi.makemoney.video.app.ui.main.MineFragment;
import com.yeshi.makemoney.video.app.ui.main.NovelFragment;
import com.yeshi.makemoney.video.app.ui.main.TeamFragment;
import com.yeshi.makemoney.video.app.utils.AppConfigUtil;
import com.yeshi.makemoney.video.app.utils.api.BasicTextHttpResponseHandler;
import com.yeshi.makemoney.video.app.utils.api.HttpApiUtil;
@@ -43,6 +45,7 @@
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import androidx.fragment.app.Fragment;
import cn.jpush.android.api.JPushInterface;
@@ -68,9 +71,26 @@
        NovelFragment novelFragment = new NovelFragment();
        list.add(novelFragment);
        Map<String, Object> params = new HashMap<>();
        params.put("first", true);
        params.put("nav", false);
        FlutterTeamFragment teamFragment = new FlutterBoostFragment.CachedEngineFragmentBuilder(FlutterTeamFragment.class)
                .url("TeamPage")
                .urlParams(params)
                .build();
        list.add(teamFragment);
        MineFragment mine = new MineFragment();
        list.add(mine);
        FlutterMineFragment mineFragment = new FlutterBoostFragment.CachedEngineFragmentBuilder(FlutterMineFragment.class)
                .url("mine")
                .build();
        list.add(mineFragment);
//        MineFragment mine = new MineFragment();
//        list.add(mine);
        Fragment[] fs = new Fragment[list.size()];
        list.toArray(fs);
@@ -141,13 +161,15 @@
                    break;
                    case R.id.rb_nav_team: {
//                        mFragmentSwitchHelper
//                                .changeFragment(NovelFragment.class);
                        mFragmentSwitchHelper
                                .changeFragment(NovelFragment.class);
                                .changeFragment(FlutterTeamFragment.class);
                    }
                    break;
                    case R.id.rb_nav_mine: {
                        mFragmentSwitchHelper.changeFragment(MineFragment.class);
                        mFragmentSwitchHelper.changeFragment(FlutterMineFragment.class);
                    }
                    break;
                }
android/app/src/main/java/com/yeshi/makemoney/video/app/ui/SplashActivity.java
@@ -89,7 +89,7 @@
                "1、我们对您的个人信息(包括但不限于<font color='#FF0000'>设备MAC地址、IMEI/Android ID</font>等信息)的收集/保存/使用/对外提供/保护等规则条款,以及您的用户权利等条款;<br>" +
                "2、约定我们的限制责任、免责条款;<br>" +
                "3、其他以加粗或斜体字进行标识的重要条款。</b><br>" +
                "如您对协议有任何疑虑,可通过电子邮箱: xcwapp@qq.com 向我们询问,我们将为您竭诚解答。您点击“同意”的行为代表您已阅读完毕并接受以上协议全部条款。如您同意以上协议内容,请您点击“同意”,开始使用您的产品。";
                "如您对协议有任何疑虑,可通过电子邮箱: yes_vip_draw_video@163.com 向我们询问,我们将为您竭诚解答。您点击“同意”的行为代表您已阅读完毕并接受以上协议全部条款。如您同意以上协议内容,请您点击“同意”,开始使用您的产品。";
        if (!UserUtil.isAgreeUserProtocol(getApplicationContext()) && !Constant.DEBUG) {
            new UserProtocolDialog.Builder(SplashActivity.this).setNegativeButton("不同意", new DialogInterface.OnClickListener() {
android/app/src/main/java/com/yeshi/makemoney/video/app/ui/main/DYNewsFragment.java
@@ -14,6 +14,7 @@
import com.demo.lib.common.util.common.DimenUtils;
import com.jaeger.library.StatusBarUtil;
import com.yeshi.makemoney.video.R;
import com.yeshi.makemoney.video.app.utils.SettingUtil;
import com.yeshi.makemoney.video.app.utils.UserUtil;
import com.yeshi.makemoney.video.app.utils.api.BasicTextHttpResponseHandler;
import com.yeshi.makemoney.video.app.utils.api.HttpApiUtil;
@@ -34,6 +35,8 @@
    //最少的浏览时间
    private final Long MIN_SPACE_TIME = 1000 * 5L;
    private AQuery mAquery;
    private static final String TAG = "DYNewsFragment";
    private IDPWidget mIDPWidget;
@@ -81,15 +84,43 @@
        if (mIDPWidget != null && mIDPWidget.getFragment() != null) {
            mIDPWidget.getFragment().onHiddenChanged(hidden);
        }
        refreshNotify();
    }
    @Override
    public void onCreateView(View contentView, Bundle savedInstanceState) {
        Log.i(TAG, "onCreateView");
        StatusBarUtil.setDarkMode(getActivity());
        AQuery mAquery = new AQuery(contentView);
        mAquery = new AQuery(contentView);
        mAquery.id(R.id.view_status_bar).height(DimenUtils.px2dip(getContext(), DimenUtils.getStatusBarHeight(getContext())));
        mAquery.id(R.id.iv_close).clicked(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                closeNotify();
            }
        });
        refreshNotify();
        initNewsWidget();
    }
    private void refreshNotify() {
        if (mAquery == null) {
            return;
        }
        if (SettingUtil.getSetting(SettingUtil.SettingKey.showNewsNotify, getContext())) {
            mAquery.id(R.id.fl_notify).visibility(View.VISIBLE);
        } else {
            mAquery.id(R.id.fl_notify).visibility(View.GONE);
        }
    }
    private void closeNotify() {
        if (mAquery == null) {
            return;
        }
        mAquery.id(R.id.fl_notify).visibility(View.GONE);
        SettingUtil.saveSetting(SettingUtil.SettingKey.showNewsNotify, false, getContext());
    }
    private void initNewsWidget() {
@@ -185,6 +216,7 @@
                    //上传成功
                    JSONObject data = jsonObject.optJSONObject("data");
                    VideoGoldCornUtil.showInComeToast(data.optInt("goldCorn"), getContext());
                    closeNotify();
                }
            }
android/app/src/main/java/com/yeshi/makemoney/video/app/ui/main/FlutterTeamFragment.java
New file
@@ -0,0 +1,35 @@
package com.yeshi.makemoney.video.app.ui.main;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.idlefish.flutterboost.containers.FlutterBoostFragment;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
public class FlutterTeamFragment extends FlutterBoostFragment {
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return super.onCreateView( inflater, container, savedInstanceState);
    }
    @Override
    public void onResume() {
        super.onResume();
    }
    @Override
    public void onHiddenChanged(boolean hidden) {
        super.onHiddenChanged(hidden);
    }
    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);
    }
}
android/app/src/main/java/com/yeshi/makemoney/video/app/ui/main/HomeFragment.java
@@ -19,6 +19,7 @@
import com.bytedance.sdk.dp.IDPWidget;
import com.demo.lib.common.RetainViewFragment;
import com.demo.lib.common.util.common.DimenUtils;
import com.demo.lib.common.util.ui.StatusBarHeightUtil;
import com.demo.library_flutter.FlutterRecommendFragment;
import com.demo.library_flutter.utils.FlutterPageUtil;
import com.idlefish.flutterboost.FlutterBoost;
@@ -82,6 +83,7 @@
    public void onCreateView(View contentView, Bundle savedInstanceState) {
        StatusBarUtil.setDarkMode(getActivity());
        mAquery = new AQuery(contentView);
        mAquery.id(R.id.view_status_bar).height(StatusBarHeightUtil.getStatusBarHeight(getContext()),false);
        mDrawVideoHBManager = new DrawVideoHBManager();
        mDrawVideoHBManager.init(contentView, getActivity());
        init();
android/app/src/main/java/com/yeshi/makemoney/video/app/ui/main/MineFragment.java
@@ -1,6 +1,7 @@
package com.yeshi.makemoney.video.app.ui.main;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import com.androidquery.AQuery;
@@ -13,6 +14,7 @@
public class MineFragment extends RetainViewFragment implements View.OnClickListener {
    private static final String TAG = "MineFragment";
    private AQuery mAquery;
    @Override
@@ -28,7 +30,7 @@
                .url("mine")
                .urlParams(new HashMap<>())
                .build();
        getChildFragmentManager().beginTransaction().replace(R.id.fl_container, mine).commitAllowingStateLoss();
        getChildFragmentManager().beginTransaction().add(R.id.fl_container, mine).commitAllowingStateLoss();
    }
@@ -36,4 +38,16 @@
    public void onClick(View v) {
    }
    @Override
    public void setUserVisibleHint(boolean isVisibleToUser) {
        super.setUserVisibleHint(isVisibleToUser);
        Log.i(TAG,"setUserVisibleHint:"+isVisibleToUser);
    }
    @Override
    public void onHiddenChanged(boolean hidden) {
        super.onHiddenChanged(hidden);
        Log.i(TAG,"onHiddenChanged:"+hidden);
    }
}
android/app/src/main/java/com/yeshi/makemoney/video/app/ui/main/TeamFragment.java
New file
@@ -0,0 +1,51 @@
package com.yeshi.makemoney.video.app.ui.main;
import android.os.Bundle;
import android.view.View;
import com.androidquery.AQuery;
import com.demo.lib.common.RetainViewFragment;
import com.demo.library_flutter.FlutterMineFragment;
import com.idlefish.flutterboost.containers.FlutterBoostFragment;
import com.yeshi.makemoney.video.R;
import java.util.HashMap;
import java.util.Map;
import io.flutter.embedding.android.FlutterFragment;
public class TeamFragment extends RetainViewFragment implements View.OnClickListener {
    private AQuery mAquery;
    @Override
    public int getContentResource() {
        return R.layout.fragment_team;
    }
    @Override
    public void onCreateView(View contentView, Bundle savedInstanceState) {
        mAquery = new AQuery(contentView);
        Map<String, Object> params = new HashMap<>();
        params.put("first", true);
        params.put("nav", false);
        FlutterTeamFragment mine = new FlutterBoostFragment.CachedEngineFragmentBuilder(FlutterTeamFragment.class)
                .url("TeamPage")
                .urlParams(params)
                .build();
//        new FlutterFragment.NewEngineFragmentBuilder().initialRoute("TeamPage").build();
        getChildFragmentManager().beginTransaction().add(R.id.fl_container, mine).commitAllowingStateLoss();
    }
    @Override
    public void onClick(View v) {
    }
}
android/app/src/main/java/com/yeshi/makemoney/video/app/utils/AppConfigUtil.java
@@ -17,7 +17,8 @@
        kefu,
        unRegister,
        privacyComplain,
        helpLink
        helpLink,
        disclaimerLink,
    }
android/app/src/main/java/com/yeshi/makemoney/video/app/utils/Constant.java
@@ -3,14 +3,14 @@
public class Constant {
    public final static boolean DEBUG = false;
    public final static String HOST = "http://192.168.3.122:8082";
    public final static String HOST = "http://api.dsp.yeshitv.com";
    public final static String DOWNLOAD_DIR_NAME = "xxx";
    public final static String DOWNLOAD_DIR_NAME = "makemoney";
    public final static boolean isDisableProxy = true;
    public static final String USER_AGREEMENT = "http://h5.hanju.goxcw.com/hanju/user_protocol.html";
    public static final String PRIVACY_POLICY = "http://h5.hanju.goxcw.com/hanju/privacy.html";
    public static final String USER_AGREEMENT = "http://web.dsp.yeshitv.com/user_protocol.html";
    public static final String PRIVACY_POLICY = "http://web.dsp.yeshitv.com/privacy.html";
    public static final String DISCLAIMER = "http://h5.hanju.goxcw.com/hanju/disclaimer.html";
}
android/app/src/main/java/com/yeshi/makemoney/video/app/utils/SettingUtil.java
@@ -12,6 +12,8 @@
public class SettingUtil {
    public enum SettingKey {
        //是否显示资讯页面的提醒
        showNewsNotify(true),
        //推送免打扰
        pushUnDisturb(false),
        //广告推荐
android/app/src/main/java/com/yeshi/makemoney/video/app/utils/ui/JumpPageUtil.java
@@ -16,6 +16,8 @@
public class JumpPageUtil {
    public enum AppJumpType {
        //消息页面
        msg,
        //邀请
        invite,
        //短视频
@@ -68,6 +70,11 @@
            FlutterPageUtil.jumpPage("TaskPage", params, null);
        } else if (type == AppJumpType.web) {
            FlutterPageUtil.jumpPage("BrowserPage", params, null);
        } else if (type == AppJumpType.msg) {
            if (!needLogin(activity)) {
                return;
            }
            FlutterPageUtil.jumpPage("MsgPage", params, null);
        } else if (type == AppJumpType.baichuan) {
            if (params == null) {
                return;
android/app/src/main/java/com/yeshi/makemoney/video/app/utils/videos/DrawVideoHBManager.java
@@ -19,6 +19,7 @@
import com.demo.lib.common.util.ui.LoadingDialogUtil;
import com.demo.library_ad.AdUtil;
import com.demo.library_ad.RewardAdUtil;
import com.demo.library_flutter.utils.FlutterPageUtil;
import com.yeshi.makemoney.video.R;
import com.yeshi.makemoney.video.app.entity.goldcorn.GoldCornTaskInfo;
import com.yeshi.makemoney.video.app.ui.dialog.GoldCornDoubleDialog;
@@ -27,6 +28,7 @@
import com.yeshi.makemoney.video.app.utils.UserUtil;
import com.yeshi.makemoney.video.app.utils.api.BasicTextHttpResponseHandler;
import com.yeshi.makemoney.video.app.utils.api.HttpApiUtil;
import com.yeshi.makemoney.video.app.utils.ui.JumpPageUtil;
import org.apache.http.Header;
import org.json.JSONObject;
@@ -72,6 +74,15 @@
            }
        });
        mAquery.id(R.id.ll_double).clicked(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if( mAquery.id(R.id.fl_double_btn).getView().getVisibility()!=View.VISIBLE){
                    Toast.makeText(mContext, "未加倍金币,会自动入账。", Toast.LENGTH_SHORT).show();
                }
            }
        });
        //加倍领取金币先消失
        mAquery.id(R.id.fl_double_btn).visibility(View.GONE);
        mAquery.id(R.id.fl_double_btn).clicked(new View.OnClickListener() {
@@ -206,6 +217,13 @@
     * 开始加倍任务
     */
    private void startDoubleTask() {
        if (!UserUtil.isLogin(mContext)) {
            //去登录
            FlutterPageUtil.jumpPage("LoginPage", null, null);
            return;
        }
        if (reward) {
            uploadData(true);
            return;
android/app/src/main/res/drawable-xxhdpi/icon_app_page_notify.png
android/app/src/main/res/layout/fragment_home.xml
@@ -7,7 +7,7 @@
    <View
        android:id="@+id/view_status_bar"
        android:layout_width="match_parent"
        android:layout_height="20dp"
        android:layout_height="40dp"
        android:background="@color/black"></View>
    <FrameLayout
android/app/src/main/res/layout/fragment_news.xml
@@ -11,8 +11,46 @@
        android:background="@color/black"></View>
    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <FrameLayout
        android:id="@+id/fl_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"></FrameLayout>
        <FrameLayout
            android:id="@+id/fl_notify"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="36dp"
            android:background="#A0F5EBA4"
            android:paddingLeft="10dp"
            android:paddingTop="8dp"
            android:paddingRight="10dp"
            android:paddingBottom="8dp">
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="left|center_vertical"
                android:drawableLeft="@drawable/icon_app_page_notify"
                android:drawablePadding="6dp"
                android:text="阅读图文详情,也可以获得金币哦!"
                android:textColor="#FF8316"
                android:textSize="12sp"></TextView>
            <ImageView
                android:id="@+id/iv_close"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="right|center_vertical"></ImageView>
        </FrameLayout>
    </FrameLayout>
</LinearLayout>
android/app/src/main/res/layout/fragment_team.xml
New file
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/fl_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
</FrameLayout>
flutter_module/lib/api/http.dart
@@ -147,7 +147,7 @@
    try {
      var dio = Dio()
        ..options = BaseOptions(
            baseUrl: "http://192.168.3.122:8082",
            baseUrl: "http://api.dsp.yeshitv.com",
            connectTimeout: 20000,
            receiveTimeout: 1000 * 60,
            contentType: "application/x-www-form-urlencoded");
flutter_module/lib/api/user_api.dart
@@ -231,7 +231,7 @@
  ///退出登录
  static Future<Map<String, dynamic>?> logout(
      BuildContext context, String uid) async {
      BuildContext context) async {
    Map<String, dynamic> params = {};
    params["uid"] = await UserUtil.getUid();
    var result =
flutter_module/lib/main.dart
@@ -137,6 +137,7 @@
          TeamPage(
            title: "",
            first: params["first"],
            nav: params["nav"] ?? true,
          ));
    },
    "GoldCornPage": (RouteSettings settings, String? uniqueId) {
@@ -267,6 +268,7 @@
        return TeamPage(
          title: "",
          first: params!["first"],
          nav: params!["nav"] ?? true,
        );
      }
    case "InviteFriendsPage":
flutter_module/lib/ui/common/browser.dart
@@ -19,7 +19,8 @@
  _BrowserPageState createState() => _BrowserPageState(title, url);
}
class _BrowserPageState extends State<BrowserPage> {
class _BrowserPageState extends State<BrowserPage>
    with SingleTickerProviderStateMixin {
  String title = "";
  String? url;
  double progress = 0;
@@ -98,6 +99,7 @@
                Expanded(
                    child: WebView(
                  //http://192.168.3.122:8848/test/JsTest.html
                  backgroundColor: Colors.white,
                  initialUrl: url,
                  onWebViewCreated: (WebViewController webViewController) {
                    _webViewController = webViewController;
flutter_module/lib/ui/mine/about_us.dart
@@ -3,6 +3,8 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:makemoney/utils/ui_utils.dart';
import 'package:makemoney/utils/user_util.dart';
import '../../ui/common/browser.dart';
import '../../utils/config_util.dart';
import '../../utils/share_preference.dart';
@@ -74,9 +76,8 @@
              Container(
                  child: AspectRatio(
                      aspectRatio: 1.689,
                      child: Stack(
                          alignment: Alignment.bottomCenter,
                          children: [
                      child:
                          Stack(alignment: Alignment.bottomCenter, children: [
                        Image.asset(
                            "assets/imgs/common/ic_about_us_top_bg.png"),
                        Column(
@@ -126,13 +127,11 @@
              getItemView(
                  title: "隐私投诉",
                  onTap: () {
                    MySharedPreferences.getInstance()
                        .getString("feedBackLink")
                    ConfigUtil.getConfig(context, "privacyComplain")
                        .then((value) {
                      if (StringUtil.isNullOrEmpty(value)) {
                      if (value == null) {
                        return;
                      }
                      NavigatorUtil.navigateToNextPage(context,
                          BrowserPage(title: "隐私投诉", url: value!), (data) {});
                    });
@@ -140,14 +139,32 @@
              getItemView(
                  title: "注销账户",
                  onTap: () {
                    MySharedPreferences.getInstance()
                        .getString("unRegisterLink")
                        .then((value) {
                      if (!StringUtil.isNullOrEmpty(value)) {
                        NavigatorUtil.navigateToNextPage(context,
                            BrowserPage(title: "账户注销", url: value!), (data) {});
                    UserUtil.isLogin().then((value) {
                      if (!value) {
                        ToastUtil.toast("尚未登录", context);
                        return;
                      }
                      ConfigUtil.getConfig(context, "unRegister").then((value) {
                        if (value == null) {
                          return;
                        }
                        NavigatorUtil.navigateToNextPage(context,
                            BrowserPage(title: "注销账户", url: value!), (data) {});
                    });
                    });
                  }),
              getItemView(
                  title: "免责声明",
                  onTap: () {
                    ConfigUtil.getConfig(context, "disclaimerLink").then((value) {
                      if (value == null) {
                        return;
                      }
                      NavigatorUtil.navigateToNextPage(context,
                          BrowserPage(title: "免责声明", url: value!), (data) {});
                    });
                  }),
            ],
          ),
flutter_module/lib/ui/mine/balance.dart
@@ -59,6 +59,10 @@
        ToastUtil.toast(value["msg"], context);
      });
    });
    _refresh();
  }
  void _refresh() {
    _getExtractInfo();
    _getExtractDenominationList();
  }
@@ -111,6 +115,9 @@
        ToastUtil.toast(result["msg"], context);
      }
      return;
    } else {
      ToastUtil.toast("申请提现成功", context);
      _refresh();
    }
  }
flutter_module/lib/ui/mine/settings.dart
@@ -2,6 +2,8 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:makemoney/api/user_api.dart';
import 'package:makemoney/utils/config_util.dart';
import 'package:package_info/package_info.dart';
import '../../ui/common/browser.dart';
@@ -117,16 +119,16 @@
  }
  Future logout() async {
    Map<String, dynamic>? map = {
      "code": 0
    }; //await UserApiUtil.logout(context, uid!);
    Map<String, dynamic>? map = await UserApiUtil.logout(context);
    if (map == null) {
      return;
    }
    if (map["code"] == 0) {
      UserUtil.logout().then((value) {
        setState(() {
          login = false;
        });
        ToastUtil.toast("退出成功", context);
        UserUtil.getUid();
        // popPage(context);
      });
    } else {
@@ -216,32 +218,6 @@
                content: "版本号:$version",
                onClick: () {
                  ToastUtil.toast("已经是最新版本", context);
                }),
            getCommonItemView(
                title: "账户注销",
                content: "",
                onClick: () {
                  MySharedPreferences.getInstance()
                      .getString("unRegisterLink")
                      .then((value) {
                    if (!StringUtil.isNullOrEmpty(value)) {
                      NavigatorUtil.navigateToNextPage(context,
                          BrowserPage(title: "账户注销", url: value!), (data) {});
                    }
                  });
                }),
            getCommonItemView(
                title: "隐私投诉",
                content: "",
                onClick: () {
                  MySharedPreferences.getInstance()
                      .getString("feedBackLink")
                      .then((value) {
                    if (!StringUtil.isNullOrEmpty(value)) {
                      NavigatorUtil.navigateToNextPage(context,
                          BrowserPage(title: "隐私投诉", url: value!), (data) {});
                    }
                  });
                }),
            // getCommonItemView(
            //     title: "第三方SDK列表",
flutter_module/lib/ui/mine/team.dart
@@ -8,10 +8,13 @@
import 'package:makemoney/model/msg/app_notify_msg_model.dart';
import 'package:makemoney/model/team/team_member_list_vo.dart';
import 'package:makemoney/ui/mine/invite_friends.dart';
import 'package:makemoney/ui/mine/login.dart';
import 'package:makemoney/ui/widget/base_ui.dart';
import 'package:makemoney/ui/widget/button.dart';
import 'package:makemoney/ui/widget/images_widget.dart';
import 'package:makemoney/ui/widget/refresh_listview.dart';
import 'package:makemoney/utils/jump_page.dart';
import 'package:makemoney/utils/user_util.dart';
import '../../ui/common/browser.dart';
import '../../utils/config_util.dart';
import '../../utils/share_preference.dart';
@@ -25,7 +28,8 @@
import 'package:package_info/package_info.dart';
class TeamPage extends StatefulWidget {
  TeamPage({Key? key, required this.title, required this.first})
  TeamPage(
      {Key? key, required this.title, required this.first, this.nav = true})
      : super(key: key);
  // This widget is the home page of your application. It is stateful, meaning
@@ -39,6 +43,7 @@
  final String title;
  final bool first;
  final bool nav;
  @override
  _TeamPageState createState() => _TeamPageState();
@@ -92,6 +97,12 @@
  //获取队员列表
  void _getTeamList(int page) async {
    bool logined = await UserUtil.isLogin();
    if (!logined) {
      _refreshController.dataEmpty!();
      return;
    }
    setState(() {
      _page = page;
    });
@@ -166,7 +177,8 @@
        backgroundColor: const Color(0xFFFFFFFF),
        body: Column(
          children: [
            TopNavBar(
            widget.nav
                ? TopNavBar(
              title: "团队",
              rightImage: Image.asset(
                "assets/imgs/mine/icon_team_invite_new.png",
@@ -176,6 +188,10 @@
                NavigatorUtil.navigateToNextPage(
                    context, InviteFriendsPage(title: ""), (data) {});
              },
                  )
                : Container(
                    height: MediaQuery.of(context).viewPadding.top,
                    color: const Color(0xFFF0F0F0),
            ),
            // Row(mainAxisAlignment: MainAxisAlignment.spaceAround, children: [
            //   Expanded(flex: 1, child: getNavItem("直接队员", 0)),
@@ -224,8 +240,32 @@
                                height: 44,
                                fontSize: 15,
                                onClick: () {
                                  NavigatorUtil.navigateToNextPage(context,
                                      InviteFriendsPage(title: ""), (data) {});
                                  UserUtil.isLogin().then((value) {
                                    if (!value) {
                                      if (widget.nav) {
                                        NavigatorUtil.navigateToNextPage(
                                            context,
                                            LoginPage(title: ""),
                                            (data) {});
                                      } else {
                                        JumpPageUtil.jumpPage(
                                            "LoginPage", context,
                                            native: true, callback: (data) {});
                                      }
                                      return;
                                    }
                                    if (widget.nav) {
                                      NavigatorUtil.navigateToNextPage(
                                          context,
                                          InviteFriendsPage(title: ""),
                                          (data) {});
                                    } else {
                                      JumpPageUtil.jumpPage(
                                          "InviteFriendsPage", context,
                                          native: true, callback: (data) {});
                                    }
                                  });
                                },
                              )),
                          InkWell(
@@ -235,10 +275,18 @@
                                  if (value == null) {
                                    return;
                                  }
                                  if (widget.nav) {
                                  NavigatorUtil.navigateToNextPage(
                                      context,
                                      BrowserPage(title: "帮助中心", url: value),
                                      (data) {});
                                  } else {
                                    JumpPageUtil.jumpPage(
                                        "BrowserPage", context,
                                        native: true,
                                        params: {"title": "帮助中心", "url": value},
                                        callback: (data) {});
                                  }
                                });
                              },
                              child: const Padding(
@@ -332,7 +380,7 @@
                        maxLines: 1,
                        overflow: TextOverflow.ellipsis,
                        style: const TextStyle(
                            color: Colors.black, fontSize: 14, height: 1),
                            color: Colors.black, fontSize: 17, height: 1),
                      ),
                      Text(
                        _teamList![index].tag ?? "",
@@ -347,7 +395,7 @@
                        maxLines: 1,
                        overflow: TextOverflow.ellipsis,
                        style: const TextStyle(
                            color: Color(0xFF888888), fontSize: 12, height: 1),
                            color: Color(0xFF888888), fontSize: 13, height: 1),
                      ),
                    ],
                  ))),
flutter_module/lib/ui/task.dart
@@ -272,7 +272,7 @@
                                  "签到领金币",
                                  style: TextStyle(
                                      color: ColorConstant.theme,
                                      fontSize: 15,
                                      fontSize: 18,
                                      fontWeight: FontWeight.bold,
                                      height: 1),
                                ),
@@ -282,14 +282,14 @@
                                Text.rich(TextSpan(
                                    text: "已连续签到",
                                    style: const TextStyle(
                                        color: Color(0xFF666666), fontSize: 9),
                                        color: Color(0xFF666666), fontSize: 12),
                                    children: [
                                      TextSpan(
                                          text:
                                              "${_signInfo!.continueSignInDay}",
                                          style: const TextStyle(
                                              color: ColorConstant.theme,
                                              fontSize: 12,
                                              fontSize: 18,
                                              fontWeight: FontWeight.bold)),
                                      const TextSpan(text: "天")
                                    ])),
@@ -297,7 +297,9 @@
                                const Text(
                                  "签到提醒",
                                  style: TextStyle(
                                      color: Color(0xFF666666), fontSize: 9),
                                      color: Color(0xFF666666),
                                      fontSize: 12,
                                      height: 1),
                                ),
                                const SizedBox(
                                  width: 5,
@@ -319,7 +321,8 @@
                                      });
                                    },
                                    child: Padding(
                                        padding: const EdgeInsets.only(top: 10),
                                        padding: const EdgeInsets.only(
                                            top: 5, bottom: 3),
                                        child: Image.asset(
                                          _notify
                                              ? "assets/imgs/task/icon_task_sign_notify_checked.png"
@@ -344,8 +347,8 @@
                                child: MyFillButton(
                                  "立即签到",
                                  10,
                                  fontSize: 15,
                                  height: 42,
                                  fontSize: 18,
                                  height: 45,
                                  color: _signInfo!.isSignIned!
                                      ? ColorConstant.theme.withAlpha(128)
                                      : ColorConstant.theme,
@@ -369,7 +372,7 @@
                            height: 5,
                          ),
                          const Text(
                            "所有任务直接和间接队员完成后你都能获得金币奖励",
                            "所有队员完成任务你也能获得金币。",
                            style: TextStyle(
                                fontSize: 10, color: Color(0xFF666666)),
                          ),
@@ -443,7 +446,8 @@
                  height: 5,
                ),
                Text.rich(
                  TextSpan(children: [
                  TextSpan(
                    children: [
                    const TextSpan(text: "连续签到"),
                    TextSpan(
                        text: "$continueDay",
@@ -452,8 +456,11 @@
                            color: Color(0xFFFFF5A9),
                            fontWeight: FontWeight.bold)),
                    const TextSpan(text: "天"),
                  ]),
                    ],
                  ),
                  style: const TextStyle(color: Colors.white, fontSize: 14),
                  overflow: TextOverflow.ellipsis,
                  maxLines: 1,
                ),
                const SizedBox(
                  height: 8,
@@ -543,7 +550,7 @@
        ),
        Text(
          day.day!,
          style: const TextStyle(fontSize: 9, color: Color(0xFF999999)),
          style: const TextStyle(fontSize: 11, color: Color(0xFF999999)),
        )
      ],
    ));
@@ -621,32 +628,40 @@
            const SizedBox(
              width: 10,
            ),
            Column(
            Expanded(
                child: Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              children: [
                Text(
                  task.name!,
                  style: TextStyle(
                      color: Color(0xFF454545), fontSize: 12, height: 1.2),
                ),
                Text(
                  task.process!,
                  style: const TextStyle(
                      color: Color(0xFF7F7F7F), fontSize: 9, height: 1.5),
                      color: Color(0xFF454545), fontSize: 16, height: 1.2),
                ),
                const SizedBox(
                  height: 5,
                ),
                Text.rich(TextSpan(
                    style:
                        TextStyle(color: const Color(0xFFFF8316), fontSize: 9),
                        const TextStyle(color: Color(0xFFFF8316), fontSize: 13),
                    children: [
                      const TextSpan(text: "+"),
                      TextSpan(
                          text: "${task.price}",
                          style: TextStyle(fontSize: 10)),
                      TextSpan(text: "${task.price}"),
                      TextSpan(text: task.priceUnit),
                      const TextSpan(
                          text: " 今日进度",
                          style: TextStyle(
                              color: Color(0xFF7F7F7F),
                              fontSize: 10,
                              height: 1.5)),
                      TextSpan(
                          text: task.process!,
                          style: const TextStyle(
                              color: Color(0xFF7F7F7F),
                              fontSize: 12,
                              height: 1.5)),
                    ])),
              ],
            ),
            Expanded(child: Container()),
            )),
            MyOutlineButton(
              task.actionName!,
              20,
flutter_module/lib/ui/widget/ad_express.dart
@@ -147,3 +147,69 @@
    });
  }
}
class DrawVideoWidget extends StatefulWidget {
  final String pid;
  final ExpressAdController? controller;
  final VoidCallback? close;
  final VoidCallback? loadFail;
  DrawVideoWidget(this.pid, {this.controller, this.close, this.loadFail});
  @override
  State<StatefulWidget> createState() => _DrawVideoState();
}
class _DrawVideoState extends State<DrawVideoWidget> {
  MethodChannel? _expressAdChannel;
  @override
  void initState() {
    super.initState();
    if (widget.controller != null) {
      widget.controller!.refresh = () {
        if (_expressAdChannel != null) {
          _expressAdChannel!.invokeMethod("refresh");
        }
      };
    }
  }
  @override
  Widget build(BuildContext context) {
    return KeepAliveWrapper(
        child: Platform.isAndroid
            ? AndroidView(
                viewType: "ad-draw-video-view",
                layoutDirection: TextDirection.ltr,
                onPlatformViewCreated: onPlatformViewCreated,
                creationParams: <String, dynamic>{
                  "pid": widget.pid
                },
                creationParamsCodec: const StandardMessageCodec(),
              )
            : UiKitView(
                viewType: "ad-draw-video-view",
                layoutDirection: TextDirection.ltr,
                onPlatformViewCreated: onPlatformViewCreated,
                creationParams: <String, dynamic>{"pid": widget.pid},
                creationParamsCodec: const StandardMessageCodec(),
              ));
  }
  Future<void> onPlatformViewCreated(id) async {
    _expressAdChannel = MethodChannel("ad-draw-video-view-$id");
    _expressAdChannel!.setMethodCallHandler((call) {
      if ("close" == call.method) {
        if (widget.close != null) {
          widget.close!();
        }
      } else if ("loadFail" == call.method) {
        if (widget.loadFail != null) {
          widget.loadFail!();
        }
      }
      return Future.value("");
    });
  }
}
flutter_module/lib/utils/ui_constant.dart
@@ -21,11 +21,11 @@
  //隐私政策链接
  static const String PRIVACY_URL =
      "http://h5.hanju.goxcw.com/hanju/privacy_ios.html";
      "http://web.dsp.yeshitv.com/privacy.html";
  //用户协议链接
  static const String PROTOCOL_URL =
      "http://h5.hanju.goxcw.com/hanju/user_protocol_ios.html";
      "http://web.dsp.yeshitv.com/user_protocol.html";
  //微信
  static const String WX_APPID = "wxd930ea5d5a228f5f";
@@ -33,10 +33,6 @@
  static const String APP_DOWNLOAD_LINK =
      "https://a.app.qq.com/o/simple.jsp?pkgname=com.dw.zzql";
  static const String MAP_LINK =
      "http://web.location.izzql.com/map/map.html";
}