| | |
| | | <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支持通知开启振动功能,小米推送必须--> |
| | |
| | | |
| | | <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" /> |
| | | |
| | |
| | | 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" |
| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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); |
| | |
| | | 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; |
| | | } |
| | |
| | | "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() { |
| | |
| | | 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; |
| | |
| | | |
| | | //最少的浏览时间 |
| | | private final Long MIN_SPACE_TIME = 1000 * 5L; |
| | | |
| | | private AQuery mAquery; |
| | | |
| | | private static final String TAG = "DYNewsFragment"; |
| | | private IDPWidget mIDPWidget; |
| | |
| | | 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() { |
| | |
| | | //上传成功 |
| | | JSONObject data = jsonObject.optJSONObject("data"); |
| | | VideoGoldCornUtil.showInComeToast(data.optInt("goldCorn"), getContext()); |
| | | closeNotify(); |
| | | } |
| | | } |
| | | |
New file |
| | |
| | | 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); |
| | | } |
| | | } |
| | |
| | | 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; |
| | |
| | | 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(); |
| | |
| | | package com.yeshi.makemoney.video.app.ui.main; |
| | | |
| | | import android.os.Bundle; |
| | | import android.util.Log; |
| | | import android.view.View; |
| | | |
| | | import com.androidquery.AQuery; |
| | |
| | | |
| | | public class MineFragment extends RetainViewFragment implements View.OnClickListener { |
| | | |
| | | private static final String TAG = "MineFragment"; |
| | | private AQuery mAquery; |
| | | |
| | | @Override |
| | |
| | | .url("mine") |
| | | .urlParams(new HashMap<>()) |
| | | .build(); |
| | | getChildFragmentManager().beginTransaction().replace(R.id.fl_container, mine).commitAllowingStateLoss(); |
| | | getChildFragmentManager().beginTransaction().add(R.id.fl_container, mine).commitAllowingStateLoss(); |
| | | } |
| | | |
| | | |
| | |
| | | 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); |
| | | } |
| | | } |
New file |
| | |
| | | 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) { |
| | | |
| | | } |
| | | } |
| | |
| | | kefu, |
| | | unRegister, |
| | | privacyComplain, |
| | | helpLink |
| | | helpLink, |
| | | disclaimerLink, |
| | | } |
| | | |
| | | |
| | |
| | | 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"; |
| | | |
| | | } |
| | |
| | | public class SettingUtil { |
| | | |
| | | public enum SettingKey { |
| | | //是否显示资讯页面的提醒 |
| | | showNewsNotify(true), |
| | | //推送免打扰 |
| | | pushUnDisturb(false), |
| | | //广告推荐 |
| | |
| | | |
| | | public class JumpPageUtil { |
| | | public enum AppJumpType { |
| | | //消息页面 |
| | | msg, |
| | | //邀请 |
| | | invite, |
| | | //短视频 |
| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | } |
| | | }); |
| | | |
| | | |
| | | 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() { |
| | |
| | | * 开始加倍任务 |
| | | */ |
| | | private void startDoubleTask() { |
| | | if (!UserUtil.isLogin(mContext)) { |
| | | //去登录 |
| | | FlutterPageUtil.jumpPage("LoginPage", null, null); |
| | | return; |
| | | } |
| | | |
| | | |
| | | if (reward) { |
| | | uploadData(true); |
| | | return; |
| | |
| | | <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: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> |
New file |
| | |
| | | <?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> |
| | |
| | | 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"); |
| | |
| | | |
| | | ///退出登录 |
| | | 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 = |
| | |
| | | TeamPage( |
| | | title: "", |
| | | first: params["first"], |
| | | nav: params["nav"] ?? true, |
| | | )); |
| | | }, |
| | | "GoldCornPage": (RouteSettings settings, String? uniqueId) { |
| | |
| | | return TeamPage( |
| | | title: "", |
| | | first: params!["first"], |
| | | nav: params!["nav"] ?? true, |
| | | ); |
| | | } |
| | | case "InviteFriendsPage": |
| | |
| | | _BrowserPageState createState() => _BrowserPageState(title, url); |
| | | } |
| | | |
| | | class _BrowserPageState extends State<BrowserPage> { |
| | | class _BrowserPageState extends State<BrowserPage> |
| | | with SingleTickerProviderStateMixin { |
| | | String title = ""; |
| | | String? url; |
| | | double progress = 0; |
| | |
| | | Expanded( |
| | | child: WebView( |
| | | //http://192.168.3.122:8848/test/JsTest.html |
| | | backgroundColor: Colors.white, |
| | | initialUrl: url, |
| | | onWebViewCreated: (WebViewController webViewController) { |
| | | _webViewController = webViewController; |
| | |
| | | |
| | | 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'; |
| | |
| | | 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( |
| | |
| | | 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) {}); |
| | | }); |
| | |
| | | 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) {}); |
| | | }); |
| | | |
| | | }), |
| | | ], |
| | | ), |
| | |
| | | ToastUtil.toast(value["msg"], context); |
| | | }); |
| | | }); |
| | | _refresh(); |
| | | } |
| | | |
| | | void _refresh() { |
| | | _getExtractInfo(); |
| | | _getExtractDenominationList(); |
| | | } |
| | |
| | | ToastUtil.toast(result["msg"], context); |
| | | } |
| | | return; |
| | | } else { |
| | | ToastUtil.toast("申请提现成功", context); |
| | | _refresh(); |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | 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'; |
| | |
| | | } |
| | | |
| | | 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 { |
| | |
| | | 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列表", |
| | |
| | | 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'; |
| | |
| | | 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 |
| | |
| | | |
| | | final String title; |
| | | final bool first; |
| | | final bool nav; |
| | | |
| | | @override |
| | | _TeamPageState createState() => _TeamPageState(); |
| | |
| | | |
| | | //获取队员列表 |
| | | void _getTeamList(int page) async { |
| | | bool logined = await UserUtil.isLogin(); |
| | | if (!logined) { |
| | | _refreshController.dataEmpty!(); |
| | | return; |
| | | } |
| | | |
| | | setState(() { |
| | | _page = page; |
| | | }); |
| | |
| | | backgroundColor: const Color(0xFFFFFFFF), |
| | | body: Column( |
| | | children: [ |
| | | TopNavBar( |
| | | widget.nav |
| | | ? TopNavBar( |
| | | title: "团队", |
| | | rightImage: Image.asset( |
| | | "assets/imgs/mine/icon_team_invite_new.png", |
| | |
| | | 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)), |
| | |
| | | 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( |
| | |
| | | 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( |
| | |
| | | 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 ?? "", |
| | |
| | | maxLines: 1, |
| | | overflow: TextOverflow.ellipsis, |
| | | style: const TextStyle( |
| | | color: Color(0xFF888888), fontSize: 12, height: 1), |
| | | color: Color(0xFF888888), fontSize: 13, height: 1), |
| | | ), |
| | | ], |
| | | ))), |
| | |
| | | "签到领金币", |
| | | style: TextStyle( |
| | | color: ColorConstant.theme, |
| | | fontSize: 15, |
| | | fontSize: 18, |
| | | fontWeight: FontWeight.bold, |
| | | height: 1), |
| | | ), |
| | |
| | | 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: "天") |
| | | ])), |
| | |
| | | const Text( |
| | | "签到提醒", |
| | | style: TextStyle( |
| | | color: Color(0xFF666666), fontSize: 9), |
| | | color: Color(0xFF666666), |
| | | fontSize: 12, |
| | | height: 1), |
| | | ), |
| | | const SizedBox( |
| | | width: 5, |
| | |
| | | }); |
| | | }, |
| | | 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" |
| | |
| | | child: MyFillButton( |
| | | "立即签到", |
| | | 10, |
| | | fontSize: 15, |
| | | height: 42, |
| | | fontSize: 18, |
| | | height: 45, |
| | | color: _signInfo!.isSignIned! |
| | | ? ColorConstant.theme.withAlpha(128) |
| | | : ColorConstant.theme, |
| | |
| | | height: 5, |
| | | ), |
| | | const Text( |
| | | "所有任务直接和间接队员完成后你都能获得金币奖励", |
| | | "所有队员完成任务你也能获得金币。", |
| | | style: TextStyle( |
| | | fontSize: 10, color: Color(0xFF666666)), |
| | | ), |
| | |
| | | height: 5, |
| | | ), |
| | | Text.rich( |
| | | TextSpan(children: [ |
| | | TextSpan( |
| | | children: [ |
| | | const TextSpan(text: "连续签到"), |
| | | TextSpan( |
| | | text: "$continueDay", |
| | |
| | | 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, |
| | |
| | | ), |
| | | Text( |
| | | day.day!, |
| | | style: const TextStyle(fontSize: 9, color: Color(0xFF999999)), |
| | | style: const TextStyle(fontSize: 11, color: Color(0xFF999999)), |
| | | ) |
| | | ], |
| | | )); |
| | |
| | | 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, |
| | |
| | | }); |
| | | } |
| | | } |
| | | |
| | | 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(""); |
| | | }); |
| | | } |
| | | } |
| | |
| | | |
| | | //隐私政策链接 |
| | | 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"; |
| | |
| | | |
| | | 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"; |
| | | |
| | | |
| | | } |