Runt
2023-02-22 ea6ce17bf3272259295adccbad85583079b5bac0
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
package com.auto.lyric.vm;
 
import com.auto.lyric.base.model.BaseViewModel;
import com.auto.lyric.data.ActiveResult;
import com.auto.lyric.data.BaseApiResult;
import com.auto.lyric.data.DeviceInfo;
import com.auto.lyric.retrofit.api.CollectApiCenter;
import com.auto.lyric.retrofit.api.CommonApiCenter;
import com.auto.lyric.retrofit.observable.HttpObserver;
import com.auto.lyric.retrofit.observable.LoadingHttpObserver;
import com.auto.lyric.retrofit.utils.RetrofitUtils;
import com.google.gson.Gson;
 
import java.io.File;
import java.util.Date;
 
import io.reactivex.Observable;
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
 
/**
 * Created by Runt (qingingrunt2010@qq.com) on 2022/3/20.
 */
public class MainViewModel extends BaseViewModel {
 
    CollectApiCenter apiCenter;
    CommonApiCenter commonApi;
 
    public MainViewModel(){
        apiCenter = RetrofitUtils.getInstance().getRetrofit(CollectApiCenter.class);
        commonApi = RetrofitUtils.getInstance().getRetrofit(CommonApiCenter.class);
    }
 
    public void checkActive(String userId,String activeKey,LoadingHttpObserver<ActiveResult> observer){
        Observable<ActiveResult> observable = apiCenter.loginCheck(getApiFileds(userId,activeKey));
        httpObserverOn(observable,observer);
    }
 
    public void registerDevice(){
        httpObserverOn(commonApi.registerDevice("https://api.hefan.space/autolyric/registerDevice",createJsonBody(DeviceInfo.getInstance(activity))), new HttpObserver() {
            @Override
            public void onError(BaseApiResult result) {
 
            }
 
            @Override
            public void onComplete(BaseApiResult error) {
 
            }
 
            @Override
            public void onComplete() {
                super.onComplete();
                activity.putStringProjectPrefrence("deviceInfo",new Gson().toJson(DeviceInfo.getInstance(activity)));
            }
        });
    }
 
    public void launchApp(){
        httpObserverOn(commonApi.launchApp("https://api.hefan.space/autolyric/launchApp",createJsonBody(DeviceInfo.getInstance(activity))), new HttpObserver() {
            @Override
            public void onError(BaseApiResult result) {
 
            }
 
            @Override
            public void onComplete(BaseApiResult error) {
 
            }
 
            @Override
            public void onComplete() {
                super.onComplete();
                activity.putLongProjectPrefrence("launchApp",new Date().getTime());
            }
        });
    }
 
    public void register(String activeKey,LoadingHttpObserver<ActiveResult> observer){
        Observable<ActiveResult> observable = apiCenter.register(getApiFileds("0",activeKey));
        httpObserverOn(observable,observer);
    }
 
    public void uploadFile(String userId,String activeKey,File file){
        RequestBody body = RequestBody.create(MediaType.parse("text/plain; charset=utf-8"),file);
        MultipartBody.Part part = MultipartBody.Part.createFormData("file", file.getName(), body);
        httpObserverOn(apiCenter.uploadLrc(part, getApiMultiFileds(userId, activeKey)), new LoadingHttpObserver<ActiveResult>(activity) {
            @Override
            public void onComplete(ActiveResult error) {
 
            }
 
        });
    }
 
    /**
     *
     * @param userId
     * @param activeKey
     * @param title         歌词标题
     * @param lrc           歌词内容
     * @param observer
     */
    public void addToCollect(String userId,String activeKey,String title,String lrc,LoadingHttpObserver<ActiveResult> observer){
        httpObserverOn(apiCenter.addLrcToCollect(title,lrc,getApiFileds(userId,activeKey)),observer);
    }
 
}