WithDrawActivity.java 11.4 KB
package com.lotus.town;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.TextView;

import com.ad.lib.AdInfo;
import com.ad.lib.AdManager;
import com.ad.lib.AdPlacement;
import com.ad.lib.AdViewGeneral;
import com.ad.lib.IAdCallback;
import com.ad.lib.RequestInfo;
import com.ad.lib.tt.config.AdConfig;
import com.bytedance.sdk.openadsdk.AdSlot;
import com.controller.IADController;
import com.lotus.town.dialog.Dialog;
import com.lotus.town.event.BaseEvent;
import com.lotus.town.event.McEvent;
import com.lotus.town.event.WxLoginEvent;
import com.lotus.town.service.em.EmManager;
import com.lotus.town.service.wd.WdManager;
import com.lotus.town.utils.SharedPrefConfig;
import com.lotus.town.utils.UIUtils;
import com.lotus.town.utils.Utils;
import com.lotus.town.wxapi.WxManager;
import com.sdk.Sdk;
import com.sdk.cloud.CloudSharedPref;
import com.sdk.download.DownloadManager;
import com.sdk.log.LogConstants;
import com.sdk.utils.VerstionUtils;

import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;

public class WithDrawActivity extends BaseActivity implements View.OnClickListener {


    private FrameLayout mAdGeneral;
    private Button mWithDraw;
    private TextView mFirstLevel;
    private TextView mSecondLevel;
    private TextView mThirdLevel;
    private TextView mCurrentMoney;
    private TextView mWdStatus;
    private int focus = 0;
    private View mBack;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_withdraw_layout);
        mBack = findViewById(R.id.back);
        mWdStatus = findViewById(R.id.wd_status);
        mAdGeneral = findViewById(R.id.ad_general);
        mWithDraw = findViewById(R.id.with_draw_bt);
        mFirstLevel = findViewById(R.id.first_level);
        mSecondLevel = findViewById(R.id.second_level);
        mThirdLevel = findViewById(R.id.third_level);
        mCurrentMoney = findViewById(R.id.current_money);
        if(IADController.getInstance().isShowInner()) {
            initAd();
        }

        mBack.setOnClickListener(this);
        mWithDraw.setOnClickListener(this);
        mFirstLevel.setOnClickListener(this);
        mSecondLevel.setOnClickListener(this);
        mThirdLevel.setOnClickListener(this);

        String money = Utils.doubleToString(scManager.getInstance(this).getMoney());
        mCurrentMoney.setText(money);
        EventBus.getDefault().register(this);
        Sdk.logger().logEvent(this, LogConstants.LOG_WD_DISPLAY);

        if(SharedPrefConfig.getInstance(this).getWithDrawStatus() == 0){
            if(!TextUtils.isEmpty(SharedPrefConfig.getInstance(mContext).getWithDrawMoney())){
                mWdStatus.setVisibility(View.VISIBLE);
                mWdStatus.setText("(提现中:" + SharedPrefConfig.getInstance(mContext).getWithDrawMoney() + "元)");
            }
        }
    }

    @Subscribe(threadMode = ThreadMode.MAIN)
    public void updateUI(BaseEvent event){
        if(event instanceof McEvent){
            mCurrentMoney.setText(Utils.doubleToString(((McEvent) event).getMoney()));
        }
    }


    @Override
    protected void onDestroy() {
        super.onDestroy();
        EventBus.getDefault().unregister(this);
    }

    private void initAd(){

        RequestInfo requestInfo = new RequestInfo();
        requestInfo.setId(AdPlacement.getWithDrawID());
        requestInfo.setWidth(1280);
        requestInfo.setHeight(720);
        requestInfo.setType(AdSlot.TYPE_BANNER);
        AdManager.getInstance().getAdController(this,0).loadNativeAd(requestInfo, new IAdCallback() {
            @Override
            public void onADLoaded(final AdInfo info) {
                View view = AdViewGeneral.getAdView(WithDrawActivity.this,info);
                FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
                view.setLayoutParams(params);
                mAdGeneral.addView(view);
            }

            @Override
            public void onShow() {
                Sdk.logger().logEvent(WithDrawActivity.this,LogConstants.LOG_WD_AD_DISPLAY);
            }

            @Override
            public void onADError() {

            }

            @Override
            public void onClicked() {
                Sdk.logger().logEvent(WithDrawActivity.this,LogConstants.LOG_WD_AD_CLICK);
            }
        });
    }

    @Override
    public void onClick(View view) {
        if(view == mFirstLevel){
            setFocus(0);
            Sdk.logger().logEvent(WithDrawActivity.this,LogConstants.LOG_WD_CLICK_ITEM,"0");

        } else if(view == mSecondLevel){
            setFocus(1);
            Sdk.logger().logEvent(WithDrawActivity.this,LogConstants.LOG_WD_CLICK_ITEM,"1");
        } else if(view == mThirdLevel){
            setFocus(2);
            Sdk.logger().logEvent(WithDrawActivity.this,LogConstants.LOG_WD_CLICK_ITEM,"2");
        } else if(view == mWithDraw){
            Sdk.logger().logEvent(WithDrawActivity.this,LogConstants.LOG_WD_CLICK_BUTTON,""+focus);
            withDrawMoney(focus);
        } else if(view == mBack){
            finish();
        }
    }

    private void withDrawMoney(int focus){
        double money = 10;
        if(focus == 0){
            money = 10;
        } else if(focus == 1){
            money = 15;
        } else if(focus == 2){
            money = 20;
        }
        if(scManager.getInstance(this).getMoney() < money){
//            UIUtils.showToast("当前提现额度不足,赶紧去赚钱吧");
            showNoEnoughMoneyDialog();
            return ;
        } else {
            showWithDrawMoneyDialog(money);
        }
    }

    @Subscribe(threadMode = ThreadMode.MAIN)
    public void loginResullt(WxLoginEvent event){
        double money = 10;
        if(focus == 0){
            money = 10;
        } else if(focus == 1){
            money = 15;
        } else if(focus == 2){
            money = 20;
        }
        if(event.isSuccess()){
            final double finalMoney = money;
            WdManager.wd((int)money*1000,event.getOpenId(),new WdManager.WdListener(){
                @Override
                public void success() {
                    Message msg = new Message();
                    msg.what = 0;
                    msg.obj = finalMoney;
                    uiHandler.sendMessage(msg);
                    EmManager.pm((int) (finalMoney*1000));
                    scManager.getInstance(mContext).withDrawMoney(finalMoney);
                    SharedPrefConfig.getInstance(mContext).updateWithDrawStatus(0);
                    SharedPrefConfig.getInstance(mContext).setWithDrawMoney(Utils.doubleToString(finalMoney));
                }
            });
        } else {
            UIUtils.showToast("登录成功才可以提现");
        }
    }

    private Handler uiHandler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            if(msg.what == 0) {
                mWdStatus.setVisibility(View.VISIBLE);
                mWdStatus.setText("(提现中:" + msg.obj + "元)");
                showWithDrawSucessDialog((Double) msg.obj);
            }
        }
    };

    private void showUpgradeDialog() {
        final Dialog dialog = getDialog();
        dialog.dismiss(this);
        dialog.show(this,
                getString(R.string.upgrade_main_hint),
                getString(R.string.upgrade_sub_hint),
                new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        dialog.dismiss(WithDrawActivity.this);
                    }
                },
                getString(R.string.upgrade_right_btn_hint),
                new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        if(CloudSharedPref.getInstance(WithDrawActivity.this).getNewVersion() > VerstionUtils.getLocalVersion(WithDrawActivity.this)){
                            DownloadManager.downloadApk(WithDrawActivity.this, CloudSharedPref.getInstance(WithDrawActivity.this).getUploadUrl(),"荷花小镇");
                        } else {
                            UIUtils.showToast("服务器维护中,请明天重试");
                        }
                        dialog.dismiss(WithDrawActivity.this);
                    }
                });

    }

    private void setFocus(int id){
        focus = id;
        if(id == 0){
            mFirstLevel.setBackgroundResource(R.drawable.corner_text_bg_high);
            mSecondLevel.setBackgroundResource(R.drawable.corner_text_bg);
            mThirdLevel.setBackgroundResource(R.drawable.corner_text_bg);
        } else if(id == 1){
            mFirstLevel.setBackgroundResource(R.drawable.corner_text_bg);
            mSecondLevel.setBackgroundResource(R.drawable.corner_text_bg_high);
            mThirdLevel.setBackgroundResource(R.drawable.corner_text_bg);
        } else if(id == 2){
            mFirstLevel.setBackgroundResource(R.drawable.corner_text_bg);
            mSecondLevel.setBackgroundResource(R.drawable.corner_text_bg);
            mThirdLevel.setBackgroundResource(R.drawable.corner_text_bg_high);
        }
    }

    private void showNoEnoughMoneyDialog() {
        Dialog dialog = getDialog();
        dialog.dismiss(this);
        dialog.showCenter(this,
                "当前提现额度不足,赶紧去赚钱吧",
                new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        dismissDialog();
                    }
                },
                "知道啦",
                new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        dismissDialog();
                    }
                });
    }



    private void showWithDrawMoneyDialog(double money) {
        Dialog dialog = getDialog();
        dialog.dismiss(this);
        dialog.showCenter(this,
                "提现" + Utils.doubleToString(money) + "元",
                new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        dismissDialog();
                    }
                },
                "确认",
                new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        WxManager.login();
                        dismissDialog();
                    }
                });
    }

    private void showWithDrawSucessDialog(double money) {
        Dialog dialog = getDialog();
        dialog.dismiss(this);
        dialog.showCenter(this,
                "你已经成功提现"+Utils.doubleToString(money)+"元,24小时内会付款到您的微信中,请注意查收",
                new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        dismissDialog();
                    }
                },
                "知道了",
                new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        dismissDialog();
                    }
                });
    }
}