From ea6ce17bf3272259295adccbad85583079b5bac0 Mon Sep 17 00:00:00 2001 From: Runt <qingingrunt2010@qq.com> Date: Wed, 22 Feb 2023 14:14:41 +0000 Subject: [PATCH] api调用 --- app/src/main/java/com/auto/lyric/vm/MainViewModel.java | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 100 insertions(+), 0 deletions(-) diff --git a/app/src/main/java/com/auto/lyric/vm/MainViewModel.java b/app/src/main/java/com/auto/lyric/vm/MainViewModel.java index 395a607..4a024fd 100644 --- a/app/src/main/java/com/auto/lyric/vm/MainViewModel.java +++ b/app/src/main/java/com/auto/lyric/vm/MainViewModel.java @@ -1,9 +1,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); + } + } -- Gitblit v1.9.1