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 observer){ Observable 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 observer){ Observable 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(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 observer){ httpObserverOn(apiCenter.addLrcToCollect(title,lrc,getApiFileds(userId,activeKey)),observer); } }