doum
6 天以前 2b287056e2f59518888d05a1bbc7e5a55fbd84d5
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
121
122
123
124
125
126
127
128
package com.doumee.keyCabinet.ui.guide;
 
import android.app.Application;
import android.view.View;
 
import androidx.annotation.NonNull;
import androidx.databinding.ObservableInt;
import androidx.hilt.lifecycle.ViewModelInject;
import androidx.lifecycle.MutableLiveData;
 
import com.doumee.keyCabinet.http.param.DevLoginParam;
import com.doumee.lib_coremodel.base.BaseModel;
import com.doumee.lib_coremodel.base.DataViewModel;
import com.doumee.lib_coremodel.http.rxJava.SimpleObserver;
import com.doumee.lib_coremodel.http.utils.RxUtils;
import com.doumee.keyCabinet.MApplication;
import com.doumee.keyCabinet.R;
import com.doumee.keyCabinet.bean.ConfigBean;
import com.doumee.keyCabinet.bean.DevConfigBean;
import com.doumee.keyCabinet.http.Apis;
import com.doumee.keyCabinet.http.param.BaseResponse;
import com.doumee.keyCabinet.http.param.RequestBaseObject;
import com.doumee.keyCabinet.utils.LMobileInfo;
import com.doumee.keyCabinet.utils.ParamsUtil;
 
import java.util.List;
 
import okhttp3.Headers;
import retrofit2.Response;
 
public class GuideViewModel extends DataViewModel {
    private MutableLiveData<DevConfigBean> devLD = new MutableLiveData<>();
    public ObservableInt jyVisibility = new ObservableInt(View.GONE);
    /**
     * 继承者都将使用此构造
     *
     * @param application
     * @param model
     */
    @ViewModelInject
    public GuideViewModel(@NonNull Application application, BaseModel model) {
        super(application, model);
    }
 
    @Override
    protected void clickByTypeCommand(int type) {
        doAction(type);
    }
 
    private boolean isReq = false;
 
    public void resetReq(){
        isReq = false;
        doAction(1);
    }
    public void devLogin(){
        if (true) {
            return;
        }
        if(isReq){
            return;
        }
        isReq = true;
        //清除登录信息
        MApplication.setCookie("");
        MApplication.saveConfigBean(new ConfigBean());
        RequestBaseObject<DevLoginParam> request = new RequestBaseObject<>();
        DevLoginParam param = new DevLoginParam();
        param.setDevCode(LMobileInfo.getDeviceUniqueId());
        request.setParam(param);
        getRetrofitService(Apis.class).devLogin(0,
                        ParamsUtil.encodeRequestBody(request))
                .compose(RxUtils.schedulersTransformer())
                .subscribe(new SimpleObserver<Response<BaseResponse<DevConfigBean>>>(rxJavaGcManager) {
                    @Override
                    public void onNext(@NonNull Response<BaseResponse<DevConfigBean>> base) {
                        Headers headers = base.headers();//我们通过Response的headers对象获取到响应头信息。
                        List<String> values = headers.values("Set-Cookie");//通过“Set-Cookie”字段获取到服务器返回的Cookie信息
                        if(values!=null&&values.size()>0){
                            MApplication.setCookie(values.get(0));
                        }
                        BaseResponse<DevConfigBean> response = base.body();
                        if(response==null){
                            toast(MApplication.mContext.getString(R.string.guide_toast_1));
                            doAction(1);
                            return;
                        }
                        if("000000".equals(response.getErrorCode())){
                            if(response.getRecord()!=null){
                                if("0".equals(response.getRecord().getStatus())){
                                    jyVisibility.set(View.VISIBLE);
                                    doAction(1);
                                    return;
                                }else {
                                    jyVisibility.set(View.GONE);
                                }
                                devLD.setValue(response.getRecord());
                            }else {
                                toast(MApplication.mContext.getString(R.string.guide_toast_1));
                                doAction(1);
                            }
                        }else if("33010101".equals(response.getErrorCode())) {
                            doAction(1);
                            toast(MApplication.mContext.getString(R.string.guide_toast_2)+
                                    MApplication.mContext.getString(R.string.symbol_colon)+param.getDevCode());
                        }else {
                            toast(response.getErrorMsg());
                            doAction(1);
                        }
                    }
 
                    @Override
                    public void onError(@NonNull Throwable e) {
                        toast(e.getMessage());
                        doAction(1);
                    }
 
                    @Override
                    public void onComplete() {
                        isReq = false;
                    }
                });
    }
 
    public MutableLiveData<DevConfigBean> getDevLD() {
        return devLD;
    }
}