package com.auto.lyric.base.model; import androidx.lifecycle.ViewModel; import com.auto.lyric.base.activities.BaseActivity; import com.auto.lyric.retrofit.AndroidScheduler; import com.auto.lyric.retrofit.api.FieldData; import com.auto.lyric.retrofit.observable.HttpObserver; import com.auto.lyric.util.DeviceIdUtils; import com.auto.lyric.util.NetWorkUtils; import com.auto.lyric.util.SHA1UTIL; import com.google.gson.Gson; import java.util.Date; import java.util.Map; import java.util.UUID; import io.reactivex.Observable; import io.reactivex.schedulers.Schedulers; /** * Created by Administrator on 2021/11/11 0011. */ public class BaseViewModel extends ViewModel { protected BaseActivity activity; public void onCreate(BaseActivity activity){ this.activity = activity; } /** * 网络请求观察 * @param observable * @param * @return */ public void httpObserverOn(Observable observable, HttpObserver observer){ observable.subscribeOn(Schedulers.io())//指定网络请求在io后台线程中进行 .observeOn(AndroidScheduler.mainThread()) .subscribe(observer); } public Map getApiFileds(String userId,String activeKey){ FieldData data = new FieldData(); data.userID = userId; data.ip = NetWorkUtils.getNetIp(); data.random = UUID.randomUUID().toString(); data.timeStamp = new Date().getTime()/1000+""; data.phoneID = DeviceIdUtils.getAndroidId(activity); data.activeKey = activeKey; String sign = String.format("%s%s%s%s%s%s",activeKey,data.ip,data.phoneID ,data.random,data.timeStamp,userId); data.sign = SHA1UTIL.MD5(SHA1UTIL.getSHA(sign)); Gson gson = new Gson(); return gson.fromJson(gson.toJson(data), Map.class); } }