hxb
2022-11-22 b3513b1713bb979d0a69c5a8c4ddcd038f184e6e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
package com.mm.android.deviceaddmodule.p_cloudconnect;
 
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
import android.graphics.drawable.Animatable;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
 
import com.mm.android.deviceaddmodule.R;
import com.mm.android.deviceaddmodule.base.BaseDevAddFragment;
import com.mm.android.deviceaddmodule.contract.CloudConnectConstract;
import com.mm.android.deviceaddmodule.helper.DeviceAddHelper;
import com.mm.android.deviceaddmodule.helper.PageNavigationHelper;
import com.mm.android.deviceaddmodule.mobilecommon.entity.deviceadd.DeviceAddInfo;
import com.mm.android.deviceaddmodule.mobilecommon.widget.CircleCountDownView;
import com.mm.android.deviceaddmodule.model.DeviceAddModel;
import com.mm.android.deviceaddmodule.presenter.CloudConnectPresenter;
 
public abstract class BaseCloudFragment extends BaseDevAddFragment implements CloudConnectConstract.View, CircleCountDownView.OnCountDownFinishListener {
    CloudConnectConstract.Presenter mPresenter;
 
    TextView mTipTxt;
    CircleCountDownView mCountdown_view;
    ImageView mProgressImg,mCloudImage1,mCloudImage2;
    Animatable mCloudAnimation;
    public abstract void goErrorTipPage();
    public abstract void initAction();
 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_connect_process, container, false);
    }
 
    @Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        DeviceAddHelper.updateTile(DeviceAddHelper.TitleMode.MORE);
    }
 
    protected void initView(View view){
        mTipTxt= view.findViewById(R.id.tv_image_show_tip);
        mProgressImg= view.findViewById(R.id.cloud_progrees_img);
        mCloudImage1= view.findViewById(R.id.cloud_image1);
        mCloudImage2= view.findViewById(R.id.cloud_image2);
        mCountdown_view= view.findViewById(R.id.countdown_view);
        mCountdown_view.setCountDownListener(this);
        mCloudAnimation=(Animatable)mProgressImg.getDrawable();
        startAnimation();
    }
 
    protected void initData(){
        mPresenter=new CloudConnectPresenter(this);
        initAction();
    }
 
    private void startAnimation(){
        mCloudAnimation.start();
        AnimatorSet animatorSet=new AnimatorSet();
        ObjectAnimator cloudImage1Anim=ObjectAnimator.ofFloat(mCloudImage1,"translationX",0f,150f,0f);
        cloudImage1Anim.setRepeatMode(ValueAnimator.RESTART);
        cloudImage1Anim.setRepeatCount(ValueAnimator.INFINITE);
        ObjectAnimator cloudImage2Anim=ObjectAnimator.ofFloat(mCloudImage2,"translationX",0f,150f,0f);
        cloudImage2Anim.setRepeatMode(ValueAnimator.RESTART);
        cloudImage2Anim.setRepeatCount(ValueAnimator.INFINITE);
        animatorSet.play(cloudImage1Anim).with(cloudImage2Anim);
        animatorSet.setDuration(3000);
        animatorSet.start();
    }
 
    @Override
    public void onDestroyView() {
        super.onDestroyView();
        mCountdown_view.stopCountDown();
        if(mCloudAnimation.isRunning()){
            mCloudAnimation.stop();
        }
        mPresenter.recyle();
    }
 
    @Override
    public void countDownFinished() {
        mPresenter.recyle();
        DeviceAddModel.newInstance().setLoop(false);
        if(mPresenter.isWifiOfflineConfiMode()){
            toast(R.string.add_device_config_failed);
            completeAction();
            mPresenter.stopConnectTiming();
            return;
        }
        goErrorTipPage();
    }
 
    @Override
    public void completeAction() {
       if(getActivity() != null) getActivity().finish();
    }
 
    @Override
    public void goOtherUserBindTipPage() {
        PageNavigationHelper.gotoErrorTipPage(this, DeviceAddHelper.ErrorCode.DEVICE_BIND_ERROR_BIND_BY_OTHER);
    }
 
    @Override
    public void goNotSupportBuindTipPage() {
        PageNavigationHelper.gotoErrorTipPage(this, DeviceAddHelper.ErrorCode.DEVICE_BIND_ERROR_NOT_SUPPORT_TO_BIND);
    }
 
    @Override
    public void goErrorTipPage(int errorCode) {
        PageNavigationHelper.gotoErrorTipPage(this, errorCode);
    }
}